docs: library comments say what the scanner and resolver do, not how they came to be (#6277)
release / govulncheck (push) Successful in 20s
release / web (push) Successful in 1m20s
release / go (push) Successful in 1m37s
release / integration (push) Successful in 5m15s
release / android (push) Successful in 5m26s
release / Build signed APK (releases and dev) (push) Successful in 5m45s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Successful in 16s
release / Verify release artifacts (tag releases only) (push) Skipped
release / govulncheck (push) Successful in 20s
release / web (push) Successful in 1m20s
release / go (push) Successful in 1m37s
release / integration (push) Successful in 5m15s
release / android (push) Successful in 5m26s
release / Build signed APK (releases and dev) (push) Successful in 5m45s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Successful in 16s
release / Verify release artifacts (tag releases only) (push) Skipped
Rewrites the internal/library comment blocks to rule 32. Task, milestone, decision and rule ids are gone; the incidents behind them are restated as the constraint they left (why a file is deleted before its row, why the missing mark is a mark, why duplicates block on duration). Counts and album names from one library are dropped from production comments; test comments keep the names their fixtures use. The tagReadVersion log keeps each version's before and after, without the measurements. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -17,10 +17,9 @@ import (
|
||||
//
|
||||
// dhowden/tag stores comments in a map keyed by field name
|
||||
// (vorbis.go: m.c[strings.ToLower(k)] = v), so each repeat overwrites the last
|
||||
// and only the final value survives. On the operator's library that was 3,658
|
||||
// of 4,092 FLAC files: Kupla's Life Forms declares eight genres and was stored
|
||||
// as "Instrumental Hip Hop" alone (#2500). Nothing looked corrupt; the other
|
||||
// seven were simply never seen by browse or the taste profile.
|
||||
// and only the final value survives. An album that declares eight genres
|
||||
// would be stored under the last alone; nothing would look corrupt, and the
|
||||
// other seven would never be seen by browse or the taste profile.
|
||||
//
|
||||
// The comment block is read here directly, as the ID3v2 genre frame is in
|
||||
// id3v2genre.go. Every other field still comes from dhowden/tag.
|
||||
@@ -43,7 +42,8 @@ func readFLACGenreValues(rs io.ReadSeeker) ([]string, error) {
|
||||
if _, err := io.ReadFull(rs, magic[:]); err != nil {
|
||||
return nil, errNoGenreFrame
|
||||
}
|
||||
// Some taggers prepend an ID3v2 tag to a FLAC. The FLAC stream starts after it.
|
||||
// Some taggers prepend an ID3v2 tag to a FLAC. The FLAC stream starts after
|
||||
// it.
|
||||
if string(magic[:3]) == "ID3" {
|
||||
var rest [6]byte
|
||||
if _, err := io.ReadFull(rs, rest[:]); err != nil {
|
||||
@@ -172,7 +172,8 @@ func oggCommentGenres(packet []byte) ([]string, error) {
|
||||
// vorbisCommentGenres reads a comment block (vendor string, then a count of
|
||||
// length-prefixed "KEY=value" entries, little-endian lengths throughout) and
|
||||
// returns the GENRE values in file order. Field names are case-insensitive by
|
||||
// spec. Anything after the last entry, such as Vorbis's framing bit, is ignored.
|
||||
// spec. Anything after the last entry, such as Vorbis's framing bit, is
|
||||
// ignored.
|
||||
func vorbisCommentGenres(b []byte) ([]string, error) {
|
||||
next := func() ([]byte, bool) {
|
||||
if len(b) < 4 {
|
||||
|
||||
Reference in New Issue
Block a user