Skip to content

Commit

Permalink
Migrate contents from dev.launchpad.net
Browse files Browse the repository at this point in the history
Of the more than 1,000 pages, only the most important ones were migrated.

There will be an HTML dump of the old site, so we are able to look up
things, we might have missed to migrate.

Also, the migrated pages are not yet fully revised, so need some further
work, but this should be a good start.
  • Loading branch information
jugmac00 committed Oct 27, 2023
1 parent b42a0be commit 0eba36e
Show file tree
Hide file tree
Showing 47 changed files with 6,399 additions and 14 deletions.
8 changes: 8 additions & 0 deletions .sphinx/_templates/header.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,14 @@
<a href="https://{{ product_page }}" class="p-navigation__link">{{ product_page }}</a>
</li>

<li class="nav-ubuntu-com">
<a href="https://bugs.launchpad.net/launchpad" class="p-navigation__link">Submit a Bug</a>
</li>

<li class="nav-ubuntu-com">
<a href="/help/index.html" class="p-navigation__link">Help</a>
</li>

<!-- <li>
<a href="#" class="p-navigation__link nav-more-links">More resources</a>
<ul class="more-links-dropdown">
Expand Down
2 changes: 1 addition & 1 deletion .sphinx/spellingcheck.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ matrix:
- .custom_wordlist.txt
output: .sphinx/.wordlist.dic
sources:
- _build/**/*.html
- _build/**/*.html|!_build/explanation/hacking/index.html|!_build/help/index.html|!_build/how-to/database-setup/index.html|!_build/how-to/submitting-a-patch/index.html|!_build/how-to/database-schema-changes-process/index.html|!_build/how-to/triage-bugs/index.html|!_build/explanation/registry/index.html|!_build/explanation/css-sprites/index.html|!_build/explanation/working-with-db-devel/index.html|!_build/explanation/pre-merge-reviews/index.html|!_build/explanation/live-patching/index.html|!_build/explanation/css/index.html|!_build/explanation/javascript-unittesting/index.html|!_build/explanation/engineering-overview-translations/index.html|!_build/explanation/testing/index.html|!_build/explanation/feature-flags/index.html|!_build/explanation/launchpad-ppa/index.html|!_build/explanation/branches/index.html|!_build/explanation/code/index.html|!_build/explanation/security-policy/index.html|!_build/explanation/database-performance/index.html|!_build/explanation/url-traversal/index.html|!_build/explanation/navigation-menus/index.html|!_build/explanation/storm-migration-guide/index.html|!_build/explanation/mail/index.html|!_build/explanation/javascript-buildsystem/index.html|!_build/explanation/javascript-integration-testing/index.html
pipeline:
- pyspelling.filters.html:
comments: false
Expand Down
8 changes: 8 additions & 0 deletions .wokeignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,11 @@ doc-cheat-sheet*
charms.rst
contributing-changes.rst
running.rst
hacking.rst
live-patching.rst
live-patching.rst
registry.rst
storm-migration-guide.rst
submitting-a-patch.rst
branches.rst
database-schema-changes-process.rst
46 changes: 42 additions & 4 deletions .wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,36 +2,74 @@ addons
API
APIs
balancer
bugfix
callables
Charmhub
CLI
dropdown
conf
contactuser
datetime
DateTime
DBA
devel
Diátaxis
DOM
dropdown
EBS
EKS
favicon
FIXME
fmt
formatters
garbo
Grafana
IAM
innerHTML
installable
Jira
JS
JSON
Juju
Kubernetes
Kubeflow
Kubernetes
mailinglists
Makefile
mltest
MyST
naïve
namespace
namespaces
NodePort
observability
OLM
overcommunication
params
Permalink
portlet
Post
postgres
ReadMe
reST
reStructuredText
RSS
RTD
sampledata
scss
stylesheets
subdirectories
subtree
subfolders
subtree
TAL
TimeDelta
TODO
Triaging
tzinfo
UI
Jira
undercommunication
updateable
VM
xUnit
XXXes
YAML
YUI
zpt
29 changes: 29 additions & 0 deletions custom_conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,35 @@
'https://wiki.canonical.com/InformationInfrastructure/OSA/LaunchpadRollout#Config-only_Rollouts', # private
'https://wiki.canonical.com/Launchpad/FreshLogs', # private
'https://wiki.canonical.com/Launchpad/SupportRotation#Builder', # private
'PolicyAndProcess/DatabaseSchemaChangesProcess', # needs update
'Trunk/Glue', # needs update
'../Trunk', # needs update
'/Background',
'/Concepts', # needs update
'/HowToUseCodehostingLocally', # needs update
'/Loggerhead', # needs update
'Database/LivePatching', # needs update
'Database/TableRenamePatch', # needs update
'Debugging#Profiling%20page%20requests', # needs update
'Debugging#Special%20URLs', # needs update
'FixBug', # needs update
'Getting', # needs update
'Help', # needs update
'JavaScriptIntegrationTesting', # needs update
'JavascriptUnitTesting', # needs update
'JavascriptUnitTesting/MockIo', # needs update
'PolicyAndProcess/Accessibility', # needs update
'Running', # needs update
'Soyuz', # needs update
'Translations/Specs/UpstreamImportIntoUbuntu/FixingIsImported/setCurrentTranslation', # needs update
'UI/CssSprites', # needs update
'attachment:codehosting.png', # needs update
'https://git.launchpad.net/launchpad-mojo-specs/tree/mojo-lp-git/services', # private
'https://wiki.canonical.com/InformationInfrastructure/OSA/LaunchpadProductionStatus', # private
'https://wiki.canonical.com/Launchpad/PolicyandProcess/ProductionChange', # private
'https://wiki.canonical.com/Launchpad/PolicyandProcess/ProductionChangeApprovalPolicy', # private
'irc.libera.chat', # this is not an HTTP link
'attachment:TranslationsSchema.dia', # needs update
]

