# Pulp4: On Its Way?
## **Don't Panic!**
* PulpCON 2024, 2023-11-05 1430UTC
* Grant Gainey (ggainey@redhat.com)
* Slides can be found at https://hackmd.io/@ggainey/pulp4_proposal
---
## Agenda
* Introduction
* Why a new version?
* What are we thinking of changing?
* How are we thinking of accomplishing this?
* When would we start seeing this work in Pulp3?
* Things To Be Considered
* Key Takeaways
* Q&A
---
## Why?
* Lots added to, and learned from, Pulp3-in-use
* Pulp3's "REST API Promise" makes some improvements impossible
* we don't want to break your workflows!
* but we DO want to make Pulp better!
* pulp2to3 taught us "Big Bangs Are BAD"
* We want a change process that is
* Focused
* Consumable
* Repeatable
---
## What?
* The current set of "breaking changes" under consideration:
* Replace use of HREFs with PRNs
* Make domains required
* **all** URLS include domain
* Move RBAC policy-configuration to settings.py
* Remove direct-Artifact-access from the API
* Currently - That's it!
---
## How?
* Primary Consideration
* "Allow for measured upgrade path"
* Pulp3:
* new endpoints appear as tech-preview
* existing endpoints maintained for bugfixes
* Pulp4:
* new endpoints out of tech-preview
* old endpoints exist, unmaintained
* packaging versioned
----
### Pulp3 Details:
* acquires tech-preview `/pulp/api/v4/*` REST endpoints
* Changes, above, added to the `/v4/` endpoint
* APIs unaffected by these changes also become available under `/v4/`
* `/v3/` and `/v4/` APIs co-exist and are maintained
* `/v3/` becomes "bugfixes only" (?)
* Access to `/v4/` happens by "normal" Pulp3 updates
----
### Pulp4 Details
* Once `/v4/` is considered complete and stable:
* pyPI/theforeman-RPM packages versioned
* NOTE: Pulp team does not own RPM packaging :)
* `/v4/` declared not-tech-preview
* `/v3/` **still available**
* but unmaintained
* (except for emergencies??)
---
## When?
* Small list of important changes
* Non-intrusive upgrade path
* How about "now"?
* `/v4/` endpoints appear in Pulp3
* Q4 2024?
* Pulp4 releases
* Q2 2025?
* Remember: `/v3/` continues to exist even once Pulp4 released!
---
## And **Then** What?
* Pulp5 (!):
* `/v3/` API **removed**
* `/v4/` moves to **maintained**
* `/v5/` becomes **available**
* and so on...
* Shows a repeatable, consumable, upgrade path
---
## OK - What's the catch?
* Need to make all plugins domain-aware
* Pulp team stretched to maintain multiple API versions
* The longer Pulp3 is "current", the worse this will be
* Please - upgrade soon
* Until then - PRs gratefully accepted :)
---
## Things We Need To Think About
* How are plugins affected?
* What might a migration-helper look like?
* ...for people using client bindings?
* ...for people using `pulp-glue`?
* ...for people making direct `requests` calls?
---
## Review
* Some important changes require changing the REST API
* Big Bangs are Bad
* Minimizing impact on end-users a primary goal
* Establishing a repeatable process is critical
* **DON'T PANIC!!!**
---
## Q&A
---
## Thanks!
{"description":"View the slide with \"Slide Mode\".","title":"Pulp4: On Its Way","contributors":"[{\"id\":\"1a6032ad-e6b7-434d-aa35-96e6ebf50256\",\"add\":4061,\"del\":712}]"}