# PDC Decommissioning 2023/24
## Project Description
The Product Definition Center (PDC) is a repository and API for storing and querying metadata related to packages, product releases, engineering processes, and artifacts that are required to support automation of release engineering workflows or productization processes.
PDC is a core-component of Fedora's dist-git mechanism as it stores for each branch in dist-git their "End-Of-Life" (EOL) date after which packagers are not allowed to push to these branches.
PDC is also used to store information about composes.
However, this application, developed internally, is no longer maintained. This codebase has been "orphaned" for a few years now and we need to remove it.
This effort comes as a result of [a proposal](https://pagure.io/cpe/initiatives-proposal/issue/5) posted on Fedora's Community Platform Engineering's initiatives space.
## Requirements
* Port API endpoints to Bodhi:
* `/rest_api/v1/releases/`
* This involves addressing a gap in Bodhi functionality that assumes a release is released prematurely
* Discover which database the fedfind endpoints should be migrated to.
* Port fedfind from the following API endpoints to the new home:
* `/rest_api/v1/product-versions`
* `/rest_api/v1/global-components`
* `/rest_api/v1/component-branches/`
* `/rest_api/v1/component-branch-slas/`
* Move compose metadata to nfs mount/storage
* Update Pagure and pagure dist-git to use data from Bodhi instead of PDC
* Testing, and lots of it:
* Writing tests may not be possible in this project, however we will update tests that exist in projects we are updating
* Changes will be deployed in a staging environment first, and then moved to a production one once there are no breakages to apps
* PDC will run in parallel with the new changes until F41, in case there are issues with the changes we make
* The main test will be that an F40 RC compose does not use PDC
* Documentation on the changes - what changed, how to test, troubleshooting, etc
* Fedfind replacement
* Banner on PDC mainpage when its decommissioned
* Updating Releng SOPs (updated)
* Submit a change request for target release, if necessary
* Self-contained changed
* Remove reliance on PDC for SCM requests toddler and fedpkg.
* This requirement relates to dropping modules, and part of the API call will need to be kept alive until F40, so implementing this change should wait until after F40
* Access/permissions for team members to stage, services?
* Tomas has all the power so this is already met
* Submit a change request for target release?
* Self-contained change, so not needed
## Dependencies (users, other teams & app’s affected)
* Fedpkg
* Fedfind
* Release engineering scripts
## Sprint Planning 2023-10-02
Upstream tickets:
[done] [lenka]
https://github.com/fedora-infra/the-new-hotness/issues/581
PR: https://github.com/fedora-infra/the-new-hotness/pull/583
[in review] [amedvede]
https://pagure.io/pagure/issue/5411
[status] []
[release pending]
[deployment pending]
for items that need updating in current installations
## Sprint Planning 2023-10-17
Upstream tickets:
[in progress] [lenka]
https://pagure.io/releng/issue/11723
[in review] [lenka]
https://pagure.io/releng/pull-request/11757
# TODO
replacement for fedfind datasource
[mcorr] lift info from project brief and add to this doc.
who, work trackers, PDC summary overview, benefits, objectives, goals, definition of done, requirements
risk register communications plan
add link https://pagure.io/cpe/initiatives-proposal/issue/5 (in better place)
backlog of tasks
link mgr into this project