Changelog

3.0.0rc8 (2019-11-13)

REST API

Features

  • New repository version is not created if no content was added or removed. #3308

  • Change relative_path from CharField to TextField #4544

  • Create Master/Detail models, serializers, viewsets for FileSystemExporter. #5086

  • Adds ability to view content served by pulpcore-content in a browser. #5378

  • Adds ability to view distributions served by pulpcore-content in a browser. #5397

  • Users specify Pulp settings file locaiton and type using PULP_SETTINGS environment variable. #5560

  • Added CONTENT_ORIGIN setting, which is now required. #5629

  • Add storage information to the status API. Currently limited to disk space information. #5631

Bugfixes

  • Raise meaningful error for invalid filters. #4780

  • Fix bug where ‘ordering’ parameter returned 400 error. #5621

  • Handling write_only fields on OpenAPISchema. #5622

  • Updated our package version requirements to be compatible with CentOS 7. #5696

Deprecations and Removals

  • Repository version number is no longer incremented if content has not changed. #3308

  • The /pulp/api/v3/repositories/ endpoint has been removed and Repositories have made a “typed” object. They now live at /pulp/api/v3/repositories/<plugin>/<type>, e.g. /repositories/file/file/.

    The convention for sync is that it will now be performed by POSTing to {repo_href}/sync/ remote={remote_href} instead of by POSTING to {remote_href}/sync/ repository={repo_href}. The latter convention will break due to the aforementioned change. #5625

  • Remove plugin managed repos #5627

  • Removed CONTENT_HOST variable and replace its functionality with CONTENT_ORIGIN. #5649

  • Renamed ssl_ca_certificate to ca_cert, ssl_client_certificate to client_cert, ssl_client_key to client_key, and ssl_validation to tls_validation. #5695

Plugin API

Features

  • Added Repository.finalize_new_version(new_version) which is called by RepositoryVersion.__exit__ to allow plugin-code to validate or modify the RepositoryVersion before pulpcore marks it as complete and saves it.

    Added pulpcore.plugin.repo_version_utils.remove_duplicates(new_version) for plugin writers to use. It relies on the definition of repository uniqueness from the repo_key_fields tuple plugins can define on their Content subclasses. #3541

  • Create Master/Detail models, serializers, viewsets for FileSystemExporter. #5086

  • Added the CONTENT_ORIGIN setting which can be used to reliably know the scheme+host+port to the pulp content app. #5629

Improved Documentation

  • Be more explicit about namespacing ref_name in plugin serializers. #5574

  • Add Plugin API section to the changelog. #5628

Deprecations and Removals

  • Renamed the Content.repo_key to be Content.repo_key_fields. Also the calling of remove_duplicates no longer happens in RepositoryVersion.add_content and instead is intended for plugins to call from Repository.finalize_new_version(new_version). Also the pulpcore.plugin.RemoveDuplicates Stage was removed. #3541

  • models.RepositoryVersion.create() is no longer available, it has been replaced by {repository instance}.new_version().

    The convention for sync is that it will now be performed by POSTing to {repo_href}/sync/ remote={remote_href} instead of by POSTING to {remote_href}/sync/ repository={repo_href}. The latter will break due to becoming a typed resource, so plugins will need to adjust their code for the former convention.

    Make repositories “typed”. Plugin writers need to subclass the Repository model, viewset, and serializer, as well as the RepositoryVersion viewset (just the viewset). They should also remove the /sync/ endpoint from their remote viewset and place it on the repository viewset. #5625

  • Remove plugin managed repos #5627


3.0.0rc7 (2019-10-15)

Features

  • Setting code on ProgressReport for identifying the type of progress report. #5184

  • Add the possibility to pass context to the general_create task. #5403

  • Filter plugin managed repositories. #5421

  • Using ProgressReport for known and unknown items count. #5444

  • Expose exclude_fields the api schema and bindings to allow users to filter out fields. #5519

