Replies: 1 comment
-
|
New release plan has been done. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Release Plan: py-mult* Repositories and py-libp2p (Updated with Base58 Migration)
Overview
This document outlines the release plan for py-multihash, py-multibase, py-multicodec, py-cid, and py-libp2p. The order matters due to dependency relationships. This version includes the base58 to py-multicodec migration.
TL;DR
Release Order (must follow this sequence):
py-multihash 3.0.0 - Add type annotations (required by py-cid)DONEpy-multibase 2.0.0 - New release (can be parallel with define interfaces for milestone 1 #3)DONEKey Points:
Dependency Chain
Verified Dependencies:
Note: Arrows indicate release order, not dependency relationships. py-multibase and py-multicodec are independent and can be released in parallel with py-multihash.
Actual Dependencies:
python-baseconv,six,morphys(NO py-multihash dependency)varint(NO py-multibase or py-multihash dependency) + includes base58 functionalitypy-multihash,py-multibase,py-multicodec>=2.0.0(all three, uses py-multicodec for base58)py-multihash(direct),py-cid(via multiaddr),py-multicodec>=2.0.0(for base58)Release Order and Steps
Phase 1: py-multihash (Foundation)
Repository:
multiformats/py-multihashCurrent Version: 2.0.1 (Dec 2020)
Target Version: 3.0.0
Step 1.1: Add Type Annotations
multiformats/py-multihashadding type annotations toMultihashclassdigest()function is present (already in master branch)Step 1.2: Release py-multihash 3.0.0
v3.0.0py-multihash==3.0.0Deliverable:
py-multihash>=3.0.0available on PyPI with type annotations ✅ DONEPhase 2: py-multibase
Repository:
multiformats/py-multibaseCurrent Version: 1.0.3
Target Version: 2.0.0
Verified: py-multibase does NOT depend on py-multihash. Dependencies are:
python-baseconv,six,morphysStatus: New release required (not optional) ✅ DONE
Step 2.1: Prepare Release
Step 2.2: Update Version and Release
v2.0.0py-multibase==2.0.0Deliverable:
py-multibase>=2.0.0available on PyPI (required for release chain) ✅ DONEPhase 3: py-multicodec
Repository:
multiformats/py-multicodecCurrent Version: 0.2.1
Target Version: 2.0.0 (updated from 1.0.0 - base58 integration requires major version bump)
Verified: py-multicodec does NOT depend on py-multibase or py-multihash. Only depends on:
varintStatus: New release required (not optional)
IMPORTANT: Version is 2.0.0 (not 1.0.0) because base58 integration is a significant feature addition that warrants a major version bump.
Step 3.1: Prepare Release
b58encode()andb58decode()functions are availableStep 3.2: Update Version and Release
v2.0.0py-multicodec==2.0.0from multicodec import b58encode, b58decodeDeliverable:
py-multicodec>=2.0.0available on PyPI with base58 integration (required for release chain)Base58 Integration Notes:
base58packagefrom multicodec import b58encode, b58decodeb58encode(data: bytes) -> bytes,b58decode(encoded: str) -> bytesPhase 4: py-cid
Repository:
ipld/py-cidMaintainers: acul71, pacrob
Current Version: 0.3.1 (uses pymultihash and base58)
Target Version: 0.4.0 (with py-multihash migration AND base58 to py-multicodec migration)
Step 4.1: Update Dependencies
pyproject.tomldependencies:pymultihashdependency (old package)base58dependency (now provided by py-multicodec>=2.0.0)pymultihashtomultihash(py-multihash)Step 4.1.5: Migrate base58 to py-multicodec
import base58→from multicodec import b58encode, b58decodebase58.b58encode()→b58encode(),base58.b58decode()→b58decode()Step 4.2: Code Migration
Step 4.3: Testing
Step 4.4: Release py-cid 0.4.0
v0.4.0py-cid==0.4.0Deliverable:
py-cid>=0.4.0available on PyPI withpy-multihash>=3.0.0dependency andpy-multicodec>=2.0.0for base58Phase 5: py-libp2p
Repository:
libp2p/py-libp2pCurrent Version: 0.4.0
Target Version: 0.4.1
Step 5.1: Update Dependencies
pyproject.tomlto use official py-multihash:multiaddrdependency if needed (should get py-cid 0.4.0 automatically)Step 5.1.5: Migrate base58 to py-multicodec
fix/multicodec-base58-depbranch)libp2p/peer/id.py:import base58→from multicodec import b58decode, b58encodelibp2p/pubsub/pubsub.py:import base58→from multicodec import b58encodelibp2p/kad_dht/utils.py:import base58→from multicodec import b58encodeexamples/pubsub/floodsub.py: Update importsexamples/pubsub/pubsub.py: Update importstests/core/peer/test_peerid.py: Update importstests/core/relay/test_circuit_v2_transport.py: Update importsbase58.b58encode()→b58encode(),base58.b58decode()→b58decode()ID.from_base58()andID.to_base58()methods work correctlyNote: The base58 migration has already been completed in the
fix/multicodec-base58-depbranch. This step documents what was done.Step 5.2: Remove Fork Dependency
Step 5.3: Code Updates
Step 5.4: Testing
Step 5.5: Release py-libp2p 0.4.1
v0.4.1libp2p==0.4.1Deliverable:
libp2p>=0.4.1available on PyPI with official dependencies and py-multicodec>=2.0.0 for base58Critical Path Summary
Note: Both py-multibase and py-multicodec require new releases. They are independent of py-multihash and can be updated in parallel. py-multicodec 2.0.0 includes base58 functionality, eliminating need for separate base58 package.
Success Criteria
Notes
Base58 Migration
fix/multicodec-base58-depbranch for py-libp2pfrom multicodec import b58encode, b58decodeb58encode(data: bytes) -> bytes,b58decode(encoded: str) -> bytesVersion Changes
Timing
References
downloads/base58-to-multicodec-migration.mdpy-multicodec>=2.0.0dependencyfix/multicodec-base58-dep(contains completed migration for py-libp2p)Additional Considerations
Beta Was this translation helpful? Give feedback.
All reactions