# Pages on which to ignore anchors
Expand Down
174 changes: 174 additions & 0 deletions explanation/branches.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
About Launchpad branches
========================

.. include:: ../includes/important_not_revised.rst

Where's trunk?
--------------

Launchpad has four master branches (this is unusual; most projects only
have one). They are:

1. `master <https://code.launchpad.net/~launchpad/launchpad/+git/launchpad/+ref/master>`__
Where most development takes place (except anything that involves
changing the database schema; see below).
2. `db-devel <https://code.launchpad.net/~launchpad/launchpad/+git/launchpad/+ref/db-devel>`__
Changes that modify the database schema get merged here first.
3. `stable <https://code.launchpad.net/~launchpad/launchpad/+git/launchpad/+ref/stable>`__
This is fed by regular merges from the **master** branch, and is
deployed to
`qastaging.launchpad.net <https://qastaging.launchpad.net/>`__
frequently.
4. `db-stable <https://code.launchpad.net/~launchpad/launchpad/+git/launchpad/+ref/db-stable>`__
This is fed by regular merges from the **db-devel** branch. It is
deployed to `staging.launchpad.net <https://staging.launchpad.net>`__
frequently, and deployed to
`launchpad.net <https://launchpad.net/>`__ on each DB schema
deployment. After deployment, **db-stable** is merged back into
**master**, completing the cycle.

In summary: **db-stable** is the post-test-run counterpart of
**db-devel**, and **stable** is the post-test-run counterpart of
**master**, where *"post-test-run"* means that once code hits foo-devel
it is only cleared into foo-stable if the buildbot test runner succeeds.

If you want to know how all of this works behind the scenes, read
`Trunk/Glue <Trunk/Glue>`__ (after reading the rest of this page).

Look at the Pretty Pictures
---------------------------

Diagrams might be the best way to understand this. (If they don't work,
there's text afterwards, don't worry.)

.. XXX: add missing images
Below, we break the process down a bit with a different diagramming
approach. Here's what happens when you submit to **master**:

