Bibliothecary
:notebook_with_decorative_cover: Libraries.io Package Manager Manifest Parsers
Install / Use
/learn @librariesio/BibliothecaryREADME
Bibliothecary
Dependency manifest parsing library for https://libraries.io
Installation
Requires Ruby 3.0 or above.
Add this line to your application's Gemfile:
gem 'bibliothecary'
And then execute:
$ bundle
Or install it yourself as:
$ gem install bibliothecary
Usage
Identify package manager manifests from a list of files:
Bibliothecary.identify_manifests(['package.json', 'README.md', 'index.js']) #=> 'package.json'
Parse a manifest file for it's dependencies:
Bibliothecary.analyse_file 'bower.json', File.open('bower.json').read
Search a directory for manifest files and parse the contents:
Bibliothecary.analyse('./')
There are a number of parsers that rely on web services to parse the file formats, those urls can be configured like so:
Bibliothecary.configure do |config|
config.carthage_parser_host = 'http://my-carthage-parsing-service.com'
end
All available config options are in: https://github.com/librariesio/bibliothecary/blob/master/lib/bibliothecary/configuration.rb
Supported package manager file formats
- npm
- package.json
- package-lock.json
- npm-shrinkwrap.json
- yarn.lock
- Maven
- pom.xml
- ivy.xml
- build.gradle
- gradle-dependencies-q.txt
- RubyGems
- Gemfile
- Gemfile.lock
- gems.rb
- gems.locked
- *.gemspec
- Packagist
- composer.json
- composer.lock
- PyPi
- setup.py
- req*.txt
- req*.pip
- requirements/*.txt
- requirements/*.pip
- Pipfile
- Pipfile.lock
- pyproject.toml
- poetry.lock
- Nuget
- packages.config
- Project.json
- Project.lock.json
- *.nuspec
- paket.lock
- *.csproj
- project.assets.json
- CycloneDX
- XML as cyclonedx.xml
- JSON as cyclonedx.json
- Note that CycloneDX manifests can contain information on multiple package manager's packages!
- SPDX
- tag:value as *.spdx
- JSON as *.spdx.json
- Note that SPDX manifests can contain information on multiple package manager's packages!
- Bower
- bower.json
- CPAN
- META.json
- META.yml
- CocoaPods
- Podfile
- Podfile.lock
- *.podspec
- Anaconda
- environment.yml
- environment.yaml
- Clojars
- project.clj
- Meteor
- versions.json
- CRAN
- DESCRIPTION
- Cargo
- Cargo.toml
- Cargo.lock
- Hex
- mix.exs
- mix.lock
- Swift
- Package.swift
- Pub
- pubspec.yaml
- pubspec.lock
- Carthage
- Cartfile
- Cartfile.private
- Cartfile.resolved
- Dub
- dub.json
- dub.sdl
- Julia
- REQUIRE
- Shards
- shard.yml
- shard.lock
- Go
- glide.yaml
- glide.lock
- Godeps
- Godeps/Godeps.json
- vendor/manifest
- vendor/vendor.json
- Gopkg.toml
- Gopkg.lock
- go.mod
- go.sum
- go-resolved-dependencies.json
- Elm
- elm-package.json
- elm_dependencies.json
- elm-stuff/exact-dependencies.json
- Haxelib
- haxelib.json
- Hackage
- *.cabal
- cabal.config
Development
After checking out the repo, run bin/setup to install dependencies. Then, run bundle exec rspec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install.
To release a new version:
- in
CHANGELOG.md, move the changes under"Unreleased"into a new section with your version number - bump and commit the version number in
version.rbin themainbranch - and then run
bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the.gemfile to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/librariesio/bibliothecary. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
Related Skills
node-connect
347.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
