| Both sides previous revision Previous revision Next revision | Previous revision |
| devsummit:201105:ports [2011/04/20 15:02] – add flz via skype ErwinLansing | devsummit:201105:ports [2021/04/25 09:47] (current) – Move to DevSummit namespace. JethroNederhof |
|---|
| ====== Ports and packages summit – BSDCan 2011 ====== | ====== Ports and packages summit – BSDCan 2011 ====== |
| May 11, 2011 9:00-12:00am | May 11, 2011 9:00-12:00am EDT |
| |
| ==== Attendees ==== | ==== Attendees ==== |
| * [[/ThomasAbthorpe|ThomasAbthorpe]] (portmgr) | * [[/ThomasAbthorpe|ThomasAbthorpe]] (portmgr) |
| * [[/FlorentThoumie|FlorentThoumie]] (portmgr - skype) | * [[/FlorentThoumie|FlorentThoumie]] (portmgr - skype) |
| | * [[/IonMihaiTetcu|IonMihaiTetcu]] (portmgr - skype) |
| * [[/SimonNielsen|SimonNielsen]] (so, clusteradm) | * [[/SimonNielsen|SimonNielsen]] (so, clusteradm) |
| * [[/ColinPercival|ColinPercival]] (so, portsnap - tentative) | * [[/ColinPercival|ColinPercival]] (so, portsnap - tentative) |
| * [[/BaptisteDaroussin|BaptisteDaroussin]] (pkgng) | * [[/BaptisteDaroussin|BaptisteDaroussin]] (pkgng) |
| * [[/JulienLaffaye|JulienLaffaye]] (pkgng) | * [[/JulienLaffaye|JulienLaffaye]] (pkgng) |
| * [[/PeterLosher|PeterLosher]] (mirror - tentative) | * [[/PeterLosher|PeterLosher]] (mirror) |
| * Ben Kaduk (Athena project) | * Ben Kaduk (Athena project) |
| | * [[/BradDavis|BradDavis]] (clusteradm) |
| | * [[/AdeLovett|AdeLovett]] (skype - tentative) |
| | * [[/StevenKreuzer|StevenKreuzer]] (skype) |
| | * [[/BenLaurie|BenLaurie]] |
| | * [[/WillAndrews|WillAndrews]] |
| | * [[/DianeBruce|DianeBruce]] |
| |
| ==== Summary ==== | ==== Summary ==== |
| See also [[http://people.freebsd.org/~erwin/presentations/bsdcan10-devsummit-packages.pdf|last years slides]] for some background. | See also [[http://people.freebsd.org/~erwin/presentations/bsdcan10-devsummit-packages.pdf|last years slides]] for some background. |
| |
| ==== Agenda ==== | ==== Agenda (tentative) ==== |
| * current state (erwin 15 min) | * Introduction and current state (erwin 15 min) |
| * Athena project (kaduk 15 min) | * Athena project (kaduk 15 min) |
| * brainstorm (erwin 60 min) | * Issues with current system (plosher 10 min) |
| | * brainstorm (erwin 50 min) |
| * break (15 min) | * break (15 min) |
| * pkgng (bapt@ 30 min) | * pkgng (bapt@ 30 min) |
| * empty slot (30 min) – license framework (tabthorpe) | * empty slot (30 min) |
| | * license framework (tabthorpe) |
| | * package cluster (flz 5 min) |
| | * change of VCS? |
| |
| ===== Current state ===== | ===== Current state ===== |
| Upgrading should change the pointer to which set of packages to use, so future additions will also “just work”, and upgrades those packages that need upgrading. | Upgrading should change the pointer to which set of packages to use, so future additions will also “just work”, and upgrades those packages that need upgrading. |
| |
| **How to get there** | **How to get there: package sets** |
| | We need to add consistency to packages as we do for the tree itself. The ports infrastructure only supports installing ports when the whole tree is consistent at a given point in time. The same restriction goes for packages, although this is not enforced which can lead to unexpected results. We therefore need a method to identify a consistent tree in time and encode this identifier into the binary packages. The installation tools can thereby identify the current installed set A and refuse the install a package from a different set B. The package tools should provide the user with a clear way to upgrade between package sets A to B. There needs to be a EOL cycle for how often package sets are released and for how long they will be supported. Download sites need to keep a copy of all Tier 1 architecture packages of all supported releases (not including HEAD) for that time (a CDN may help reduce disc space on the local mirrors, while needing large storage capacity at the backend). |
| |
| //package sets// | //Discussion points// |
| - Define “set”.\\ Proposal: a full tree of packages at given RCS-id within a given major branch.\\ Requires: single, unique tree-wide revision ID (change RCS or approximate with timestamp) | - Define “set”.\\ A full tree of packages at given RCS-id within a given major branch.\\ Requires: single, unique tree-wide revision ID (change RCS or approximate with timestamp) |
| - Release weekly package sets.\\ Frequent enough not to need branching and pullups | - Release frequency.\\ Weekly package sets.\\ Frequent enough not to need branching and pullups |
| - Keep package sets for x months.\\ Will overload diskspace on mirrors, but might not be an issue with a CDN | - EOL policy for package sets.\\ Keep package sets for 3 months. |
| | - EOL policy for %%FreeBSD%% releases/branches.\\ Keep current policy of following so@. |
| | - %%FreeBSD%% Release packages.\\ re@ includes latest available package set at the time of release building. |
| | - Package building cluster.\\ What needs to change? (set-id encoding, automated scheduled building). |
| | - pkg_* tools.\\ What needs to change? (set-id checks, set upgrading). |
| - ... | - ... |
| |