commonmeta-ruby 3.0.9 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +0 -3
- data/Gemfile.lock +42 -43
- data/commonmeta.gemspec +1 -2
- data/lib/commonmeta/crossref_utils.rb +4 -7
- data/lib/commonmeta/metadata.rb +4 -10
- data/lib/commonmeta/metadata_utils.rb +2 -0
- data/lib/commonmeta/readers/json_post_reader.rb +78 -0
- data/lib/commonmeta/utils.rb +19 -0
- data/lib/commonmeta/version.rb +1 -1
- data/lib/commonmeta.rb +0 -1
- data/spec/author_utils_spec.rb +10 -0
- data/spec/cli_spec.rb +21 -1
- data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_file/crossref/to_crossref_xml.yml +107 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_file/crossref_xml/to_crossref_xml.yml +52 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_file/crossref_xml/to_crossref_xml_refresh.yml +107 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/schema_org/to_crossref_xml.yml +2189 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_item_metadata/blogger_post.yml +94 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_item_metadata/ghost_post.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_item_metadata/ghost_post_with_doi.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_item_metadata/jekyll_post.yml +170 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_item_metadata/wordpress_post.yml +163 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_post_metadata/blogger_post.yml +94 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_post_metadata/ghost_post_with_doi.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_post_metadata/jekyll_post.yml +87 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_post_metadata/wordpress_post.yml +163 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_link/license.yml +221 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_link/url.yml +221 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_item_from_rogue_scholar_with_doi.yml +163 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_item_from_upstream_blog.yml +243 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_post_from_rogue_scholar_with_doi.yml +163 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_post_from_upstream_blog.yml +243 -0
- data/spec/metadata_spec.rb +1 -1
- data/spec/readers/datacite_reader_spec.rb +1 -1
- data/spec/readers/json_post_reader_spec.rb +89 -0
- data/spec/utils_spec.rb +330 -314
- data/spec/writers/crossref_xml_writer_spec.rb +183 -137
- metadata +24 -25
@@ -0,0 +1,94 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://rogue-scholar.org/api/posts/1jgo59el
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Connection:
|
11
|
+
- close
|
12
|
+
Host:
|
13
|
+
- rogue-scholar.org
|
14
|
+
User-Agent:
|
15
|
+
- http.rb/5.1.1
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Age:
|
22
|
+
- '0'
|
23
|
+
Cache-Control:
|
24
|
+
- public, max-age=0, must-revalidate
|
25
|
+
Content-Length:
|
26
|
+
- '5576'
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Date:
|
30
|
+
- Sat, 03 Jun 2023 20:04:27 GMT
|
31
|
+
Etag:
|
32
|
+
- '"r6tc4lxjtm4ak"'
|
33
|
+
Server:
|
34
|
+
- Vercel
|
35
|
+
Strict-Transport-Security:
|
36
|
+
- max-age=63072000
|
37
|
+
X-Matched-Path:
|
38
|
+
- "/api/posts/[slug]"
|
39
|
+
X-Vercel-Cache:
|
40
|
+
- MISS
|
41
|
+
X-Vercel-Id:
|
42
|
+
- fra1::iad1::z7sjr-1685822666479-acd9f9ad8646
|
43
|
+
Connection:
|
44
|
+
- close
|
45
|
+
body:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: '{"id":"https://iphylo.blogspot.com/2023/05/ten-years-and-million-links.html","short_id":"1jgo59el","url":"https://iphylo.blogspot.com/2023/05/ten-years-and-million-links.html","title":"Ten
|
48
|
+
years and a million links","summary":"As trailed on a Twitter thread last
|
49
|
+
week I’ve been working on a manuscript describing the efforts to map taxonomic
|
50
|
+
names to their original descriptions in the taxonomic literature. Putting
|
51
|
+
together a...","date_published":"2023-05-31T17:26:00Z","date_modified":null,"authors":[{"url":null,"name":"Roderic
|
52
|
+
Page"}],"image":null,"content_html":"<p>As trailed on a Twitter thread last
|
53
|
+
week I’ve been working on a manuscript describing the efforts to map taxonomic
|
54
|
+
names to their original descriptions in the taxonomic literature.</p>\n<blockquote
|
55
|
+
class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">Putting together a manuscript
|
56
|
+
on linking taxonomic names to the primary literature, basically “um, what,
|
57
|
+
exactly, have you been doing all these years?”. TL;DR Across fungi, plants,
|
58
|
+
and animals approx 1.3 million names have been linked to a persistent identifier
|
59
|
+
for a publication.</p>— Roderic Page (@rdmpage) <a href=\"https://twitter.com/rdmpage/status/1661714128413573120?ref_src=twsrc%5Etfw\">May
|
60
|
+
25, 2023</a></blockquote> \n<p>The preprint is on bioRxiv <a href=\"https://doi.org/10.1101/2023.05.29.542697\">doi:10.1101/2023.05.29.542697</a></p>\n<blockquote>\n<p>A
|
61
|
+
major gap in the biodiversity knowledge graph is a connection between taxonomic
|
62
|
+
names and the taxonomic literature. While both names and publications often
|
63
|
+
have persistent identifiers (PIDs), such as Life Science Identifiers (LSIDs)
|
64
|
+
or Digital Object Identifiers (DOIs), LSIDs for names are rarely linked to
|
65
|
+
DOIs for publications. This article describes efforts to make those connections
|
66
|
+
across three large taxonomic databases: Index Fungorum, International Plant
|
67
|
+
Names Index (IPNI), and the Index of Organism Names (ION). Over a million
|
68
|
+
names have been matched to DOIs or other persistent identifiers for taxonomic
|
69
|
+
publications. This represents approximately 36% of names for which publication
|
70
|
+
data is available. The mappings between LSIDs and publication PIDs are made
|
71
|
+
available through ChecklistBank. Applications of this mapping are discussed,
|
72
|
+
including a web app to locate the citation of a taxonomic name, and a knowledge
|
73
|
+
graph that uses data on researcher’s ORCID ids to connect taxonomic names
|
74
|
+
and publications to authors of those names.</p>\n</blockquote>\n<p>Much of
|
75
|
+
the work has been linking taxa to names, which still has huge gaps. There
|
76
|
+
are also interesting differences in coverage between plants, animals, and
|
77
|
+
fungi (see preprint for details).</p>\n\n<div class=\"separator\" style=\"clear:
|
78
|
+
both;\"><a href=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdWsSQhqi1DErXMIHm28g37-fiALNIsI5eQZmvoX_Fe03ZSwtKHbYt-LCsCCAUop0AGcwy_w7NpIjylVH1hNrM9oW-6j9e6tHASha49TTqFvDg2_tEx3r74RRFsjUo4M_Qat8NmKaZSChOt2hI3LsMjTVLrEVirEckU-9Ei7ug-7OHQlR4LA/s2276/animals-coverage.png\"
|
79
|
+
style=\"display: block; padding: 1em 0; text-align: center; \"><img alt=\"\"
|
80
|
+
border=\"0\" width=\"320\" data-original-height=\"2276\" data-original-width=\"2276\"
|
81
|
+
src=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdWsSQhqi1DErXMIHm28g37-fiALNIsI5eQZmvoX_Fe03ZSwtKHbYt-LCsCCAUop0AGcwy_w7NpIjylVH1hNrM9oW-6j9e6tHASha49TTqFvDg2_tEx3r74RRFsjUo4M_Qat8NmKaZSChOt2hI3LsMjTVLrEVirEckU-9Ei7ug-7OHQlR4LA/s320/animals-coverage.png\"/></a></div><div
|
82
|
+
class=\"separator\" style=\"clear: both;\"><a href=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdyxlVJ-oyMCNPmHtHWjSxdxMSJvgzdWRGRF6Ad4dk7ab7gGDpuKdKmS9XhROkopw361ylfsTd1ZkwkF6BN0JlWNnVLCKY1AfryCfWKHkgPQM7u-0SELW9j8RlQIflb6ibaV64gwW7oJrEvOGECvR51F8EW8cRg-1usW-GBM5ymObj7zlObQ/s2276/fungi-coverage.png\"
|
83
|
+
style=\"display: block; padding: 1em 0; text-align: center; \"><img alt=\"\"
|
84
|
+
border=\"0\" width=\"320\" data-original-height=\"2276\" data-original-width=\"2276\"
|
85
|
+
src=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdyxlVJ-oyMCNPmHtHWjSxdxMSJvgzdWRGRF6Ad4dk7ab7gGDpuKdKmS9XhROkopw361ylfsTd1ZkwkF6BN0JlWNnVLCKY1AfryCfWKHkgPQM7u-0SELW9j8RlQIflb6ibaV64gwW7oJrEvOGECvR51F8EW8cRg-1usW-GBM5ymObj7zlObQ/s320/fungi-coverage.png\"/></a></div><div
|
86
|
+
class=\"separator\" style=\"clear: both;\"><a href=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf0YBuvNSXWAJTfQ1jk4XSocMzCYHP7t6IPUqhjQ3mftgM_850igWaD2copgNH6Xk6T62xBU641wvwOvXgCCDY3m2xC_gaILXO9RGx8H3Gpy5OOncsLb9smpT2LIgtYOExVBVdDRWqA0AZ8-mQjWL7dL5TiG7MqVu8spT8ACoGOPR_T36hRA/s2276/plants-coverage.png\"
|
87
|
+
style=\"display: block; padding: 1em 0; text-align: center; \"><img alt=\"\"
|
88
|
+
border=\"0\" width=\"320\" data-original-height=\"2276\" data-original-width=\"2276\"
|
89
|
+
src=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf0YBuvNSXWAJTfQ1jk4XSocMzCYHP7t6IPUqhjQ3mftgM_850igWaD2copgNH6Xk6T62xBU641wvwOvXgCCDY3m2xC_gaILXO9RGx8H3Gpy5OOncsLb9smpT2LIgtYOExVBVdDRWqA0AZ8-mQjWL7dL5TiG7MqVu8spT8ACoGOPR_T36hRA/s320/plants-coverage.png\"/></a></div>\n\n\nThere
|
90
|
+
is also a simple app to demonstrate these links, see <a href=\"https://species-cite.herokuapp.com\">https://species-cite.herokuapp.com</a>.\n\n\n\n<blockquote>\n<p>Written
|
91
|
+
with <a href=\"https://stackedit.io/\">StackEdit</a>.</p>\n</blockquote>","tags":[],"language":"en","blog_id":"tyfqw20","blog":{"id":"tyfqw20","title":"iPhylo","language":"en","favicon":null,"feed_url":"https://iphylo.blogspot.com/feeds/posts/default?alt=rss","home_page_url":"https://iphylo.blogspot.com/","license":"https://creativecommons.org/licenses/by/4.0/legalcode","category":"Natural
|
92
|
+
Sciences"}}'
|
93
|
+
recorded_at: Sat, 03 Jun 2023 20:04:27 GMT
|
94
|
+
recorded_with: VCR 6.1.0
|
@@ -0,0 +1,117 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://rogue-scholar.org/api/posts/1jgo8yel
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Connection:
|
11
|
+
- close
|
12
|
+
Host:
|
13
|
+
- rogue-scholar.org
|
14
|
+
User-Agent:
|
15
|
+
- http.rb/5.1.1
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Age:
|
22
|
+
- '0'
|
23
|
+
Cache-Control:
|
24
|
+
- public, max-age=0, must-revalidate
|
25
|
+
Content-Length:
|
26
|
+
- '6894'
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Date:
|
30
|
+
- Sun, 04 Jun 2023 07:20:26 GMT
|
31
|
+
Etag:
|
32
|
+
- '"r1h98s95tn5bh"'
|
33
|
+
Server:
|
34
|
+
- Vercel
|
35
|
+
Strict-Transport-Security:
|
36
|
+
- max-age=63072000
|
37
|
+
X-Matched-Path:
|
38
|
+
- "/api/posts/[slug]"
|
39
|
+
X-Vercel-Cache:
|
40
|
+
- MISS
|
41
|
+
X-Vercel-Id:
|
42
|
+
- fra1::iad1::pkzgk-1685863226488-42890f58a873
|
43
|
+
Connection:
|
44
|
+
- close
|
45
|
+
body:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: '{"id":"https://doi.org/10.53731/4nwxn-frt36","short_id":"1jgo8yel","url":"https://blog.front-matter.io/posts/does-it-compose/","title":"Does
|
48
|
+
it compose?","summary":"One question I have increasingly asked myself in the
|
49
|
+
past few years. Meaning Can I run this open source software using Docker containers
|
50
|
+
and a Docker Compose file?As the Docker project turned ten this...","date_published":"2023-05-16T11:36:56Z","date_modified":"2023-05-16T11:36:56Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
|
51
|
+
Fenner"}],"image":"https://images.unsplash.com/photo-1523351964962-1ee5847816c3?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDUzfHxjb250YWluZXJ8ZW58MHx8fHwxNjg0MjMyMTQ0fDA&ixlib=rb-4.0.3&q=80&w=2000","content_html":"
|
52
|
+
<p><img src=\"https://images.unsplash.com/photo-1523351964962-1ee5847816c3?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDUzfHxjb250YWluZXJ8ZW58MHx8fHwxNjg0MjMyMTQ0fDA&ixlib=rb-4.0.3&q=80&w=2000\"></p><p>One
|
53
|
+
question I have increasingly asked myself in the past few years. Meaning </p><blockquote>Can
|
54
|
+
I run this open source software using Docker containers and a Docker Compose
|
55
|
+
file?</blockquote><p>As the Docker project <a href=\"https://snyk.io/blog/the-docker-project-turns-10/\">turned
|
56
|
+
ten this spring</a>, it has become standard practice to distribute open source
|
57
|
+
software via Docker images and to provide a <a href=\"https://docs.docker.com/compose/\">Docker
|
58
|
+
Compose</a> file to run the software together with other dependencies. The
|
59
|
+
<a href=\"https://github.com/docker/awesome-compose\">Awesome Compose</a>
|
60
|
+
project has collected many examples, and all you need is a <code>docker-compose.yml</code>file
|
61
|
+
and a recent installation of Docker, e.g. <a href=\"https://www.docker.com/products/docker-desktop/\">Docker
|
62
|
+
Desktop</a>. Be aware that Docker Compose has evolved over the years. It started
|
63
|
+
out as a dedicated Python application but was later integrated into the Docker
|
64
|
+
application (written in Go) as Compose V2.</p><p>Docker and Docker Compose
|
65
|
+
allow you to run pretty complex applications without first addressing a long
|
66
|
+
list of requirements (which might conflict with other software you have installed),
|
67
|
+
or needing a long and complex build step where many things can go wrong. For
|
68
|
+
example a self-hosted instance of Supabase (a hosted Postgres database with
|
69
|
+
additional features) that I installed last week following <a href=\"https://supabase.com/docs/guides/self-hosting/docker\">these
|
70
|
+
instructions</a>.</p><p>An important open source project that I am involved
|
71
|
+
in is <a href=\"https://inveniordm.docs.cern.ch/\">InvenioRDM</a>, the turn-key
|
72
|
+
research data management repository. InvenioRDM started in 2019, with a first
|
73
|
+
production-suitable version in August 2021, and the <a href=\"https://inveniosoftware.org/products/rdm/#status\">next
|
74
|
+
major goal </a>is to have the large and popular <a href=\"https://zenodo.org/\">Zenodo</a>
|
75
|
+
repository running on top of InvenioRDM. Zenodo <a href=\"https://blog.zenodo.org/2023/05/08/2023-05-08-10years/\">turned
|
76
|
+
ten last week</a>, a few weeks after Docker. Interestingly, my personal tenth
|
77
|
+
anniversary was last year in May as I became a full-time software developer
|
78
|
+
and left academic medicine as a medical doctor treating cancer patients in
|
79
|
+
<a href=\"https://doi.org/10.53731/r294649-6f79289-8cw2j\">May 2012</a>.</p><p>Unfortunately,
|
80
|
+
InvenioRDM \"doesn''t compose\" yet. It is very close, but there are no ready-made
|
81
|
+
Docker images to download, and the <a href=\"https://inveniordm.docs.cern.ch/install/\">installation
|
82
|
+
instructions</a> start with installing a Python command-line tool (invenio-cli).
|
83
|
+
So if you have 1-2 hours to play with InvenioRDM and get a first impression,
|
84
|
+
there is no official solution from the InvenioRDM project yet. For this reason,
|
85
|
+
I started the <a href=\"https://github.com/front-matter/docker-invenio-rdm\">docker-invenio-rdm</a>
|
86
|
+
repository on Github. It contains a Docker Compose file that uses pre-built
|
87
|
+
Docker images, and using that file with a <code>docker compose up</code>command
|
88
|
+
on your local computer should give you a running InvenioRDM within 15 minutes:</p><figure
|
89
|
+
class=\"kg-card kg-image-card\"><img src=\"https://blog.front-matter.io/content/images/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png\"
|
90
|
+
class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1210\" srcset=\"https://blog.front-matter.io/content/images/size/w600/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
|
91
|
+
600w, https://blog.front-matter.io/content/images/size/w1000/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
|
92
|
+
1000w, https://blog.front-matter.io/content/images/size/w1600/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
|
93
|
+
1600w, https://blog.front-matter.io/content/images/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
|
94
|
+
2193w\" sizes=\"(min-width: 720px) 720px\"></figure><p>I started this recently
|
95
|
+
and obviously want to move forward in two directions:</p><ul><li>fine-tune
|
96
|
+
the initial configuration to provide a great initial experience with InvenioRDM,
|
97
|
+
e.g. making it easy to <a href=\"https://inveniordm.docs.cern.ch/develop/topics/theming/\">theme</a>
|
98
|
+
the InvenioRDM instance</li><li>make this an official part of the InvenioRDM
|
99
|
+
project, extending the <a href=\"https://github.com/inveniosoftware/docker-invenio\">docker-invenio</a>
|
100
|
+
GitHub repository that provides Docker base images for InvenioRDM and other
|
101
|
+
projects using the Invenio software.</li></ul><p>But of course, Docker Compose
|
102
|
+
is not the answer to all questions regarding running Docker-based infrastructure.
|
103
|
+
For production environments, most people shy away from using Docker Compose.
|
104
|
+
The reasons for that and the alternatives will be the topic of a future blog
|
105
|
+
post (spoiler: there is exciting news).</p><p>Docker Compose also needs more
|
106
|
+
work to be set up correctly for development environments. It is a common practice
|
107
|
+
and a workflow I used while working at DataCite (where we launched Docker-based
|
108
|
+
infrastructure in 2016), but for now, the easiest way to set up InvenioRDM
|
109
|
+
development environments is using the <a href=\"https://inveniordm.docs.cern.ch/install/\">invenio-cli
|
110
|
+
tool with a local development environment</a>.</p><p>Please reach out to me
|
111
|
+
with feedback on running Docker Compose for InvenioRDM (use the <a href=\"https://github.com/front-matter/docker-invenio-rdm/discussions\">discussions</a>
|
112
|
+
feature in the GitHub repo), or if you have questions about running InvenioRDM
|
113
|
+
in production.</p> ","tags":["News"],"language":"en","blog_id":"f0m0e38","blog":{"id":"f0m0e38","title":"Front
|
114
|
+
Matter","language":"en","favicon":"https://blog.front-matter.io/favicon.png","feed_url":"https://blog.front-matter.io/atom/","home_page_url":"https://blog.front-matter.io/","license":"https://creativecommons.org/licenses/by/4.0/legalcode","category":"Engineering
|
115
|
+
and Technology"}}'
|
116
|
+
recorded_at: Sun, 04 Jun 2023 07:20:26 GMT
|
117
|
+
recorded_with: VCR 6.1.0
|
data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_item_metadata/ghost_post_with_doi.yml
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://rogue-scholar.org/api/posts/1jgo8yel
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Connection:
|
11
|
+
- close
|
12
|
+
Host:
|
13
|
+
- rogue-scholar.org
|
14
|
+
User-Agent:
|
15
|
+
- http.rb/5.1.1
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Age:
|
22
|
+
- '0'
|
23
|
+
Cache-Control:
|
24
|
+
- public, max-age=0, must-revalidate
|
25
|
+
Content-Length:
|
26
|
+
- '6894'
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Date:
|
30
|
+
- Sun, 04 Jun 2023 07:21:03 GMT
|
31
|
+
Etag:
|
32
|
+
- '"r1h98s95tn5bh"'
|
33
|
+
Server:
|
34
|
+
- Vercel
|
35
|
+
Strict-Transport-Security:
|
36
|
+
- max-age=63072000
|
37
|
+
X-Matched-Path:
|
38
|
+
- "/api/posts/[slug]"
|
39
|
+
X-Vercel-Cache:
|
40
|
+
- MISS
|
41
|
+
X-Vercel-Id:
|
42
|
+
- fra1::iad1::c2lh5-1685863263309-757188c1cf71
|
43
|
+
Connection:
|
44
|
+
- close
|
45
|
+
body:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: '{"id":"https://doi.org/10.53731/4nwxn-frt36","short_id":"1jgo8yel","url":"https://blog.front-matter.io/posts/does-it-compose/","title":"Does
|
48
|
+
it compose?","summary":"One question I have increasingly asked myself in the
|
49
|
+
past few years. Meaning Can I run this open source software using Docker containers
|
50
|
+
and a Docker Compose file?As the Docker project turned ten this...","date_published":"2023-05-16T11:36:56Z","date_modified":"2023-05-16T11:36:56Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
|
51
|
+
Fenner"}],"image":"https://images.unsplash.com/photo-1523351964962-1ee5847816c3?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDUzfHxjb250YWluZXJ8ZW58MHx8fHwxNjg0MjMyMTQ0fDA&ixlib=rb-4.0.3&q=80&w=2000","content_html":"
|
52
|
+
<p><img src=\"https://images.unsplash.com/photo-1523351964962-1ee5847816c3?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDUzfHxjb250YWluZXJ8ZW58MHx8fHwxNjg0MjMyMTQ0fDA&ixlib=rb-4.0.3&q=80&w=2000\"></p><p>One
|
53
|
+
question I have increasingly asked myself in the past few years. Meaning </p><blockquote>Can
|
54
|
+
I run this open source software using Docker containers and a Docker Compose
|
55
|
+
file?</blockquote><p>As the Docker project <a href=\"https://snyk.io/blog/the-docker-project-turns-10/\">turned
|
56
|
+
ten this spring</a>, it has become standard practice to distribute open source
|
57
|
+
software via Docker images and to provide a <a href=\"https://docs.docker.com/compose/\">Docker
|
58
|
+
Compose</a> file to run the software together with other dependencies. The
|
59
|
+
<a href=\"https://github.com/docker/awesome-compose\">Awesome Compose</a>
|
60
|
+
project has collected many examples, and all you need is a <code>docker-compose.yml</code>file
|
61
|
+
and a recent installation of Docker, e.g. <a href=\"https://www.docker.com/products/docker-desktop/\">Docker
|
62
|
+
Desktop</a>. Be aware that Docker Compose has evolved over the years. It started
|
63
|
+
out as a dedicated Python application but was later integrated into the Docker
|
64
|
+
application (written in Go) as Compose V2.</p><p>Docker and Docker Compose
|
65
|
+
allow you to run pretty complex applications without first addressing a long
|
66
|
+
list of requirements (which might conflict with other software you have installed),
|
67
|
+
or needing a long and complex build step where many things can go wrong. For
|
68
|
+
example a self-hosted instance of Supabase (a hosted Postgres database with
|
69
|
+
additional features) that I installed last week following <a href=\"https://supabase.com/docs/guides/self-hosting/docker\">these
|
70
|
+
instructions</a>.</p><p>An important open source project that I am involved
|
71
|
+
in is <a href=\"https://inveniordm.docs.cern.ch/\">InvenioRDM</a>, the turn-key
|
72
|
+
research data management repository. InvenioRDM started in 2019, with a first
|
73
|
+
production-suitable version in August 2021, and the <a href=\"https://inveniosoftware.org/products/rdm/#status\">next
|
74
|
+
major goal </a>is to have the large and popular <a href=\"https://zenodo.org/\">Zenodo</a>
|
75
|
+
repository running on top of InvenioRDM. Zenodo <a href=\"https://blog.zenodo.org/2023/05/08/2023-05-08-10years/\">turned
|
76
|
+
ten last week</a>, a few weeks after Docker. Interestingly, my personal tenth
|
77
|
+
anniversary was last year in May as I became a full-time software developer
|
78
|
+
and left academic medicine as a medical doctor treating cancer patients in
|
79
|
+
<a href=\"https://doi.org/10.53731/r294649-6f79289-8cw2j\">May 2012</a>.</p><p>Unfortunately,
|
80
|
+
InvenioRDM \"doesn''t compose\" yet. It is very close, but there are no ready-made
|
81
|
+
Docker images to download, and the <a href=\"https://inveniordm.docs.cern.ch/install/\">installation
|
82
|
+
instructions</a> start with installing a Python command-line tool (invenio-cli).
|
83
|
+
So if you have 1-2 hours to play with InvenioRDM and get a first impression,
|
84
|
+
there is no official solution from the InvenioRDM project yet. For this reason,
|
85
|
+
I started the <a href=\"https://github.com/front-matter/docker-invenio-rdm\">docker-invenio-rdm</a>
|
86
|
+
repository on Github. It contains a Docker Compose file that uses pre-built
|
87
|
+
Docker images, and using that file with a <code>docker compose up</code>command
|
88
|
+
on your local computer should give you a running InvenioRDM within 15 minutes:</p><figure
|
89
|
+
class=\"kg-card kg-image-card\"><img src=\"https://blog.front-matter.io/content/images/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png\"
|
90
|
+
class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1210\" srcset=\"https://blog.front-matter.io/content/images/size/w600/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
|
91
|
+
600w, https://blog.front-matter.io/content/images/size/w1000/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
|
92
|
+
1000w, https://blog.front-matter.io/content/images/size/w1600/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
|
93
|
+
1600w, https://blog.front-matter.io/content/images/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
|
94
|
+
2193w\" sizes=\"(min-width: 720px) 720px\"></figure><p>I started this recently
|
95
|
+
and obviously want to move forward in two directions:</p><ul><li>fine-tune
|
96
|
+
the initial configuration to provide a great initial experience with InvenioRDM,
|
97
|
+
e.g. making it easy to <a href=\"https://inveniordm.docs.cern.ch/develop/topics/theming/\">theme</a>
|
98
|
+
the InvenioRDM instance</li><li>make this an official part of the InvenioRDM
|
99
|
+
project, extending the <a href=\"https://github.com/inveniosoftware/docker-invenio\">docker-invenio</a>
|
100
|
+
GitHub repository that provides Docker base images for InvenioRDM and other
|
101
|
+
projects using the Invenio software.</li></ul><p>But of course, Docker Compose
|
102
|
+
is not the answer to all questions regarding running Docker-based infrastructure.
|
103
|
+
For production environments, most people shy away from using Docker Compose.
|
104
|
+
The reasons for that and the alternatives will be the topic of a future blog
|
105
|
+
post (spoiler: there is exciting news).</p><p>Docker Compose also needs more
|
106
|
+
work to be set up correctly for development environments. It is a common practice
|
107
|
+
and a workflow I used while working at DataCite (where we launched Docker-based
|
108
|
+
infrastructure in 2016), but for now, the easiest way to set up InvenioRDM
|
109
|
+
development environments is using the <a href=\"https://inveniordm.docs.cern.ch/install/\">invenio-cli
|
110
|
+
tool with a local development environment</a>.</p><p>Please reach out to me
|
111
|
+
with feedback on running Docker Compose for InvenioRDM (use the <a href=\"https://github.com/front-matter/docker-invenio-rdm/discussions\">discussions</a>
|
112
|
+
feature in the GitHub repo), or if you have questions about running InvenioRDM
|
113
|
+
in production.</p> ","tags":["News"],"language":"en","blog_id":"f0m0e38","blog":{"id":"f0m0e38","title":"Front
|
114
|
+
Matter","language":"en","favicon":"https://blog.front-matter.io/favicon.png","feed_url":"https://blog.front-matter.io/atom/","home_page_url":"https://blog.front-matter.io/","license":"https://creativecommons.org/licenses/by/4.0/legalcode","category":"Engineering
|
115
|
+
and Technology"}}'
|
116
|
+
recorded_at: Sun, 04 Jun 2023 07:21:03 GMT
|
117
|
+
recorded_with: VCR 6.1.0
|
@@ -0,0 +1,170 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://rogue-scholar.org/api/posts/1jdkoe52
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Connection:
|
11
|
+
- close
|
12
|
+
Host:
|
13
|
+
- rogue-scholar.org
|
14
|
+
User-Agent:
|
15
|
+
- http.rb/5.1.1
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Age:
|
22
|
+
- '0'
|
23
|
+
Cache-Control:
|
24
|
+
- public, max-age=0, must-revalidate
|
25
|
+
Content-Length:
|
26
|
+
- '3760'
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Date:
|
30
|
+
- Sun, 04 Jun 2023 10:18:36 GMT
|
31
|
+
Etag:
|
32
|
+
- '"s9i5zuh1o62w6"'
|
33
|
+
Server:
|
34
|
+
- Vercel
|
35
|
+
Strict-Transport-Security:
|
36
|
+
- max-age=63072000
|
37
|
+
X-Matched-Path:
|
38
|
+
- "/api/posts/[slug]"
|
39
|
+
X-Vercel-Cache:
|
40
|
+
- MISS
|
41
|
+
X-Vercel-Id:
|
42
|
+
- fra1::iad1::p7tvx-1685873912215-b62d20998ec5
|
43
|
+
Connection:
|
44
|
+
- close
|
45
|
+
body:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: '{"id":"https://citationstyles.org/2014/01/29/mendeley-donates-to-the-csl-project/","short_id":"1jdkoe52","url":"https://citationstyles.org/2014/01/29/mendeley-donates-to-the-csl-project/","title":"Mendeley
|
48
|
+
Donates to the CSL Project","summary":"CSL has seen a lot of growth in recent
|
49
|
+
years: more than 20 software products use CSL (see the citationstyles.org
|
50
|
+
frontpage), and we offer over 6750 free citation styles, covering thousands
|
51
|
+
of scientific...","date_published":"2014-01-29T00:00:00Z","date_modified":"2014-01-29T00:00:00Z","authors":[{"url":null,"name":"Rintze
|
52
|
+
M. Zelle"}],"image":null,"content_html":"<p>CSL has seen a lot of growth in
|
53
|
+
recent years: more than 20 software products use CSL (see the <a href=\"http://citationstyles.org/\">citationstyles.org</a>
|
54
|
+
frontpage), and we offer over 6750 free citation styles, covering thousands
|
55
|
+
of scientific journals.</p>\n\n<p><img style=\"float: right;\" src=\"/assets/img/mendeley-csl-stickers.jpg\"
|
56
|
+
width=\"320\" height=\"256\" /></p>\n\n<p>We could only have come this far
|
57
|
+
with our great user community, and with a lot of institutional support from
|
58
|
+
Mendeley, Papers, Zotero, and others.</p>\n\n<p><a href=\"http://www.mendeley.com/\">Mendeley</a>
|
59
|
+
has been using CSL since their first release in 2008, and adopted Frank Bennett’s
|
60
|
+
<a href=\"https://bitbucket.org/fbennett/citeproc-js/wiki/Home\">citeproc-js</a>
|
61
|
+
CSL processor in 2010.\nThey have since moved away from simply using CSL to
|
62
|
+
become one of our biggest contributors.\nCarles Pina of Mendeley helped us
|
63
|
+
improve the central CSL style repository, and create CSL styles for 1500 Elsevier
|
64
|
+
journals.\nMendeley also <a href=\"http://www.prnewswire.co.uk/news-releases/mendeley-teams-up-with-columbia-university-libraries-to-develop-a-citation-style-language-editor-through-125000-sloan-foundation-award-144578085.html\">collaborated</a>
|
65
|
+
with Columbia University Libraries to created the <a href=\"http://editor.citationstyles.org/about/\">Visual
|
66
|
+
CSL Editor</a>, which was funded by a Sloan Foundation Award and <a href=\"http://blog.mendeley.com/academic-features/make-your-citations-look-exactly-how-they-should-with-mendeleys-visual-citation-style-editor/\">released</a>
|
67
|
+
in 2012.</p>\n\n<p>Now, Mendeley, together with Elsevier, stepped up once
|
68
|
+
more, and made the first major financial contribution to the CSL project.\nWe
|
69
|
+
received a $5000 donation, which we will use to cover project expenses and
|
70
|
+
help ensure the long-term sustainability of CSL.\nMendeley is one of the most
|
71
|
+
popular products to use CSL, and this level of involvement is crucial in helping
|
72
|
+
us move CSL forward.\nWe hope others will follow Mendeley’s lead, and we look
|
73
|
+
forward to continue improving CSL.</p>\n\n<p>In particular, we will collaborate
|
74
|
+
with Zotero on their upcoming data model redesign, which should help us provide
|
75
|
+
guidance to other projects on which fields each item type should carry and,
|
76
|
+
among other things, improve support for primary and archival sources.\nWe
|
77
|
+
also plan to adopt features from Frank Bennett’s <a href=\"http://citationstylist.org/\">Multilingual
|
78
|
+
Zotero</a> into official CSL, such as better support for legal citations and
|
79
|
+
citing items in multiple languages.\nWe’ll of course continue to maintain
|
80
|
+
the project website and documentation, and handle style submissions to the
|
81
|
+
repository.\nFinally, we’ll keep reaching out to publishers to further increase
|
82
|
+
the number of journals covered by CSL styles.</p>","tags":[],"language":"en","blog_id":"prmb582","blog":{"id":"prmb582","title":"Citation
|
83
|
+
Style Language","language":"en","favicon":null,"feed_url":"https://citationstyles.org/feed.xml","home_page_url":"https://citationstyles.org/","license":"https://creativecommons.org/licenses/by/4.0/legalcode","category":"Engineering
|
84
|
+
and Technology"}}'
|
85
|
+
recorded_at: Sun, 04 Jun 2023 10:18:36 GMT
|
86
|
+
- request:
|
87
|
+
method: get
|
88
|
+
uri: https://rogue-scholar.org/api/posts/1jdkwod5
|
89
|
+
body:
|
90
|
+
encoding: UTF-8
|
91
|
+
string: ''
|
92
|
+
headers:
|
93
|
+
Connection:
|
94
|
+
- close
|
95
|
+
Host:
|
96
|
+
- rogue-scholar.org
|
97
|
+
User-Agent:
|
98
|
+
- http.rb/5.1.1
|
99
|
+
response:
|
100
|
+
status:
|
101
|
+
code: 200
|
102
|
+
message: OK
|
103
|
+
headers:
|
104
|
+
Age:
|
105
|
+
- '0'
|
106
|
+
Cache-Control:
|
107
|
+
- public, max-age=0, must-revalidate
|
108
|
+
Content-Length:
|
109
|
+
- '3559'
|
110
|
+
Content-Type:
|
111
|
+
- application/json; charset=utf-8
|
112
|
+
Date:
|
113
|
+
- Sun, 04 Jun 2023 11:13:40 GMT
|
114
|
+
Etag:
|
115
|
+
- '"15ahqsuw1ek2q9"'
|
116
|
+
Server:
|
117
|
+
- Vercel
|
118
|
+
Strict-Transport-Security:
|
119
|
+
- max-age=63072000
|
120
|
+
X-Matched-Path:
|
121
|
+
- "/api/posts/[slug]"
|
122
|
+
X-Vercel-Cache:
|
123
|
+
- MISS
|
124
|
+
X-Vercel-Id:
|
125
|
+
- fra1::iad1::9bqqh-1685877219798-ee7c311b5c7e
|
126
|
+
Connection:
|
127
|
+
- close
|
128
|
+
body:
|
129
|
+
encoding: UTF-8
|
130
|
+
string: '{"id":"https://citationstyles.org/2020/07/11/seeking-public-comment-on-CSL-1-0-2/","short_id":"1jdkwod5","url":"https://citationstyles.org/2020/07/11/seeking-public-comment-on-CSL-1-0-2/","title":"Seeking
|
131
|
+
Public Comment on CSL 1.0.2 Release","summary":"Over the past few months,
|
132
|
+
Citation Style Language developers have worked to address a backlog of feature
|
133
|
+
requests. This work will be reflected in two upcoming releases. The first
|
134
|
+
of these, 1.0.2, is slated...","date_published":"2020-07-11T00:00:00Z","date_modified":"2020-07-11T00:00:00Z","authors":[{"url":null,"name":"Sebastian
|
135
|
+
Karcher"}],"image":null,"content_html":"<p>Over the past few months, Citation
|
136
|
+
Style Language developers have worked to address a backlog of feature requests.
|
137
|
+
This work will be reflected in two upcoming releases. The first of these,
|
138
|
+
1.0.2, is slated for release shortly. Its focus is on easy to implement, non-controversial
|
139
|
+
additions, principally new item types, fields, and terms. We’re seeking public
|
140
|
+
comment on the planned released from now until <strong>July 26, 2020, 12pm
|
141
|
+
EDT</strong>.</p>\n\n<p>A non-technical summary of the release can be found
|
142
|
+
in a <a href=\"https://docs.google.com/document/d/1wY1cOOamDYYh8VNW7h_uleqieBDGOa_LYsRiVdQy1RI/edit#heading=h.wsywjzy5t4j6\">google
|
143
|
+
doc here</a>. For more technical details, you can follow the development on
|
144
|
+
the <a href=\"https://github.com/orgs/citation-style-language/projects/3\">github
|
145
|
+
project board</a>. We welcome feedback directly on the google doc, in specific
|
146
|
+
github issues, or on our <a href=\"https://discourse.citationstyles.org/\">forums</a>.</p>\n\n<p>Tremendous
|
147
|
+
thanks to Bruce D’Arcus, Denis Maier, and Brenton Wiernik, who did the bulk
|
148
|
+
of the work of organizing proposals accumulated over the last 8 years and
|
149
|
+
preparing the release.</p>\n\n<h2 id=\"previewing-csl-11\">Previewing CSL
|
150
|
+
1.1</h2>\n<p>CSL 1.1, slated for release later this year, will include more
|
151
|
+
significant extensions of CSL functionality. While we’ll have a separate public
|
152
|
+
comment period for this release, we’re happy for input on the ongoing discussions
|
153
|
+
on github and the forums. In particular, we’re eager to hear from projects
|
154
|
+
implementing CSL styles, both in a citeproc and in user-facing applications
|
155
|
+
such as reference managers or citation formatters.</p>\n\n<p>This release
|
156
|
+
will primarily add the following new features:</p>\n<ul>\n <li>Full support
|
157
|
+
for narrative citation styles (“Like Doe (2018)”).</li>\n <li>Ability to
|
158
|
+
specify more complex conditional logic.</li>\n <li>Ability to independently
|
159
|
+
format subtitles and main titles.</li>\n <li>A new “related” attribute to
|
160
|
+
express related reviewed and original items (still in discussion).</li>\n <li>Improvements
|
161
|
+
to the CSL input format(s):\n <ul>\n <li>Adopting the new EDTF ISO
|
162
|
+
standard, which offers full support for date ranges, seasons, uncertain and
|
163
|
+
approximate qualifiers, and decades and centuries.</li>\n <li>A new “custom”
|
164
|
+
property to add extension metadata.</li>\n <li>New related modelling
|
165
|
+
to match the new style attribute (as above, still in discussion).</li>\n <li>An
|
166
|
+
official YAML representation, which can be validated with the same JSON schemas.</li>\n </ul>\n </li>\n</ul>","tags":[],"language":"en","blog_id":"prmb582","blog":{"id":"prmb582","title":"Citation
|
167
|
+
Style Language","language":"en","favicon":null,"feed_url":"https://citationstyles.org/feed.xml","home_page_url":"https://citationstyles.org/","license":"https://creativecommons.org/licenses/by/4.0/legalcode","category":"Engineering
|
168
|
+
and Technology"}}'
|
169
|
+
recorded_at: Sun, 04 Jun 2023 11:13:40 GMT
|
170
|
+
recorded_with: VCR 6.1.0
|