Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
868c370
DMB: package set: add raw content from staging area
cpaelzer Jan 5, 2026
48e122d
DMB: package set: rewrite to be readable and modern
cpaelzer Jan 5, 2026
497e4f5
DMB: package set: revamp intro
cpaelzer Jan 5, 2026
e2c66f9
DMB: package set: two types logical and seed based
cpaelzer Jan 5, 2026
e9907dd
DMB: package set: describe creation only once
cpaelzer Jan 5, 2026
32677c3
DMB: package set: update list of TODOs
cpaelzer Jan 5, 2026
017eb10
DMB: package set: team creation
cpaelzer Jan 5, 2026
acd361d
DMB: package set: move creation to the right section
cpaelzer Jan 5, 2026
04dc97b
DMB: package set: example to get lists to compare
cpaelzer Jan 5, 2026
78acebf
DMB: package set: Apply suggestions from code review
cpaelzer Jan 6, 2026
754c6d3
DMB: package set: improve readbility
cpaelzer Jan 6, 2026
603f7a8
DMB: package set: fix quote
cpaelzer Jan 6, 2026
18e1c48
DMB: package set: move the more common modification up
cpaelzer Jan 6, 2026
30df24f
DMB: package set: improve readbility of the two set types
cpaelzer Jan 6, 2026
eebe94d
DMB: package set: fix spell check reports
cpaelzer Jan 6, 2026
bedd3c1
DMB: package set: package set to consistently be two words
cpaelzer Jan 6, 2026
da55f20
DMB: package set: improve incomplete hint how to apply
cpaelzer Jan 7, 2026
f2832c1
DMB: package set: add flowchart to show the relation
cpaelzer Jan 7, 2026
79b0085
DMB: package set: Fix intro phrasing
cpaelzer Jan 19, 2026
8b33c98
DMB: package set: package set to consistently be one words
cpaelzer Jan 19, 2026
21fe715
DMB: package set: add examples what might change
cpaelzer Jan 19, 2026
f0f5ef2
DMB: package set: add all types of packagesets
cpaelzer Jan 19, 2026
c9a0b9d
DMB: package set: considerations on definition updates
cpaelzer Jan 19, 2026
ecac56d
DMB: package set: define seed based sets as they have been
cpaelzer Feb 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/.custom_wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,12 @@ gvfs
homeserver
homeservers
html
impactful
Indri
installability
interoperate
IPs
ISO
ISOs
ITPs
Jackalope
Expand Down
2 changes: 1 addition & 1 deletion docs/contributors/advanced/plus-one-maintenance.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ in the effort.
The program consists of Canonical engineers from various teams taking up shifts
to work on the archive. While their regular duties might entail looking after a
specific set of packages, during their shift they should instead be looking
after the archive as a whole. This *can* include their regular package set,
after the archive as a whole. This *can* include their regular packageset,
e.g. if it involved in a massive transition.

## Contact
Expand Down
2 changes: 1 addition & 1 deletion docs/how-ubuntu-is-made/processes/sponsorship.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ For sponsors:

## Who are sponsors

Sponsors are contributors with proven packaging skills who have gained upload rights for a particular package set or area of the Archive. There are three categories of upload rights:
Sponsors are contributors with proven packaging skills who have gained upload rights for a particular packageset or area of the Archive. There are three categories of upload rights:

* {ref}`certain sets of packages <dmb-joining-packageset>`
* {ref}`all universe packages <dmb-joining-MOTU>`
Expand Down
212 changes: 9 additions & 203 deletions docs/staging/dmb/dmb-knowledge-base.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,62 +31,11 @@ This page is authoritative. If you think you've found a mistake, please
the successful applicant. This is to make sure that the announcement does not
get forgotten.

2. Adjust ACLs:
2. Adjust ACLs

* Modification of the membership list for an existing packageset team can
be done directly by the DMB. A DMB member should go to the packageset's
uploader team page, and add the applicant to the team.
1. (The part of this section moved to {ref}`dmb-manage-packagesets`)

