Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/5.3.0 #1438

Merged
merged 147 commits into from
Jul 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
147 commits
Select commit Hold shift + click to select a range
0ba4332
(un)Staking multiple avoid tx limit (#1244)
camfairchild Mar 29, 2023
69df50c
Grab delegates details from GitHub (#1245)
camfairchild Apr 4, 2023
b2da27f
Fix list_delegates on non-archive nodes (#1232)
camfairchild Apr 6, 2023
269dc14
Improve development workflow documentation
Apr 13, 2023
ec81fa5
Update DEVELOPMENT_WORKFLOW.md
ifrit98 May 23, 2023
81e73d4
(un)Staking multiple avoid tx limit (#1244)
camfairchild Mar 29, 2023
c9aadb4
Grab delegates details from GitHub (#1245)
camfairchild Apr 4, 2023
b96333f
Fix list_delegates on non-archive nodes (#1232)
camfairchild Apr 6, 2023
f0e19c0
Improve development workflow documentation
Apr 13, 2023
bf20438
Update DEVELOPMENT_WORKFLOW.md
ifrit98 May 23, 2023
ec06a70
Merge branch 'new_staging' of https://github.com/opentensor/bittensor…
ifrit98 Jun 8, 2023
6418f63
progress on fix mock subtensor
camfairchild May 17, 2023
b781efb
[BIT-351] Ask for wallet name on btcli unstake (#1387)
camfairchild Jun 8, 2023
2999cc9
fix query map mock
camfairchild Jun 8, 2023
4c9407d
inc subnetN on mock reg
camfairchild Jun 8, 2023
d3571d4
add active to neuron on mock reg
camfairchild Jun 8, 2023
27ecead
dont store balance in chainstate
camfairchild Jun 8, 2023
410086e
use dict comprehension
camfairchild Jun 8, 2023
e0c0ecf
don't print __is_set when displaying config
ifrit98 Jun 8, 2023
7163629
use axon info from axon module
camfairchild Jun 8, 2023
30afc42
set is set for Config in tests
camfairchild Jun 8, 2023
030cb85
passes overview
camfairchild Jun 8, 2023
d11e992
remove neurons, take out multiforward Synapse
ifrit98 Jun 8, 2023
2042122
take out _neuron, these are in openminers & openvalidators now
ifrit98 Jun 8, 2023
8fb3aab
cleanup dendrite multi_forward
ifrit98 Jun 8, 2023
a1f9b76
missed MultiForward class in dendrite
ifrit98 Jun 8, 2023
acd4b9d
fix tests
camfairchild Jun 12, 2023
a720ea1
dont skip
camfairchild Jun 12, 2023
f267fb7
return data free of balance
camfairchild Jun 12, 2023
80acfd6
return proper types
camfairchild Jun 12, 2023
cd5849f
no nonces
camfairchild Jun 12, 2023
5ed3295
use same format for balances
camfairchild Jun 12, 2023
343fab0
allow block for is delegate
camfairchild Jun 12, 2023
49f66d5
fix nominate
camfairchild Jun 12, 2023
936ac8e
fix nominate again :)
camfairchild Jun 12, 2023
e6951d0
fix typehint and return value==None
camfairchild Jun 12, 2023
6476068
fix total stake tracking
camfairchild Jun 12, 2023
b6ab05b
nominate passes
camfairchild Jun 12, 2023
ebff370
fix state for ismember and totalstake
camfairchild Jun 12, 2023
e4cd176
not returning last part of tuple
camfairchild Jun 12, 2023
e7e6aff
oops, dont pass self twice
camfairchild Jun 12, 2023
9e0505b
return null neuron
camfairchild Jun 12, 2023
ee60070
get mock block hash
camfairchild Jun 12, 2023
f134a76
add set diff mock
camfairchild Jun 12, 2023
fc3b64c
fix total issuance and balance
camfairchild Jun 12, 2023
c2b0e9b
add rate limit storage
camfairchild Jun 12, 2023
1e24850
fix loop over nom
camfairchild Jun 12, 2023
8ba551d
fix some unit tests
camfairchild Jun 12, 2023
247f1b9
fix pow test
camfairchild Jun 13, 2023
55c064e
fix get delegates mock
camfairchild Jun 13, 2023
76efc8a
fix typo
camfairchild Jun 13, 2023
b334ec5
typo again
camfairchild Jun 13, 2023
f0a166d
remove assert on err
camfairchild Jun 13, 2023
9f67429
typo on storage
camfairchild Jun 13, 2023
391b5a5
spacing
camfairchild Jun 13, 2023
250549b
BlocksSinceLastStep instead
camfairchild Jun 13, 2023
e485cb8
fix list subnets
camfairchild Jun 13, 2023
e9ddc6a
dont skip
camfairchild Jun 13, 2023
5c0868b
add is set map
camfairchild Jun 13, 2023
3c29937
fix patch
camfairchild Jun 13, 2023
1d4a8d6
setup mock net 3
camfairchild Jun 13, 2023
9755471
add a do_prometheus serve func
camfairchild Jun 13, 2023
af17b3d
add to mock
camfairchild Jun 13, 2023
da75945
remove unused examples
ifrit98 Jun 15, 2023
7f24987
update bittensor version into to current (510)
ifrit98 Jun 18, 2023
14ed226
fix prometheus test
camfairchild Jun 19, 2023
1c18c99
fix some staking tests
camfairchild Jun 19, 2023
66fd585
fix transfer tests
camfairchild Jun 19, 2023
74133dc
add do_set_weights
camfairchild Jun 19, 2023
44962f7
add do_set_weights to mock
camfairchild Jun 19, 2023
e294e9f
use dsw in tests
camfairchild Jun 19, 2023
dbba9a0
use == true
camfairchild Jun 19, 2023
839be88
use == True
camfairchild Jun 19, 2023
7e95aaf
add do_serve_axon
camfairchild Jun 19, 2023
45373d8
use typeddict
camfairchild Jun 19, 2023
08b7e7a
add do serve axon mock
camfairchild Jun 19, 2023
11c4f4e
add _ to subtensor.do_* methods
camfairchild Jun 19, 2023
a882e96
add _subtensor.types
camfairchild Jun 20, 2023
b4559c6
fix circular import
camfairchild Jun 20, 2023
bbca5a7
fix mock get_balances
camfairchild Jun 20, 2023
d54a49e
return uid in mock
camfairchild Jun 20, 2023
9730a68
run setup for tests with mock sub
camfairchild Jun 20, 2023
bd3f23b
use mock sub for tests
camfairchild Jun 20, 2023
8426c75
all subtensor tests pass
camfairchild Jun 20, 2023
63ec09d
fix mock with underscore
camfairchild Jun 20, 2023
1004086
nominators mock should be list tuple not dict
camfairchild Jun 20, 2023
9772782
fix duplicate setup
camfairchild Jun 20, 2023
c18fae7
Update README.md
mostimasblunderbuss Jun 20, 2023
f4b4356
Merge pull request #1349 from opentensor/fix-text-cli
ifrit98 Jun 20, 2023
ce177ac
Merge pull request #1397 from mostimasblunderbuss/patch-1
ifrit98 Jun 20, 2023
d669536
Merge pull request #1395 from opentensor/update_authint_version
ifrit98 Jun 21, 2023
d4818d7
Merge branch 'new_staging' into remove_neurons
ifrit98 Jun 21, 2023
f8e6276
Fix integration test
camfairchild Jun 21, 2023
7683402
Merge pull request #1400 from opentensor/fix-integration-test
ifrit98 Jun 22, 2023
d890d4f
remove multiforward from synapse (missed before)
ifrit98 Jun 22, 2023
5817c01
Merge pull request #1389 from opentensor/remove_neurons
ifrit98 Jun 22, 2023
08b6279
Merge branch 'master' into new_staging
ifrit98 Jun 22, 2023
535df8d
remove hotkey from proto and dendrite
ifrit98 Jun 22, 2023
b704234
Merge pull request #1407 from opentensor/bugfix/rm_hotkey_field
ifrit98 Jun 22, 2023
157801f
Weight Utils fix (#1372)
mrseeker Jun 26, 2023
9b35e2d
Extract config to new package (#1401)
camfairchild Jun 27, 2023
6206c09
Extract wallet (#1403)
camfairchild Jun 28, 2023
3fb42df
Merge branch 'new_staging' into extract_wallet_and_config
camfairchild Jun 28, 2023
96de08f
BTCli integration with new governance protocol (#1398)
Jun 28, 2023
77637cd
Reverting unnecessary commits for next release. (#1415)
camfairchild Jun 28, 2023
bf8bab3
update new_staging with current master
ifrit98 Jun 28, 2023
95db467
fix merge conflicts with new_staging
ifrit98 Jun 28, 2023
937e43f
Merge pull request #1411 from opentensor/extract_wallet_and_config
ifrit98 Jun 28, 2023
11033fd
fix merge conflict
camfairchild Jun 28, 2023
e6ff3cd
fix dockerignore
camfairchild Jun 28, 2023
47c37bc
Use delegate nice-names in senate view
Jun 28, 2023
d7d8bc4
use new regex for test
camfairchild Jun 28, 2023
7808da2
make test assertion more verbose
camfairchild Jun 28, 2023
5100f74
add to config for test
camfairchild Jun 28, 2023
18a486c
bump version
camfairchild Jun 29, 2023
076c483
create api calls for senate info
camfairchild Jun 29, 2023
154c849
add block optional to is senate member
camfairchild Jun 29, 2023
453565a
prefer using subtensor api
camfairchild Jun 29, 2023
f04b87b
use new api calls
camfairchild Jun 29, 2023
3a15e45
dont sync metagraph on neuron init
camfairchild Jun 28, 2023
aac849c
remove multiforwad
ifrit98 Jun 29, 2023
4e40f89
fix error calling metagraph from subtensor without passing (#1426)
ifrit98 Jun 29, 2023
0bdcb29
Fix docker and pypi upload commands (#1375)
eduardogr Jun 29, 2023
3d83643
Fix cli ask for wallet hotkey name (#1430)
camfairchild Jun 30, 2023
012c4b8
always sync metagraph during subtensor.metagraph
camfairchild Jun 30, 2023
6059756
derp
ifrit98 Jun 30, 2023
3a00503
remove unused HelpCommand class for miners/validators
ifrit98 Jun 30, 2023
bf0b8a9
update changelog from running add_notes_changelog.sh
ifrit98 Jun 30, 2023
16cdbf8
fix script for the changelog
camfairchild Jun 30, 2023
f00e4c4
add changelog
camfairchild Jun 30, 2023
85827d2
Update scripts/release/github_utils.sh
camfairchild Jun 30, 2023
247ab43
add weights call to subtensor (#1436)
camfairchild Jul 3, 2023
bf20ec4
update dockerignore file (#1428)
camfairchild Jul 4, 2023
b3b2ac7
fix function name in script
camfairchild Jul 4, 2023
7e15db9
add new changelog additions
camfairchild Jul 4, 2023
8a39d10
update changelog again
camfairchild Jul 4, 2023
9f25ace
make minor release
camfairchild Jul 4, 2023
c16dd06
remove wallet impl
camfairchild Jul 4, 2023
4a293ec
use reregister from utils
camfairchild Jul 4, 2023
d47e0c9
add arg for base miner reregister
camfairchild Jul 4, 2023
2df31eb
fix mock return values
camfairchild Jul 4, 2023
0252fcc
fix return format to use Tuple
camfairchild Jul 4, 2023
b8e25dd
raise -> return
camfairchild Jul 4, 2023
aa408ed
Revert "fix return format to use Tuple"
camfairchild Jul 4, 2023
72c20e8
Revert "fix mock return values"
camfairchild Jul 4, 2023
4e76afe
raise correct errors in mock
camfairchild Jul 4, 2023
a58b0b3
return tuples for do server
camfairchild Jul 4, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ jobs:
command: |
. env/bin/activate
export PYTHONUNBUFFERED=1
pytest -n2 --reruns 3 --durations=0 --verbose --junitxml=test-results/integration_tests.xml \
pytest -n2 --reruns 3 --reruns-delay 15 --durations=0 --verbose --junitxml=test-results/integration_tests.xml \
--cov=. --cov-append --cov-config .coveragerc \
--splits $CIRCLE_NODE_TOTAL --group $((CIRCLE_NODE_INDEX + 1)) \
--splitting-algorithm duration_based_chunks --store-durations --durations-path .test_durations \
Expand Down
19 changes: 13 additions & 6 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,14 +1,21 @@
**/data/
*.log
*.png
*.pstats
**/*.log
**/*.png
**/*.pstats
**/*.ipynb
**/bittensor.egg-info/*
**/lib/*
**/build/*
**/dist/*
**/runs/*
**/env/*
**/venv/*
./circleci/*
./github/*
.ipynb
**/tmp/*
**/test_results/*
**/__pycache__/*
**/.circleci
**/.git
**/.github
**/.hypothesis
**/.vscode
**/.gitignore
147 changes: 97 additions & 50 deletions .test_durations

Large diffs are not rendered by default.

24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# Changelog

## 5.3.0 / 2023-07-04

## What's Changed
* [BIT-351] Ask for wallet name on btcli unstake by @camfairchild in https://github.com/opentensor/bittensor/pull/1387
* Fix tests using pure-Python MockSubtensor by @camfairchild in https://github.com/opentensor/bittensor/pull/1349
* Update README.md by @mostimasblunderbuss in https://github.com/opentensor/bittensor/pull/1397
* Update authint version by @ifrit98 in https://github.com/opentensor/bittensor/pull/1395
* Fix subtensor factory integration test by @camfairchild in https://github.com/opentensor/bittensor/pull/1400
* Remove neurons by @ifrit98 in https://github.com/opentensor/bittensor/pull/1389
* Merge pull request #1394 from opentensor/fix_axon_requests by @ifrit98 in https://github.com/opentensor/bittensor/pull/1406
* remove hotkey from proto and dendrite by @ifrit98 in https://github.com/opentensor/bittensor/pull/1407
* Weight Utils fix by @mrseeker in https://github.com/opentensor/bittensor/pull/1372
* Extract config to new package by @camfairchild in https://github.com/opentensor/bittensor/pull/1401
* Extract wallet by @camfairchild in https://github.com/opentensor/bittensor/pull/1403
* BTCli integration with new governance protocol by @Rubberbandits in https://github.com/opentensor/bittensor/pull/1398
* Reverting unnecessary commits for next release. by @camfairchild in https://github.com/opentensor/bittensor/pull/1415
* Extract wallet and config by @camfairchild in https://github.com/opentensor/bittensor/pull/1411

## New Contributors
* @mostimasblunderbuss made their first contribution in https://github.com/opentensor/bittensor/pull/1397

**Full Changelog**: https://github.com/opentensor/bittensor/compare/v5.2.0...v5.3.0


## 5.2.0 / 2023-06-28

## What's Changed
Expand Down
133 changes: 68 additions & 65 deletions DEVELOPMENT_WORKFLOW.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,97 +2,102 @@

## Table of contents

1. [Main branches](#main-branches)
1. [Development model](#development-model)
1. [Supporting branches](#supporting-branches)
1. [Feature branches](#feature-branches)
1. [Release branches](#release-branches)
1. [Hotfix branches](#hotfix-branches)
1. [Git operations](#git-operations)
1. [Create a feature branch](#create-a-feature-branch)
1. [Merge feature branch into nobunaga](#merge-feature-branch-into-nobunaga)
1. [Create release branch](#create-release-branch)
1. [Finish a release branch](#finish-a-release-branch)
1. [Create a hotfix branch](#create-a-hotfix-branch)
1. [Finishing a hotfix branch](#finishing-a-hotfix-branch)
- [Development Workflow](#development-workflow)
- [Table of contents](#table-of-contents)
- [Main branches](#main-branches)
- [Development model](#development-model)
- [Feature branches](#feature-branches)
- [Release branches](#release-branches)
- [Hotfix branches](#hotfix-branches)
- [Git operations](#git-operations)
- [Create a feature branch](#create-a-feature-branch)
- [Merge feature branch into staging](#merge-feature-branch-into-staging)
- [Create release branch](#create-release-branch)
- [Finish a release branch](#finish-a-release-branch)
- [Create the hotfix branch](#create-the-hotfix-branch)
- [Finishing a hotfix branch](#finishing-a-hotfix-branch)
- [TODO](#todo)

## Main branches

The repo holds two main branches with an infinite lifetime:
- master
- nobunaga
Bittensor is composed of TWO main branches, **master** and **staging**

We consider `origin/master` to be the main branch where the source code of HEAD always reflects a **__production-ready__** state.
**master**
- master Bittensor's live production branch. This branch should only be touched and merged into by the core develpment team. This branch is protected, but you should make no attempt to push or merge into it reguardless.

We consider `origin/nobunaga` to be the main branch where the source code of HEAD always reflects a state with the **__latest delivered development__** changes for the next release. Some would call this the `"integration branch"`. This is where any automatic nightly builds would be built from.
**staging**
- staging is Bittensor's development branch. This branch is being continuously updated and merged into. This is the branch where you will propose and merge changes.

## Development model

### Supporting branches

Each of these branches have a specific purpose and are bound to strict rules as to which branches may be their originating branch and which branches must be their merge targets. We will walk through them in a minute

#### Feature branches

- May branch off from: `nobunaga`
- Must merge back into: `nobunaga`
- May branch off from: `staging`
- Must merge back into: `staging`
- Branch naming convention:
- Anything except master, nobunaga, finney, release/* or hotfix/*
- Anything except master, staging, finney, release/* or hotfix/*
- Suggested: `feature/<ticket>/<descriptive-sentence>`

When implementing new features, hotfixes, bugfixes, or upgrades, it is wise to adhere to a strict naming and merging convention, whenever possible.

**Branch naming and merging convention:**


Feature branches are used to develop new features for the upcoming or a distant future release. When starting development of a feature, the target release in which this feature will be incorporated may well be unknown at that point.

The essence of a feature branch is that it exists as long as the feature is in development, but will eventually be merged back into `nobunaga` (to definitely add the new feature to the upcoming release) or discarded (in case of a disappointing experiment).
The essence of a feature branch is that it exists as long as the feature is in development, but will eventually be merged into `staging` (to definitely add the new feature to the upcoming release) or discarded (in case of a disappointing experiment).

Generally, you should try to minimize the lifespan of feature branches. As soon as you merge a feature into 'staging', you should immidiately delete the feature branch. This will be strictly enforced. Excess branches creates tech debt and confusion between development teams and parties.

#### Release branches

- May branch off from: `nobunaga`
- Must merge back into: `nobunaga` and `master`
- Please branch off from: `staging`
- Please merge back into: `staging` then into: `master`
- Branch naming convention:
- Suggested format `release/3.4.0/optional-descriptive-message`
- STRONGLY suggested format `release/5.1.0/descriptive-message/creator's-name`

Release branches support preparation of a new production release. Furthermore, they allow for minor bug fixes and preparing meta-data for a release (e.g.: version number, configuration, etc.). By doing all of this work on a release branch, the `nobunaga` branch is cleared to receive features for the next big release.
Release branches support preparation of a new production release. Furthermore, they allow for minor bug fixes and preparing meta-data for a release (e.g.: version number, configuration, etc.). By doing all of this work on a release branch, the `staging` branch is cleared to receive features for the next big release.

This new branch may exist there for a while, until the release may be rolled out definitely. During that time, bug fixes may be applied in this branch, rather than on the `nobunaga` branch. Adding large new features here is strictly prohibited. They must be merged into `nobunaga`, and therefore, wait for the next big release.
This new branch may exist there for a while, until the release may be rolled out definitely. During that time, bug fixes may be applied in this branch, rather than on the `staging` branch. Adding large new features here is strictly prohibited. They must be merged into `staging`, and therefore, wait for the next big release.

#### Hotfix branches

- May branch off from: `master`
- Must merge back into: `nobunaga` and `master`
- Please branch off from: `master` or `staging`
- Please merge back into: `staging` then into: `master`
- Branch naming convention:
- Suggested format: `hotfix/3.3.4/optional-descriptive-message`
- REQUIRED format: `hotfix/3.3.4/descriptive-message/creator's-name`

Hotfix branches are very much like release branches in that they are also meant to prepare for a new production release, albeit unplanned. They arise from the necessity to act immediately upon an undesired state of a live production version. When a critical bug in a production version must be resolved immediately, a hotfix branch may be branched off from the corresponding tag on the master branch that marks the production version.

The essence is that work of team members, on the `nobunaga` branch, can continue, while another person is preparing a quick production fix.
The essence is that work of team members, on the `staging` branch, can continue, while another person is preparing a quick production fix.

### Git operations

#### Create a feature branch

1. Branch from the **nobunaga** branch.
1. Command: `git checkout -b feature/my-feature nobunaga`
1. Branch from the **staging** branch.
1. Command: `git checkout -b feature/my-feature staging`

> Try to rebase frequently with the updated nobunaga branch so you do not face big conflicts before submitting your pull request. Remember, syncing your changes with other developers could also help you avoid big conflicts.
> Rebase frequently with the updated staging branch so you do not face big conflicts before submitting your pull request. Remember, syncing your changes with other developers could also help you avoid big conflicts.

#### Merge feature branch into nobunaga
#### Merge feature branch into staging

In other words, integrate your changes into a branch that will be tested and prepared for release.

- Switch branch to nobunaga: `git checkout nobunaga`
- Merging feature branch into nobunaga: `git merge --no-ff feature/my-feature`
- Pushing changes to nobunaga: `git push origin nobunaga`
- Delete feature branch: `git branch -d feature/my-feature`
- Switch branch to staging: `git checkout staging`
- Merging feature branch into staging: `git merge --no-ff feature/my-feature`
- Pushing changes to staging: `git push origin staging`
- Delete feature branch: `git branch -d feature/my-feature` (alternatively, this can be navigated on the GitHub web UI)

This operation is done by Github when merging a PR.

So, what you have to keep in mind is:
- Open the PR against the `nobunaga` branch.
- After merging a PR you just have to delete your feature branch.
- Open the PR against the `staging` branch.
- After merging a PR you should delete your feature branch. This will be strictly enforced.

#### Create release branch

- Create branch from nobunaga: `git checkout -b release/3.4.0/optional-descriptive-message nobunaga`
- Create branch from staging: `git checkout -b release/3.4.0/descriptive-message/creator's_name staging`
- Updating version with major or minor: `./scripts/update_version.sh major|minor`
- Commit file changes with new version: `git commit -a -m "Updated version to 3.4.0"`

Expand All @@ -106,20 +111,20 @@ In other words, releasing stable code and generating a new version for bittensor
- Pushing changes to master: `git push origin master`
- Pushing tags to origin: `git push origin --tags`

To keep the changes made in the __release__ branch, we need to merge those back into `nobunaga`:
To keep the changes made in the __release__ branch, we need to merge those back into `staging`:

- Switch branch to nobunaga: `git checkout nobunaga`.
- Merging release branch into nobunaga: `git merge --no-ff release/3.4.0/optional-descriptive-message`
- Switch branch to staging: `git checkout staging`.
- Merging release branch into staging: `git merge --no-ff release/3.4.0/optional-descriptive-message`

This step may well lead to a merge conflict (probably even, since we have changed the version number). If so, fix it and commit.

After this the release branch may be removed, since we don’t need it anymore:

- `git branch -d release/3.4.0/optional-descriptive-message`
- `git branch -d release/3.4.0/descriptive-message/creator's-name`

#### Create the hotfix branch

- Create branch from master:`git checkout -b hotfix/3.3.4/optional-descriptive-message master`
- Create branch from master:`git checkout -b hotfix/3.3.4/descriptive-message/creator's-name master`
- Update patch version: `./scripts/update_version.sh patch`
- Commit file changes with new version: `git commit -a -m "Updated version to 3.3.4"`

Expand All @@ -128,37 +133,35 @@ Then, fix the bug and commit the fix in one or more separate commits:

#### Finishing a hotfix branch

When finished, the bugfix needs to be merged back into `master`, but also needs to be merged back into `nobunaga`, in order to safeguard that the bugfix is included in the next release as well. This is completely similar to how release branches are finished.
When finished, the bugfix needs to be merged back into `master`, but also needs to be merged back into `staging`, in order to safeguard that the bugfix is included in the next release as well. This is completely similar to how release branches are finished.

First, update master and tag the release.

- Switch branch to master: `git checkout master`
- Merge changes into master: `git merge --no-ff hotfix/3.3.4/optional-descriptive-message`
- Tag new version: `git tag -a v3.3.4 -m "Releasing v3.3.4: some comment about the hotfix"`
- Tag new version: `git tag -a v3.3.4 -m "Releasing v3.3.4: descriptive comment about the hotfix"`
- Pushing changes to master: `git push origin master`
- Pushing tags to origin: `git push origin --tags`

Next, include the bugfix in `nobunaga`, too:
Next, include the bugfix in `staging`, too:

- Switch branch to nobunaga: `git checkout nobunaga`
- Merge changes into nobunaga: `git merge --no-ff hotfix/3.3.4/optional-descriptive-message`
- Pushing changes to origin/nobunaga: `git push origin nobunaga`
- Switch branch to staging: `git checkout staging`
- Merge changes into staging: `git merge --no-ff hotfix/3.3.4/descriptive-message/creator's-name`
- Pushing changes to origin/staging: `git push origin staging`

The one exception to the rule here is that, **when a release branch currently exists, the hotfix changes need to be merged into that release branch, instead of** `nobunaga`. Back-merging the bugfix into the __release__ branch will eventually result in the bugfix being merged into `develop` too, when the release branch is finished. (If work in develop immediately requires this bugfix and cannot wait for the release branch to be finished, you may safely merge the bugfix into develop now already as well.)
The one exception to the rule here is that, **when a release branch currently exists, the hotfix changes need to be merged into that release branch, instead of** `staging`. Back-merging the bugfix into the __release__ branch will eventually result in the bugfix being merged into `develop` too, when the release branch is finished. (If work in develop immediately requires this bugfix and cannot wait for the release branch to be finished, you may safely merge the bugfix into develop now already as well.)

Finally, we remove the temporary branch:

- `git branch -d hotfix/3.3.4/optional-descriptive-message`

## TODO

- Changing the name of the develop branch from nobunaga to `integration`
- Because sometimes nobunaga are going to have a release branch.
- Knowing if master and nobunaga are different
- Knowing what is in nobunaga that is not merge yet
- Knowing if master and staging are different
- Knowing what is in staging that is not merge yet
- Document with not released developments
- When merged into nobunaga, generate the information exposing what's merged into nobunaga but not release.
- When merged into staging, generate the information exposing what's merged into staging but not release.
- When merged into master, generate github release and release notes.
- CircleCI job
- Merge nobunaga into master and release version (needed to release code)
- Build and Test bittensor (needed to merge PRs)
- Merge staging into master and release version (needed to release code)
- Build and Test Bittensor (needed to merge PRs)
Loading