Package: pypicloud
PyPI CloudWARNING: Pypicloud has transitioned to maintenance mode. For details, see#325Build:Documentation:PyPI:This package is a Pyramid web app that provides a PyPI server where the packages
are stored on Amazon’s Simple Storage Service (S3), Google’s Cloud Storage
(GCS) or Azure’s Blob Storage.Quick Startpip install pypicloud[server]
pypicloud-make-config -t server.ini
pserve server.iniGo tohttp://localhost:6543/to view the web interface.For more detailed step-by-step instructions, check out thegetting startedsection of the docs.DockerThere is a docker image if you’re into that sort of thing:https://github.com/stevearc/pypicloud-dockerChangelogIf you are upgrading an existing installation, read the instructions1.3.12 - 2022/12/29Fix errors with the GCS backendFix error when ‘us-east-1’ storage regionReduce unnecessary HTTP redirects1.3.11 - 2022/9/20Sort package names from redis backendDeprecatepypi.allow_deleteandpypi.allow_overwriteforpypi.allow_delete_groupsandpypi.allow_overwrite_groups1.3.10 - 2022/9/3Add uploader to package metadataNormalize whitespace in S3 metadata1.3.9 - 2022/8/22Stream files to storage backend for lower memory usage1.3.8 - 2022/8/11Add Redis Cluster support1.3.7 - 2022/7/13Fix login issues in the web interface1.3.6 - 2022/7/7Allow/to serve packages the same as/simple1.3.5 - 2022/6/20Handle all errors when fetching from upstream1.3.4 - 2022/4/30Fix files storage backend on Windows1.3.3 - 2021/11/12Adddb.poolclassto configure SQLAlchemy connection pooling1.3.2 - 2021/10/16Fix exception in JSON endpoint1.3.1 - 2021/10/12Remove trailing slash from JSON scraper1.3.0 - 2021/10/9Allow config options to be overridden by environment variables1.2.4 - 2021/6/10Fix missing permissions for non-admin users1.2.3 - 2021/6/9Add Pyramid>=2.0 to dependencies1.2.2 - 2021/6/8Upgrade to Pyramid 2.0Remove the SQL index from package summary field (will take effect when you rebuild your cache, but a rebuild is not required)1.2.1 - 2021/5/18Fix a XSS vulnerabilityRemove storage limit of package summary  (will take effect when you rebuild your cache, but a rebuild is not required unless you hit this issue)1.2.0 - 2021/3/1Add more package info to JSON APIStop normalizing metadata for AzureProvide Azure credentials via environment variablePin the Pyramid version to avoid deprecationDropping support for Python 3.5 and 3.6 due to difficulty with cryptography library1.1.7 - 2020/11/16Fix a datetime crash when reloading the cacheFix a logic error withdb.graceful_reload1.1.6 - 2020/11/7Fix content-type when streaming packagesJSON scraper doesn’t throw exceptions if it receives a HTTP errorAdd config option for GCS IAM signing email1.1.5 - 2020/9/19Addpypi.allow_deleteto disable deleting packages1.1.4 - 2020/9/13Fix concurrency bugs in GCS backend1.1.3 - 2020/8/17Fix metadata storage issue with some S3-compatible backendsCommand line arg to generate password hash from stdin1.1.2 - 2020/7/23Fix error when package in local storage but not in fallback repository1.1.1 - 2020/6/14Fix an exception whenpypi.use_json_scraper = falseAllow passing inauth.signing_keyas an environment variableAdd some documentation about the DynamoDB cache1.1.0 - 2020/5/31Drop support for Python 2Add support for package hashes1.0.16 - 2020/5/20Add support for Microsoft Azure Blob storage1.0.15 - 2020/5/8Addrequestsas a dependency1.0.14 - 2020/5/7Fix a bug with reloading Redis cacheMore graceful handling of non-package files in GCSSupport forrequires_pythonmetadataAddpypi.use_json_scrapersetting for configuringChange default value ofstorage.redirect_urlstoTrueAdd auth.scheme setting to customize password hashing algorithmSIGNIFICANTLY LOWERED default password hashing rounds. Read about why in the docs1.0.13 - 2020/1/1Add option to use IAM signer on GCS1.0.12 - 2019/12/11Change default fallback url fromhttp://pypi.python.orgtohttps://pypi.orgAddpypi.disallow_fallbackoption to disable fallback for specific packagesFix automatic bucket creation for all S3 regions1.0.11 - 2019/4/5Add ability to stream files through pypicloudSupport spaces inauth.ldap.admin_valuevalues1.0.10 - 2018/11/26Strip non-ASCII characters from summary for S3 backendFix an issue with production log formatAddauth.ldap.fallbackto use config file configure groups and permissions with LDAP access backend1.0.9 - 2018/9/6Fix: Exception during LDAP reconnectFix: LDAP on Python 3 could not detect adminsFeature: Newpypi.auth.admin_group_dnsetting for LDAP (for when memberOf is unavailable)1.0.8 - 2018/8/27Feature: Google Cloud Storage support1.0.7 - 2018/8/14Feature:/healthendpoint checks health of connection to DB backendsFeature: Options for LDAP access backend to ignore referrals and ignore multiple user resultsFix: Exception whenstorage.cloud_front_key_filewas setFix: Bad redirect to the fallback url when searching the/jsonendpointDeprecation:pypi.fallback_urlhas been deprecated in favor ofpypi.fallback_base_url1.0.6 - 2018/6/11Fix: Supportauth.profile_namepassing in a boto profile nameFix: Uploading package with empty description using twine crashes DynamoDB backendFix: Config file generation for use with docker container (using %(here)s was not working)Use cryptography package instead of horrifyingly old and deprecated pycryptoAddstorage.public_urlto S3 backend1.0.5 - 2018/4/24Fix: Download ACL button throws error in Python 3New access backend: AWS Secrets ManagerAddstorage.storage_classoption for S3 storageAdddb.tablenamesoption for DynamoDB cacheReduce startup race conditions on empty caches when running multiple servers1.0.4 - 2018/4/1Fix: Fix SQL connection issues with uWSGIMiscellaneous python 3 fixes1.0.3 - 2018/3/26Fix: uWSGI hangs in python 3Fix: Crash when usingppc-migrateto migrate from S3 to S3Add warnings and documentation for edge case where S3 bucket has a dot in itAdmin can create signup tokens1.0.2 - 2018/1/26Fix: Hang when rebuilding Postgres cacheFix: Some user deletes fail with Foreign Key errorsFix: Incorrect parsing of version for wheelsConfiguration option for number of rounds to use in password hashMake request errors visible in the browserAdd a Create User button to admin pageSQL access backend defaults to disallowing anonymous users to register1.0.1 - 2017/12/3Support for LDAP anonymous bindFix a crash in Python 31.0.0 - 2017/10/29Python3 support thanks to boto3Removing stable/unstable version from package summaryChanging and removing many settingsPerformance tweaksgraceful_reloadoption for caches, to refresh from the storage backend while remaining operationalComplete rewrite of LDAP access backendUtilities for hooking into S3 create & delete notifications to keep multiple caches in syncNOTEBecause of the boto3 rewrite, many settings have changed. You will need
to review the settings for your storage, cache, and access backends to make sure
they are correct, as well as rebuilding your cache as per usual.0.5.6 - 2017/10/29Addstorage.object_aclfor S30.5.5 - 2017/9/9Allow search endpoint to have a trailing slash0.5.4 - 2017/8/10Allow overriding the displayed download URL in the web interfaceBump up the DB size of the version field (SQL-only)0.5.3 - 2017/4/30Bug fix: S3 uploads failing from web interface and when fallback=cache0.5.2 - 2017/4/22Bug fix: The/pypipath was broken for viewing & uploading packagesUpdate docs to recommend/simpleas the install/upload URLBeaker session setsinvalidate_corrupt = trueby default0.5.1 - 2017/4/17Bug fix: Deleting packages while using the Dynamo cache would sometimes remove the wrong package from Dynamo0.5.0 - 2017/3/29Upgrade breaks: SQL caching database. You will need to rebuild it.Feature: Pip search works now0.4.6 - 2017/4/17Bug fix: Deleting packages while using the Dynamo cache would sometimes remove the wrong package from Dynamo0.4.5 - 2017/3/25Bug fix: Access backend now works with MySQL familyBug fix: Return http 409 for duplicate upload to work better with twineBug fix: Show upload button in interface ifdefault_write = everyoneConfirm prompt before deleting a user or group in the admin interfaceDo some basica sanity checking of username/password inputs0.4.4 - 2016/10/5Feature: Add optional AWS S3 Server Side Encryption option0.4.3 - 2016/8/2Bug fix: Rebuilding cache always ends up with correct name/versionFeature: /health endpoint (nothing fancy, just returns 200)0.4.2 - 2016/6/16Bug fix: Show platform-specific versions of wheels0.4.1 - 2016/6/8Bug fix: LDAP auth disallows empty passwords for anonymous bindingConfig generator setspypi.default_read = authenticatedfor prod mode0.4.0 - 2016/5/16Backwards incompatibility: This version was released to handle a change in
the way pip 8.1.2 handles package names. If you are upgrading from a previous
version, there are detailed instructions for how to upgrade safely.0.3.13 - 2016/6/8Bug fix: LDAP auth disallows empty passwords for anonymous binding0.3.12 - 2016/5/5Feature: Settingauth.ldap.service_accountfor LDAP auth0.3.11 - 2016/4/28Bug fix: Missing newline in config templateFeature:pypi.always_show_upstreamfor tweaking fallback behavior0.3.10 - 2016/3/21Feature: S3 backend settingstorage.redirect_urls0.3.9 - 2016/3/13Bug fix: SQL cache works with MySQLFeature: S3 backend can use S3-compatible APIs0.3.8 - 2016/3/10Feature: Cloudfront storageBug fix: Rebuilding cache from storage won’t crash on odd file names0.3.7 - 2016/1/12Feature:/packagesendpoint to list all files for all packages0.3.6 - 2015/12/3Bug fix: Settings parsed incorrectly for LDAP auth0.3.5 - 2015/11/15Bug fix: Mirror mode: only one package per version is displayed0.3.4 - 2015/8/30Add docker-specific option for config creationMove docker config files to a separate repository0.3.3 - 2015/7/17Feature: LDAP SupportBug fix: Incorrect package name/version when uploading from web0.3.2 - 2015/7/7Bug fix: Restore direct links to S3 to fix easy_install0.3.1 - 2015/6/18Bug fix:pypi.allow_overwritecauses crash in sql cache0.3.0 - 2015/6/16Fully defines the behavior of every possible type of pip request. See Fallbacks for more detail.Don’t bother caching generated S3 urls.0.2.13 - 2015/5/27Bug fix: Crash when mirror mode serves private packages0.2.12 - 2015/5/14Bug fix: Mirror mode works properly with S3 storage backend0.2.11 - 2015/5/11Bug fix: Cache mode will correctly download packages with legacy versioningBug fix: Fix the fetch_requirements endpointBug fix: Incorrect expire time comparison with IAM rolesFeature: ‘mirror’ mode. Caches packages, but lists all available upstream versions.0.2.10 - 2015/2/27Bug fix: S3 download links expire incorrectly with IAM rolesBug fix:fallback = cachecrashes with distlib 0.2.00.2.9 - 2014/12/14Bug fix: Connection problems with new S3 regionsUsability: Warn users trying to log in over http whensession.secure = true0.2.8 - 2014/11/11Bug fix: Crash when migrating packages from file storage to S3 storage0.2.7 - 2014/10/2Bug fix: First download of package using S3 backend andpypi.fallback = cachereturns 4040.2.6 - 2014/8/3Bug fix: Rebuilding SQL cache sometimes crashes0.2.5 - 2014/6/9Bug fix: Rebuilding SQL cache sometimes deadlocks0.2.4 - 2014/4/29Bug fix:ppc-migratebetween two S3 backends0.2.3 - 2014/3/13Bug fix: Caching works with S3 backend0.2.2 - 2014/3/13Bug fix: Security bug in user authBug fix: Package caching from pypi was slightly brokenBug fix:ppc-migrateworks when migrating to the same storage type0.2.1 - 2014/3/12Bug fix: Pre-existing S3 download links were broken by 0.2.00.2.0 - 2014/3/12Upgrade breaks: caching databaseBug fix: Timestamp display on web interfaceBug fix: User registration stores password as plaintextFeature:ppc-migrate, command to move packages between storage backendsFeature: Adding support for more than one package with the same version. Now you can upload wheels!Feature: Allow transparently downloading and caching packages from pypiFeature: Export/Import access-control data viappc-exportandppc-importFeature: Can set default read/write permissions for packagesFeature: New cache backend: DynamoDBHosting all js & css ourselves (no more CDN links)Obligatory miscellaneous refactoring0.1.0 - 2014/1/20First public release