Ipfshttpclient

Latest version: v0.7.0

Safety actively analyzes 639247 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 2

13.05.2019

------------------------------

* Reimplement library as thin wrapper around the new *py-ipfs-http-client* library with helpful warnings about how to upgrade



Release

The release process uses `flit` to build the package, `Sphinx` to generate documentation,
publishes the documentation to an IPFS server (obtaining an IPFS hash), and then links
the IPFS hash (which varies based on content) to a static IPNS name.

The IPNS name requires a private key, which is controlled by the project owners and not
available to the public.

All steps can be completed up through but not including linking the IPFS hash to IPNS.


Pre-Requisites

* On Debian
* Python 3.8+ (or typings will be incomplete)


One-Time Setup

Install the release tools into your virtual environment:

$ pip install -r tools/release/requirements.txt

Source: [tools/release/requirements.txt](tools/release/requirements.txt)


The Go IPFS daemon

Yes, we use IPFS to host our documentation. In case you haven't already you can download it here:
https://ipfs.io/docs/install/


A dedicated IPNS key for publishing

For publishing the documentation an IPNS key used only for this task should be
generated if there is no such key already:

`ipfs key gen --type ed25519 ipfs-http-client`

This key will need to be copied to all other servers hosting the IPNS link.
Without the private key, other servers can host the IPFS files, but not the IPNS link.

At the time of writing the officially used key is: *12D3KooWEqnTdgqHnkkwarSrJjeMP2ZJiADWLYADaNvUb6SQNyPF*


Steps

Update the source code

1. Make a GIT commit
* Incrementing the version number in `ipfshttpclient/version.py`
* Completing the currently open `CHANGELOG.md` entry

`git commit -m "Release version 0.X.Y" ipfshttpclient/version.py CHANGELOG.md`

2. After the change is merged into master, pull master

3. Tag the GIT commit with the version number using an annotated and signed tag:

`git tag --sign -m "Release version 0.X.Y" 0.X.Y`

4. Push the new tag


Upload the new version to PyPI

Run:

$ flit build && flit publish

Re-generate and publish the documentation

Run:

$ python docs/publish.py ipns-key-id

The command will also print a commandline that may be used to mirror the generated
documentation on systems other then the current one.

If you don't have the IPNS private key, you can still exercise the documentation
generation and publish process:

$ python docs/publish.py

If you are publishing to an IPFS server that is remote, and protected by an HTTP reverse proxy
with TLS and basic authentication, run this instead:

$ PY_IPFS_HTTP_CLIENT_DEFAULT_ADDR=/dns/yourserver.tld/tcp/5001/https PY_IPFS_HTTP_CLIENT_DEFAULT_USERNAME=basicauthuser PY_IPFS_HTTP_CLIENT_DEFAULT_PASSWORD=basicauthpassword python publish.py ipns-key-id

Page 2 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.