From 51c9b29b96414a6f9fe64bd34d971ac43a1a9c96 Mon Sep 17 00:00:00 2001 From: Jason Carver Date: Mon, 18 Sep 2023 12:19:40 -0700 Subject: [PATCH 1/8] docs: new flamingo video Old one had something about "eating your grandmother's vagina" -- let's keep looking. Especially if we're going to call it "the flamingo anthem" X) --- book/src/developers/contributing/rotation/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book/src/developers/contributing/rotation/index.md b/book/src/developers/contributing/rotation/index.md index fa8c290dc..e6c656179 100644 --- a/book/src/developers/contributing/rotation/index.md +++ b/book/src/developers/contributing/rotation/index.md @@ -28,7 +28,7 @@ At the end of the previous week, you will get the [Flamingo notes](https://notes Read through the notes, and then generate the new checklist for the week, by [creating a note from this template](https://notes.ethereum.org/?nav=overview&template=b35733cd-b374-4b79-bc57-f2bb58ee651e). -Link the generated checklist into the Flamingo notes for your week. Make sure your status is "online" in Discord. Make sure you're tagged under the `trin-flamingo` role. Put on your favorite pink shirt. Listen to the [flamingo anthem](https://www.youtube.com/watch?v=6hJv5yBLe9c). Fly. +Link the generated checklist into the Flamingo notes for your week. Make sure your status is "online" in Discord. Make sure you're tagged under the `trin-flamingo` role. Put on your favorite pink shirt. Watch a [silly flamingo video](https://www.youtube.com/watch?v=gWNWtbPEWw0). Fly. ### Daily From 24afdd2b3f7fcc8d3fabc71743c56b1e0a8239d1 Mon Sep 17 00:00:00 2001 From: Jason Carver Date: Mon, 18 Sep 2023 12:27:57 -0700 Subject: [PATCH 2/8] chore: close stale issues as "not planned" They were being closed as completed, which seemed inaccurate. Interestingly, the docs say that "not planned" is the default, so I don't understand why the issues were closed as completed in the first place: https://github.com/marketplace/actions/close-stale-issues#close-issue-reason --- .github/workflows/stale.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 7bdf3c66c..dd35bb000 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -11,6 +11,7 @@ jobs: steps: - uses: actions/stale@v5 with: + close-issue-reason: "not_planned" days-before-issue-stale: 42 days-before-issue-close: 14 stale-issue-label: "stale" From 576d84e44b61f5e246ac0bb4bebb5f42ef4f6c55 Mon Sep 17 00:00:00 2001 From: Jason Carver Date: Mon, 18 Sep 2023 12:44:06 -0700 Subject: [PATCH 3/8] docs: unify git grep example for todos If the first one fails for whatever reason (maybe because it failed to find a match), then we want to search the second one anyway. --- book/src/developers/contributing/rotation/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book/src/developers/contributing/rotation/index.md b/book/src/developers/contributing/rotation/index.md index e6c656179..0327df02b 100644 --- a/book/src/developers/contributing/rotation/index.md +++ b/book/src/developers/contributing/rotation/index.md @@ -49,7 +49,7 @@ When you get to the end of your checklist, here are ideas for what to work on ne - link to the TODO in the code, and any relevant context - label issue as Flamingo. If it is not urgent and a good fit, add "Good First Issue" - Post a PR to remove the `TODO` from the code, in favor of the issue. - - `git grep -i "todo"` & `git grep -i "fixme"` + - `git grep -iE "(todo)|(fixme)"` - Look through all [open trin issues](https://github.com/ethereum/trin/issues) - Close outdated issues, with a short explanation - If appropriate, add a Flamingo tag From a42e7715d6a5ab258a35c3168c64dd9e5eef9548 Mon Sep 17 00:00:00 2001 From: Jason Carver Date: Mon, 18 Sep 2023 13:01:55 -0700 Subject: [PATCH 4/8] docs: add 'cargo outdated' check to flamingo book This used to be in the checklist, but is probably not any more important than all the other maintenance inspiration tasks. --- book/src/developers/contributing/rotation/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/book/src/developers/contributing/rotation/index.md b/book/src/developers/contributing/rotation/index.md index 0327df02b..ef066fce4 100644 --- a/book/src/developers/contributing/rotation/index.md +++ b/book/src/developers/contributing/rotation/index.md @@ -44,6 +44,10 @@ When you get to the end of your checklist, here are ideas for what to work on ne - Respond to [Github Participating Notifications](https://github.com/notifications?query=reason%3Aparticipating) - Review PRs that have been stuck for >24 hours - Find a [Flamingo Issue](https://github.com/ethereum/trin/issues?q=is%3Aopen+is%3Aissue+label%3Aflamingo) that seems promising, and assign it to yourself (and the project dashbord) +- Run `cargo outdated` + - Pick one or several libraries to upgrade + - Post a PR with the new `Cargo.lock` + - If `cargo outdated` shows all libraries as up-to-date, try `cargo outdated --aggressive` - grep code for `TODO`s. For each one you find: - write up issue to explain what needs to be done, and a plan - link to the TODO in the code, and any relevant context From e185ab727d44b5c294cb84b29035169d1b220f45 Mon Sep 17 00:00:00 2001 From: Jason Carver Date: Thu, 21 Sep 2023 21:54:07 -0700 Subject: [PATCH 5/8] docs: remove prerelease tasks that no one uses --- .../releases/prerelease_checklist.md | 42 ++----------------- 1 file changed, 3 insertions(+), 39 deletions(-) diff --git a/book/src/developers/contributing/releases/prerelease_checklist.md b/book/src/developers/contributing/releases/prerelease_checklist.md index 3686a8fde..6bfe5eac4 100644 --- a/book/src/developers/contributing/releases/prerelease_checklist.md +++ b/book/src/developers/contributing/releases/prerelease_checklist.md @@ -4,42 +4,6 @@ Before running a release, follow these steps. ## Communicate -At least one day before the release, announce in chat that you'll be running it. - -There may be an emergency scenario that requires a shorter time frame, but at -least one other person on the team should agree with you. - -## Update dependencies - -- Use `cargo outdated` (and maybe `cargo outdated --aggressive`) to identify any old dependencies. -- Post a PR updating any old dependencies -- If *only* the Cargo.lock changes, then you can merge without a review, after CI turns green. - -## Run portal-hive - -New releases should not cause regressions in portal-hive. Run it locally -against master and compare it against the [daily portal-hive -results](https://portal-hive.ethdevops.io/). - -If there is a regression, pause the release, and announce it in chat. Fixing -the regression is the new priority. - -## Generate release notes - -**Prerequisite**: Release notes are generated with -[towncrier](https://pypi.org/project/towncrier/). Ensure to have `towncrier` -installed and the command is available. - -Run `make notes version=` where `` is the version we are -generating the release notes for e.g. `0.2.0-alpha.3`. - -Example: - -```sh -make notes version=0.2.0-alpha.3 -``` - -Examine the generated release notes and if needed perform and commit any manual changes. -Generated notes are located in `/docs/release_notes.md`. - -Update the release notes using the normal PR process: post it, get a review & merge. +Announce in #trin chat the upcoming release. Aim for a day or more notice, but +announcing a few minutes before releasing is still better than not saying +anything. From afae67ef20eb55bdeab5ef6cfe911f880cfda66a Mon Sep 17 00:00:00 2001 From: Jason Carver Date: Thu, 21 Sep 2023 23:04:22 -0700 Subject: [PATCH 6/8] docs: activate venv before running ansible --- book/src/developers/contributing/releases/deployment.md | 1 + 1 file changed, 1 insertion(+) diff --git a/book/src/developers/contributing/releases/deployment.md b/book/src/developers/contributing/releases/deployment.md index 27fb7f9f4..6e83c53ab 100644 --- a/book/src/developers/contributing/releases/deployment.md +++ b/book/src/developers/contributing/releases/deployment.md @@ -46,6 +46,7 @@ This step directs Ansible to use the current master version of trin. Read [about - Check monitoring tools to understand network health, and compare against post-deployment, eg~ - [Glados](http://glados.ethportal.net/content/) - [Grafana](https://trin-bench.ethdevops.io/d/e23mBdEVk/trin-metrics?orgId=1) +- Activate the virtual environment in the cluster repo: `. venv/bin/activate` - Go into Portal section of Ansible: `cd portal-network/trin/ansible/` - Run the deployment: `ansible-playbook playbook.yml --tags trin` - Wait for completion From f5a277e47b4d35a7e029c3539d14cfd61f4eec23 Mon Sep 17 00:00:00 2001 From: Jason Carver Date: Thu, 21 Sep 2023 23:04:32 -0700 Subject: [PATCH 7/8] docs: simplify release tagging, with step-by-step --- .../releases/release_checklist.md | 23 +++++-------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/book/src/developers/contributing/releases/release_checklist.md b/book/src/developers/contributing/releases/release_checklist.md index 36d24512b..b49d51796 100644 --- a/book/src/developers/contributing/releases/release_checklist.md +++ b/book/src/developers/contributing/releases/release_checklist.md @@ -8,13 +8,12 @@ Make sure that version follows [semver](https://semver.org/) rules e.g (`0.2.0-a ## Bump the version -Update the version number in Cargo.toml file(s), using semantic versioning. -Once that's merged to master, tag it like: - -```sh -git tag -a v0.1.0-alpha.6 -m "Version 0.1.0-alpha.6" -git push upstream --tags -``` +- In github, open the page to [create the new release](https://github.com/ethereum/trin/releases/new). +- In the tag, type out the version number that the new release bumps to. +- Github should say "Excellent! This tag will be created from the target when you publish this release." +- Click "Generate release notes" +- Add "Trin " to the beginning of the release title +- Add any clarifying information that's helpful about the release ## Build the binary for release @@ -32,16 +31,6 @@ We no longer use `make release` because it's not worth the effort to release all > ⚠️ **TODO**: How do we generate binaries for all target systems, for this > release page? Linux, Mac, Windows, ARM, etc -## Create github release page - -Go to [trin tags](https://github.com/ethereum/trin/tags). - -Find the tag you pushed, and in the `...` menu, select [Create release] - -Write up a high-level overview, and link to the generated release notes. - -Attach the generated binaries. - ## Deploy Push these changes out to the nodes we run in the network. See next page for details. From 41fdc28544cf66de9047d86cdedd147c68c0aa9d Mon Sep 17 00:00:00 2001 From: Jason Carver Date: Fri, 22 Sep 2023 23:04:18 -0700 Subject: [PATCH 8/8] chore: increase circleci test job size to 2xlarge It was failing with: Compiling ethportal-peertest v0.1.0 (/home/circleci/project/ethportal-peertest) error: linking with `cc` failed: exit status: 1 ...... = note: collect2: fatal error: ld terminated with signal 9 [Killed] compilation terminated. This looks a lot like an OOM killer. It's not the first time that it's happened, so maybe increasing the box size will help. --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d2cd0b775..37d71a15f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -162,7 +162,7 @@ jobs: test: description: | Run tests. - resource_class: xlarge + resource_class: 2xlarge executor: name: rust/default tag: 1.71.1