* Modification of the package list for an existing packageset can also be done
directly by the DMB. This requires using the [`edit-acl` tool](https://git.launchpad.net/ubuntu-archive-tools/tree/edit-acl)

* Example: (replace `add` with `delete` to remove a package instead of adding):

```none
edit-acl -S $RELEASE -P $PACKAGESET -s $PACKAGE add
```

* Usually the command should be repeated for all supported releases:

```none
for RELEASE in $(distro-info --supported); do edit-acl ...; done
```

* If the action requires creation of a new packageset or PPU, or (rarely)
changes to the uploader for a packageset or PPU, it must be done by the TB,
so the DMB member must:

1. For a new packageset, create a new uploader team (see {ref}`dmb-packagesets` section)

* For a new PPU, the uploader is the applicant

2. Open a bug against the [ubuntu-community project](https://launchpad.net/ubuntu-community), and the bug description should include the exact [`edit-acl`](https://git.launchpad.net/ubuntu-archive-tools/tree/edit-acl) command to run.

* For PPU creation, [file a bug with this subject](https://bugs.launchpad.net/ubuntu-community/+filebug?field.title=[TB/DMB]%20PPU%20for%20)
and include the PPU member name

* For packageset creation (or uploader team change),
[file a bug with this subject](https://bugs.launchpad.net/ubuntu-community/+filebug?field.title=[TB/DMB]%20Packageset%20%20for%20)
and include the packageset name

* In the bug, if creating a new packageset, request the TB create the
packageset, setting the DMB as owner:

```none
edit-acl -S $RELEASE -p developer-membership-board -P $PACKAGESET -t admin create
```

* Also request the TB set or change the uploader:

```none
edit-acl -S $RELEASE -p $UPLOADER -P $PACKAGESET -t upload modify
```

* Usually the commands should be repeated for all supported releases:

```none
for RELEASE in $(distro-info --supported); do edit-acl ...; done
```
2. (The part of this section moved to {ref}`dmb-manage-packagesets`)

3. Email `technical-board@lists.ubuntu.com` to inform them of the opened
bug (include a link to the bug).
Expand All @@ -97,16 +46,7 @@ This page is authoritative. If you think you've found a mistake, please
5. After the new packageset is created by the TB, a DMB member will need to
add the appropriate packages.

3. If not already a member, add the applicant to either
[`~ubuntu-dev`](https://launchpad.net/~ubuntu-dev/+members) or
[`~ubuntu-uploaders`](https://launchpad.net/~ubuntu-uploaders/+members).

See {ref}`dmb-teams-to-add-uploaders-to`.

* If applying for {ref}`dmb-joining-contributing` membership, the
applicant should only be added to the
[`~ubuntu-developer-members`](https://launchpad.net/~ubuntu-developer-members)
team and nothing more.
3. (This part of this section moved to {ref}`dmb-manage-packagesets`)

4. Announce successful applicants (this can be done in a single email or multiple
emails as appropriate), as the Community Council
Expand Down Expand Up @@ -136,146 +76,12 @@ Assign a meeting action to close the application. Closing an application involve
* Remove the applicant's agenda item if it is still present.


(dmb-packagesets)=
## Packagesets

Packagesets exist per-release and are defined in the Launchpad database
accessible by API (using the `edit-acl` command). For easy viewing, see
[~ubuntu-archive/packagesets](https://ubuntu-archive-team.ubuntu.com/packagesets/).

Consider creating a packageset once we have:

* Two or more PPU uploaders.

* Two or more related packages.

* The grouping of those packages needs to make logical sense.

The application process is more-or-less the same as for developer upload rights.
The differences are:

* Each packageset needs a *description*. This is so that developers can mail
`devel-permissions` after the set is created in order to have packages added.
One DMB member then needs to judge the description against the requested change
and may make it if they decide it is warranted.

* We create packagesets with just one uploader, which is a team that we then add
developers to. The team should be configured like so:

* Owned by the DMB (but without having the DMB as a member).

* Self renewal.

* 720 day expiry period.

```{note}
For 'Ubuntu Flavor' packageset teams, [the TB requested](http://ubottu.com/meetingology/logs/ubuntu-meeting-2/2019/ubuntu-meeting-2.2019-06-04-19.04.moin.txt) a 180 day expiry period.
```

* `~ubuntu-core-dev` as a member.

* Member of `~ubuntu-uploaders` (in rare cases the DMB may require membership
of packageset uploaders: in this case make the team a member of `~ubuntu-dev`
instead.)

If necessary, we can modify the description later on following a full vote,
either by email or in a meeting.

Quick set of steps for creating packageset team:

1. Start at [new team registration page](https://launchpad.net/people/+newteam).

2. Make sure {guilabel}`Membership Policy` is *Restricted Team*.

3. Set both the {guilabel}`Subscription Period` and {guilabel}`Self Renewal Period`
to 720 (or 180 for 'flavor' teams).

4. Change renewal option to *invite them to renew their own membership*.

5. Create the team.

6. On the new team page:

1. Click {guilabel}`Change Details` and then {guilabel}`Change Owner`.

2. Change the team owner to `developer-membership-board`.

7. On the new team member page:

1. Add `ubuntu-core-dev`.

2. Edit `ubuntu-core-dev` membership expiration to *Subscription Expires: Never*.

3. Remove (deactivate) yourself.

4. Remove (deactivate) `developer-membership-board`.

8. Go to [`~ubuntu-uploaders` member page](https://launchpad.net/~ubuntu-uploaders/+members)
(or, if appropriate, [`~ubuntu-dev` member page](https://launchpad.net/~ubuntu-dev/+members))
and add the new team as a member.


### Special packagesets


#### Automatically managed packagesets

Flavour packagesets are automatically managed from seeds. There is a script to
control this, which contains a list of overrides too. See
[the Launchpad script](https://code.launchpad.net/~developer-membership-board/+git/packageset).
We should look at automating runs of this script, but currently we need to
remember to manually run it from time to time.

The script encodes the logic about which packagesets packages should go to,
based on how sources are shared between flavours. Broadly, `kubuntu`, `ubuntu`
and`ubuntu-server` are considered top-tier flavours and if they contain a
package that is shared with others then they win and it goes into their set.
`core` and `desktop-core` win out over all flavour sets too. See the `seed-sets`
mapping at the top of the `packageset-push` script in the above branch.


#### Personal packagesets and glob expansions

Where an individual has a special reason for upload rights to a large number of
packages that the DMB expects to need to manage frequently, we can create a
"personal packageset" for this person, named "`personal-<lpid>`". There was once
one: `personal-gunnarhj`, that existed until Gunnar was granted Core Dev and was
therefore no longer needed. This was defined as the set that the DMB has agreed
that Gunnar may upload, which included individual packages to which he has PPU,
as well as glob expansions. The globs were defined in the packageset description.
This way, any DMB member could update the glob expansions for Gunnar (by relying
on their existing definition) without needing to refer to the full DMB for
agreement or the TB to make the change.

This was managed manually, but it may be advisable to script updates if needed
in the future.

See the thread starting at [May 2016](https://lists.ubuntu.com/archives/devel-permissions/2016-May/000924.html),
but extending over June, July, August and September for details.


#### Canonical OEM metapackage packageset

The `canonical-oem-metapackages` packageset is glob based. The exact glob is
defined in the packageset description and is expanded according to the list of
source packages in the Ubuntu Archive for a given series. Any DMB member may
update the packageset according to the glob expansion at any time without
needing further consultation. However, this is now done automatically with
[this script](https://git.launchpad.net/~developer-membership-board/+git/oem-meta-packageset-sync/tree/oem-meta-packageset-sync).

The script is "owned" by the DMB, who is the gatekeeper for changes to the
script, but run and managed on behalf of the DMB by the
[Archive Admin team](https://launchpad.net/~ubuntu-archive/+members). To make
this work, the packageset is owned by the Archive Admin team.

The expected nature of the packageset, to which the DMB grants upload access,
relies on the MIR team's requirements for these packages, defined at
{ref}`mir-exceptions-oem`.

* [Background thread](https://lists.ubuntu.com/archives/devel-permissions/2020-July/001542.html)
* Decided at the [DMB meeting of 2020-08-11](https://irclogs.ubuntu.com/2020/08/10/%23ubuntu-meeting.html#t19:01)
* Documented at [OEM Archive](https://wiki.ubuntu.com/OEMArchive)
## out of context now

* If applying for {ref}`dmb-joining-contributing` membership, the
applicant should only be added to the
[`~ubuntu-developer-members`](https://launchpad.net/~ubuntu-developer-members)
team and nothing more.

### Delegating packageset uploader permissions

Expand Down
18 changes: 9 additions & 9 deletions docs/staging/not-AA.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ All this content is saved from
## DMB content

This content is used by DMB-members

### Adjusting Launchpad ACLs

```{note}
Expand All @@ -26,17 +26,17 @@ The new [Archive Reorganization](https://wiki.ubuntu.com/ArchiveReorganisation)
brings finer grained access controls than what components can provide.
Launchpad ACLs allow individuals and teams to have upload or admin rights on
certain packages, referred to as **sets**. In general, an Archive Administrator
can process requests to create and delete package sets, as well as add or remove
packages from package sets. Archive administrators should not add individuals
or teams to package sets without explicit
can process requests to create and delete Packagesets, as well as add or remove
packages from Packagesets. Archive administrators should not add individuals
or teams to Packagesets without explicit
[Technical Board](https://wiki.ubuntu.com/TechnicalBoard) approval.

#### Package sets
#### Packagesets

Packages can be added to or removed from package sets using the `edit-acl` tool
Packages can be added to or removed from Packagesets using the `edit-acl` tool
from `ubuntu-archive-tools`.

To list the packages currently in the package set `mozilla`:
To list the packages currently in the Packageset `mozilla`:

```none
$ ./edit-acl query -P mozilla -S zesty
Expand All @@ -52,13 +52,13 @@ bindwood
This section refers to zesty, but also says "currently"
```

To add a package to the `mozilla` package set:
To add a package to the `mozilla` Packageset:

```none
$ ./edit-acl -P mozilla -S zesty -s foo -s bar -s baz add
```

To remove a package from the `mozilla` package set:
To remove a package from the `mozilla` Packageset:

```none
$ ./edit-acl -P mozilla -S zesty -s foo delete
Expand Down
Loading