I'm playing around with devpi themes.
My goal is to create a nice theme for my company.
I'd like to add extra information to some pages, like the index page or the
I added a snippet of code which produces an "index inheritance diagram" on
each index page display.
Because the company I work for is not that small, these diagrams can get
A sample diagram: index inheritance diagram
Each box is an index, I intentionally removed all user and index names,
except for root/pypi.
It's not my indices, please don't judge me for the design :)
I'm concerned about performance here. First of all, currently I generate
those on display action, which doesn't seem the way to go.
Could devpi provide a hook so that I'm able to regenerate a diagram on an
index update event?
Additionally, I'd like to add more information to an index page and the
root pages. So the question is: Could functions in devpi_web.views expose
more data in get_index() and root()? Potentially other functions?
I know I can always get the data with python snippets in the templates, but
it all takes precious time.
For instance, in my company, some indices are regular user indices, some of
them are project indices.
I'd like to sort the list of indices on the root page: display the project
ones first, and user indices below.
The way I would see this is the custom_data property of an index.
The bottom line: I think people could easily create fancier themes if the
devpi web views functions exposed more data to the templates, even if that
data is not used in the default theme.
It would be great to get the full indexconfig json structure for each index
in both get_index() and root() functions from devpi_web.views module.
Now I'm not sure how much more data others might want to get there.
I hope these things make sense.
devpi-server-2.3.1 is a quick small bugfix release (which is accompanied
thanks to Florian Schulze,
- fix issue272: require devpi-common >= 2.0.6, which fixes documented
- recognize newly registered PyPI projects, now that we don't watch the
PyPI changelog anymore
devpi-server-2.3: more resilient pypi caching, semantic versioning
The devpi-server-2.3 release brings two important changes:
- We don't use the XMLRPC "changelog" interface of pypi.python.org
anymore. Instead devpi-server now re-checks with pypi every 30 minutes
and will serve cached contents in between. If pypi is not reachable
and we still have cached contents we continue serving the cached content
so that we can survive pypi outages.
- we switched to semantic versioning so that only major version number
increases signal the need for an export/import cycle. If you have
a devpi-server-2.2.X installation you are not required to export/import.
However, there has been a regression with the execnet-1.4.0 release
which was fixed with the now current execnet-1.4.1 release. If you
have freshly setup devpi-server and used execnet-1.4.0 at that time
you will need to do an export with execnet-1.4.0 and then import
with execnet-1.4.1 installed.
Note also that we released new micro releases of devpi-client and devpi-web
which are pure bugfixing releases.
For many more changes and fixes, please see the respective CHANGELOG of the
For docs and quickstart tutorials see http://doc.devpi.net
many thanks to Florian Schulze who any of the new features. And special
thanks go to the two still unnamed companies who funded major parts of
the above work.
holger krekel, merlinux GmbH
- switched to semantic versioning. Only major revisions will ever require an
- fix issue260: Log identical upload message on level "info"
- Log upload trigger message on level "warn"
- The PyPI changelog isn't watched for changes anymore.
Instead we cache release data for 30 minutes, this can be adjusted with the
- fix issue251: Require and validate the "X-DEVPI-SERIAL" from master in
- fix issue258: fix FileReplicationError representation for proper logging
- fix issue256: if a project removes all releases from pypi or the project is
deleted on pypi, we get a 404 back. In that case we now return an empty list
of releases instead of returning an UpstreamError.
- Change nginx template to serve HEAD in addition to GET requests of files
directly instead of proxying to devpi-server
- make keyfs cache size configurable via "--keyfs-cache-size" option and
increase the default size to improve performance for installations with many