Re: [Distutils] devpi-server/web-3.0: generalized mirroring, speed, new backends

2016-02-12 Thread Wes Turner
On Feb 12, 2016 5:14 AM, "holger krekel"  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

Thanks!

>
> - 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 ``-.@_``.
>   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_

Re: [Distutils] devpi-server/web-3.0: generalized mirroring, speed, new backends

2016-02-12 Thread Jamiel Almeida
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  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 ``-.@_``.
>   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

Re: [Distutils] deprecating pip install --target

2016-02-12 Thread Daniel Holth
My setup-requires wrapper, adding pre-setup.py dependency installation to
setup.py, relies on this feature. It needs to install something in a
directory that is only added to PYTHONPATH during the installation and does
not interfere with the normal environment.

On Fri, Feb 12, 2016 at 9:55 AM Steve Dower  wrote:

> I was also planning to use it in an upcoming project that has to "do its
> own" package management. The aim was to install different versions of
> packages in different directories and use sys.path modifications to resolve
> them at runtime (kind of like what setuptools did in the older days).
>
> An alternative would be great, though I can probably fake things somehow
> for my purposes.
>
> Cheers,
> Steve
>
> Top-posted from my Windows Phone
> --
> From: Vinay Sajip 
> Sent: ‎2/‎11/‎2016 15:18
> To: Distutils-Sig@Python.Org
> Subject: Re: [Distutils] deprecating pip install --target
>
> Robert Collins  robertcollins.net> writes:
>
> >
> > This is fairly broken - it doesn't handle platlib vs purelib (see pip
> > PR 3450), doesn't handle data files, or any other layout. Donald says
> > pip uses it to maintain the _vendor subtrees only, which doesn't seem
> > like a particularly strong use case.
> >
> > Certainly the help description for it is misleading - since what we're
> > actually doing is copying only a subset of what the package installed
> > - so at a minimum we need to be much clearer about what it does.
> >
> > But, I think it would be better to deprecate it and remove it... so
> > I'm pinging here to see if anyone can explain a sensible use case for
> > it in the context of pip :)
>
> I use it in pretty much the same way as Paul mentioned - I wouldn't like
> it
> to go unless something equivalent is available. Updating the help /
> documentation for it to better reflect what it does would be
> uncontroversial
> for me, but I see no strong reason for deprecation and removal. As Paul
> suggests, it can get stricter about what it'll handle.
>
> Regards,
>
> Vinay Sajip
>
> ___
> Distutils-SIG maillist  -  Distutils-SIG@python.org
> https://mail.python.org/mailman/listinfo/distutils-sig
> ___
> Distutils-SIG maillist  -  Distutils-SIG@python.org
> https://mail.python.org/mailman/listinfo/distutils-sig
>
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] deprecating pip install --target

2016-02-12 Thread Steve Dower
I was also planning to use it in an upcoming project that has to "do its own" 
package management. The aim was to install different versions of packages in 
different directories and use sys.path modifications to resolve them at runtime 
(kind of like what setuptools did in the older days).

An alternative would be great, though I can probably fake things somehow for my 
purposes.

Cheers,
Steve

Top-posted from my Windows Phone

-Original Message-
From: "Vinay Sajip" 
Sent: ‎2/‎11/‎2016 15:18
To: "Distutils-Sig@Python.Org" 
Subject: Re: [Distutils] deprecating pip install --target

Robert Collins  robertcollins.net> writes:

> 
> This is fairly broken - it doesn't handle platlib vs purelib (see pip
> PR 3450), doesn't handle data files, or any other layout. Donald says
> pip uses it to maintain the _vendor subtrees only, which doesn't seem
> like a particularly strong use case.
> 
> Certainly the help description for it is misleading - since what we're
> actually doing is copying only a subset of what the package installed
> - so at a minimum we need to be much clearer about what it does.
> 
> But, I think it would be better to deprecate it and remove it... so
> I'm pinging here to see if anyone can explain a sensible use case for
> it in the context of pip :)

I use it in pretty much the same way as Paul mentioned - I wouldn't like it 
to go unless something equivalent is available. Updating the help / 
documentation for it to better reflect what it does would be uncontroversial 
for me, but I see no strong reason for deprecation and removal. As Paul 
suggests, it can get stricter about what it'll handle.

Regards,

Vinay Sajip

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Ensuring source availability for PyPI entries / PEP: Build system abstraction for pip/conda etc

2016-02-12 Thread Nick Coghlan
On 12 February 2016 at 01:19, Barry Warsaw  wrote:
> On Feb 11, 2016, at 01:58 PM, Nick Coghlan wrote:
>>Anyway, the core point is wanting to ensure we can automate not only
>>"direct to binary" installation with Python specific tools, but also
>>the "convert to alternate source archive format and build from there"
>>workflows needed by redistributor ecosystems like Linux distros,
>>conda, Canopy, PyPM, Nix, etc.
>
> Cool.
>
> Note that not even all Debian-based distros are equal here.  For example, in
> Debian, especially for architecture independent (i.e. pure-Python) packages,
> the source package to binary package step happens on the maintainer's local
> system, while in Ubuntu we upload the source package and let the centrally
> maintained build daemons produce the resulting binary packages.

Yeah, Fedora is closer to the Ubuntu set up, with a centralised git
backed build service (Koji), and tools for submitting build requests
to that:

* https://fedoraproject.org/wiki/Package_maintenance_guide
* https://fedoraproject.org/wiki/Package_update_HOWTO

In my ideal world, for previously reviewed packages, the path from
PyPI release, through the Anitya release monitoring service and the
Taskotron CI service, to updating Fedora Rawhide would be, if not
fully automated, at least not much more work than clicking an
"Approve" button after getting a green light from Taskotron and
reading the upstream release notes.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


[Distutils] devpi-server/web-3.0: generalized mirroring, speed, new backends

2016-02-12 Thread holger krekel

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 ``-.@_``.
  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"