Review: rust-apache-avro-derive 0.22.0-1
Package Information
| Description | derives Avro schemas from Rust structs and enums Apache Avro is a schema-based data serialization format. Its schemas describe the types and structure of records exchanged between applications or stored in files. This procedural macro implements schema generation for Rust structs and enums through the AvroSchema derive. Attributes control names, namespaces, aliases, defaults and other schema properties. It is normally used through the derive feature of the apache-avro library. |
|---|---|
| Maintainer | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> |
| Changed By | Steffen Moeller <moeller@debian.org> |
| Sponsor | moeller@debian.org |
| Distribution | unstable |
| Architecture | any |
| VCS | git: https://salsa.debian.org/rust-team/debcargo-conf.git [src/apache-avro-derive] (browse) |
| Closes | #1152656 |
| Tracker | https://tracker.debian.org/pkg/rust-apache-avro-derive |
| Uploaded | 7 days ago |
New Package Report
.changes
| Source | rust-apache-avro-derive |
|---|---|
| Version | 0.22.0-1 |
| Changed-By | Steffen Moeller <moeller@debian.org> |
| Architecture | source amd64 |
| Distribution | unstable |
| Date | Sat, 31 Oct 2026 18:23:30 +0100 |
Changelog
rust-apache-avro-derive (0.22.0-1) unstable; urgency=medium . * Initial release (Closes: #1152656). * Credit the Serde-derived code and Debian-added tests in copyright metadata. * Port to Debian's darling 0.24 and syn 3, with enum regression tests. * Restore the parent library dependency for integration tests. * Complete the derive documentation example so it can be compiled. * Complete the package description and copyright information. * Package apache-avro-derive 0.22.0 from crates.io using debcargo 2.8.4
.dsc
| Priority | optional |
|---|---|
| Component | main |
| Package-List | librust-apache-avro-derive-dev deb rust optional arch=any |
| Section | rust |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: apache-avro-derive Source: https://github.com/apache/avro-rs Files: * Copyright: 2010-2025 The Apache Software Foundation License: Apache-2.0 Comment: Copyright and original implementation credit are recorded in NOTICE. The initial Rust implementation was developed by Flavien Raynaud and donated to the Apache Avro project in 2020. Files: src/case.rs src/utils.rs Copyright: 2010-2025 The Apache Software Foundation David Tolnay <dtolnay@gmail.com> Serde Developers License: Apache-2.0 Comment: src/case.rs identifies its case-conversion code as copied from serde_derive/src/internals/case.rs in https://github.com/serde-rs/serde. src/utils.rs credits David Tolnay for the Serde-derived error conversion helper. Serde offers its code under Apache-2.0 or MIT; the Apache-2.0 option is used here, alongside the Apache-licensed Avro modifications. The copied snippets do not state copyright years for their Serde authors. Files: src/lib.rs Copyright: 2010-2025 The Apache Software Foundation David Tolnay <dtolnay@gmail.com> Serde Developers 2026 Steffen Moeller <moeller@debian.org> License: Apache-2.0 Comment: The procedural-macro entry point is marked as templated from Serde; its Apache-2.0 licensing option is used here as above. The debian_syn3_tests module was added by the Debian packaging in debian/patches/darling-0.24-syn-3.patch. Its 2026 contribution is attributed to Steffen Moeller and distributed under Apache-2.0. Files: debian/* Copyright: 2026 Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> 2026 Steffen Moeller <moeller@debian.org> License: Apache-2.0 License: Apache-2.0 On Debian systems the full license text is available in /usr/share/common-licenses/Apache-2.0.
DFSG Assistant LLM REVIEW 0 blocker, 0 important, 0 minor
This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.
Reviewed 7 days ago.
Report
DFSG NEW review for rust-apache-avro-derive version 0.22.0-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: Yes
- Issues: 0 blocker, 0 important, 0 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
All 114 files in the tree are Apache-2.0: every source and test file carries the ASF licence header, LICENSE holds the standard Apache 2.0 text and NOTICE names the ASF plus the Flavien Raynaud donation, which debian/copyright records. debian/copyright is DEP-5 with an exact Format line, disjoint stanzas that match the tree (src/case.rs and src/utils.rs for the code copied from Serde, with David Tolnay and Serde Developers named, src/lib.rs for the Debian-added test module, debian/*), and points at /usr/share/common-licenses/Apache-2.0, so no licence text needs reproducing. The Apache-2.0 option of Serde's MIT/Apache-2.0 dual licence is compatible with the rest.
Packaging
This is a clean debcargo import: compat 13 with dh-sequence-cargo, all crate dependencies in Build-Depends-Arch with the correct architecture placement, every dependency verified present in the archive at a satisfying version, and the <!nocheck> markers correct because dh-cargo compiles in its dh_auto_test step rather than in the build step. The three patches carry DEP-3 headers, the darling/syn 3 port is complete in the source, README.source documents the port, the test cycle and the validation, the autopkgtest runs the all-target suite, and the changelog, Vcs-* fields and Standards-Version are in order.
Issues
None.
Verified ◂
- The prescan listed no file for follow-up; its holder check reported that every copyright holder it found is named in debian/copyright, which matches my own reading of LICENSE, NOTICE and the file headers.
- Full inventory of upstream files read (src/ 14 files, tests/ 48 files, build.rs, Cargo.toml, Cargo.toml.orig, Cargo.lock, .cargo_vcs_info.json, LICENSE, NOTICE, README.md). Every src/*.rs file and the test sources carry the
Licensed to the Apache Software Foundationheader; a grep for Copyright/(C)/©/SPDX/GNU/Lesser/Mozilla/public domain/All rights reserved/MIT over src/ and tests/ found no other licence or holder. - LICENSE is the unmodified Apache 2.0 text (202 lines) and is in /usr/share/common-licenses, so the
License: Apache-2.0pointer in debian/copyright is sufficient; NOTICE (ASF 2010-2025, Flavien Raynaud donation) is shipped in the source package and copied into the installed registry by dh-cargo. - src/case.rs (
Code copied from serde <.../serde_derive/src/internals/case.rs>) and src/utils.rs (Copied from serde, originally written by David Tolnay) are covered by theFiles: src/case.rs src/utils.rsstanza, which names both Serde Developers and David Tolnay; choosing Apache-2.0 from Serde's MIT/Apache-2.0 dual licence is compatible with the surrounding Apache-2.0 code, so no MIT text is required. - tests/expanded/*.expanded.rs are macrotest
cargo expandsnapshots whose generator inputs (the adjacent .rs files, run through tests/expand.rs) are in the package; tests/ui/.stderr are rustc error output for the trybuild cases; tests/derive.proptest-regressions is proptest seed data; Cargo.lock and .cargo_vcs_info.json are cargo metadata. None of these is a build artifact whose source is absent, and none carries licence terms of its own. - debian/copyright is DEP-5 with the exact copyright-format 1.0 URL; its stanzas are disjoint (
Files: *,src/case.rs src/utils.rs,src/lib.rs,debian/*), so ordering does not matter. The Steffen Moeller attribution for the debian_syn3_tests module added by debian/patches/darling-0.24-syn-3.patch is correct and present. - debian/control: compat 13 (
debhelper-compat (= 13)),dh-sequence-cargo,Architecture: any,Multi-Arch: same,Breaks: rustc (<< 1.88.0~)and the versionedProvidesare right for a proc-macro crate; the binary Depends list matches the crate's dependencies and features exactly (darling without features, proc-macro2, quote, serde_json +std, syn +full +fold, uuid +serde +std, plus the rustversion build-dependency). - Every dependency exists at a satisfying version: librust-syn-dev 3.0.9-1 provides
librust-syn-3+fold-devandlibrust-syn-3+full-dev, librust-darling-dev 0.24.1-1, librust-proc-macro2-dev 1.0.107-1, librust-quote-dev 1.0.47-1, librust-rustversion-dev 1.0.23-1, librust-serde-json-dev 1.0.154-1, librust-uuid-dev 1.29.0-1, librust-serde-dev 1.0.229-1, librust-macrotest-dev 1.2.1-2, librust-proptest-dev 1.11.0-2, librust-pretty-assertions-dev 1.4.1-1+b1, librust-trybuild-dev 1.0.121-1. - The
< !nocheck>markers on the whole Build-Depends-Arch block are correct, not a defect: /usr/share/perl5/Debian/Debhelper/Buildsystem/cargo.pmsub buildonly copies the sources (compilation happens insub test, which dh skips under the nocheck profile), so a nocheck build genuinely needs none of them. - debian/patches: all three patches have DEP-3 headers with Description, Author (
Steffen Moeller), Forwarded and Last-Update; the darling/syn 3 port is complete in the sources patched (grep forinto_value/Punctuated/parse_terminatedin src/ finds nothing left), and the Cargo.toml and Cargo.toml.orig hunks agree. debian/README.source explains why each patch exists, and why no test is removed to break the apache-avro cycle. - debian/changelog:
0.22.0-1,unstable, urgency medium, ITP closureCloses: #1152656, dated Sat, 31 Oct 2026 (a Saturday). Standards-Version 4.7.4 has the same first two components as the reviewing system's Policy 4.7.4.1, so it is current. - debian/tests/control: three cargo-auto-test stanzas (
--all-targets --all-features,--all-targets,--all-targets --no-default-features) pull the dev-dependencies the tests need (apache-avro +derive, macrotest, proptest, pretty-assertions, serde +derive +std, trybuild, rustversion) plusdh-cargo (>= 33~)(which Depends cargo) and@for the built package; the nightly-only snapshot tests are ignored on stable by#[rustversion::attr(not(nightly), ignore)]in tests/expand.rs and tests/ui.rs, as README.source states. - debian/copyright.debcargo.hint is debcargo's generated template, superseded by the hand-written debian/copyright; it is not installed in any binary package and raises no licensing question (debian/* is covered by its own stanza).
- uscan found the packaged version as the newest upstream release (upstream
0.22.0, packaged0.22.0). - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (Apache-2.0).
Not confirmed ◂
librust-apache-avro-0.22+derive-dev, which all three autopkgtest stanzas depend on, is not in the reviewing system's package lists nor among the uploads in the NEW queue as of 2026-10-31. debian/README.source says the parent apache-avro library is prepared alongside this crate, so it is probably another package of the same stack, but I could not confirm that it exists.- I could not build the package or run its suite; README.source's report of 99 passing all-target tests could not be rechecked.
Proposed changes ◂
None.
Uploader's response to the LLM review
The uploader was emailed about the review 7 days ago.
Review Information
accepted — allocated to mechtilde 6 days ago, started 6 days ago, completed 6 days ago.
Final Comment
Other Reviews of this Package
| Version | Hash | Allocated | Completed | Reviewer | Status | Details |
|---|---|---|---|---|---|---|
| 0.22.0-1 | 4e267fc2… | 2026-10-31 13:41 | 2026-10-31 13:41 | dfsg-uploader | rejected | VIEW |