-
Notifications
You must be signed in to change notification settings - Fork 428
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
Release Django 5.0 compatible package to PyPI #680
Comments
@auvipy - is there a timeline for the next release (with 5.0 support)? |
Hopefully early next week. |
Hi 👋 Based on what I understood, Django 5.0 support was simply a matter of relaxing the dependency constraints. The patch was made on the Sep 19, which is the release date of the first Django 5.0 alpha. This is an achievement: we managed to add support for the new Django release very early in the development process 🥳 However, 2 months later and 4 days after the final Django release, users are still not able to use it (or even test it easily) because we failed to release the working code we produced 2 months ago 😕 Far from judging (I've done manual releases myself for some time so I know how time consuming it is 😉), what can we do to help you @auvipy to ease the release process of this version and the following ones? I'll be happy to look into a CI pipeline to provide an automated release if you are okay for it, but if you prefer to do it manually tell us if you need new maintainers for reviewing PRs or doing issues triage 🙂 |
%
Please release a new version to PyPI. |
I can't afford to further delay my Django 5.0 upgrade as I have planned features that depend on the new version capabilities. As I don't expected anyone to trust my build, here are the steps I used to build and upload it if someone needs to do it for himself. # install twine to upload package to PyPi
pipx install twine
# install latest version of python (not mandatory) and enable it
pyenv install 3.12.1
pyenv virtualenv 3.12.1 dev
pyenv shell dev
pip install setuptools wheel # python 3.12.0+ does not install them by default
# get source code
git clone git@github.com:celery/django-celery-beat.git
cd django-celery-beat
# rename the package (replace custom by what you want)
sed -i 's/django-celery-beat/django-celery-beat-custom/g' setup.py
# build the package
python setup.py sdist bdist_wheel
# upload to pypi
twine upload dist/* |
Were you able to get the tests to pass on Py3.12 and Dj5.0? |
Launching I choose to ignore it because it's related to the removal of |
It's quite easy to fix, as we simply need to use However, we might also want to fix in the same time warnings regarding the deprecation of IMHO, we should simply get rid of old python / django versions, remove support for |
|
Is there an ETA for django 5 support? I see that there's work in progress but I am eagerly waiting for the release. |
I believe that the celery project has removed references to datetime.utcnow so we can proceed with the release of django-celery-beat for django 5.0 |
@nijel Please consider changing the title of this issue to Others, If you want to provide maintainers more confidence to make this release then please consider installing the |
Can you please release at least a release candidate? Otherwise, testing without hashes is somehow not very good in modern world. |
We have a command in ci to install from |
Our requirements.txt files has been using:
For the past 2 weeks against Django 5.0.1 and Python 3.11 without any issues. |
Doesn't work
|
any news about the release to the pipy package? I think there is way too much focus on django 5.1 without proper implementation for django 5 support |
Any news regarding the upgrade? :) |
Hello 👋 |
|
What else needs to happen here other than tag the version and push it to pypi? |
@cclauss yes, I guess I'm wondering what else needs to happen before a maintainer tags and releases as we have all been using it from the git repo for a while now without issues. If there's some further evidence needed I'm happy to supply it. We have been running against the git version for about 4 weeks now without issue. |
Can I suggest to give up upper bound constraints? It's considered a pretty negative practice, see this article on the subject and Poetry's FAQ (EDIT: link updated). Upper-bound constraints should be solely reserved for the very rare case where you tried with the new version and you know it doesn't work. |
The euphemism Why deprive the maintainers of this project the alpha, beta, production release process that Linux, macOS, Windows, Python, Django, and even Poetry all have? This software operates in complex combinations with other systems and is used to process mission-critical data. If maintainers are prohibited from testing/repairing before production use then they will need to deal with software quality rumors/concerns and respond to complex issues opened by unhappy users. Just ask yourself why Poetry releases with alpha, beta, and production releases but encourages others not to follow their own example. Occasional "spring cleaning" from multiple contributors to prepare for new versions of Python and Django helps to keep the code modernized and functioning properly. Pull requests focused on getting this repo ready for Django v5:
|
#680 (comment) with regard to this issue, we have upgraded as suggested and are experiencing no issues on Django 5. |
@cclauss I think you are confusing two different subjects. I don't see why you oppose relax-bound constraints for libraries and a software release process. A ton (actually most) of python libraries do have a release process and have no upper-bound constraints ; Django being the first of them (see its setup.cfg dependencies list). As for Poetry, they are not a library, they are an application. An application is the very final chain link of its dependency chain, so an app can do whatever it wants on the expression of its dependencies. 99% of the time, they are all pinned to the exact version. That's what Poetry does, you can see it because they have a poetry.lock. |
Building on @deronnax's points, I want to emphasize the option for downstream applications to lock their dependency versions (e.g., django==4.2) at their discretion. This decision should, in my opinion, not be made by upstream library authors, especially if there is no concrete reason / evidence to believe that newer versions of the library's dependencies will break the library. This is especially true for frameworks or libraries, such as Django, that have a disproportionate impact on downstream code bases where unnecessary version locking can cause headaches. As a side note, we are also not experiencing issues running Django 5.0. |
I'd like to also confirm that I have been running a fairly large project (with its fair share of celery-related quirks) with the recent changes (Pinned at |
I would like to revisit this issue very soon. |
Please review the eight pull requests above. For instance... |
When can we expect a release? Any ETAs? |
Are we ready for a release? @cclauss |
Yes. Please look at #737 and then let's release! |
Was this released? |
YES... https://pypi.org/project/django-celery-beat is v2.6.0 |
Summary:
Include a brief description of the problem here, and fill out the version info below.
Exact steps to reproduce the issue:
django-celery-beat 2.5.0 has requirement Django<5.0,>=2.2, but you have django 5.0a1.
Detailed information
See https://docs.djangoproject.com/en/dev/releases/5.0/ for release notes.
The text was updated successfully, but these errors were encountered: