Skip to content

Commit a5ad591

Browse files
committed
Updated readme based on discussion at #11
1 parent e180a68 commit a5ad591

File tree

1 file changed

+83
-58
lines changed

1 file changed

+83
-58
lines changed

README.md

Lines changed: 83 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,59 @@
1-
### ReScience C published articles
1+
## Publishing a ReScience C article
22

3-
In order to publish a new article (after acceptance), you'll need to have the
4-
article metadata file (YAML format) and the corresponding article (PDF
5-
format). The metadata file should be missing the article DOI, number and
6-
URL. The first step is thus to request this information from Zenodo. Before
3+
Congrats on accepting a ReScience article for publication! Follow the steps below to complete the metadata, submit to Zenodo, and get the final article published.
4+
5+
### What you will need to begin
6+
- The article metadata file (`metadata.yaml`) from the author's repository. At this time the metadata file should **will be missing** the article DOI, number and URL. This is expected and something you will fix over the coming steps.
7+
- The final article itself (`article.pdf`)
8+
9+
Have these two files ready before cloning this repository.
10+
11+
### Publishing the article
12+
13+
There are 5 parts to publishing the article.
14+
15+
| Step | What it does |
16+
|:--|:--|
17+
| Set up credentials | Get setup to programmatically submit to Zenodo |
18+
| Pre-publish the paper | Reserves the DOI |
19+
| Update the metadata | Add volume, issue, page, doi to the paper & generate new pdf |
20+
| Publish the paper | Make the final Zenodo deposit |
21+
| Update the website | Enter bib information for the website |
22+
23+
24+
25+
### 14 steps to publish a ReScience article
26+
27+
1\. Clone this repository locally.
28+
2\. Copy the authors `metadata.yaml` and `article.pdf` into this folder
29+
30+
### Set up Credentials
31+
32+
3\. To submit the paper and metadata to Zenodo, you will need to set up access tokens. Setting up your Zenodo sandbox and production tokens is a one time step. If you have done this before, skip over to step 4.
33+
34+
The first step is thus to request this information from Zenodo. Before
735
proceeding further, you'll need a Zenodo token that can be requested from the
836
[sandbox
937
server](https://sandbox.zenodo.org/account/settings/applications/tokens/new/)
1038
and from the [actual
11-
server](https://zenodo.org/account/settings/applications/tokens/new/).
12-
39+
server](https://zenodo.org/account/settings/applications/tokens/new/). When creating tokens, be sure to check all three scopes.
1340
The sandbox token is expected to be stored in the environment variable
1441
`ZENODO_SANDBOX_TOKEN` while the true token must be stored in `ZENODO_TOKEN`, e.g.:
1542
```bash
1643
export ZENODO_SANDBOX_TOKEN="access token"
44+
export ZENODO_TOKEN="access token"
1745
```
1846
And to check it was set correctly:
1947
```bash
2048
echo $ZENODO_SANDBOX_TOKEN
49+
echo $ZENODO_TOKEN
2150
```
22-
We strongly advise you to **first test the procedure** on the sandbox server
23-
using the `--sandbox` switch.
51+
If you copy these in your bash profile you wont have to look for them again. We advise you to **first test the procedure** on the sandbox server using the `--sandbox` switch. More on this in the next step.
52+
2453

54+
### Pre-publish the paper
2555

26-
#### 1. Pre-Publication (article DOI, URL and number)
56+
This step reserves the DOI for the paper, allowing you to update metadata before final publication.
2757

2858
Run the [process.py](process.py) script using the provided metadata
2959
file. It requires Python 3 plus the libraries [PyYAML](https://pyyaml.org/), [Requests](https://requests.kennethreitz.org/), and [dateutil](https://dateutil.readthedocs.io/en/stable/).
@@ -37,8 +67,7 @@ Article DOI: 10.xxxx/zenodo.xxxxx
3767
Article URL: https://sandbox.zenodo.org/record/xxxxxx/file/article.pdf
3868
```
3969

40-
Then use the actual server using the `--zenodo` switch instead of the
41-
`--sandbox` switch.
70+
Did this work? Were there any problems? If there were no problems, then use the production server using the `--zenodo` switch instead of the `--sandbox` switch.
4271

4372
```bash
4473
$ ./process.py --zenodo --metadata metadata.yaml --pdf article.pdf
@@ -47,48 +76,37 @@ Article DOI: 10.xxxx/zenodo.xxxxx
4776
Article URL: https://zenodo.org/record/xxxxxx/file/article.pdf
4877
```
4978

50-
You must also assign the issue, volume, and article numbers. Have a
51-
look on the published articles and assign the next available number in
52-
the same issue and same volume if your article is still in the same
53-
year. Otherwise, increment the volume number and start with
54-
issue 1. The issue number is only changed for accommodating special issues.
55-
Post your numbers to [this GitHub issue](https://github.com/ReScience/ReScience/issues/48)
56-
that serves to avoid that two editors assign the same numbers to two
57-
different articles.
79+
6\. If no errors were returned, you have successfully reserved a DOI! Next we’ll grab an issue, volume and article numbers.
80+
81+
```
82+
NOTE: This DOI will not resolve anywhere. This behavior is expected
83+
```
5884

85+
### Update the metadata
5986

60-
#### 2. Metadata update and creation of the final PDF
87+
In this step, you'll update `metadata.yaml`, pull request the file back to the author, generate a new PDF (which will now contain the volume, issue, page, doi information), and copy that back here.
6188

62-
The `metadata.yaml` has a section (at the end) for information added during
63-
the publication process. You should complete it and verify the whole file
64-
before moving on. The information you must add is:
89+
7\. Look at the last number on [this GitHub issue](https://github.com/ReScience/ReScience/issues/48) and choose the next one in the series. Post a comment to claim that issue for your article. This comment
90+
serves to avoid that two editors assign the same numbers to two
91+
different articles.
92+
93+
8\. Then add these two bits of information (volume and article number) along with the Zenodo DOI and URL to `metadata.yaml`.
94+
95+
You should complete the missing information and verify the whole file before moving on. The information you must add is:
6596
- DOI (from Zenodo)
6697
- article URL (from Zenodo)
6798
- contributors (reviewers and editors), with ORCIDs
6899
- acceptance and publication date
69100
- issue, volume, and article numbers.
70101

71-
Next, there are two situations:
72-
73-
- If the authors have used the [ReScience article template](http://github.com/rescience/template),
74-
you can fork their repository, copy the edited `metadata.yaml` to it, and create
75-
the final PDF by running `make`. Don't forget to submit a pull request to the
76-
authors' repository with the changes you made to `metadata.yaml`.
77-
78-
- Otherwise, you give the authors the required information and
79-
ask them to update their article and produce the final PDF file. You should
80-
check that their PDF contains all the information you sent them.
102+
9\. Pull request just the `metadata.yaml` back to the author's repo (this will mean copying this file back to the author repo fork). Once the pull-request is merged, have them `Make` a new `article.pdf`. The PDF will now contain the volume, article number and DOI.
81103

82-
You need to give this information back to author(s) such that they can update
83-
the metadata file as well as the article that display the DOI in the left
84-
margin (make sure they actually update this information). For the article
85-
number, you can have a look on the published articles and assign the next
86-
available number in the same issue and same volume.
104+
10\. Copy the newly updated `article.pdf` and `metadata.yaml` back to this repo.
87105

106+
107+
### Publish the paper
88108

89-
#### 3. Publication (Zenodo and GitHub)
90-
91-
In order to publish the **final** article, you'll need to run the
109+
11\. In order to publish the **final** article, you'll need to run the
92110
[publish.py](publish.py) script:
93111

94112
```bash
@@ -113,19 +131,26 @@ A new git branch (10.5072_zenodo.xxxxx) has been created.
113131
```
114132

115133
This example uses the sandbox, replace `--sandbox` by `--zenodo` for
116-
publishing to the Zenodo production site! This will create a new
117-
public record on Zenodo and also create a new local directory
118-
corresponding to the entry. This means you need to push this new
119-
branch on GitHub and make a pull request (the commit will have been
120-
created automatically).
121-
122-
123-
#### Website update
124-
125-
To have the new article to appear on the website, you'll need to prepend the
126-
newly created bibtex entry (look into the local repository) to the
127-
[published.bib](https://github.com/ReScience/rescience.github.io/blob/sources/_bibliography/published.bib)
128-
file on the website (you can do it directly from the GitHub interface). If you
129-
previously added the entry to the
130-
[under_review.bib](https://github.com/ReScience/rescience.github.io/blob/sources/_bibliography/under-review.bib)
131-
file, don't forget to remove it.
134+
publishing to the Zenodo production site.
135+
136+
This will create a new folder and branch in `Rescience/articles` named after the article's DOI that contains three files:
137+
- The article (`article.pdf`)
138+
- metadata (`article.yaml`)
139+
- bib file (`article.bib`)
140+
141+
- Now push this branch:
142+
143+
```
144+
git push origin <DOI>
145+
```
146+
147+
148+
12\. Discard any changes on the master branch.
149+
150+
### Website update
151+
152+
To have the new article to appear on the website, you'll need to prepend the newly created bibtex entry.
153+
154+
13\. Finally, copy the contents of `article.bib` from the doi folder for this paper into [rescience.github.io/_bibliography/published.bib](https://github.com/ReScience/rescience.github.io/blob/sources/_bibliography/published.bib) and send a final pull request (You can do this from the web).
155+
156+
14\. Now you’re done! 🎉 🚀

0 commit comments

Comments
 (0)