Skip to content

Commit f1a02e1

Browse files
committed
docs: mild edits and updates
1 parent dfe4d83 commit f1a02e1

File tree

4 files changed

+104
-84
lines changed

4 files changed

+104
-84
lines changed

docs/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# InvenioRDM GitHub Archiver<img width="50em" align="right" style="display: block; margin: auto auto 2em 2em" src="_static/media/cloud-upload.svg">
22

3-
[InvenioRDM](https://inveniosoftware.org/products/rdm/) is the basis for many institutional repositories such as [CaltechDATA](https://data.caltech.edu) that enable users to preserve software and data sets in long-term archive. Though such repositories are critical resources, creating detailed records and uploading assets can be a tedious and error-prone process if done manually. This is where the [_InvenioRDM GitHub Archiver_](https://github.com/caltechlibrary/iga) (IGA) comes in.
3+
[InvenioRDM](https://inveniosoftware.org/products/rdm/) is used by many institutional repositories such as [CaltechDATA](https://data.caltech.edu) to let users preserve software and data in a long-term archive managed by their institution. Depositing software and/or data into these repositories requires the creation of detailed metadata records &ndash; a tedious and error-prone process if done manually. This is where the [_InvenioRDM GitHub Archiver_](https://github.com/caltechlibrary/iga) (IGA) comes in.
44

5-
IGA creates metadata records and sends releases from GitHub to an InvenioRDM-based repository server. IGA can be invoked from the command line; it also can be set up as a [GitHub Action](https://docs.github.com/en/actions) to archive GitHub releases automatically for a repository each time they are made.
5+
IGA can create metadata records and send releases from GitHub to an InvenioRDM-based repository server. It can be run as a command line program; it also can be set up as a [GitHub Action](https://docs.github.com/en/actions) to archive GitHub releases in InvenioRDM automatically each time they are made.
66

77
<figure>
88
<img align="middle" src="_static/media/example-github-release.jpg" width="40%">

docs/introduction.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Introduction
22

3-
[InvenioRDM](https://inveniosoftware.org/products/rdm/) is a research data management (RDM) repository platform based on the [Invenio Framework](https://inveniosoftware.org/products/framework/) and [Zenodo](https://www.zenodo.org). At institutions like Caltech, InvenioRDM is used as the basis for institutional repositories such as [CaltechDATA](https://data.caltech.edu). Of particular interest to software developers is that a repository like [CaltechDATA](https://data.caltech.edu) offers the means to preserve software projects in a long-term archive managed by their institution. Here is a screenshot of an example software project release archived in [CaltechDATA](https://data.caltech.edu):
3+
[InvenioRDM](https://inveniosoftware.org/products/rdm/) is a research data management (RDM) repository platform based on the [Invenio Framework](https://inveniosoftware.org/products/framework/) and [Zenodo](https://www.zenodo.org). At institutions like Caltech, InvenioRDM is used as the basis for institutional repositories such as [CaltechDATA](https://data.caltech.edu). It offers the means to preserve software and data projects in a long-term archive managed by their institution.
44

55
<figure>
66
<img src="_static/media/example-record-landing-page.jpg" width="80%">
7-
<figcaption>Example of a landing page for a record in CaltechDATA.</figcaption>
7+
<figcaption>Screenshot of a landing page for a record in <a href="https://data.caltech.edu">CaltechDATA</a>. The source code for version 1.3.5 of the software project <a href="https://data.caltech.edu/records/fqmae-krq60">eprints2archives</a> has been archived in the repository, and this example shows some of the metadata associated with that archived copy.</figcaption>
88
</figure>
99

1010
The metadata contained in the record of a deposit is critical to making the record widely discoverable by other people, but it can be tedious and error-prone to enter the metadata by hand. This is where automation such as IGA come in: _IGA can save users the trouble of depositing software and filling out the metadata record in InvenioRDM by performing all the steps automatically._
@@ -50,12 +50,12 @@ IGA looks for `codemeta.json` and `CITATION.cff` files in a repository and uses
5050

5151
## Using IGA
5252

53-
IGA makes it easy to archive any release from GitHub into an InvenioRDM server. Once you have a personal access token ([PAT](glossary.md#term-PAT)) for InvenioRDM (and optionally for GitHub too) and have set the environment variable `INVENIO_TOKEN` (and optionally `GITHUB_TOKEN`), you can archive a GitHub release as easily as in this example:
53+
IGA makes it easy to archive any release from GitHub into an InvenioRDM server. Once you have a personal access token ([PAT](glossary.md#term-PAT)) for InvenioRDM (and optionally, one for GitHub too) and have set the environment variable `INVENIO_TOKEN` (and optionally `GITHUB_TOKEN`), you can archive a GitHub release as easily as in this example:
5454
```shell
5555
iga -s data.caltech.edu https://github.com/mhucka/taupe/releases/tag/v1.2.0
5656
```
5757
IGA will contact GitHub, extract metadata from the release and the repository, construct a metadata record in the format required by InvenioRDM, and send the record plus the GitHub release source archive (a [ZIP](https://en.wikipedia.org/wiki/ZIP_(file_format)) file) to the InvenioRDM server. Various options can modify IGA's behavior, as explained in detail in the section on [command-line usage of IGA](cli-usage.md).
5858

59-
Note that the availability of a command-line version of IGA means you can also use it to send _past_ releases to an InvenioRDM server &ndash; IGA doesn't care if what you're asking it to archive is the _latest_ release of something; it can archive any release. This makes it useful for archiving past projects; it also makes it possible for institutions to easily perform activities such as archiving software on behalf of faculty and students.
59+
Note that the availability of a command-line version of IGA means you can also use it to send _past_ GitHub releases to an InvenioRDM server &ndash; IGA doesn't care if what you're asking it to archive is the _latest_ release of something; it can archive any release. This makes it useful for archiving past projects; it also makes it possible for institutions to easily perform activities such as archiving software on behalf of faculty and students.
6060

6161
As a GitHub Action, IGA allows you to set up a GitHub workflow that will automatically send new releases to a designated InvenioRDM server. The procedure for this is detailed in the section on [GitHub Action usage of IGA](gha-usage.md). Once set up, you do not have to remember to send releases of a particular GitHub project to InvenioRDM &ndash; it will do it for you.

docs/quick-start.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ flowchart TD;
3434
4. On the page that is shown after you click that button, name your token (the name does not matter) and click the <kbd>Create</kbd> button<figure><img src="_static/media/new-pat.png" width="50%"></figure>
3535
5. After InvenioRDM creates and shows you the token, **copy it to a safe location** because InvenioRDM will not show it again
3636

37-
## Configuring a local IGA
37+
## Configuring IGA for local use
3838

3939
To send a GitHub release to your InvenioRDM server, IGA needs this information:
4040
1. (Required) The identity of the GitHub release to be archived
@@ -49,7 +49,7 @@ export INVENIO_TOKEN=qKLoOH0KYf4D98PGYQGnC09hiuqw3Y1SZllYnonRVzGJbWz2
4949
export GITHUB_TOKEN=ghp_wQXp6sy3AsKyyEo4l9esHNxOdo6T34Zsthz
5050
```
5151

52-
Once these are set, use of IGA can be as simple as providing a URL for a release in GitHub. For example, the following command creates a draft record (the `-d` option is short for `--draft`) for another project in GitHub and tells IGA to open (the `-o` option is short for `--open`) the newly-created InvenioRDM entry in a web browser:
52+
Once these are set, use of IGA can be as simple as providing a URL for a release in GitHub. For example, the following command creates a draft record (the `-d` option is short for `--draft`) for a certain project in GitHub and tells IGA to open (the `-o` option is short for `--open`) the newly-created InvenioRDM entry in a web browser:
5353
```shell
5454
iga -d -o https://github.com/mhucka/taupe/releases/tag/v1.2.0
5555
```

docs/tips.md

Lines changed: 96 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -36,86 +36,106 @@ IGA relies most on the `codemeta.json` file. It considers information sources in
3636

3737
### Example `codemeta.json` file
3838

39-
To give a sense for what a `codemeta.json` file looks like, here is the one for an early version of IGA itself:
39+
To give a sense for what a `codemeta.json` file looks like, here is the one for a version of IGA itself:
4040

4141
```json
4242
{
43-
"@context": "https://doi.org/10.5063/schema/codemeta-2.0",
44-
"@type": "SoftwareSourceCode",
45-
"name": "IGA: InvenioRDM GitHub Archiver",
46-
"description": "The InvenioRDM GitHub Archiver (IGA) lets you automatically archive GitHub software releases in an InvenioRDM repository.",
47-
"version": "0.0.7",
48-
"datePublished": "2023-04-25",
49-
"dateCreated": "2022-12-07",
50-
"author": [
51-
{
52-
"@type": "Person",
53-
"givenName": "Michael",
54-
"familyName": "Hucka",
55-
"affiliation": "California Institute of Technology Library",
56-
"email": "[email protected]",
57-
"@id": "https://orcid.org/0000-0001-9105-5960"
58-
}
59-
],
60-
"maintainer": [
61-
{
62-
"@type": "Person",
63-
"givenName": "Michael",
64-
"familyName": "Hucka",
65-
"affiliation": "California Institute of Technology Library",
66-
"email": "[email protected]",
67-
"@id": "https://orcid.org/0000-0001-9105-5960"
68-
}
69-
],
70-
"funder": {
71-
"@id": "https://ror.org/05dxps055"
72-
"@type": "Organization",
73-
"name": "California Institute of Technology Library",
74-
}
75-
"copyrightHolder": [
76-
{
77-
"@id": "https://ror.org/05dxps055"
78-
"@type": "Organization",
79-
"name": "California Institute of Technology",
80-
}
81-
],
82-
"copyrightYear": 2023,
83-
"license": "https://github.com/caltechlibrary/iga/blob/main/LICENSE",
84-
"isAccessibleForFree": true,
85-
"url": "https://github.com/caltechlibrary/iga",
86-
"codeRepository": "https://github.com/caltechlibrary/iga",
87-
"readme": "https://github.com/caltechlibrary/iga/blob/main/README.md",
88-
"issueTracker": "https://github.com/caltechlibrary/iga/issues",
89-
"softwareHelp": "https://caltechlibrary.github.io/iga",
90-
"releaseNotes": "https://github.com/caltechlibrary/iga/blob/main/CHANGES.md",
91-
"downloadUrl": "https://github.com/caltechlibrary/iga/archive/main.zip",
92-
"relatedLink": "https://pypi.org/project/iga",
93-
"programmingLanguage": {
94-
"@type": "ComputerLanguage",
95-
"name": "Python",
96-
"version": "3.9",
97-
"url": "https://www.python.org/"
43+
"@context": "https://doi.org/10.5063/schema/codemeta-2.0",
44+
"@type": "SoftwareSourceCode",
45+
"name": "InvenioRDM GitHub Archiver (IGA)",
46+
"identifier": "iga",
47+
"description": "The InvenioRDM GitHub Archiver (IGA) automatically archives GitHub releases in an InvenioRDM repository.",
48+
"version": "1.2.1",
49+
"datePublished": "2023-07-24",
50+
"dateCreated": "2022-12-07",
51+
"author": [
52+
{
53+
"@type": "Person",
54+
"givenName": "Michael",
55+
"familyName": "Hucka",
56+
"affiliation": {
57+
"@type": "Organization",
58+
"name": "California Institute of Technology Library"
9859
},
99-
"keywords": [
100-
"software",
101-
"science",
102-
"archiving",
103-
"archives",
104-
"preservation",
105-
"source code",
106-
"source code archiving",
107-
"source code preservation",
108-
"code preservation",
109-
"automation",
110-
"reproducibility",
111-
"research reproducibility",
112-
"InvenioRDM",
113-
"Invenio",
114-
"GitHub",
115-
"GitHub Actions",
116-
"GitHub Automation"
117-
],
118-
"developmentStatus": "active",
60+
"email": "[email protected]",
61+
"@id": "https://orcid.org/0000-0001-9105-5960"
62+
}
63+
],
64+
"contributor": [
65+
{
66+
"@type": "Person",
67+
"givenName": "Thomas E",
68+
"familyName": "Morrell",
69+
"affiliation": {
70+
"@type": "Organization",
71+
"name": "California Institute of Technology Library"
72+
},
73+
"email": "[email protected]",
74+
"@id": "https://orcid.org/0000-0001-9266-5146"
75+
}
76+
],
77+
"maintainer": [
78+
{
79+
"@type": "Person",
80+
"givenName": "Michael",
81+
"familyName": "Hucka",
82+
"affiliation": {
83+
"@type": "Organization",
84+
"name": "California Institute of Technology Library"
85+
},
86+
"email": "[email protected]",
87+
"@id": "https://orcid.org/0000-0001-9105-5960"
88+
}
89+
],
90+
"funder": {
91+
"@id": "https://ror.org/05dxps055",
92+
"@type": "Organization",
93+
"name": "California Institute of Technology Library"
94+
},
95+
"copyrightHolder": [
96+
{
97+
"@id": "https://ror.org/05dxps055",
98+
"@type": "Organization",
99+
"name": "California Institute of Technology"
100+
}
101+
],
102+
"copyrightYear": 2023,
103+
"license": "https://github.com/caltechlibrary/iga/blob/main/LICENSE",
104+
"isAccessibleForFree": true,
105+
"url": "https://caltechlibrary.github.io/iga",
106+
"codeRepository": "https://github.com/caltechlibrary/iga",
107+
"readme": "https://github.com/caltechlibrary/iga/blob/main/README.md",
108+
"releaseNotes": "https://github.com/caltechlibrary/iga/blob/main/CHANGES.md",
109+
"issueTracker": "https://github.com/caltechlibrary/iga/issues",
110+
"downloadUrl": "https://github.com/caltechlibrary/iga/releases",
111+
"softwareHelp": "https://caltechlibrary.github.io/iga",
112+
"relatedLink": "https://data.caltech.edu/records/62htz-vpt80",
113+
"programmingLanguage": {
114+
"@type": "ComputerLanguage",
115+
"name": "Python",
116+
"version": "3.9",
117+
"url": "https://www.python.org/"
118+
},
119+
"keywords": [
120+
"software",
121+
"science",
122+
"archiving",
123+
"archives",
124+
"preservation",
125+
"source code",
126+
"source code archiving",
127+
"source code preservation",
128+
"code preservation",
129+
"automation",
130+
"reproducibility",
131+
"research reproducibility",
132+
"InvenioRDM",
133+
"Invenio",
134+
"GitHub",
135+
"GitHub Actions",
136+
"GitHub Automation"
137+
],
138+
"developmentStatus": "active"
119139
}
120140
```
121141

0 commit comments

Comments
 (0)