-
-
Notifications
You must be signed in to change notification settings - Fork 2
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
Update to namespace plugin format #4
Conversation
@MinchinWeb: I made some changes aimed at consistency with the other plugins under this new organization, including CI-powered automatic publishing to PyPI. What do you think? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for doing this @justinmayer !
One of the biggest changes is the change in the build/release process. These are my concerns, help put me to ease on them please:
- The old
setup.py
pulled much of the metadata (but particularly the version) from the same place the internal code did. Now this is kept in multiple places (in the plugin and the poetry configuration); how to we ensure that they are kept in sync? - Does poetry need to explicitly list namespace packages? (This was needed in the old setup).
- How do we keep
tasks.py
up-to-date and in-sync across all the expected plugins? I was doing this using an external project (Minchin dot Releaser), but I'm not sure we could do the same here (though that would be my first inclination) as the proposedtasks.py
sets up the development environment, so I'm not sure if it can practically rely on an external package in the same way... - Is there an automated way to keep the version of the linting tools listed in the pre-commit config in sync with the versions listed in the poetry config?
- Minchin dot Releaser allowed me to do the full release process from a single command. Are we moving that to a GitHub action?
- Minchin dot Releaser had a couple of checks that I don't see here... are these easy to replicate?
- check that the Readme will render on PyPI
- check that the built distribution can be installed and loaded correctly (checked by asking for the package version; this was designed to catch very basic packaging mistakes)
- create a git tag for the release
Probably beyond the scope of this pull request, it would be cool if this plugin's documentation could be folded into the main Pelican documentation somehow....
Many thanks for the thoughtful and detailed feedback. I know there are a lot of changes in here, many of which I did not sufficiently explain in the pull request description. Mea culpa. Following below, I will try my best to answer your questions…
I overlooked updating the installation instructions in the README. I just pushed a commit that updates it and fixes a few things, too. I don’t know if it makes sense for plugin documentation to be separated from its repo and instead be stored in Pelican core’s repository. Could you perhaps elaborate regarding why that would be beneficial? |
Thanks for working through this.
|
@MinchinWeb: Thank you for the detailed notes. I’ll comment on what I think are the only outstanding items left…
With all that said, is there anything left to do before this is merged? Once this has been merged, we should be ready to publish the namespace-ready version to PyPI. Hopefully we can do that within the next 24 hours, as I'm hoping to release the next version of Pelican — the first release that supports namespace plugins — tomorrow, Thursday, Aug. 20th. Looking forward to having the namespace-ready version of the Jinja Filters plugin published and ready by that time! 💫 |
@justinmayer It's done! I created a couple of issues for the few outstanding things that we talked about, but weren't blocking. I think the only piece left is for you to turn on Good luck on the Pelican 5.0 release! |
Great! Glad to see this merged. 🎉 By nature of the relevant configuration, AutoPub should already be set up. I'll release version 2.0.0 as soon I get the Pelican release out the door. (Speaking of which, the plan is for the next Pelican release to be 4.5.) |
Following up on #3, I used the Cookiecutter template to scaffold a new plugin, using the generated output as the basis for making the changes found in this pull request.