Giter VIP home page Giter VIP logo

Comments (7)

reinout avatar reinout commented on July 22, 2024

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.

mauritsvanrees avatar mauritsvanrees commented on July 22, 2024

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.

mauritsvanrees avatar mauritsvanrees commented on July 22, 2024

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.

reinout avatar reinout commented on July 22, 2024

django needs the compiled files, also in development. So they need to be in version control.

from zest.releaser.

mauritsvanrees avatar mauritsvanrees commented on July 22, 2024

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.

reinout avatar reinout commented on July 22, 2024

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.

mauritsvanrees avatar mauritsvanrees commented on July 22, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.