pandoc/.github/workflows/release-candidate.yml
John MacFarlane e0984a43a9 Add built-in citation support using new citeproc library.
This deprecates the use of the external pandoc-citeproc
filter; citation processing is now built in to pandoc.

* Add dependency on citeproc library.
* Add Text.Pandoc.Citeproc module (and some associated unexported
  modules under Text.Pandoc.Citeproc).  Exports `processCitations`.
  [API change]
* Add data files needed for Text.Pandoc.Citeproc:  default.csl
  in the data directory, and a citeproc directory that is just
  used at compile-time.  Note that we've added file-embed as a mandatory
  rather than a conditional depedency, because of the biblatex
  localization files. We might eventually want to use readDataFile
  for this, but it would take some code reorganization.
* Text.Pandoc.Loging: Add `CiteprocWarning` to `LogMessage` and use it
  in `processCitations`. [API change]
* Add tests from the pandoc-citeproc package as command tests (including
  some tests pandoc-citeproc did not pass).
* Remove instructions for building pandoc-citeproc from CI and
  release binary build instructions.  We will no longer distribute
  pandoc-citeproc.
* Markdown reader: tweak abbreviation support.  Don't insert a
  nonbreaking space after a potential abbreviation if it comes right before
  a note or citation.  This messes up several things, including citeproc's
  moving of note citations.
* Add `csljson` as and input and output format. This allows pandoc
  to convert between `csljson` and other bibliography formats,
  and to generate formatted versions of CSL JSON bibliographies.
* Add module Text.Pandoc.Writers.CslJson, exporting `writeCslJson`. [API
  change]
* Add module Text.Pandoc.Readers.CslJson, exporting `readCslJson`. [API
  change]
* Added `bibtex`, `biblatex` as input formats.  This allows pandoc
  to convert between BibLaTeX and BibTeX and other bibliography formats,
  and to generated formatted versions of BibTeX/BibLaTeX bibliographies.
* Add module Text.Pandoc.Readers.BibTeX, exporting `readBibTeX` and
  `readBibLaTeX`. [API change]
* Make "standalone" implicit if output format is a bibliography format.
  This is needed because pandoc readers for bibliography formats put
  the bibliographic information in the `references` field of metadata;
  and unless standalone is specified, metadata gets ignored.
  (TODO: This needs improvement. We should trigger standalone for the
  reader when the input format is bibliographic, and for the writer
  when the output format is markdown.)
* Carry over `citationNoteNum` to `citationNoteNumber`.  This was just
  ignored in pandoc-citeproc.
* Text.Pandoc.Filter: Add `CiteprocFilter` constructor to Filter.
  [API change] This runs the processCitations transformation.
  We need to treat it like a filter so it can be placed
  in the sequence of filter runs (after some, before others).
  In FromYAML, this is parsed from `citeproc` or `{type: citeproc}`,
  so this special filter may be specified either way in a defaults file
  (or by `citeproc: true`, though this gives no control of positioning
  relative to other filters).  TODO: we need to add something to the
  manual section on defaults files for this.
* Add deprecation warning if `upandoc-citeproc` filter is used.
* Add `--citeproc/-C` option to trigger citation processing.
  This behaves like a filter and will be positioned
  relative to filters as they appear on the command line.
* Rewrote the manual on citatations, adding a dedicated Citations
  section which also includes some information formerly found in
  the pandoc-citeproc man page.
* Look for CSL styles in the `csl` subdirectory of the pandoc user data
  directory.  This changes the old pandoc-citeproc behavior, which looked
  in `~/.csl`.  Users can simply symlink `~/.csl` to the `csl`
  subdirectory of their pandoc user data directory if they want
  the old behavior.
* Add support for CSL bibliography entry formatting to LaTeX, HTML,
  Ms writers.  Added CSL-related CSS to styles.html.
2020-09-21 10:15:50 -07:00

141 lines
5.3 KiB
YAML

name: Release candidate
on:
push:
branches:
- 'rc/**'
jobs:
linux:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1
- name: Create linux package
run: |
make debpkg
mkdir linux-release-candidate
cp linux/artifacts/*.deb linux-release-candidate/
cp linux/artifacts/*.tar.gz linux-release-candidate/
- uses: actions/upload-artifact@v2
with:
name: linux-release-candidate
path: linux-release-candidate
windows:
runs-on: windows-2019
strategy:
fail-fast: true
matrix:
versions:
- osarch: "windows-x86_64"
arch: "x64"
choco_opts: ""
stack_opts: "-j1"
# - osarch: "windows-i386"
# arch: "x86"
# choco_opts: "--x86 --version 2.1.3.20190715"
# stack_opts: "-j1 --flag hslua:lua_32bits"
# # we use stack 2.1.3 because 2.3.1 doesn't support i386
steps:
- uses: actions/checkout@v1
- name: Install stack
shell: cmd
run: |
choco install haskell-stack ${{ matrix.versions.choco_opts }}
- name: Install dependencies
run: |
stack update
stack build ${{ matrix.versions.stack_opts }} --dependencies-only pandoc
- name: Create windows package
shell: cmd
run: |
for /f %%a in ('powershell -Command "Get-Date -format yyyy-MM-dd"') do set THEDATE=%%a
stack build ${{ matrix.versions.stack_opts }} pandoc
for /f "tokens=1-2 delims= " %%a in ('stack exec pandoc -- --version') do (
@set VERSION=%%b
goto :next
)
:next
if "%VERSION%" == "" (
echo Error: could not determine version number.
exit /b 1
)
echo Detected version %VERSION%
@set WINDOWS=%CD%\windows
@set RELEASE=%WINDOWS%\pandoc-%VERSION%
mkdir %RELEASE%
forfiles /P .\.stack-work\install /M pandoc.exe /S /C "cmd /C echo @path && echo %%WINDOWS%% && copy @path %%RELEASE%%"
stack exec pandoc -- -s --toc MANUAL.txt -o %RELEASE%\MANUAL.html
stack exec pandoc -- -s COPYING.md -t rtf -o %RELEASE%\COPYING.rtf
copy %RELEASE%\COPYING.rtf %WINDOWS%
copy COPYRIGHT %RELEASE%\COPYRIGHT.txt
cd windows
echo Creating msi...
dir
@set WIXBIN="c:\Program Files (x86)\WiX Toolset v3.11\bin"
@set WORKDIR=%CD%
echo Running candle...
%WIXBIN%\candle -arch ${{ matrix.versions.arch }} -dVERSION=%VERSION% -dBINPATH=%RELEASE% *.wxs -out wixobj\
if %errorlevel% neq 0 exit /b %errorlevel%
echo Running light...
%WIXBIN%\light -sw1076 -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc Pandoc-en-us.wxl -out %WORKDIR%\pandoc-%VERSION%-${{ matrix.versions.osarch }}-UNSIGNED.msi wixobj\*.wixobj
7z a "pandoc-%VERSION%-${{ matrix.versions.osarch }}.zip" pandoc-%VERSION%
cd ..
mkdir windows-release-candidate
copy windows\pandoc-%VERSION%-${{ matrix.versions.osarch }}-UNSIGNED.msi windows-release-candidate
copy windows\pandoc-%VERSION%-${{ matrix.versions.osarch }}.zip windows-release-candidate
copy windows\Makefile windows-release-candidate
- uses: actions/upload-artifact@v2
with:
name: windows-release-candidate
path: windows-release-candidate
# We now build for macos on travis-ci.com
# macos:
# runs-on: macOS-10.15
# steps:
# - uses: actions/checkout@v1
# - name: Install stack
# run: |
# curl -L https://get.haskellstack.org/stable/osx-x86_64.tar.gz -o stack.tar.gz
# tar xzvf stack.tar.gz --strip-components=1 'stack*/stack'
# - name: Install dependencies
# run: |
# ./stack update
# ./stack build --dependencies-only pandoc pandoc-citeproc
# - name: Create macOS package
# run: |
# export VERSION=$(grep '^[Vv]ersion:' pandoc.cabal | awk '{print $$2;}')
# export BASEDIR=$(pwd)
# export ARTIFACTS=${BASEDIR}/macos-release-candidate
# export RESOURCES=${ARTIFACTS}/Resources
# export ROOT=${ARTIFACTS}/pandoc
# export DEST=${ROOT}/usr/local
# export ME=$(whoami)
# export BASE=pandoc-$VERSION
# mkdir -p ${ARTIFACTS}
# mkdir -p ${RESOURCES}
# mkdir -p ${DEST}/bin
# mkdir -p ${DEST}/share/man/man1
# ./stack build pandoc pandoc-citeproc
# for f in $(find .stack-work/install -name 'pandoc*' -perm +001 -type f); do cp $f ${DEST}/bin/; done
# strip ${DEST}/bin/pandoc
# strip ${DEST}/bin/pandoc-citeproc
# cp man/pandoc.1 ${DEST}/share/man/man1/pandoc.1
# ${DEST}/bin/pandoc-citeproc --man > \
# $DEST/share/man/man1/pandoc-citeproc.1
# ${DEST}/bin/pandoc -t html5 -s COPYING.md -Vpagetitle=License \
# -o ${RESOURCES}/license.html
# chown -R $ME:staff ${ROOT}
# sed -e "s/PANDOCVERSION/${VERSION}/" macos/distribution.xml.in > ${ARTIFACTS}/distribution.xml
# cp macos/Makefile ${ARTIFACTS}/
# echo ${VERSION} > ${ARTIFACTS}/version.txt
# - uses: actions/upload-artifact@v2
# with:
# name: macos-release-candidate
# path: macos-release-candidate