Skip to content

Commit 224924e

Browse files
jayantkali-behjati
andauthored
Update Readme (#2200)
* update readme * Update README.md --------- Co-authored-by: Ali Behjati <[email protected]>
1 parent 8343cdc commit 224924e

File tree

1 file changed

+21
-16
lines changed

1 file changed

+21
-16
lines changed

README.md

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,20 @@ and [examples](https://github.com/pyth-network/pyth-examples/tree/main/price_fee
3535
3636
Fortuna is an off-chain service which can be used by [Entropy](https://pyth.network/entropy) providers.
3737

38-
## Development
38+
## Local Development
39+
40+
### Setup
41+
42+
Please install the following tools in order to work in this repository:
43+
44+
- [NVM](https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating) to manage your node version, then run `nvm use 20` to ensure you are using node version 20.
45+
- [Foundry](https://book.getfoundry.sh/getting-started/installation) in order to use `forge` for Ethereum contract development
46+
- [Solana CLI](https://solana.com/docs/intro/installation) for working with Solana programs.
47+
- After installing, please run `solana keygen new` to generate a local private key.
48+
- [Anchor](https://www.anchor-lang.com/docs/installation) for developing Solana programs.
49+
- [Pre-commit](https://pre-commit.com/) is used to automatically format and lint the repository.
50+
- After installing, please run `pre-commit install` in the root of the repo to configure the checks to run on each git commit.
51+
- [Rust](https://www.rust-lang.org/tools/install)
3952

4053
### Pull requests
4154

@@ -45,14 +58,16 @@ to update the package versions following the [Semantic Versioning](https://semve
4558

4659
### Releases
4760

48-
The repository has a CI workflow that will release javascript packages whose version number has changed.
49-
To perform a release, follow these steps:
61+
The repository has several CI workflows that automatically release new versions of the various components when a new Github release is published.
62+
Each component's workflow uses a specific tag format including the component name and version number (e.g., Fortuna uses the tag `fortuna-vX.Y.Z`).
63+
The general process for creating a new release is:
5064

51-
1. Update the version number in the `package.json` file for the package(s) you wish to release. Please follow [Semantic Versioning](https://semver.org/) for package versions.
65+
1. Update the version number of the component in the repo, e.g., in `package.json` or `Cargo.toml` or wherever. Please follow [Semantic Versioning](https://semver.org/) for package versions.
5266
2. Submit a PR with the changes and merge them in to main.
53-
3. Create a new tag `pyth-js-v<number>` and push to github. You can simply increment the version number each time -- it doesn't affect any of the published information.
54-
4. Pushing the tag automatically triggers a CI workflow to publish the updated packages to NPM.
67+
3. Create a new release on github. Configure the release to create a new tag when published. Set the tag name and version for the component you wish to release -- see the [Releases](https://github.com/pyth-network/pyth-crosschain/releases) page to identify the relevant tag.
68+
4. Publish the release. This step will automatically trigger a Github Action to build the package and release it. This step will e.g., publish packages to NPM, or build and push docker images.
5569

70+
Note that all javascript packages are released together using a tag of the form `pyth-js-v<number>`. (The `number` is arbitrary.)
5671
If you have a javascript package that shouldn't be published, simply add `"private": "true"` to the `package.json` file
5772
and it will be excluded from the publishing workflow. If you are creating a new public javascript package, you should add
5873
the following config option to `package.json`:
@@ -63,16 +78,6 @@ the following config option to `package.json`:
6378
},
6479
```
6580

66-
### pre-commit hooks
67-
68-
pre-commit is a tool that checks and fixes simple issues (formatting, ...) before each commit. You can install it by following [their website](https://pre-commit.com/). In order to enable checks for this repo run `pre-commit install` from command-line in the root of this repo.
69-
70-
The checks are also performed in the CI to ensure the code follows consistent formatting.
71-
72-
### Tilt CI
73-
74-
Integration tests run in Tilt (via the `tilt ci` command). The Tilt CI workflow requires approval from a member of the Pyth team. If you are a member, click on "Details" next to the "Workflow / ci-pyth-crosschain" check in a pull request, and then on the "Resume" button on the workflow page.
75-
7681
### Typescript Monorepo
7782

7883
All of the typescript / javascript packages in this repository are part of a

0 commit comments

Comments
 (0)