Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define FawltyDeps version 1.0 requirements #448

Open
mknorps opened this issue Jul 30, 2024 · 1 comment
Open

Define FawltyDeps version 1.0 requirements #448

mknorps opened this issue Jul 30, 2024 · 1 comment
Labels
P2 major: an upcoming release question Further information is requested

Comments

@mknorps
Copy link
Collaborator

mknorps commented Jul 30, 2024

Let's use this issue to find together conditions that need to be met to release FawltyDeps 1.0.

The SemVer documentation says:

  1. Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.
  2. Version 1.0.0 defines the public API. The way in which the version number is incremented after this release is dependent on this public API and how it changes.

FawltyDeps has been stable for some time now and we developed in a way that the API does not change.

To summarize discussions with @jherland and @zz1874:

@mknorps

For me one basic requirement is that it does not produce error messages, but gracefully informs user of the failure. For that I would like to see how FD behaves on a large number of projects (one of the motivations behind the PyPI experiment).
To put it in quantifiable measures:
Testing on X data science projects and Y regular projects (let's take PyPI, but being there is already some measure of code quality):
we have no failures of FawltyDeps
FawltyDeps correctly identifies undeclared and unused dependencies for Z% cases.
X and Y should be large numbers, like ~1k. I would like Z to be 95%, but this might be more complicated with the namespace packages.

@jherland

v1.0 can mean different things to different projects, and for some it might mean nothing at all. Just looking at other Python linters (with which we'd like to compare FawltyDeps), there are projects that are definitely more mature than us, but that is not yet at v1.0 (e.g. ruff), and there are projects that use a different versioning scheme altogether (e.g. black is using a date-based YY.M.x version number).
What does v1.0 mean to us?
I'm not sure, but one of the items on our roadmap that I think would make sense to put in place before v1.0 is a documentation website.
Otherwise, there will always be bugs or feature requests that could justify delaying v1.0, but at some point we just have to say enough is enough, and do it.

@mknorps mknorps added this to the FawltyDeps 1.0 milestone Jul 30, 2024
@mknorps mknorps added question Further information is requested P2 major: an upcoming release labels Jul 30, 2024
@jherland
Copy link
Member

Now that we have users asking for Conda support, we might want to consider if that is something we want to support in v1.0?

One factor in that discussion is that Conda is more "different" than the other packaging/dependency declaration methods, and that this might necessitate deeper changes in FawltyDeps, by which I mean changes that would change our API (command-line or otherwise).

(I'm hand-waving a lot here, as I don't know the details yet...)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P2 major: an upcoming release question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants