summaryrefslogtreecommitdiff
path: root/python-nevermined-contracts.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-nevermined-contracts.spec')
-rw-r--r--python-nevermined-contracts.spec414
1 files changed, 414 insertions, 0 deletions
diff --git a/python-nevermined-contracts.spec b/python-nevermined-contracts.spec
new file mode 100644
index 0000000..5caaffa
--- /dev/null
+++ b/python-nevermined-contracts.spec
@@ -0,0 +1,414 @@
+%global _empty_manifest_terminate_build 0
+Name: python-nevermined-contracts
+Version: 2.1.0
+Release: 1
+Summary: Smart Contracts for Nevermined Data platform
+License: Apache Software License 2.0
+URL: https://github.com/nevermined-io/contracts
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/b9/5b/43249356f971b03e61db90b474f2908dc36ec3a2d738a080204e2effbaa4/nevermined-contracts-2.1.0.tar.gz
+BuildArch: noarch
+
+
+%description
+## Get Started
+For local development of `nevermined-contracts` you can either use Docker, or setup the development environment on your machine.
+### Docker
+The simplest way to get started with is using the [Nevermined Tools](https://github.com/nevermined-io/tools),
+a docker compose application to run all the Nevermined stack.
+### Public Network development
+For deploying in a public network check [ReleaseProcess.md](./docs/ReleaseProcess.md) first.
+### Local development
+As a pre-requisite, you need:
+* Node.js
+* yarn
+Clone the project and install all dependencies:
+```bash
+git clone git@github.com:nevermined-io/contracts.git
+cd nevermined-contracts/
+```
+Install dependencies:
+```bash
+yarn
+```
+Compile the solidity contracts:
+```bash
+yarn compile
+```
+In a new terminal, launch an Ethereum RPC client, e.g. hardhat:
+```bash
+npx hardhat node --port 18545
+```
+Switch back to your other terminal and deploy the contracts:
+```bash
+yarn deploy:external
+```
+For redeployment run this instead
+```bash
+yarn clean
+yarn compile
+yarn deploy:external
+```
+Upgrade contracts [**optional**]:
+```bash
+yarn upgrade:external
+```
+## Testing
+Run tests with `yarn test`, e.g.:
+```bash
+yarn test test/unit/agreements/AgreementStoreManager.Test.js
+```
+### Code Linting
+Linting is setup for `JavaScript` with [ESLint](https://eslint.org) & Solidity with [Ethlint](https://github.com/duaraghav8/Ethlint).
+Code style is enforced through the CI test process, builds will fail if there're any linting errors.
+```bash
+yarn lint
+```
+## Networks
+When Nevermined contracts are deployed into different networks, the ABIs referring to the specific
+version deployed are copied into the [Artifacts repository](https://artifacts.nevermined.rocks/).
+You can find more information about the this into the [Release Process documentation](docs/ReleaseProcess.md).
+You can browse the different artifacts deployed here: http://artifacts-nevermined-rocks.s3-website-us-east-1.amazonaws.com/
+Also you can find a complete list here: https://artifacts.nevermined.rocks/
+## Packages
+To facilitate the integration of `nevermined-contracts` there are `Python`, `JavaScript` packages ready to be integrated. Those libraries include the Smart Contract ABI's.
+Using these packages helps to avoid compiling the Smart Contracts and copying the ABI's manually to your project. In that way the integration is cleaner and easier.
+The packages provided currently are:
+* JavaScript `NPM` package - As part of the [@nevermined-io npm organization](https://www.npmjs.com/settings/nevermined-io/packages),
+ the [npm nevermined-contracts package](https://www.npmjs.com/package/@nevermined-io/contracts) provides the ABI's
+ to be imported from your `JavaScript` code.
+* Python `Pypi` package - The [Pypi nevermined-contracts package](https://pypi.org/project/nevermined-contracts/) provides
+ the same ABI's to be used from `Python`.
+The packages contains all the content from the `doc/` and `artifacts/` folders.
+In `JavaScript` they can be used like this:
+Install the `nevermined-contracts` `npm` package.
+```bash
+npm install @nevermined-io/contracts
+```
+Load the ABI of the `NeverminedToken` contract on the `Rinkeby` network:
+```javascript
+const NeverminedToken = require('@nevermined-io/contracts/artifacts/NeverminedToken.rinkeby.json')
+```
+The structure of the `artifacts` is:
+```json
+{
+ "abi": "...",
+ "bytecode": "0x60806040523...",
+ "address": "0x45DE141F8Efc355F1451a102FB6225F1EDd2921d",
+ "version": "v0.9.1"
+}
+```
+## Documentation
+* [Contracts Documentation](doc/contracts/README.md)
+* [Release process](doc/RELEASE_PROCESS.md)
+* [Packaging of libraries](doc/PACKAGING.md)
+* [Upgrading of contracts](doc/UPGRADES.md)
+* [Template lifecycle](doc/TEMPLATE_LIFE_CYCLE.md)
+## Prior Art
+This project builds on top of the work done in open source projects:
+* [zeppelinos/zos](https://github.com/zeppelinos/zos)
+* [OpenZeppelin/openzeppelin-eth](https://github.com/OpenZeppelin/openzeppelin-eth)
+## Attribution
+This project is based in the Ocean Protocol [Keeper Contracts](https://github.com/oceanprotocol/keeper-contracts).
+It keeps the same Apache v2 License and adds some improvements. See [NOTICE file](NOTICE).
+## License
+```text
+Copyright 2022 Nevermined AG
+This product includes software developed at
+BigchainDB GmbH and Ocean Protocol (https://www.oceanprotocol.com/)
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+```
+
+%package -n python3-nevermined-contracts
+Summary: Smart Contracts for Nevermined Data platform
+Provides: python-nevermined-contracts
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-nevermined-contracts
+## Get Started
+For local development of `nevermined-contracts` you can either use Docker, or setup the development environment on your machine.
+### Docker
+The simplest way to get started with is using the [Nevermined Tools](https://github.com/nevermined-io/tools),
+a docker compose application to run all the Nevermined stack.
+### Public Network development
+For deploying in a public network check [ReleaseProcess.md](./docs/ReleaseProcess.md) first.
+### Local development
+As a pre-requisite, you need:
+* Node.js
+* yarn
+Clone the project and install all dependencies:
+```bash
+git clone git@github.com:nevermined-io/contracts.git
+cd nevermined-contracts/
+```
+Install dependencies:
+```bash
+yarn
+```
+Compile the solidity contracts:
+```bash
+yarn compile
+```
+In a new terminal, launch an Ethereum RPC client, e.g. hardhat:
+```bash
+npx hardhat node --port 18545
+```
+Switch back to your other terminal and deploy the contracts:
+```bash
+yarn deploy:external
+```
+For redeployment run this instead
+```bash
+yarn clean
+yarn compile
+yarn deploy:external
+```
+Upgrade contracts [**optional**]:
+```bash
+yarn upgrade:external
+```
+## Testing
+Run tests with `yarn test`, e.g.:
+```bash
+yarn test test/unit/agreements/AgreementStoreManager.Test.js
+```
+### Code Linting
+Linting is setup for `JavaScript` with [ESLint](https://eslint.org) & Solidity with [Ethlint](https://github.com/duaraghav8/Ethlint).
+Code style is enforced through the CI test process, builds will fail if there're any linting errors.
+```bash
+yarn lint
+```
+## Networks
+When Nevermined contracts are deployed into different networks, the ABIs referring to the specific
+version deployed are copied into the [Artifacts repository](https://artifacts.nevermined.rocks/).
+You can find more information about the this into the [Release Process documentation](docs/ReleaseProcess.md).
+You can browse the different artifacts deployed here: http://artifacts-nevermined-rocks.s3-website-us-east-1.amazonaws.com/
+Also you can find a complete list here: https://artifacts.nevermined.rocks/
+## Packages
+To facilitate the integration of `nevermined-contracts` there are `Python`, `JavaScript` packages ready to be integrated. Those libraries include the Smart Contract ABI's.
+Using these packages helps to avoid compiling the Smart Contracts and copying the ABI's manually to your project. In that way the integration is cleaner and easier.
+The packages provided currently are:
+* JavaScript `NPM` package - As part of the [@nevermined-io npm organization](https://www.npmjs.com/settings/nevermined-io/packages),
+ the [npm nevermined-contracts package](https://www.npmjs.com/package/@nevermined-io/contracts) provides the ABI's
+ to be imported from your `JavaScript` code.
+* Python `Pypi` package - The [Pypi nevermined-contracts package](https://pypi.org/project/nevermined-contracts/) provides
+ the same ABI's to be used from `Python`.
+The packages contains all the content from the `doc/` and `artifacts/` folders.
+In `JavaScript` they can be used like this:
+Install the `nevermined-contracts` `npm` package.
+```bash
+npm install @nevermined-io/contracts
+```
+Load the ABI of the `NeverminedToken` contract on the `Rinkeby` network:
+```javascript
+const NeverminedToken = require('@nevermined-io/contracts/artifacts/NeverminedToken.rinkeby.json')
+```
+The structure of the `artifacts` is:
+```json
+{
+ "abi": "...",
+ "bytecode": "0x60806040523...",
+ "address": "0x45DE141F8Efc355F1451a102FB6225F1EDd2921d",
+ "version": "v0.9.1"
+}
+```
+## Documentation
+* [Contracts Documentation](doc/contracts/README.md)
+* [Release process](doc/RELEASE_PROCESS.md)
+* [Packaging of libraries](doc/PACKAGING.md)
+* [Upgrading of contracts](doc/UPGRADES.md)
+* [Template lifecycle](doc/TEMPLATE_LIFE_CYCLE.md)
+## Prior Art
+This project builds on top of the work done in open source projects:
+* [zeppelinos/zos](https://github.com/zeppelinos/zos)
+* [OpenZeppelin/openzeppelin-eth](https://github.com/OpenZeppelin/openzeppelin-eth)
+## Attribution
+This project is based in the Ocean Protocol [Keeper Contracts](https://github.com/oceanprotocol/keeper-contracts).
+It keeps the same Apache v2 License and adds some improvements. See [NOTICE file](NOTICE).
+## License
+```text
+Copyright 2022 Nevermined AG
+This product includes software developed at
+BigchainDB GmbH and Ocean Protocol (https://www.oceanprotocol.com/)
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+```
+
+%package help
+Summary: Development documents and examples for nevermined-contracts
+Provides: python3-nevermined-contracts-doc
+%description help
+## Get Started
+For local development of `nevermined-contracts` you can either use Docker, or setup the development environment on your machine.
+### Docker
+The simplest way to get started with is using the [Nevermined Tools](https://github.com/nevermined-io/tools),
+a docker compose application to run all the Nevermined stack.
+### Public Network development
+For deploying in a public network check [ReleaseProcess.md](./docs/ReleaseProcess.md) first.
+### Local development
+As a pre-requisite, you need:
+* Node.js
+* yarn
+Clone the project and install all dependencies:
+```bash
+git clone git@github.com:nevermined-io/contracts.git
+cd nevermined-contracts/
+```
+Install dependencies:
+```bash
+yarn
+```
+Compile the solidity contracts:
+```bash
+yarn compile
+```
+In a new terminal, launch an Ethereum RPC client, e.g. hardhat:
+```bash
+npx hardhat node --port 18545
+```
+Switch back to your other terminal and deploy the contracts:
+```bash
+yarn deploy:external
+```
+For redeployment run this instead
+```bash
+yarn clean
+yarn compile
+yarn deploy:external
+```
+Upgrade contracts [**optional**]:
+```bash
+yarn upgrade:external
+```
+## Testing
+Run tests with `yarn test`, e.g.:
+```bash
+yarn test test/unit/agreements/AgreementStoreManager.Test.js
+```
+### Code Linting
+Linting is setup for `JavaScript` with [ESLint](https://eslint.org) & Solidity with [Ethlint](https://github.com/duaraghav8/Ethlint).
+Code style is enforced through the CI test process, builds will fail if there're any linting errors.
+```bash
+yarn lint
+```
+## Networks
+When Nevermined contracts are deployed into different networks, the ABIs referring to the specific
+version deployed are copied into the [Artifacts repository](https://artifacts.nevermined.rocks/).
+You can find more information about the this into the [Release Process documentation](docs/ReleaseProcess.md).
+You can browse the different artifacts deployed here: http://artifacts-nevermined-rocks.s3-website-us-east-1.amazonaws.com/
+Also you can find a complete list here: https://artifacts.nevermined.rocks/
+## Packages
+To facilitate the integration of `nevermined-contracts` there are `Python`, `JavaScript` packages ready to be integrated. Those libraries include the Smart Contract ABI's.
+Using these packages helps to avoid compiling the Smart Contracts and copying the ABI's manually to your project. In that way the integration is cleaner and easier.
+The packages provided currently are:
+* JavaScript `NPM` package - As part of the [@nevermined-io npm organization](https://www.npmjs.com/settings/nevermined-io/packages),
+ the [npm nevermined-contracts package](https://www.npmjs.com/package/@nevermined-io/contracts) provides the ABI's
+ to be imported from your `JavaScript` code.
+* Python `Pypi` package - The [Pypi nevermined-contracts package](https://pypi.org/project/nevermined-contracts/) provides
+ the same ABI's to be used from `Python`.
+The packages contains all the content from the `doc/` and `artifacts/` folders.
+In `JavaScript` they can be used like this:
+Install the `nevermined-contracts` `npm` package.
+```bash
+npm install @nevermined-io/contracts
+```
+Load the ABI of the `NeverminedToken` contract on the `Rinkeby` network:
+```javascript
+const NeverminedToken = require('@nevermined-io/contracts/artifacts/NeverminedToken.rinkeby.json')
+```
+The structure of the `artifacts` is:
+```json
+{
+ "abi": "...",
+ "bytecode": "0x60806040523...",
+ "address": "0x45DE141F8Efc355F1451a102FB6225F1EDd2921d",
+ "version": "v0.9.1"
+}
+```
+## Documentation
+* [Contracts Documentation](doc/contracts/README.md)
+* [Release process](doc/RELEASE_PROCESS.md)
+* [Packaging of libraries](doc/PACKAGING.md)
+* [Upgrading of contracts](doc/UPGRADES.md)
+* [Template lifecycle](doc/TEMPLATE_LIFE_CYCLE.md)
+## Prior Art
+This project builds on top of the work done in open source projects:
+* [zeppelinos/zos](https://github.com/zeppelinos/zos)
+* [OpenZeppelin/openzeppelin-eth](https://github.com/OpenZeppelin/openzeppelin-eth)
+## Attribution
+This project is based in the Ocean Protocol [Keeper Contracts](https://github.com/oceanprotocol/keeper-contracts).
+It keeps the same Apache v2 License and adds some improvements. See [NOTICE file](NOTICE).
+## License
+```text
+Copyright 2022 Nevermined AG
+This product includes software developed at
+BigchainDB GmbH and Ocean Protocol (https://www.oceanprotocol.com/)
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+```
+
+%prep
+%autosetup -n nevermined-contracts-2.1.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-nevermined-contracts -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 17 2023 Python_Bot <Python_Bot@openeuler.org> - 2.1.0-1
+- Package Spec generated