https://github.com/ipfs/js-ipfs-repo
Implementation of the IPFS Repo spec in JavaScript
https://github.com/ipfs/js-ipfs-repo
Last synced: about 1 year ago
JSON representation
Implementation of the IPFS Repo spec in JavaScript
- Host: GitHub
- URL: https://github.com/ipfs/js-ipfs-repo
- Owner: ipfs
- License: other
- Created: 2015-11-13T14:55:11.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2025-03-28T18:07:12.000Z (about 1 year ago)
- Last Synced: 2025-04-08T18:51:48.511Z (about 1 year ago)
- Language: JavaScript
- Homepage: https://github.com/ipfs/specs/tree/master/repo
- Size: 2.52 MB
- Stars: 80
- Watchers: 25
- Forks: 51
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ipfs-repo
[](https://ipfs.tech)
[](https://discuss.ipfs.tech)
[](https://codecov.io/gh/ipfs/js-ipfs-repo)
[](https://github.com/ipfs/js-ipfs-repo/actions/workflows/js-test-and-release.yml)
> The repo and migration tools used by IPFS
## Table of contents
- [Structure](#structure)
- [Development](#development)
- [Publishing new versions](#publishing-new-versions)
- [Using prerelease versions](#using-prerelease-versions)
- [License](#license)
- [Contribute](#contribute)
## Structure
- [`/packages/ipfs-repo`](./packages/ipfs-repo) IPFS Repo implementation
- [`/packages/ipfs-repo-migrations`](./packages/ipfs-repo-migrations) Migration framework for versioning of JS IPFS Repo
## Development
1. Clone this repo
2. Run `npm install`
This will install [lerna](https://www.npmjs.com/package/lerna) and bootstrap the various packages, deduping and hoisting dependencies into the root folder.
If later you wish to remove all the `node_modules`/`dist` folders and start again, run `npm run reset && npm install` from the root.
See the scripts section of the root [`package.json`](./package.json) for more commands.
### Publishing new versions
1. Ensure you have a `GH_TOKEN` env var containing a GitHub [Personal Access Token](https://github.com/settings/tokens) with `public_repo` permissions
2. From the root of this repo run `npm run release` and follow the on screen prompts. It will use [conventional commits](https://www.conventionalcommits.org) to work out the new package version
### Using prerelease versions
Any changed packages from each successful build of master are published to npm as canary builds under the npm tag `next`.
Canary builds only consider changes to packages in the last built commit so changes to the root config files should not result in new prereleases being published to npm.
## License
Licensed under either of
- Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / )
- MIT ([LICENSE-MIT](LICENSE-MIT) / )
## Contribute
Contributions welcome! Please check out [the issues](https://github.com/ipfs/js-ipfs-repo/issues).
Also see our [contributing document](https://github.com/ipfs/community/blob/master/CONTRIBUTING_JS.md) for more information on how we work, and about contributing in general.
Please be aware that all interactions related to this repo are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md).
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
[](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)