Where are the expected potential problems in the process? Glad you
asked!

It is also possible to submit directly to the **db-devel** branch.

Let's Try That in Words
-----------------------

Database changes can be destabilizing to other work, so we isolate them
out into a separate branch (**db-devel**). Then there are two arenas for
stabilizing changes for deployment: **stable** (which ends up on
`qastaging <https://qastaging.launchpad.net>`__ and is fed from the
**master** branch), and **db-stable** (which ends up on
`staging <https://staging.launchpad.net>`__ and is fed from the
**db-devel** branch).

(Note that the actual images here date from the Bazaar world, and so
talk about "devel" rather than "master". You can regard these two names
as interchangeable. Feel free to update the images if you have time.)

In summary:

- Developers submit to **master** and **db-devel**.

- Buildbot tests the tip of **db-devel**, in addition to **master**. If
a **db-devel** change passes, it is pushed automatically to
**db-stable**.

- When changes are approved by buildbot to go from **master** to
**stable**, a script also generates a PQM request to merge **stable**
with **db-devel**, sent as if it came from the Launchpad list. The
Launchpad list will be informed of merge failures, and Launchpad
developers will collectively be responsible for correcting them.
(***TODO: is this some internal list? Hmmm.***)

- Staging runs **db-stable**; qastaging runs **stable**. We will deploy
production DB schema changes from **db-stable**. (After a deployment,
**db-stable** is manually pushed to **devel** and **stable**.)

Problems that can occur
~~~~~~~~~~~~~~~~~~~~~~~

- **The merge from stable to db-devel fails.** That's a real risk
but we expect it to occur infrequently. When it does occur, the
Launchpad list (***TODO: which one?***) will be emailed, and it is
the collective responsibility of everyone to fix the problem, by
manually submitting a branch to **db-devel** that includes the
branch that failed to merge plus any necessary adjustments.

Where to Send Merge Requests
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Merge requests that do any of the following should be targeted at the
**db-devel** branch:

- adds a cold database patch (see
`PolicyAndProcess/DatabaseSchemaChangesProcess <PolicyAndProcess/DatabaseSchemaChangesProcess>`__)
- depends on database schema change only in **db-devel** /
**db-stable**

All other developer merge requests for the launchpad tree should be
targeted at the **master** branch.

The current \`buildbot-poller.py\` script on the PQM box monitors
buildbot to discover what revisions have passed the tests. When a new
revision is "blessed" by buildbot, the script copies it over to
**stable**. The poller script merges the blessed revision into the
**db-devel** branch. It is also responsible for checking a new buildbot
build testing **db-devel**. The poller will copy revisions of
**db-devel** that buildbot blesses to **db-stable**.

Staging releases should run code from **db-stable**. qastaging and
production should continue to run code from **stable**.

When a DB schema deployment is made, the **db-stable** code should be
merged into **master**. This is the responsibility of the person who
organised the deployment.

Problems with the automated merge requests are sent to the Launchpad
list (***TODO: which list?***).

When the merge of **stable** -> **db-devel** does not work
automatically, it should be done manually and submitted. The tests do
not need to be run (rationale: the bots don't run the tests when they do
it automatically, and the failure messages can clutter up the ML really
fast.)

How do I submit to db-devel?
----------------------------

See also WorkingWithDbDevel.

::

cd ~/canonical/launchpad/launchpad
git checkout -b mydbbranch db-devel
make build
make schema

...hack until ready to submit...

::

git push -u myusername mydbbranch

Now create and land a merge proposal.

FAQ
---

Can I land a testfix before buildbot has finished a test run that has failed or will fail?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Yes you can, and please do if appropriate, because this will mean that
other developers will not encounter a broken tree at all.

What happens if the automatic merge from stable to db-devel fails?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The (internal! change?) launchpad list gets an email. This is described
on the /Trunk page.

A build failed for some reason other than a test failure. What do I do?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Force a build at https://lpbuildbot.canonical.com/force.
Loading

0 comments on commit 0eba36e

Please sign in to comment.