diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index f7723a35..64eb3aa9 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -19,7 +19,8 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
- tag_name: ${{ github.ref }}
- release_name: Release ${{ github.ref }}
- draft: false
+ tag_name: ${{ github.ref_name }}
+ release_name: Release ${{ github.ref_name }}
+ draft: true
prerelease: false
+ body_path: "LATEST_CHANGES.md"
diff --git a/HISTORY.md b/HISTORY.md
index 0c7fa577..55ef2f3d 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,12 +1,12 @@
-# 5.2.3 2021-04-18
+# 5.2.3 / 2021-04-18
* Fix bug preventing page titles from being displayed
-# 5.2.1 2021-02-25
+# 5.2.1 / 2021-02-25
* Fix include call to a missing asset (@benjaminwil). This caused slow first page loads on JRuby.
-# 5.2 2021-02-24
+# 5.2 / 2021-02-24
* Improved styling and Primer upgrade (@benjaminwil)
* Add redirect to rename commit (@ViChyavIn)
diff --git a/LATEST_CHANGES.md b/LATEST_CHANGES.md
new file mode 100644
index 00000000..6bd4c761
--- /dev/null
+++ b/LATEST_CHANGES.md
@@ -0,0 +1,3 @@
+# 5.2.3 / 2021-04-18
+
+* Fix bug preventing page titles from being displayed
\ No newline at end of file
diff --git a/README.md b/README.md
index f63c1198..32aa3db4 100644
--- a/README.md
+++ b/README.md
@@ -5,21 +5,24 @@ gollum -- A git-based Wiki

