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

quinn 1.0 release planning #199

Open
9 of 10 tasks
MrPowers opened this issue Feb 13, 2024 · 9 comments
Open
9 of 10 tasks

quinn 1.0 release planning #199

MrPowers opened this issue Feb 13, 2024 · 9 comments
Labels
1.0 Quinn 1.0 release

Comments

@MrPowers
Copy link
Collaborator

MrPowers commented Feb 13, 2024

quinn is a mature project and is getting ready for a 1.0 release.

We should follow Semantic Versioning 2.0 strictly after making the 1.0 release.

There are a few remaining items for the 1.0 release:

A planning branch for 1.0:
https://github.com/MrPowers/quinn/tree/planning-1.0-release

@SemyonSinchenko
Copy link
Collaborator

I think we should create a branch with 1.0 tag to unblock tickets like dropping of 3.7 support and spark 2.x

@SemyonSinchenko
Copy link
Collaborator

@MrPowers @jeffbrennan Guys, may you please check my comment above? Currently there is no target branch for 1.0 and all the work is blocked by this

@SemyonSinchenko SemyonSinchenko added the 1.0 Quinn 1.0 release label Feb 23, 2024
@MrPowers
Copy link
Collaborator Author

Here are the pyspark 2.x vs pyspark 3.x download stats. Looks like most users have transitioned to PySpark 3.

Screenshot 2024-02-29 at 8 05 16 AM

@SemyonSinchenko
Copy link
Collaborator

Just one remark from my side. If you use PyPI/MavenCentral to create this plot, it may not be fully correct.

In my experience on 2.4 usually are guys with on-prem architecture, just because, in this case, migration is pain. But at the same moment, on-prem infra usually contains something like on-prem JFrog Artifactory as a mirror of Maven Central and PyPI. And on-prem Artifactory always has local caching mechanisms.

So, I may guess that you just do not see usage stats for 2.4 because guys on prem are downloading it from local mirrors, not centralized.

@nijanthanvijayakumar
Copy link
Contributor

Hi @MrPowers and @SemyonSinchenko are you able to elaborate more on the below?

Create a code linting workflow that's more seamless

I am keen to work on that, but would need more context on the expected workflow. Thanks in advance.

@SemyonSinchenko
Copy link
Collaborator

Hi @MrPowers and @SemyonSinchenko are you able to elaborate more on the below?

Create a code linting workflow that's more seamless

I am keen to work on that, but would need more context on the expected workflow. Thanks in advance.

It seems to me that it was about Ruff, and you already did it.

nijanthanvijayakumar added a commit to nijanthanvijayakumar/quinn that referenced this issue Jul 11, 2024
* According to one of the points in the issue mrpowers-io#199 by @MrPowers, this function should never have been created.
* This particular commit removes this function and its references from the quinn repo.
kunaljubce pushed a commit to kunaljubce/quinn that referenced this issue Jul 16, 2024
* According to one of the points in the issue mrpowers-io#199 by @MrPowers, this function should never have been created.
* This particular commit removes this function and its references from the quinn repo.
@fpgmaas
Copy link

fpgmaas commented Jul 21, 2024

@SemyonSinchenko @MrPowers Do we really need a separate 1.0-planning-release branch? Wouldn't it be better to use Github milestones, and simply push to main? That way:

  • We can release changes incrementally in the 0.x.y version by bumping x.
  • Contributors do not get confused when they make PR to main and then hear they should make the chnage on top of the 1.0-planning-release branch.

Then when all issues corresponding to the 1.0 milestone have been implemented through PR's, we simply release 1.0 from main. That way we also have more confidence that the proposed 1.0 release is actually stable.

What do you think?

@SemyonSinchenko
Copy link
Collaborator

@SemyonSinchenko @MrPowers Do we really need a separate 1.0-planning-release branch? Wouldn't it be better to use Github milestones, and simply push to main? That way:

  • We can release changes incrementally in the 0.x.y version by bumping x.
  • Contributors do not get confused when they make PR to main and then hear they should make the chnage on top of the 1.0-planning-release branch.

Then when all issues corresponding to the 1.0 milestone have been implemented through PR's, we simply release 1.0 from main. That way we also have more confidence that the proposed 1.0 release is actually stable.

What do you think?

Hey! I'm not very familiar with milestones. Let me explain the idea of the separate branch:

  1. We need to avoid making releases of quinn with breaking changes without bumping of the major version (semantic versioning) just because a lot of pipilines around the world relying on quinn;
  2. We need to have an ability to release a hot-fix / security-fix for the current latest quinn with bumping a minor version;
  3. In the future, when 1.0 branch is done, it becomes a new "main," but I want to have an ability to release security fixes for the old quinn (that is running on old pyspark legacy pipelines). So, the current main becomes a "quinn-legacy" branch after the release 1.0. We will be able to do security-fixes and bug-fixes at least.

In my career, I have experience working on-premise, and I know that updating critical pipelines and heavy loaded clusters is not an easy task. I know a lot of companies that are still sitting on spark-2 with YARN and on-premise data centers.

@fpgmaas
Copy link

fpgmaas commented Jul 22, 2024

I understand. One small note though: Since the project is still on major version zero, breaking changes can still be introduced without bumping the major version:

Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.

By stacking many changes in the 1.0.0 release that were not tested through public releases, there is an increased risk of detecting bugs after the 1.0.0 release that potentially require a small breaking change to the public API. These would would then immediately require a 2.0.0 release to fix, rather than a 0.<y+1>.z. Of course that is not necessarily a problem in itself.

Anyway, I think the approach you have decided upon also makes sense. Just wanted to challenge it a bit :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1.0 Quinn 1.0 release
Projects
None yet
Development

No branches or pull requests

4 participants