{
 "merge_request": {
  "id": 141,
  "iid": 11,
  "project_id": 402,
  "title": "v0.13.1",
  "description": "This release is only a minor release to stabilize our batadv15 migration.\n\n\n# changes\n- make the migration domain the default one\n\n# Release Procedure\n\nVersion: 0.13.1\n\nGluon Version: 2019.1.2\n\n\n## Pre-Build\n\n- [x] Create Version Branch\n- [x] Update README.md\n\nSummarize changes on site-ffhl:\n\n- ... \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 srv01 \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 srv01\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 srv02:\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- [ ] 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- [ ] Update firmware version and models on the website: https://luebeck.freifunk.net/firmware.html\n  * set \"FIRMWARE_VERSION\" in _plugins/firmwares.rb\n  * run \"jekyll build\"\n  * check for warnings about unknown/new devices: add them to firmwares.rb\n  * rerun \"jekyll build\" and update firmware.rb until no more warnings occur\n  * git-commit and -push changes\n- [x] Update https://luebeck.freifunk.net/: Add a new blog entry to inform about the new firmware release\n- [ ] 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-26T09:50:56.000Z",
  "updated_at": "2020-10-08T02:04:16.000Z",
  "merged_by": null,
  "merge_user": null,
  "merged_at": null,
  "closed_by": null,
  "closed_at": null,
  "target_branch": "master",
  "source_branch": "v0.13.1",
  "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": "8c92e11778355a6b2b13eab7c01383132025207b",
  "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-26T09:50:56.000Z",
  "reference": "!11",
  "references": {
   "short": "!11",
   "relative": "!11",
   "full": "freifunk-luebeck/site-ffhl!11"
  },
  "web_url": "https://git.chaotikum.org/freifunk-luebeck/site-ffhl/-/merge_requests/11",
  "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": 32,
   "completed_count": 29
  },
  "has_conflicts": true,
  "blocking_discussions_resolved": true
 },
 "discussions": []
}