Comments (7)
Ok, I pointed at this from a couple of issues. How big do we what this list of optional dependencies to be? I originally started zest.releaser with the goal of it being dependency-free and python-only. That's why it is calling git/svn/hg/bzr on the commandline instead of using a python API where available.
So we should be careful, even with a recommendation list. And really really careful with mandatory dependencies (such as twine (#59)) might turn out to be.
I'm not saying an extra dependency here or there is a bad idea, but I do want to be careful. At the same time, this might be a good way to promote great work done by others.
zest.pocompile: I haven't checked what it does, but iirc plone and django expect different things. Plone doesn't want compiled .mo files and django does. Or is it the same now? Long time no plone for me :-)
from zest.releaser.
zest.pocompile should be fine with both django and Plone. It searches for all LC_MESSAGES directories, no matter where they are (locales, locale, something-completely-different). In combination with zest.releaser, the idea is explained here: https://github.com/zestsoftware/zest.pocompile#zestreleaser-entry-point
It adds the .mo files to the fresh tag checkout, so they are included in the source dist or wheel, as long as your MANIFEST.in is configured to somehow include those .mo
files.
Main goal: .mo
files should not be in version control, but should be in the final source dist or wheel. This way, users of the package need to worry about compiling those files themselves.
Note that for example Plone is usually configured to compile the .mo files on startup, but you might run into permission problems if you choose to run the buildout as user Jane and let Plone start with effective user Joe: on behalf of Joe Plone would try to compile the .mo files into a directory where Joe might not have write permission. Plone might not be able to start then, which is why you can configure Plone not to compile .mo files. If all packages have the .mo files already included, as zest.pocompile does, this is no problem.
from zest.releaser.
A list of recommended or known good extra packages in the docs would be fine too, instead of officially in a setup.py extra.
from zest.releaser.
django needs the compiled files, also in development. So they need to be in version control.
from zest.releaser.
Plone also needs the compiles files in development, so it compiles them on startup when your configuration is correct. I would say in Django you call compilemessages once before startup, avoiding the need to have them in version control.
Anyway, sounds like you are not convinced. And I think that if we want to have a recommended extra in setup.py, it should be a list of obviously recommended packages useful for the majority of Python developers, which at least we too both recommend. zest.pocompile does not fit the bill.
We should probably add wheel
to the test
extra as well, because some tests fail if you do not have wheel installed. I'll do that. We might still want it in a recommended extra.
So possible list would be:
- check-manifest
- pyroma
- wheel
from zest.releaser.
About compilemessages: most developers at our place check out the project and don't do anything with translations. Least of all calling compilemessages :-)
I'd say the list is for things that are very useful to 90% of the zest.releaser users.
check-manifest sounds like it is useful for 100% :-) (Provided it doesn't complain when there's no MANIFEST.in and it doesn't complain when it isn't a python project!) On the other hand, it are probably all add-ons that are only useful for python projects, so that's fine.
I never used pyroma, but that probably means I should go hide in a deep cellar to prevent serious bodily harm, like flogging or burning at the stake.
Wheel: no problem.
from zest.releaser.
check-manifest also checks if you would need a manifest. Sample run with check-manifest in a project with a setup.py but without MANIFEST.in (well, removed for the demo):
$ prerelease
Do you want to run check-manifest? (Y/n)?
listing source files under version control: 21 files and directories
building an sdist: collective.noindexing-1.5.dev0.tar.gz: 22 files and directories
copying source files to a temporary directory
building a clean sdist: collective.noindexing-1.5.dev0.tar.gz: 12 files and directories
files in version control do not match the sdist!
missing from VCS:
.installed.cfg
missing from sdist:
CHANGES.rst
README.txt
bootstrap.py
buildout.cfg
collective/noindexing/configure.zcml
docs
docs/INSTALL.txt
docs/LICENSE.GPL
docs/LICENSE.txt
suggested MANIFEST.in rules:
include *.py
include *.rst
include *.txt
include buildout.cfg
recursive-include collective *.zcml
recursive-include docs *.GPL
recursive-include docs *.txt
MANIFEST.in is not in order. Do you want to continue despite that? (y/N)?
For a non-python project, so for example a buildout that has no setup.py in it, check-manifest does not do anything and does not complain.
from zest.releaser.
Related Issues (20)
- ValueError: binary mode doesn't take an encoding argument HOT 9
- fullrelease: error: no such option: --no-input HOT 8
- sdist is missing tox.ini HOT 1
- tests fails with non-GNU ls HOT 4
- testing: the following arguments are required: message HOT 1
- testing: bumpversion and postrelease tests fails HOT 3
- Always create wheels, when possible HOT 2
- Warn/ask to verify for deprecation notices when making a major release HOT 4
- get_last_tag can fail with recent setuptools HOT 1
- Use build to generate wheels and sdists HOT 7
- Read zest.releaser settings from pyproject.toml HOT 3
- Issue during our dependency-check analysis because of tests/pyproject.toml file HOT 1
- Upload to PyPI fails HOT 6
- readthedocs documentation isn't being build anymore HOT 2
- Issues when trying 'build' HOT 7
- Wheel does not contain the required METADATA file HOT 2
- `build` has changed the ProjectBuilder API in 1.0.0 HOT 2
- index-servers option in setup.cfg not working HOT 5
- implement --version HOT 1
- Support Hatchling as build backend HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zest.releaser.