[](https://www.codetriage.com/gollum/gollum)
[](https://dometto-cuttingedge.herokuapp.com/github/gollum/gollum/info)
+[](https://hub.docker.com/r/gollumwiki/gollum)
-
-**Gollum version 5.0 is out!** See [here](https://github.com/gollum/gollum/wiki/5.0-release-notes) for a list of changes and new features compared to Gollum version 4.x, and see some [Screenshots](https://github.com/gollum/gollum/wiki/Screenshots) of Gollum's features.
+See the [wiki](https://github.com/gollum/gollum/wiki) for extensive documentation, along with [screenshots](https://github.com/gollum/gollum/wiki/Screenshots) of Gollum's features.
## DESCRIPTION
Gollum is a simple wiki system built on top of Git. A Gollum Wiki is simply a git repository of a specific nature:
+
* A Gollum repository's contents are human-editable text or markup files.
* Pages may be organized into directories any way you choose.
* Other content can also be included, for example images, PDFs and headers/footers for your pages.
* Gollum pages:
* May be written in a variety of [markups](#markups).
- * Can be edited with your favourite system editor or IDE (changes will be visible after committing) or with the built-in web interface.
+ * Can be edited with your favourite editor (changes will be visible after committing) or with the built-in web interface.
* Can be displayed in all versions, reverted, etc.
-* Gollum strives to be compatible with GitHub wikis (see `--lenient-tag-lookup`)
+* Gollum strives to be [compatible](https://github.com/gollum/gollum/wiki/5.0-release-notes#compatibility-option) with [GitHub](https://docs.github.com/en/communities/documenting-your-project-with-wikis/about-wikis) and [GitLab](https://docs.gitlab.com/ee/user/project/wiki/#create-or-edit-wiki-pages-locally) wikis.
+ * Just clone your GitHub/GitLab wiki and view and edit it locally!
+
* Gollum supports advanced functionality like:
* [UML diagrams](https://github.com/gollum/gollum/wiki#plantuml-diagrams)
* [BibTeX and Citation support](https://github.com/gollum/gollum/wiki/BibTeX-and-Citations)
@@ -32,16 +35,17 @@ Gollum is a simple wiki system built on top of Git. A Gollum Wiki is simply a gi
### SYSTEM REQUIREMENTS
-Gollum runs on Unix-like systems using its [adapter](https://github.com/gollum/rugged_adapter) for [rugged](https://github.com/libgit2/rugged) by default. You can also run Gollum on [JRuby](https://github.com/jruby/jruby) via its [adapter](https://github.com/repotag/gollum-lib_rjgit_adapter) for [RJGit](https://github.com/repotag/rjgit/). On Windows, Gollum runs only on JRuby.
+Gollum runs on Unix-like systems using its default [adapter](https://github.com/gollum/rugged_adapter) for [rugged](https://github.com/libgit2/rugged). You can also run Gollum on [JRuby](https://github.com/jruby/jruby) via its [adapter](https://github.com/repotag/gollum-lib_rjgit_adapter) for [RJGit](https://github.com/repotag/rjgit/). On Windows, Gollum runs only on JRuby.
## INSTALLATION
-1. Ruby is best installed either via [RVM](https://rvm.io/) or a package manager of choice.
-2. Gollum is best installed via RubyGems:
- ```
- [sudo] gem install gollum
- ```
+### As a Ruby Gem
+Ruby is best installed either via [RVM](https://rvm.io/) or a package manager of choice. Then simply:
+ ```
+ gem install gollum
+ ```
+
Installation examples for individual systems can be seen [here](https://github.com/gollum/gollum/wiki/Installation).
To run, simply:
@@ -49,24 +53,30 @@ To run, simply:
1. Run: `gollum /path/to/wiki` where `/path/to/wiki` is an initialized Git repository.
2. Open `http://localhost:4567` in your browser.
+### Via Docker
+
+See [here](https://github.com/gollum/gollum/wiki/Gollum-via-Docker) for instructions on how to run Gollum via Docker.
+
+### Misc
+
See [below](#running-from-source) for information on running Gollum from source, as a Rack app, and more.
-### Markups
+## MARKUPS
Gollum allows using different markup languages on different wiki pages. It presently ships with support for the following markups:
* [Markdown](http://daringfireball.net/projects/markdown/syntax) (see [below](#Markdown-flavors) for more information on Markdown flavors)
* [RDoc](http://rdoc.sourceforge.net/)
You can easily activate support for other markups by installing additional renderers (any that are supported by [github-markup](https://github.com/github/markup)):
-* [AsciiDoc](http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/) -- `[sudo] gem install asciidoctor`
-* [Creole](http://www.wikicreole.org/wiki/CheatSheet) -- `[sudo] gem install creole`
-* [MediaWiki](http://www.mediawiki.org/wiki/Help:Formatting) -- `[sudo] gem install wikicloth`
-* [Org](http://orgmode.org/worg/dev/org-syntax.html) -- `[sudo] gem install org-ruby`
+* [AsciiDoc](http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/) -- `gem install asciidoctor`
+* [Creole](http://www.wikicreole.org/wiki/CheatSheet) -- `gem install creole`
+* [MediaWiki](http://www.mediawiki.org/wiki/Help:Formatting) -- `gem install wikicloth`
+* [Org](http://orgmode.org/worg/dev/org-syntax.html) -- `gem install org-ruby`
* [Pod](http://perldoc.perl.org/perlpod.html) -- requires Perl >= 5.10 (the `perl` command must be available on your command line)
* Lower versions should install `Pod::Simple` from CPAN.
-* [ReStructuredText](http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html) -- requires python >= 2 (the `python2` command must be available on your command line)
- * Note that Gollum will also need you to install `docutils` for your Python 2.
-* [Textile](http://redcloth.org/hobix.com/textile/quick.html) -- `[sudo] gem install RedCloth`
+* [ReStructuredText](http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html) -- requires python >= 3
+ * Note that Gollum will also need you to install `docutils` for python
+* [Textile](http://redcloth.org/hobix.com/textile/quick.html) -- `gem install RedCloth`
### Markdown flavors
@@ -90,10 +100,6 @@ Gollum can also be run with any [rack-compatible web server](https://github.com/
Gollum can also be run alongside a CAS (Central Authentication Service) SSO (single sign-on) server. With a bit of tweaking, this adds basic user-support to Gollum. To see an example and an explanation, navigate [over here](https://github.com/gollum/gollum/wiki/Gollum-via-Rack-and-CAS-SSO).
-### Docker
-
-Gollum can also be run via [Docker](https://www.docker.com/). More on that [over here](https://github.com/gollum/gollum/wiki/Gollum-via-Docker).
-
### Service
Gollum can also be run as a service. More on that [over here](https://github.com/gollum/gollum/wiki/Gollum-as-a-service).
@@ -106,7 +112,7 @@ Gollum comes with the following command line options:
| ----------------- | --------- | ----------- |
| --host | [HOST] | Specify the hostname or IP address to listen on. Default: '0.0.0.0'.1 |
| --port | [PORT] | Specify the port to bind Gollum with. Default: `4567`. |
-| --config | [FILE] | Specify path to Gollum's configuration file. |
+| --config | [FILE] | Specify path to Gollum's [configuration file](#Config-file). |
| --ref | [REF] | Specify the git branch to serve. Default: `master`. |
| --bare | none | Tell Gollum that the git repository should be treated as bare. |
| --adapter | [ADAPTER] | Launch Gollum using a specific git adapter. Default: `rugged`.2 |
diff --git a/Rakefile b/Rakefile
index d7acfa8a..24cfc3f6 100644
--- a/Rakefile
+++ b/Rakefile
@@ -1,5 +1,7 @@
require 'rubygems'
require 'rake'
+require 'date'
+require 'tempfile'
#############################################################################
#
@@ -16,6 +18,14 @@ def version
line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
end
+def latest_changes_file
+ 'LATEST_CHANGES.md'
+end
+
+def history_file
+ 'HISTORY.md'
+end
+
# assumes x.y.z all digit version
def next_version
# x.y.z
@@ -105,6 +115,7 @@ task :release => :build do
puts "You must be on the master branch to release!"
exit!
end
+ Rake::Task[:changelog].execute
sh "git commit --allow-empty -a -m 'Release #{version}'"
sh "git pull --rebase origin master"
sh "git tag v#{version}"
@@ -167,6 +178,46 @@ task :validate do
end
end
+desc 'Build changlog'
+task :changelog do
+ [latest_changes_file, history_file].each do |f|
+ unless File.exists?(f)
+ puts "#{f} does not exist but is required to build a new release."
+ exit!
+ end
+ end
+
+ latest_changes = File.open(latest_changes_file)
+ version_pattern = "# #{version}"
+
+ if !`grep "#{version_pattern}" #{history_file}`.empty?
+ puts "#{version} is already described in #{history_file}"
+ exit!
+ end
+
+ begin
+ unless latest_changes.readline.chomp! =~ %r{#{version_pattern}}
+ puts "#{latest_changes_file} should begin with '#{version_pattern}'"
+ exit!
+ end
+ rescue EOFError
+ puts "#{latest_changes_file} is empty!"
+ exit!
+ end
+
+ body = latest_changes.read
+ body.scan(/\s*#\s+\d\.\d.*/) do |match|
+ puts "#{latest_changes_file} may not contain multiple markdown headers!"
+ exit!
+ end
+
+ temp = Tempfile.new
+ temp.puts("#{version_pattern} / #{date}\n#{body}\n")
+ temp.close
+ `cat #{history_file} >> #{temp.path}`
+ `cat #{temp.path} > #{history_file}`
+end
+
desc 'Precompile assets'
task :precompile do
require './lib/gollum/app.rb'