A small PyPI replacement based on a local distribution directory (implemented using GROK)
haufe.eggserver is a tiny webfront to a local egg/sourcecode archive distribution directory (eggs and other distribution files stored directly on the filesystem).
It currently supports basic browsing through a local distribution directory on the filesystem and basic upload support for eggs and source code distributions (requires haufe.releaser). It supports out-of-the-box infinite repository directories.
haufe.eggserver supports the standard setuptools upload protocol as well as out-of-the-box support for zc.buildout (find-links option).
- download the source code archive and unpack it
- run buildout
- start the instance using bin/zopectl start
- add an eggserver application instance through the management interface
- use the edit view for configuring the path to your local distribution directory and the visible title of your instance (Login with username admin and password 123)
- zc.buildout (use easy_install for installing zc.buildout)
- Grok (will be installed automatically when using zc.buildout)
- gocept.cache (willl be installed automatically when using zc.buildout)
- optional haufe.releaser (use easy_install for install haufe.releaser)
You have to choices:
use haufe.releaser and its local_upload command
use the standard setuptools upload command:
python2.4 setup.py sdist upload -r http://localhost:8080/eggs
A 409 HTTP status code will be returned if the upload file exists.
Things haufe.eggserver won’t do
Since haufe.eggserver is not designed as a full-fledged PyPI replacement, there are some things that the implementation will not do right do (and possibly will not do):
- no dedicated security model (everyone is trused and allowed to upload packages). Keep in mind that haufe.eggserver is basically designed for company/project internal usage
haufe.eggserver is licensed under the Zope Public License 2.1.
See the included ZPL.txt file.
- add simple index creation functionality: The eggserver application now has a setting “index_directory” where all packages are linked into one flat folder. This folder can be served by e.g. Apache as the target of a buildout “find-links” setting.
- fixed an issue where the package directory contained an index.html file
- fixed sorting of dev packages
- sort packages by their version
- updated to Grok 0.12
- added missing bootstrap.py file
- simple view for zc.buildout re-added
- implemented traversers for proper integration with easy_install
- cleaned up download functionality
- fixed ‘simple’ view
- compatiblity with setuptools upload protocol
- added gocept.cache to buildout.cfg
- ‘download’ now sending a proper 404 reply
- caching ‘simple’ view using gocept.cache
- some CSS and UI fixes
- adjust wording
- various encoding fixes for non-ascii metadata
- a new view ‘simple’ provides a flat listing of all files (to be used together with easy_install or zc.buildout)
- various fixes for development packages
- bugfix release
- added download option for distribution files
- showing package metadata for eggs
- some UI redesign
- rest2html integration for showing the Description as HTML (still has some conversion issues)
- updated documentation
- support for development distribution files
- some UI redesign
- new title property
- initial release