-
Notifications
You must be signed in to change notification settings - Fork 107
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
Releasing v0.3.3 to fix conda-forge build issue #170
Comments
Seems like the recent use of |
Oops. So we need to use the |
When you say requirements.txt and LICENSE files are missing, do you mean in the recipe (or PyPI build that the recipe is pulling from), since they exist in the repo itself? For my own future reference, if these files are updated in the icepyx repo, will I need to also make those changes to the conda-forge recipe? Does Thanks for the links for CI fixes. It's getting pretty late here for today but I'll work on this tomorrow. |
It is missing from the source file that gets build from
I don't think it does automated build, but @weiji14 can chime in on that. |
Seems like everything is now included in the source distribution file, which makes it so bloated ... After being so confused as to the cause, I finally tracked down that it was because of I didn't know by default this includes all the files being tracked by git. Seems like it's a known issue: pypa/setuptools-scm#516. Also here's a text about its behavior: https://github.com/pypa/setuptools_scm#file-finders-hook-makes-most-of-manifestin-unnecessary. @weiji14 do you know how to mitigate this. We could list all the files to exclude in |
I'm all about better practice and non-manual updating! Thanks for the explanation. It sounds like a
If
It's been challenging setting up these automations and troubleshooting them (I know there are some issues with the automatic PyPI builds when I tag a new release that I haven't yet sorted out), so any corrections/fixes are welcome! What files (or types of files) that are tracked by git would normally be excluded from the sdist (but that |
Also, I started a "conda" branch for these edits. |
Ok, so in MANIFEST.in, my understanding is that we should just include the
Cool, I can chime in and have a look. I'm a bit more familiar with using the PyPI Publish Github Action than Travis CI but it should be quite similar. |
Hi @JessicaS11, just checking up on this, how are you doing with the "conda" branch? |
#172 Should make the package slimmer. I got about 42kB now with the PR. |
I'm scratching my head a bit on this not being able to see the chicken versus egg today. The goal is to release a new version (0.3.3) of icepyx, which will (if all goes according to plan) trigger (independently): 1. a new build and release on PyPI; 2. a package build and availability through conda. We've added
|
Yeah there's a lot of pieces going together. The release pipeline should go as follows:
To answer your other questions:
Yes. The version string (e.g.
See point 4 above. The conda-forge bot detects new releases at PyPI and triggers a PR to bump up to a new version automatically. But of course, we need conda-forge/staged-recipes#13866 first for the initial conda-forge v0.3.3 package. Future releases >=v0.3.4 will be automated.
See point 3 above. Actually, were the previous releases uploaded to PyPI by Travis CI or were they done manually or via another way? If there's no strong preference for using Travis CI, I can make a Publish to PyPI Github Actions workflow as I've got more experience on that. It will also publish test releases to TestPyPI so we can test things before doing the real release.
See point 2 above. If I understand correctly, before, you made a git tag, pushed it to GitHub, and then published a release? You can also make a GitHub release directly on the GitHub releases page and this does both automatically in one click (tag and release).
Every commit has a version. There are published versions like v0.3.0, and non-published interim versions like v0.3.0.dev1+abcdef (the 1st commit after v0.3.0). The
If you have the full
Feel free to ask more questions! TLDR: Merge development into master -> Tag Release (on GitHub releases page) -> Publish to PyPI -> Publish to conda-forge |
Thanks for all this info!
I've done tags and releases both ways, and the triggering in Travis of PyPI builds hasn't always worked.
So
The Travis CI workflow also contains code for publishing test releases to TestPyPI. I looked for some info on switching to GitHub Actions versus staying with Travis, and it seems like the main pro Travis has is the ability to trigger a build manually through their API (and they have an API). That said, I'd like to keep Travis for testing for now but would be fine to have all of the builds+releases done through GitHub Actions. If you're still up for it @weiji14, I'd say go for making the change. I will work on getting the tokens set up with the same variable names they currently have for Travis. |
Ok, I've opened up #174 which migrates the PyPI deployment from Travis CI to Github Actions. We can do a few test commits there to show how the package publishing workflow works (to TestPyPI). Will need help setting up the PyPI tokens first though since I haven't got permissions. |
Success! Thanks @weiji14 for getting the GH Action to PyPI and TestPyPI (#174)set up! The first run (triggered by the merge, but I checked and the button to run it manually is available too) was successful. I think that means we can go ahead with a new release to get everything on conda-forge, right? Does one of you want to submit the development --> master PR. Then the other two of us can review it and I'll tag it after the merge (or can I tag the would-be merge commit? I am still wondering how we make sure that my tag/release number and the automatic versioning with See first #175 to get the rest of the changes discussed here into development! |
A bit of a chicken and egg problem, but do we want to update the install instructions at https://icepyx.readthedocs.io/en/development/getting_started/install.html to mention |
It's funny you ask this because I almost updated the install instructions but then didn't for exactly the reason you noted. I think at this point we should do it after, once we've actually done a |
Hey all, I've been MIA the past week, seems like you both made a lot of progress! Nice work! 😄. Is the geoviews stuff included in v0.3.3? If not, maybe we should move forward with that release, so we can get icepyx into conda, that way we are able to test it out. |
Hi Don, you're back just in time. We just merged in the conda brach at #175 so we'll need your help with the conda-forge package soon at conda-forge/staged-recipes#13866. Geoviews will have to wait for v0.4.0 as it's a bit complicated. @JessicaS11 did you want to try and publish a release (following #170 (comment)) today? Let me know if you need any help or clarification. |
Yeah, let's publish a release. @lsetiawan, can you submit a development--> master PR? Then @weiji14 and I can review it and I'll publish the release and we can check up on the conda-forge recipe. |
I merged PR #179 and we've got a successful new release on PyPI. Our readthedocs builds are failing due to the switch to automatic versioning, and we now have the non-fast forward commit on master that's not on dev (I don't think there's an easy setting in GitHub to keep this from happening?). |
To elaborate on the read the docs failure. When it tries to
Since |
Yikes, didn't see that one coming! I see readthedocs being mentioned at https://github.com/pypa/setuptools_scm#usage-from-sphinx, see if that helps? I'll take a look around some other projects who use readthedocs and setuptools_scm to see what their conf.py looks like. |
Unfortunately the setuptools_scm guidance you linked above is no help (I tried that first - see the rtd_fix branch). If you put that code in there before Can one of you remind me if there was a particular reason we opted to use |
Attempting fixing the read the docs at #181. My understanding is that read the docs will run an install, which would output the _icepyx_version.py and then the conf should read that. |
Thanks @lsetiawan! Your fix is similar to the one of the ones I tried on rtd_fix, but has the same issue. |
|
Readthedocs has a continuous Pull Request builder as of Jan 2021 (see https://blog.readthedocs.com/pull-request-builder-general-availability/). Should we maybe give that a go @JessicaS11 while we debug the situation? Will need your admin permissions to set it up according to https://docs.readthedocs.io/en/stable/pull-requests.html#preview-documentation-from-pull-requests. |
Oh, fun! As admin I just do this manually, but it might be fun for new contributors to be able to see/test their docs updates without my setting them up. It looks like I just need to enable it from read the docs, so I will go ahead and do that. Update: enabled! From the looks of it, either #181 or #182 solve the docs building issue. Thoughts or preferences for which one we merge in? |
Let's go with the one that works (i.e. #182). If we merge that one in to the 'development' branch, we ought to see the revision number change on https://icepyx.readthedocs.io/en/development/index.html (which is currently stuck on 9446737, i.e. the commit before #168). Going forward, we should have a CI check that ensures the documentation is able to be built on readthedocs before pushing to the main branch. |
Good idea. I'll take some blame for this one because I saw the docs building failures but didn't look at them too closely because I thought it was the same as the other intermediate issues we were having while we set up the automatic versioning. |
No no, I should be the one to blame since I suggested using |
Best way to learn is experimenting with it! haha This has been a really great effort! Thank you both for helping out! I learned a lot! |
Yes, it's been great to learn together! : ) |
So did we successfully build a recipe on conda-forge? |
Docs at https://icepyx.readthedocs.io/en/development/ point to 7458296 now, woohoo! Looks like we might need a quick v0.3.4 release. How is everyone's schedule time-wise? I was thinking of pulling together a changelog for v0.3.3 too for https://icepyx.readthedocs.io/en/development/user_guide/changelog/index.html, but we could do it tomorrow instead.
Yep, I can work on that with Don if you need to go since it's past 5pm on East Coast US? |
That sounds like a good plan. There should be a template in the changelog dir you linked to for creating the new one(s). I have a couple other docs-related things I'd like to try and update quickly before 0.3.4, which I can hopefully get PRs in for tomorrow. You're right about me calling it a day for now! |
When the conda-forge CI finishes, the recipe will live here: https://github.com/conda-forge/icepyx-feedstock |
Time to try things out from conda-forge! https://anaconda.org/conda-forge/icepyx |
I created a new dummy environment and installed icepyx via conda! Yay! Thanks for all your hard work making this happen, @lsetiawan and @weiji14. What a great start to the weekend (or middle of it, as the case may be). : ) |
Overview
After merging #168. I think it's good to release a minor version 0.3.3 to resolve conda-forge/staged-recipes#13866. Since requirements.txt and LICENSE files are missing from the package.
Build error for conda package can be found here.
The text was updated successfully, but these errors were encountered: