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

Release 2024.6.20. #333

Merged
merged 1 commit into from
Jun 21, 2024
Merged

Release 2024.6.20. #333

merged 1 commit into from
Jun 21, 2024

Conversation

dhermes
Copy link
Owner

@dhermes dhermes commented Jun 21, 2024

Populated templates via:

$ python scripts/doc_template_release.py
Linux GitHub Actions Run ID: 9607943395
Windows GitHub Actions Run ID: 9607943396
Coveralls Build ID: 68215528
macOS GitHub Actions Run ID: 9607943397

I'll be using this PR to post comments about the release process (for audit purposes).


See also #309 and #330

Populated templates via:

```
$ python scripts/doc_template_release.py
Linux GitHub Actions Run ID: 9607943395
Windows GitHub Actions Run ID: 9607943396
Coveralls Build ID: 68215528
macOS GitHub Actions Run ID: 9607943397
```
@dhermes dhermes changed the title [ci skip] Creating release 2024.6.20. Creating release 2024.6.20. Jun 21, 2024
@dhermes dhermes changed the title Creating release 2024.6.20. Release 2024.6.20. Jun 21, 2024
@dhermes dhermes changed the title Release 2024.6.20. Release 2024.6.20. Jun 21, 2024
@dhermes dhermes merged commit 4c762f6 into main Jun 21, 2024
@dhermes dhermes deleted the dhermes/release-2024-06 branch June 21, 2024 03:54
@dhermes
Copy link
Owner Author

dhermes commented Jun 21, 2024

Built all wheels via: https://github.com/dhermes/bezier/actions/runs/9608025437

@dhermes
Copy link
Owner Author

dhermes commented Jun 21, 2024

To upload, I made a ~/.pypirc for TestPyPI

[distutils]
  index-servers =
    testpypi

[testpypi]
  username = __token__
  password = pypi-Ag...

I downloaded all the files and put them in a shared artifacts/ directory, then uploaded via:

$ cd artifacts/
$ twine upload --repository testpypi *

depending on the "current" contents of ~/.pypirc. Note that it's possible to have both testpypi and pypi index servers / repositories present at once, but I elected not to (and immediately deleted ~/.pypirc after) to reduce the surface area for possible mistakes.

@dhermes
Copy link
Owner Author

dhermes commented Jun 21, 2024

As part of the upload process, I also tagged the commit and pushed the tag:

git tag 2024.6.20
git push origin 2024.6.20

To make the actual release (https://github.com/dhermes/bezier/releases/tag/2024.6.20) in Markdown, I used pandoc to convert:

$ cd docs/releases/
$ pandoc --standalone --output latest.md latest.rst

Even still it is imperfect because of line wrapping, so I manually edited the output (latest.md) to just make every line VERY long (instead of doing line wrapping).

@dhermes
Copy link
Owner Author

dhermes commented Jun 21, 2024

After pushing the tag, the TestPyPI release checked out (URLs in the release refer to the tag).

After this was validated, I changed ~/.pypirc to the production pypi index server:

[distutils]
  index-servers =
    pypi

[testpypi]
  username = __token__
  password = pypi-Ag...

and then uploaded via:

$ cd artifacts/
$ twine upload --repository pypi *

depending on the "current" contents of ~/.pypirc. Note that it's possible to have both testpypi and pypi index servers / repositories present at once, but I elected not to (and immediately deleted ~/.pypirc after) to reduce the surface area for possible mistakes.

@dhermes
Copy link
Owner Author

dhermes commented Jun 25, 2024

Worth noting: I do not have easy access to macOS hardware running 10.9 (x86_64) or 11.0 (arm64). As a result, the only macOS wheels I built were on the macos-14 GitHub Actions runners.

This may be an issue for macOS users on earlier versions.

If someone has a request for earlier versions and hardware, I can likely help collaborate with them to get wheels built and uploaded to PyPI.


The biggest blocker to this is actually getting a version of gcc that has a "minimum SDK version" of 10.9 / 11.0.

$ otool -l /opt/homebrew/Cellar/gcc/14.1.0_1/lib/gcc/14/libgfortran.5.dylib | grep -B 3 -A 5 minos
      cmd LC_BUILD_VERSION
  cmdsize 32
 platform 1
    minos 14.0
      sdk n/a
   ntools 1
     tool 3
  version 1053.12
Load command 11

See delocate failure involving the gcc (gfortran) shared libraries for a concrete example.

I actually considered using old versions of the gcc bottles (pre-built images specific to each version of macOS) but elected not to.

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

Successfully merging this pull request may close these issues.

1 participant