feat(slice-4): v0.0.49 — core2 yanked unblock + sc-service WIP (crates.io API gap found)
Slice 4 Ship 2 parcial. RESUELVE el blocker real que difirió sc-service 3
sesiones (core2 yanked), pero DESCUBRE un segundo bloqueo arquitectural que
requiere decisión de David. Build verde, 213 tests, sin regresiones.
=== RESUELTO: core2 yanked (el muro de 3 sesiones) ===
sc-network-types 0.16 → cid ^0.9 (0.9.0 yanked) → core2 ^0.4 (0.4.0 yanked,
las no-yanked son 0.3.x que no satisfacen ^0.4). Cargo no auto-selecciona
versiones yanked → resolución fallaba. Era exactamente lo documentado en
chain_spec.rs Slice 3 que difirió sc-service.
Fix: vendorizado el .crate publicado de core2 0.4.0 (yanked pero descargable)
en vendor/core2-0.4.0/ + [patch.crates-io] core2 = { path = ... }. Una path
source es seleccionable independiente del estado yanked. El git source
(technocreatives/core2 master) resultó ser workspace ≤0.3.x, no servía.
=== DESCUBIERTO: crates.io consensus crates ≠ git tag API ===
Las crates sc-/sp- consensus PUBLICADAS (sc-consensus-aura 0.52.0 +
sp-consensus-aura 0.45.0) tienen API DISTINTA al git tag polkadot-stable2509-3
bajo el MISMO número de versión:
- git tag: sc_consensus_aura::standalone::slot_duration_at +
sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration
- crates.io: slot_duration_at en root + NO existe slot InherentDataProvider
(Slot no implementa el trait; Slot::from_timestamp toma 1 arg)
polkadot-sdk reusa números de versión con cambios git no publicados.
Construir un node service real requiere migrar TODO el stack sc-/sp- consensus
a git sources del tag — la misma cirugía duplicate-crate que golpeó pallet-revive
(Ship 2 v0.0.39). Decisión arquitectural para David.
Cambios:
- Cargo.toml: [patch.crates-io] core2 path vendor + sp-timestamp 39 + sp-blockchain 41
- vendor/core2-0.4.0/: crate vendorizado (yanked artifact original)
- node Cargo.toml: 13 sc-* + sp- consensus deps + jsonrpsee/rpc + core2 unblock dep
- node src/service.rs + rpc.rs: WIP escritos (verbatim stable2509-3 + 2 fixes API
crates.io), NO mod-declarados (preservados para siguiente fase)
- node src/main.rs: finding documentado, mods service/rpc neutralizados
Verificación:
- cargo check -p origin-chain-node: EXIT 0 (deps resuelven vía core2, mods off)
- cargo test --workspace: 213 verde, 0 fail, sin regresiones
- core2 0.4.0 + cid 0.9.0 ahora en Cargo.lock (vía path patch)
Próximo: decisión David — (A) migrar sc-/sp- consensus a git sources tag
stable2509-3 (real node, riesgo duplicate-crate) vs (B) mantener publicadas
(node service diferido a futura generación Substrate). Ver SLICE_4 plan §10.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
05b6c70fca
commit
e0e0b907b7
24 files changed
+12242
-227
No files matched your search
Vendored
+66
@@ -0,0 +1,66 @@
|
||||
# core2
|
||||
|
||||
[](https://github.com/bbqsrc/core2/actions)
|
||||
[](https://docs.rs/core2)
|
||||

|
||||
|
||||
Ever wanted a `Cursor` or the `Error` trait in `no_std`? Well now you can have it. A 'fork' of Rust's `std` modules for `no_std` environments, with the added benefit of optionally taking advantage of `alloc`.
|
||||
|
||||
The goal of this crate is to provide a stable interface for building I/O and error trait functionality in
|
||||
`no_std` environments. The current code corresponds to the most recent stable API of Rust 1.47.0.
|
||||
It is also a goal to achieve a true alloc-less experience, with opt-in alloc support.
|
||||
|
||||
This crate works on `stable` with some limitations in functionality, and `nightly` without limitations by adding
|
||||
the relevant feature flag.
|
||||
|
||||
This crate is `std` by default -- use no default features to get `no_std` mode.
|
||||
|
||||
## Usage
|
||||
|
||||
```toml
|
||||
[dependencies]
|
||||
core2 = "0.3"
|
||||
```
|
||||
|
||||
Add the crate, use the things you would usually want from `std::io`, but instead from `core2::io`, and
|
||||
use `core2::error::Error` in place of `std::error::Error`.
|
||||
|
||||
### Features
|
||||
|
||||
- **std**: enables `std` pass-throughs for the polyfilled types, but allows accessing the new types
|
||||
- **alloc**: enable aspects of the `Read` and `Write` traits that require `alloc` support (WIP)
|
||||
- **nightly**: enables **nightly**-only features, such as `BufReader` and `BufWriter` with const generic buffers.
|
||||
|
||||
### Differences to `std::io`
|
||||
|
||||
- No `std::io::Error`, so we have our own copy without any `Os` error functions
|
||||
- `IoSlice` and the `*_vectored` family of functions are not implemented.
|
||||
- `BufReader` and `BufWriter` have a different signature, as they now use a const generic bounded array for the internal buffer. (Requires **nightly** feature)
|
||||
|
||||
Other than items perhaps being entirely missing or certain functions unavailable on some traits, no function signatures have been changed.
|
||||
|
||||
### Limitations
|
||||
|
||||
- Using the buffer types currently requires **nightly** due to the use of const generics.
|
||||
- Using `copy` or the buffer types with `std` support currently requires **nightly** due to the `initializer` API.
|
||||
|
||||
## Where is it used?
|
||||
|
||||
All of the below are works in progress, but should help with demonstrating how to use this crate.
|
||||
|
||||
- [thiserror_core2](https://github.com/bbqsrc/thiserror-core2): fork of `thiserror` using the `core2::error::Error` trait.
|
||||
|
||||
## License
|
||||
|
||||
Licensed under either of
|
||||
|
||||
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
|
||||
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
|
||||
|
||||
at your option.
|
||||
|
||||
---
|
||||
|
||||
Almost all of the code in this repository is a copy of the [Rust language codebase](https://github.com/rust-lang/rust) with minor modifications.
|
||||
|
||||
For attributions, see https://thanks.rust-lang.org/.
|
||||
Reference in new issue
Block a user