[Distutils] devpi-server/web-3.0: generalized mirroring, speed, new backends
Jamiel Almeida
jamiel.almeida at gmail.com
Fri Feb 12 11:48:20 EST 2016
Holger, great work! I wanted to send kudos your way and did it at the
indiegogo campaign, take pictures and have fun!
I wanted to ask if there was an xmlrpc api like pypi where we have
package_releases along with other similar calls? I use those sometimes
for helper scripts and dashboards and would like to have that in the
devpi instance too, tho I have not done my homework on checking code
yet I have not found it in the docs.
Anyways, awesome work, and keep rocking!
On Fri, Feb 12, 2016 at 3:13 AM, holger krekel <holger at merlinux.eu> wrote:
>
> The 3.0 releases of devpi-server and devpi-web, the python packaging and
> work flow system for handling release files, documentation, testing and staging,
> bring several major improvements:
>
> - Due to popular demand we now support generalized mirroring, i.e. you can
> create mirror indexes which proxy and cache release files from other pypi
> servers. Even if the mirror goes down, pip-installing will continue to work
> with your devpi-server instance. Previously we only supported mirroring
> of pypi.python.org. Using it is simple:
> http://doc.devpi.net/3.0/userman/devpi_indices.html#mirror-index
>
> - For our enterprise clients we majorly worked on improving the speed
> of serving simple pages which is now several times faster with
> private indexes. We now also support multiple worker processes
> both on master and replica sites.
> http://doc.devpi.net/3.0/adminman/server.html#multiple-server-instances
>
> - For our enterprise clients we also introduced a new backend
> architecture which allows to store server state in sqlite or
> postgres (which is supported through a separately released plugin).
> The default remains to use the "sqlite" backend and store files
> on the filesystem. See
> http://doc.devpi.net/3.0/adminman/server.html#storage-backend-selection
>
> - we started a new "admin" manual for devpi-server which describes
> features relating to server configuration, replication and security
> aspects. It's a bit work-in-progress but should already be helpful.
> http://doc.devpi.net/3.0/adminman/
>
> - A few option names changed and we also released devpi-client-2.5
> where we took great care to keep it forward and backward compatible
> so it should run against devpi-server-2.1 and upwards all the way
> to 3.0.
>
> - The "3.0" major release number increase means that you will need to run
> through an export/import cycle to upgrade your devpi-2.X installation.
>
> For more details, see the changelog and the referenced documentation
> with the main entry point here:
>
> http://doc.devpi.net
>
> Many thanks to my partner Florian Schulze and to the several companies
> who funded parts of the work on 3.0. We are especially grateful for
> their support to not only cover their own direct issues but also support
> community driven demands. I'd also like to express my gratitude to
> Rackspace and Jesse Noller who provide VMs for our open source work and
> which help a lot with the testing of our releases.
>
> We are open towards entering more support contracts to make sure you get
> what you need out of devpi, tox and pytest which together provide a
> mature tool chain for professional python development. And speaking of
> showing support, if you or your company is interested to donate to or
> attend the largest python testing sprint in history with a particular
> focus to pytest or tox, please see
>
> https://www.indiegogo.com/projects/python-testing-sprint-mid-2016/
>
> have fun,
>
> holger krekel, http://merlinux.eu
>
>
>
> server-3.0.0 (2016-02-12)
> -------------------------
>
> - dropped support for python2.6
>
> - block most ascii symbols for user and index names except ``-. at _``.
> unicode characters are fine.
>
> - add ``--no-root-pypi`` option which prevents the creation of the
> ``root/pypi`` mirror instance on first startup.
>
> - added optional ``title`` and ``description`` options to users and indexes.
>
> - new indexes have no bases by default anymore. If you want to be able to
> install pypi packages, then you have to explicitly add ``root/pypi`` to
> the ``bases`` option of your index.
>
> - added optional ``custom_data`` option to users.
>
> - generalized mirroring to allow adding mirror indexes other than only PyPI
>
> - renamed ``pypi_whitelist`` to ``mirror_whitelist``
>
> - speed up simple-page serving for private indexes. A private index
> with 200 release files should now be some 5 times faster.
>
> - internally use normalized project names everywhere, simplifying
> code and slightly speeding up some operations.
>
> - change {name} in route_urls to {project} to disambiguate.
> This is potentially incompatible for plugins which have registered
> on existing route_urls.
>
> - use "project" variable naming consistently in APIs
>
> - drop calling of devpi_pypi_initial hook in favor of
> the new "devpi_mirror_initialnames(stage, projectnames)" hook
> which is called when a mirror is initialized.
>
> - introduce new "devpiserver_stage_created(stage)" hook which is
> called for each index which is created.
>
> - simplify and unify internal mirroring code some more
> with "normal" stage handling.
>
> - don't persist the list of mirrored project names anymore
> but rely on a per-process RAM cache and the fact
> that neither the UI nor pip/easy_install typically
> need the projectnames list, anyway.
>
> - introduce new "devpiserver_storage_backend" hook which allows plugins to
> provide custom storage backends. When there is more than one backend
> available, the "--storage" option becomes required for startup.
>
> - introduce new "--requests-only" option to start devpi-server in
> "worker" mode. It can be used both for master and replica sites. It
> starts devpi-server without event processing and replication threads and
> thus depends on respective "main" instances (those not using
> "--request-only") to perform event and hook processing. Each
> worker instance needs to share the filesystem with a main instance.
> Worker instances can not serve the "/+status" URL which must
> always be routed to the main instance.
>
> - add more info when importing data. Thanks Marc Abramowitz for the PR.
>
>
> web-3.0.0 (2016-02-12)
> ----------------------
>
> - dropped support for python2.6
>
> - index.pt, root.pt, style.css: added title and description to
> users and indexes.
>
> - root.pt, style.css: more compact styling of user/index overview using
> flexbox, resulting in three columns at most sizes
>
> - cleanup previously unpacked documentation to remove obsolete files.
>
> - store hash of doczip with the unpacked data to avoid unpacking if the data
> already exists.
>
> - project.pt, version.pt: renamed ``pypi_whitelist`` related things to
> ``mirror_whitelist``.
>
> - require and adapt to devpi-server-3.0.0 which always uses
> normalized project names internally and offers new hooks.
> devpi-web-3.0.0 is incompatible to devpi-server-2.X.
>
> - doc.pt, macros.pt, style.css, docview.js: use scrollbar of documentation
> iframe, so documentation that contains dynamically resizing elements works
> correctly. For that to work, the search from and navigation was moved into a
> wrapping div with class ``header``, so it can overlap the top of the iframe.
>
>
> 2.5.0 (2016-02-08)
> ------------------
>
> - the ``user`` command now behaves slightly more like ``index`` to show
> current user settings and modify them.
>
> - fix issue309: print server versions with ``devpi --version`` if available.
> This is only supported on Python 3.x because of shortcomings in older
> argparse versions for Python 2.x.
>
> - fix issue310: with --set-cfg the ``index`` setting in the ``[search]``
> section would be set multiple times.
>
> - fix getjson to work when no index but a server is selected
>
> - allow full urls for getjson
>
> - "devpi quickstart" is not documented anymore and will be removed
> in a later release.
>
> --
> about me: http://holgerkrekel.net/about-me/
> contracting: http://merlinux.eu
> _______________________________________________
> Distutils-SIG maillist - Distutils-SIG at python.org
> https://mail.python.org/mailman/listinfo/distutils-sig
--
Jamiel Almeida
More information about the Distutils-SIG
mailing list