Bugfixes

  • PublishedMetadata files are now stored in artifact storage. #5304

  • Fix 500 on Schemas. #5311

  • /etc/pulp/settings.py override default settings provided by plugins. #5425

  • Fixing error where relative_path was defined on model but not serializer #5445

  • Fixed issue where removing all units on a repo with no version threw an error. #5478

  • content-app sets Content-Type and Content-Encoding headers for all responses. #5507

  • Fix erroneous namespacing for Detail viewsets that don’t inherit from Master viewsets. #5533

Improved Documentation

  • Update installation docs since mariadb/mysql is no longer supported. #5129

Deprecations and Removals

  • By default, html in field descriptions filtered out in REST API docs unless ‘include_html’ is set. #5009

  • Remove support for mysql/mariadb making postgresql the only supported database. #5129

  • Creating a progress report now requires setting code field. #5184

  • Rename the fields on the ContentSerializers to not start with underscore. #5428

  • Removing ProgressSpinner and ProgressBar models. #5444

  • Change _type to pulp_type #5454

  • Change _id, _created, _last_updated, _href to pulp_id, pulp_created, pulp_last_updated, pulp_href #5457

  • Remove custom JSONField implementation from public API #5465

  • Delete NamePagination class and use sorting on the queryset instead. #5489

  • Removing filter for plugin_managed repositories. #5516

  • Renamed fields! to exclude_fields since exclamation mark is a special char in many languages. #5519

  • Removed the logic that automatically defines the namespace for Detail model viewsets when there is no Master viewset. #5533

  • Removing non_fatal_errors from Task. #5537

  • Remove “_” from _versions_href, _latest_version_href #5548

  • Removing base serializer field: _type . #5550


3.0.0rc6 (2019-10-01)

Features

  • Setting code on ProgressReport for identifying the type of progress report. #5184

  • Add the possibility to pass context to the general_create task. #5403

  • Filter plugin managed repositories. #5421

  • Using ProgressReport for known and unknown items count. #5444

Bugfixes

  • PublishedMetadata files are now stored in artifact storage. #5304

  • Fixing error where relative_path was defined on model but not serializer #5445

  • Fixed issue where removing all units on a repo with no version threw an error. #5478

  • content-app sets Content-Type and Content-Encoding headers for all responses. #5507

Improved Documentation

  • Update installation docs since mariadb/mysql is no longer supported. #5129

Deprecations and Removals

  • By default, html in field descriptions filtered out in REST API docs unless ‘include_html’ is set. #5009

  • Remove support for mysql/mariadb making postgresql the only supported database. #5129

  • Creating a progress report now requires setting code field. #5184

  • Rename the fields on the ContentSerializers to not start with underscore. #5428

  • Removing ProgressSpinner and ProgressBar models. #5444

  • Remove custom JSONField implementation from public API #5465

  • Delete NamePagination class and use sorting on the queryset instead. #5489


3.0.0rc5 (2019-09-10)

Features

  • Allow users to filter tasks by created resources #4931

  • Enable users to filter tasks by reserved resources #5120

  • Add CharInFilter that allows filtering CharField by mutiple values #5182

  • Pinning pulpcore dependencies to y releases #5196

Bugfixes

  • Adding fields parameter to OpenAPI schema. #4992

  • Improved the OpenAPI schema for RepositoryVersion.content_summary. #5210

  • Switch default DRF pagination to use LimitOffset style instead of Page ID. #5324

Improved Documentation

  • Update REST API docs for uploads_commit. #5190

  • Removed beta changelog entries to shorten the changelog. #5208

Deprecations and Removals

  • Removing code from task errors. #5282

  • All previous bindings expect a different pagination style and are not compatible with the pagination changes made. Newer bindings are available and should be used. #5324


3.0.0rc4 (2019-07-25)

