Proposal: Deprecate the `analyzer` Package and Improve the Repository Layout
makenowjust opened this issue · 5 comments
memefish
consists of two features: parser
and analyzer
. parser
is mostly complete implementation, but analyzer
is incomplete. In addition, parser
is used by someone, but analyzer
seems to be used by no one. I have no time to finish implementing the analyzer
package and I'm hard to maintain this package. Therefore, I would like to deprecate the analyzer
package.
The repository layout of memefish
looks strange to me. Placing implementations under the pkg
directory may be useful if memefish
is an application and the implementations are used for implementing the whole application. However, memefish
is just a library, and the pkg
directory does not help users. Thus, I also want to change the repository layout at this time.
My considering to-do list is as follows:
- Add
v1
tag so that we can fetch the current source code by the pathgithub.com/cloudspannerecosystem/memefish
- Move the
parser
package to the top of the repository and other packages except for theanalyzer
under the top. (I have no idea what to do withexample
ordocs
.) - Release
v2
on this layout. - (Maybe, we need to update docs.)
Perhaps if we do the above, users can continue to use the current code, and v2
will allow them to use a clean layout.
I have no time to finish implementing the analyzer package and I'm hard to maintain this package. Therefore, I would like to deprecate the analyzer package.
In my opinion, they can be improved by contributors so I don't think maintainers should implement and maintain some features. There is no good place (repository) for analysis currently. Someone may think those features should be inside memefish or someone may think it's enough to create an independent repository. It depends on the policy or purpose of this project. If we want to provide advanced features like analyzer than just parsing statements, we can keep it as is and look for contributors. However if we want to focus parser in this repository, it's good to omit those advanced features.
The repository layout of
memefish
looks strange to me. Placing implementations under thepkg
directory may be useful ifmemefish
is an application and the implementations are used for implementing the whole application. However,memefish
is just a library, and thepkg
directory does not help users. Thus, I also want to change the repository layout at this time.
Agreed. I think parser
package should be placed on top directory.
Add v1 tag so that we can fetch the current source code by the path github.com/cloudspannerecosystem/memefish
In my optimistic thought, we can just move the package without creating v2. Now we haven't create a release and there are not so much users of this library. It's just a small change about moving package. There are many projects that do breaking changes in a minor version. However removing package has a large impact basically. In this case, it seems analyzer package is not used by anyone, so the impact is small. So I think we can just change the package structure without creating new version at this time.
I have no idea what to do with
example
ordocs
.
I think we can keep the packages on the top directory as is.
In my optimistic thought, we can just move the package without creating v2.
Agreed with @kazegusuri's point. Also, memefish didn't have any release version, so it should be fine to do this change. And as a user(parser only), I'm glad to change the import path as well since it didn't break anything.
We should start versioning at some point. However, this point may not be here.
Okay, I will only fix the repository layout and remove the analyzer
package.
We should start versioning at some point. However, this point may not be here.
Yes, my point is fine to break since it has no release version, so it even didn't promise compatibility or breaking change at all. And it's always nice to have the release version.