Skip to content

Commit 3b99955

Browse files
committed
Improve documentation
- Added a release checklist with detailed instructions - Added download info on FORD landing page through project metadata - Added syntax highlighted versions of various build and development scripts - Use index.html with redirects in old ROBODoc documentation to simplify release tagging
1 parent d70d8ca commit 3b99955

File tree

8 files changed

+156
-15
lines changed

8 files changed

+156
-15
lines changed

json-fortran.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ project_dir: ./src
44
output_dir: ./doc
55
media_dir: ./media
66
project_github: https://github.com/jacobwilliams/json-fortran
7+
project_download: https://github.com/jacobwilliams/json-fortran/releases/latest
78
summary: JSON-Fortran -- A Fortran 2008 JSON API
89
author: Jacob Williams
910
github: https://github.com/jacobwilliams
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
title: build.sh
2+
3+
Below is the build script used to build JSON-Fortran using
4+
[FoBiS.py](https://github.com/szaghi/FoBiS).
5+
6+
```bash
7+
{!build.sh!}
8+
```
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
title: deploy.sh
2+
3+
This is the script that deploys the automatically generated
4+
[FORD](https://github.com/cmacmackin/FORD) documentation which you are
5+
currently reading.
6+
7+
```bash
8+
{!deploy.sh!}
9+
```
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
title: gccr.pl
2+
3+
Below is the source code for `gccr.pl`, which was downloaded from
4+
<https://github.com/eel3/gccr> on July 23, 2015. This script is used
5+
by the [`build.sh`](build.sh.html) script to merge the code coverage
6+
information for the [coverage report](json_module.F90.gcov.html).
7+
8+
```perl
9+
{!pages/development-resources/gccr.pl!}
10+
```

pages/development-resources/json_module.F90.gcov.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,16 @@ title: Coverage Analysis
1010
The following report was automatically generated from
1111
[gcov](https://gcc.gnu.org/onlinedocs/gcc/Gcov.html) output by the
1212
[FoBiS.py](https://github.com/szaghi/FoBiS) Fortran build
13-
tool. [gccr.pl](|url|/page/development-resources/gccr.pl) was used to
13+
tool. [gccr.pl](gccr.pl.html) was used to
1414
merge [gcov](https://gcc.gnu.org/onlinedocs/gcc/Gcov.html) coverage
15-
reports, and can be obtained at <https://github.com/eel3/gccr>. If
16-
procedure coverage is at 100%, also have a look at the
17-
[Codecov.io coverage suggestions](https://codecov.io/github/jacobwilliams/json-fortran/features/suggestions)
15+
reports, and can be obtained at <https://github.com/eel3/gccr>. Any
16+
procedures surrounded by double square brackets below are internal
17+
procedures and do not have their own documentation page--documentation
18+
for these procedures is included in the documentation of the scope in
19+
which they are defined.
20+
21+
If procedure coverage is at 100%, also have a look at the
22+
[Codecov.io coverage suggestions](https://codecov.io/github/jacobwilliams/json-fortran/features/suggestions).
1823

1924
![Codecov.io](http://codecov.io/github/jacobwilliams/json-fortran/branch.svg?branch=master)
2025

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
title: Release Checklist
2+
3+
When tagging a new release please follow this checklist so that the
4+
documentation will be updated correctly, and version strings will
5+
remain accuracte.
6+
7+
# Release Checklist
8+
9+
1. Make sure you are working from the master branch: `git checkout master`
10+
1. Update the `CHANGELOG.md`
11+
1. Ensure that the changes listed under
12+
[Unreleased](|url|/page/releases/index.html#Unreleased) are up
13+
to date and accurate.
14+
1. Look at the latest [changes commited to GitHub since the
15+
last release](https://github.com/jacobwilliams/json-fortran/compare/{!__VERSION__!}...HEAD),
16+
{!__VERSION__!}. This will only be accurate if you have
17+
not yet updated `__VERSION__`. If you *have* updated
18+
`__VERSION__` then edit the URL manually to view the
19+
changes.
20+
1. Run the
21+
[`github_changelog_generator`](https://github.com/skywinder/github-changelog-generator)
22+
as follows, and compare the output to the
23+
[Unreleased](|url|/page/releases/index.html#Unreleased)
24+
section of the `CHANGELOG.md`:
25+
`github_changelog_generator -o Unreleased.md
26+
--unreleased-only --bugs-label "**Fixed issues:**"
27+
--enhancement-lable "**Enhancements:**" --issues-lable
28+
"**Fixed issues:**"` and make sure that you have a
29+
16-digit GitHub token stored in the environment variable
30+
`CHANGELOG_GITHUB_TOKEN`. Compare generated
31+
`Unreleased.md` to the "Unreleased" section of
32+
`CHANGELOG.md` and make updates as needed.
33+
1. Rename the "Unreleased" section to the new version number
34+
1. Copy the "Unreleased" section header and "Complete
35+
Changeset" link line and insert it just below the TOC
36+
1. In the newly inserted "Complete Changeset" URL replace the
37+
old version number with the new version number
38+
1. Rename the lower "Unreleased" section (with all the
39+
changes) to the current version
40+
1. Replace `HEAD` in the header URL with the new version
41+
number
42+
1. Replace `HEAD` in the "Complete Changeset" link with the
43+
new version number.
44+
1. Insert the new version section in the TOC just below the
45+
"Unreleased" entry
46+
1. Add `CHANGELOG.md` to the git index: `git add CHANGELOG.md`
47+
1. Add an entry in `pages/releases/index.md` under the "Past
48+
Releases" heading
49+
1. Copy/paste the most recent one listed and replace all
50+
occurences of the old version string with the new version
51+
string
52+
1. Add `pages/releases/index.md` to the git index: `git add pages/releases/index.md`
53+
1. Update the version string in remaining files requiring manual edits:
54+
1. Edit the `__VERSION__` file
55+
1. Edit the CMake example on line 123 of `README.md`
56+
1. Add both files to the git index: `git add __VERSION__
57+
README.md`
58+
1. Commit the changes to the master branch: `git commit`
59+
1. Create the tag: `git tag <new version>`
60+
1. [deploy.sh](|url|/page/development-resources/deploy.sh.html) will
61+
publish the documentation for the latest tag from
62+
[Travis-CI](https://travis-ci.org/jacobwilliams/json-fortran) to
63+
https://jacobwilliams.github.io/json-fortran/<version>/ if all
64+
goes according to plan
65+
1. Push tags and master to GitHub: `git push --tags origin master`
66+
1. [Draft and publish](https://github.com/jacobwilliams/json-fortran/releases/new)
67+
a new GitHub Release corresponding to the new version
68+
1. Update the Homebrew formula
69+
1. [Fork](https://github.com/Homebrew/homebrew#fork-destination-box)
70+
the
71+
[Homebrew repository](https://github.com/Homebrew/homebrew)
72+
1. Change to your local Homebrew repository: `cd $(brew
73+
--repository)/Library/Formula`
74+
1. Add your fork as a pushable remote: `git remote add
75+
YOUR_USERNAME https://github.com/YOUR_USERNAME/homebrew.git`
76+
1. Make sure you're on the master branch: `git checkout master`
77+
1. Make sure eveything is up to date: `brew update` (this calls
78+
`git pull`)
79+
1. Create a new branch from the latest master branch with `git
80+
checkout -b YOUR_BRANCH_NAME origin/master`
81+
1. Edit the `json-fortran.rb` formula with `brew edit
82+
json-fortran`
83+
1. Do *NOT* change anything other than the URL and the SHA256
84+
checksum at the top of the formula. These should be changed to
85+
correspond to the new version of the compressed tarball
86+
available on newly minted
87+
[latest releaase page](https://github.com/jacobwilliams/json-fortran/releases/latest)
88+
1. Test the changes to make sure that they will be accepted:
89+
1. `brew audit --strict --online json-fortran`
90+
1. `brew rm json-fortran`
91+
1. `brew install -v json-fortran`
92+
1. `brew test -v json-fortran`
93+
1. Add `json-fortran.rb` to the index (`git add json-fortran.rb`)
94+
1. Commit your changes with the correct commit message: `git
95+
commit -m "json-fortran <new-version-string-here>"`
96+
1. Push changes to your fork: `git push --set-upstream
97+
YOUR_USERNAME YOUR_BRANCH_NAME`
98+
1. Go to <https://github.com/Homebrew/homebrew> and submit a pull
99+
request
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
title: .travis.yml
2+
3+
This is the
4+
[Travis-CI](https://travis-ci.org/jacobwilliams/json-fortran) script
5+
used to perform continuous integration testing for JSON-Fortran, and
6+
trigger automatic documentation deployment.
7+
8+
```YAML
9+
{!.travis.yml!}
10+
```

pages/releases/index.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,35 +24,34 @@ documentation from the documentation for official releases other than
2424
using the browser's back button. Feel free to bookmark this page, or
2525
the [main project page](|url|/index.html) for convenient navigation.
2626

27-
* [4.1.1](http://jacobwilliams.github.io/json-fortran/4.1.1/json_module_F90.html)
27+
* [4.1.1](http://jacobwilliams.github.io/json-fortran/4.1.1/index.html)
2828
([ROBODoc](https://github.com/gumpu/ROBODoc) generated documentation)
2929
- [Download](https://github.com/jacobwilliams/json-fortran/releases/tag/4.1.1)
30-
* [4.1.0](http://jacobwilliams.github.io/json-fortran/4.1.0/json_module_F90.html)
30+
* [4.1.0](http://jacobwilliams.github.io/json-fortran/4.1.0/index.html)
3131
([ROBODoc](https://github.com/gumpu/ROBODoc) generated documentation)
3232
- [Download](https://github.com/jacobwilliams/json-fortran/releases/tag/4.1.0)
33-
* [4.0.0](http://jacobwilliams.github.io/json-fortran/4.0.0/json_module_F90.html)
33+
* [4.0.0](http://jacobwilliams.github.io/json-fortran/4.0.0/index.html)
3434
([ROBODoc](https://github.com/gumpu/ROBODoc) generated documentation)
3535
- [Download](https://github.com/jacobwilliams/json-fortran/releases/tag/4.0.0)
36-
* [3.1.0](http://jacobwilliams.github.io/json-fortran/3.1.0/json_module_f90.html)
36+
* [3.1.0](http://jacobwilliams.github.io/json-fortran/3.1.0/index.html)
3737
([ROBODoc](https://github.com/gumpu/ROBODoc) generated documentation)
3838
- [Download](https://github.com/jacobwilliams/json-fortran/releases/tag/3.1.0)
39-
* [3.0.0](http://jacobwilliams.github.io/json-fortran/3.0.0/json_module_f90.html)
39+
* [3.0.0](http://jacobwilliams.github.io/json-fortran/3.0.0/index.html)
4040
([ROBODoc](https://github.com/gumpu/ROBODoc) generated documentation)
4141
- [Download](https://github.com/jacobwilliams/json-fortran/releases/tag/3.0.0)
42-
* [2.0.0](http://jacobwilliams.github.io/json-fortran/2.0.0/json_module_f90.html)
42+
* [2.0.0](http://jacobwilliams.github.io/json-fortran/2.0.0/index.html)
4343
([ROBODoc](https://github.com/gumpu/ROBODoc) generated documentation)
4444
- [Download](https://github.com/jacobwilliams/json-fortran/releases/tag/2.0.0)
45-
* [1.0.0](http://jacobwilliams.github.io/json-fortran/1.0.0/json_module_f90.html)
45+
* [1.0.0](http://jacobwilliams.github.io/json-fortran/1.0.0/index.html)
4646
([ROBODoc](https://github.com/gumpu/ROBODoc) generated documentation)
4747
- [Download](https://github.com/jacobwilliams/json-fortran/releases/tag/1.0.0)
4848

4949
# Development Version
5050

5151
Documentation for the latest development version may be found at
52-
http://jacobwilliams.github.io/json-fortran or generated locally using
53-
the
54-
[build.sh](https://github.com/jacobwilliams/json-fortran/blob/master/build.sh)
55-
build script.
52+
<|url|> or generated locally using the
53+
[build.sh](|url|page/development-resources/build.sh.html) build
54+
script.
5655

5756
# Release Notes
5857

0 commit comments

Comments
 (0)