{
 "merge_request": {
  "id": 142,
  "iid": 9,
  "project_id": 402,
  "title": "v0.13.0-1",
  "description": "*Created by: yksflip*\n\n# Release Procedure\n\nVersion: v0.13.0-1\nGluon Version: 2019.1.2\n\nNotes:\n* First Build had to be canceld because of missing GLUON_BRANCH variable during build. Which led to a wrong autoupdater setting in factory image\n\n## Pre-Build\n\n- [x] Create Version Branch\n- [x] Update README.md\n\nSummarize changes on site-ffhl:\n\n- Add batman adv compat15 domain\n- Add Scheduled-Domain-Switch for 03.09.2020 22:00\n\n- [x] Create Versions Tag\n- [x] Create Merge Request\n\n## Build Firmware\n\n- [x] Build Firmware / Run CI. (Firmware for rollout should be build on trusted hardware)\n- [x] Visually check that `output/images/*` and the contents of `output/images/sysupgrade/{stable,beta}.manifest` looks fine.\n- [x] make sure, all desired targets were built\n- [x] copy output images to srv02 (/var/www/firmware/)\n- [x] chown to directory `www-data:www-data`\n\n## Beta Release\n\n- [x] manually download and flash a few images to a few devices to check that the overall build process went fine. \n\n### Sign Firmware\n\n- [x] Get minimum amount of signatures \n- [x] Update the beta.manifest on the server with the new, added signatures below the \"---\" in the local copy of the beta.manifest.\n- [x] update `beta` symlink on srv02\n\n### Monitor Beta Nodes\n\nThen check for about 2 weeks that nodes with the beta branch selected in their autoupdater updated and run fine. Make sure to have at least one device of the more popular ones on a beta branch.\n\n- [x] Nodes are alive and stable with new version number (check node's status page)\n- [x] Check that all wifi interfaces are up and running (run ``iwinfo`` via ssh)\n- [x] Check that meshing works (run ``batctl o`` via ssh)\n- [x] Check that the process list looks fine (run ``ps`` via ssh - no missing processes? no new, suspicious processes?)\n- [x] Check that `/etc/config/autoupdater` looks fine and has the correct public keys\n- [x] Check that `/etc/dropbear/authorized_keys` was left unmodified\n\nIf not, abort and repeat process with increased build number\n\n## Stable Release\n\n- [x] Update DATE in local stable.manifest\n- [x] Get minimum amount of signatures \n- [x] Update the DATE in the stable.manifest on the server with the new start time.\n- [x] Update the stable.manifest on the server with the new, added signatures below the \"---\" in the local copy of the stable.manifest.\n- [x] update `stable` symlink on srv01:\n\n### Pre-Stable-Rollout\n\n- [x] Verify that images are downloadable via https://luebeck.freifunk.net/firmware/0.xx.y-z/sysupgrade/\n- [x] Verify that stable.manifest on the server contains a sufficient amount of valid signatures\n- [x] Verify that the start DATE of the stable.manifest on the server is correct\n- [x] Then prior the stable update start date, inform passengers: Inform about scheduled landing time of the new release and the firmware changes it contains on the talk@luebeck.freifunk.net mailing list.\n\n### Peri-Stable-Rollout\n\n* Daily:\n  * Check that the predicted number of nodes updates to the new firmware version\n  * For the nodes which updated successfully, check their status page:\n    * enough RAM\n    * load ok (usually < 1)\n    * neighbor link quality ok\n  * Monitor mailing lists for passenger feedback\n\nIn case of any issues occurring, abort.\n\n### Post-Stable-Rollout\n\n- [x] Check if any nodes might have failed updating (any nodes that might have gone offline, especially during the update time at about 04:00 o'clock.\n  * If available, inform individual node owners via the contact information they set in the config-mode about their failed update. If possible, determine cause for failure.\n- [x] Check that new Firmware version is available on the wizard and add new firmware to the list https://firmware.luebeck.freifunk.net/wizard\n- [x] Update https://luebeck.freifunk.net/: Add a new blog entry to inform about the new firmware release\n- [x] Inform via Twitter about the new firmware release\n- [x] Increment DEFAULT_GLUON_RELEASE in https://gitlab.com/freifunk-luebeck/site-ffhl/blob/master/site.mk\n\n\nSee [wiki](https://wiki.luebeck.freifunk.net/docs/firmware/release-procedure/) for more details.\n",
  "state": "merged",
  "created_at": "2020-08-24T20:34:49.000Z",
  "updated_at": "2020-09-03T22:13:32.000Z",
  "merged_by": null,
  "merge_user": null,
  "merged_at": null,
  "closed_by": null,
  "closed_at": null,
  "target_branch": "master",
  "source_branch": "v0.13",
  "user_notes_count": 0,
  "upvotes": 0,
  "downvotes": 0,
  "author": {
   "id": 47,
   "username": "paul",
   "public_email": "",
   "name": "Paul",
   "state": "active",
   "locked": false,
   "avatar_url": "https://secure.gravatar.com/avatar/a4106f6e9909fa9fdadf799a8c6e0382dd30483c01ed2024a82e10d6144d1754?s=80&d=identicon",
   "web_url": "https://git.chaotikum.org/paul"
  },
  "assignees": [],
  "assignee": null,
  "reviewers": [],
  "source_project_id": 402,
  "target_project_id": 402,
  "labels": [],
  "draft": false,
  "imported": false,
  "imported_from": "none",
  "work_in_progress": false,
  "milestone": null,
  "merge_when_pipeline_succeeds": false,
  "merge_status": "cannot_be_merged",
  "detailed_merge_status": "not_open",
  "merge_after": null,
  "sha": "8afd3223608b13e41901458398633b482232e303",
  "merge_commit_sha": null,
  "squash_commit_sha": null,
  "discussion_locked": null,
  "should_remove_source_branch": null,
  "force_remove_source_branch": null,
  "prepared_at": "2020-08-24T20:34:49.000Z",
  "reference": "!9",
  "references": {
   "short": "!9",
   "relative": "!9",
   "full": "freifunk-luebeck/site-ffhl!9"
  },
  "web_url": "https://git.chaotikum.org/freifunk-luebeck/site-ffhl/-/merge_requests/9",
  "time_stats": {
   "time_estimate": 0,
   "total_time_spent": 0,
   "human_time_estimate": null,
   "human_total_time_spent": null
  },
  "squash": false,
  "squash_on_merge": false,
  "task_completion_status": {
   "count": 33,
   "completed_count": 33
  },
  "has_conflicts": true,
  "blocking_discussions_resolved": true
 },
 "discussions": []
}