• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / bibdata / 997b7869-c4ec-41b8-bb7d-b41102d6f999
90%
main: 90%

Build:
Build:
LAST BUILD BRANCH: dependabot/bundler/net-ldap-0.20.0
DEFAULT BRANCH: main
Ran 14 Mar 2026 01:53PM UTC
Jobs 2
Files 183
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

14 Mar 2026 01:47PM UTC coverage: 89.894% (+0.02%) from 89.874%
997b7869-c4ec-41b8-bb7d-b41102d6f999

Pull #3115

circleci

sandbergja
Re-implement publication_citation_display in Rust

My first attempt was slower than the ruby version,
due to the overhead of re-parsing the MARC record
for every call to Rust.

However, by grouping all the publication data
together as a hash, we only need to experience that
overhead once per record, and we get a nice speedup:

```
require 'benchmark/ips'
record = MARC::XMLReader.new('spec/fixtures/marc_to_solr/9939238033506421.mrx').first
marc_breaker = MarcBreaker.break(record)
Benchmark.ips do |x|
  x.report("before") { set_pub_citation(record) && BibdataRs::Marc.publication_statements(marc_breaker) }
  x.report("after") { BibdataRs::Marc.publication_data(marc_breaker) }
end
```

```
ruby 3.4.4 (2025-05-14 revision a38531fd3f) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
              before     2.837k i/100ms
Calculating -------------------------------------
              before     27.827k (± 2.0%) i/s   (35.94 μs/i) -    141.850k in   5.099585s
```

```
ruby 3.4.4 (2025-05-14 revision a38531fd3f) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
               after     4.137k i/100ms
Calculating -------------------------------------
               after     41.399k (± 1.6%) i/s   (24.16 μs/i) -    210.987k in   5.097755s
```
Pull Request #3115: Re-implement publication_citation_display in Rust

87 of 97 new or added lines in 3 files covered. (89.69%)

11 existing lines in 1 file now uncovered.

9758 of 10855 relevant lines covered (89.89%)

269.34 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
99.42
-0.58% lib/bibdata_rs/src/marc/publication.rs
9
44.8
-3.94% lib/bibdata_rs/src/marc/ruby_bindings.rs

Uncovered Existing Lines

Lines Coverage ∆ File
11
91.37
-3.51% marc_to_solr/lib/princeton_marc.rb
Jobs
ID Job ID Ran Files Coverage
1 997b7869-c4ec-41b8-bb7d-b41102d6f999.1 14 Mar 2026 01:53PM UTC 69
88.88
2 997b7869-c4ec-41b8-bb7d-b41102d6f999.2 14 Mar 2026 01:58PM UTC 114
92.08
Source Files on build 997b7869-c4ec-41b8-bb7d-b41102d6f999
  • Tree
  • List 183
  • Changed 5
  • Source Changed 4
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • CircleCI Build #997B7869...
  • Pull Request #3115
  • PR Base - main (#F1B53989...)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc