Hi–I’m wondering how a beginner package developer can develop an objective sense of whether or not one’s package is “useful” and “up-to-date.” I break this question down into a few components, and presumably there are many more that I have not considered:
- The package may offer some feature, but is that feature duplicated in an obscure part of Base or in another existing package? How do we find out?
- The package may not use best practices in terms of code development or testing. How do we know what these are? Is there a high-level checklist we can run through?
- The package might not anticipate (or might duplicate) changes that are coming to the language that are well-known to the core Julia devs. How do we lowly package developers get wind of the important developments of which we should be aware?
- What are the other unknown unknowns we should consider before publishing a package? Again, is there a checklist?
Essentially, as first-time package submitters, my colleague and I are flying blind wondering “Have we done this right at all? Or are we just completely off-base?” And in our states of ignorance, we realize that we don’t know a lot, but we have no idea what are all the things that we don’t know or where we can learn them.
Any guidance–especially in the form of a checklist, even at a high level, e.g. of “Make sure you’ve implemented working tests, make sure you’ve integrated with Travis CI, make sure you’ve searched key words against this repository of packages, make sure you’ve read the most recent X github issues, make sure you’ve read the latest stable julia/NEWS.md, etc.” would be very helpful and much appreciated.
(The specific package we’re working on getting to v0.1 is here.)