-
Notifications
You must be signed in to change notification settings - Fork 440
Maintenance classes
This guide is focusing on the classes and helpers that are getting involved when working with maintenance requests.
For getting a better picture of the maintenance workflows that can be used in OBS, please refer to our Online Documentation.
A graphic with the full maintenance cycle as well as a brief explanation of the general maintenance workflow can be found in the Maintenance Support chapter of our reference guide.
Project with kind attribute of value 'maintenance'. Maintenance projects have additional Incidents and Maintained Projects tabs in the UI.
Meta file:
<project name="My:Maintenance:Project" kind="maintenance">
...
<maintenance>
<maintains project="Maintained:Project:A"/>
<maintains project="Maintained:Project:B"/>
</maintenance>
</project>
Maintained projects can be created via the Maintained Projects tab. Maintenance incidents can be created via the project page.
Connects two projects, the maintenance project and the maintained project.
For openSUSE these projects usually have the kind attribute set to 'maintenance_release'. But that's not mandatory.
Connects two projects, the maintenance project and the maintenance incident project. Maintenance incident projects have a kind attribute with value 'maintenance_incident'. Project names of maintenance incidents are in the form of $maintenance_project:$n where n is a counter starting from 0.
Packages inside the maintenance incident project have a suffix that depends on the release target, eg. my_package.openSUSE_13.2_Update.
Meta file of a maintenance incident project:
<project name="My:Maintenance:0" kind="maintenance_incident">
...
</project>
Request to start a new maintenance incident. Subclass of BsRequestAction.
Requires a release target project, either defined via the target_releaseproject
attribute or the target_project
.
Request to release a package. Subclass of BsRequestAction.
Requires at least one release target definition for the source project.
Release targets store the connection between two repositories; the repository where we build the binaries and the target_repository where we plan to release (copy) the binaries to.
Meta file of a project with release targets:
<project name="Project:A">
...
<repository name="my_repository">
<releasetarget project="Project:B" repository="repository_b" trigger="manual"/>
</repository>
</project>
There are a few maintenance related attributes. Below you can find a short explanation to each of them.
Can be used to overwrite the default scheme of naming maintenance release ids.
Marks project as maintained. Supposedly used by the 'osc mbranch' command. Not used by OBS itself.
Marks project as locked. The attribute value defines the project used for updates. Used to channel binaries during an update.
- Development Environment Overview
- Development Environment Tips & Tricks
- Spec-Tips
- Code Style
- Rubocop
- Testing with VCR
- Authentication
- Authorization
- Autocomplete
- BS Requests
- Events
- ProjectLog
- Notifications
- Feature Toggles
- Build Results
- Attrib classes
- Flags
- The BackendPackage Cache
- Maintenance classes
- Cloud uploader
- Delayed Jobs
- Staging Workflow
- StatusHistory
- OBS API
- Owner Search
- Search
- Links
- Distributions
- Repository
- Data Migrations
- next_rails
- Ruby Update
- Rails Profiling
- Installing a local LDAP-server
- Remote Pairing Setup Guide
- Factory Dashboard
- osc
- Setup an OBS Development Environment on macOS
- Run OpenQA smoketest locally
- Responsive Guidelines
- Importing database dumps
- Problem Statement & Solution
- Kickoff New Stuff
- New Swagger API doc
- Documentation and Communication
- GitHub Actions
- How to Introduce Software Design Patterns
- Query Objects
- Services
- View Components
- RFC: Core Components
- RFC: Decorator Pattern
- RFC: Backend models