From 8e35688b17efc1ba7eebff95cde0784b9422c940 Mon Sep 17 00:00:00 2001 From: Dawa Ometto Date: Tue, 24 May 2022 16:27:39 +0200 Subject: [PATCH] Release preparation: update readme, rakefile and changelog (#1788) * Update README.md * Add LATEST_CHANGES.md and release helpers --- .github/workflows/release.yml | 7 +++-- HISTORY.md | 6 ++-- LATEST_CHANGES.md | 3 ++ README.md | 52 +++++++++++++++++++---------------- Rakefile | 51 ++++++++++++++++++++++++++++++++++ 5 files changed, 90 insertions(+), 29 deletions(-) create mode 100644 LATEST_CHANGES.md 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 ![Build Status](https://github.com/gollum/gollum/actions/workflows/test.yaml/badge.svg) [![Open Source Helpers](https://www.codetriage.com/gollum/gollum/badges/users.svg)](https://www.codetriage.com/gollum/gollum) [![Cutting Edge Dependency Status](https://dometto-cuttingedge.herokuapp.com/github/gollum/gollum/svg 'Cutting Edge Dependency Status')](https://dometto-cuttingedge.herokuapp.com/github/gollum/gollum/info) +[![Docker Pulls](https://img.shields.io/docker/pulls/gollumwiki/gollum)](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'