Features

  • Allow users to pass sha256 with each chunk to have Pulp verify the chunk. #4982

  • Users can view chunks info for chunked uploads in the API #5150

Bugfixes

  • Setting missing fields on orphan cleanup tasks. #4662

  • Allow user to filter created resources without providing _href in a query #4722

  • GET of a Distribution without configuring the CONTENT_HOST setting no longer causes a 500 error. #4945

  • Increased artifact size field to prevent 500 errors for artifacts > 2GB in size. #4998

  • Allow artifacts to be created using json #5016

  • Have the commit endpoint dispatch a task to create artifacts from chunked uploads #5087

  • Allow user to delete uploaded content from a local file system when the artifact creation fails #5092

Improved Documentation

  • Fix broken urls in the /installation/configuration.html#settings area. #5160

Deprecations and Removals

  • Switched the default of the CONTENT_HOST setting from None to ''. #4945

  • Removed upload parameter from artifact create endpoint and converted upload commit to return 202. #5087


3.0.0rc3 (2019-06-28)

Features

  • Pulp now works with webserver configured authentication that use the REMOTE_USER method. Also a new setting REMOTE_USER_ENVIRON_NAME is introduced allowing webserver authentication to work in reverse proxy deployments. #3808

  • Changing chunked uploads to use sha256 instead of md5 #4486

  • Adding support for parallel chunked uploads #4488

  • Each Content App now heartbeats periodically, and Content Apps with recent heartbeats are shown in the Status API /pulp/api/v3/status/ as a list called online_content_apps. A new setting is introduced named CONTENT_APP_TTL which specifies the maximum time (in seconds) a Content App can not heartbeat and be considered online. #4881

  • The task API now accepts PATCH requests that update the state of the task to ‘canceled’. This replaces the previous task cancelation API. #4883

  • Added support for removing all content units when creating a repo version by specifying ‘*’. #4901

  • Added endpoint to delete uploads. Also added complete filter. #4988

Bugfixes

  • Core’s serializer should only validate when policy=’immediate’ (the default). #4990

Improved Documentation

  • Adds an authentication section to the installation guide. Also add two documented settings: AUTHENTICATION_BACKENDS and REMOTE_USER_ENVIRON_NAME. #3808

  • Switch to using towncrier for better release notes. #4875

  • Adds documentation about the CONTENT_APP_TTL setting to the configuration page. #4881

  • The term ‘lazy’ and ‘Lazy’ is replaced with ‘on-demand’ and ‘On-Demand’ respectively. #4990

Deprecations and Removals

  • The migrations are squashed, requiring users of RC3 to deploy onto a fresh database so migrations can be applied again. This was due to alterations made to migration 0001 during the upload work. #4488

  • All the string fields in the REST API no longer accept an empty string as a value. These fields now accept null instead. #4676

  • The Remote.validate field is removed from the database and Remote serializer. #4714

  • The task cancelation REST API has been removed. #4883


3.0.0rc2

Comprehensive list of changes and bugfixes for rc 2.

Breaking Changes

Default port changes happened in the Ansible Installer for Pulp and pulpcore was updated to match with this PR. Existing installs are unaffected. This was done to avoid conflicts that would prevent Pulp from starting by default in many environments; the previous ports (8000 & 8080) are commonly used by management webGUIs, development webservers, etc.

Publications are now Master/Detail which causes any Publication URL endpoint to change. To give an example from pulp_file see the URL changes made here as an example. See plugin docs compatible with 3.0.0rc2 for more details.

Distributions are now Master/Detail which causes the Distribution URL endpoint to change. To give an example from pulp_file see the URL changes made in this PR as an example. See plugin docs compatible with 3.0.0rc2 for more details.

The semantics of Remote attributes ssl_ca_certificate, ssl_client_certificate, and ssl_client_key changed even though the field names didn’t. Now these assets are saved directly in the database instead of on the filesystem, and they are prevented from being read back out to users after being set for security reasons. This was done with these changes.