Commit 34a743c2 authored by Eric Timmons's avatar Eric Timmons
Browse files

Update documentation and cleanup some files

parent 15f03f93
#+TITLE: CLPM Changelog
* v0.4.0 - Unreleased
+ Changed layout of release tarballs.
+ Published tarballs now contain a static executable (#11).
+ No longer using the deploy library to build releases (#15 #11).
+ Updated build script to more easily build static or dynamic executables
(#11).
+ Fixed bug in computing the source-registry.d file for the clpm client (#16)
+ Starting to build up a test suite (#3)
+ Added automated testing on Gitlab CI.
Fixes from the aborted 0.3.6:
+ Fix bug saving project metadata on Windows.
+ Fix client's UIOP dependency to better suit ECL's bundled fork of ASDF.
+ Fix issue READing strings in client from a lisp that is not SBCL (#13).
+ Parse inherited CL_SOURCE_REGISTRY config in client using ASDF (#14).
* v0.3.6 - 2021-01-11
Note that this release never got published. There was a build and packaging
issue. These fixes will be released in 0.4.0.
+ Fix bug saving project metadata on Windows.
+ Fix client's UIOP dependency to better suit ECL's bundled fork of ASDF.
+ Fix issue READing strings in client from a lisp that is not SBCL.
......
......@@ -80,20 +80,20 @@ install the dependencies:
and run:
#+begin_src shell
sbcl --script scripts/build.lisp
sbcl --script scripts/build-release.lisp
#+end_src
If you're on GNU/Linux, you can then run =sh install.sh= to install (see
above).
This will place a release tarball in the =releases/dynamic/= folder that you
can unpack and install as above. Alternatively, you can build only the
exectuable using the =scripts/build.lisp= script. This will place the
executable in =build/bin/=.
If you're on Windows, you need to additionally install [[https://wixtoolset.org/][WiX v3.x]] and run the
following:
#+begin_src shell
sbcl --script scripts/build-wxs.lisp
cd build
%PATH_TO_WIX_INSTALL%/bin/candle clpm.wxs
%PATH_TO_WIX_INSTALL%/bin/light clpm.wxs -ext %PATH_TO_WIX_INSTALL%/bin/WixUIExtension.dll -cultures:en-us -out clpm.msi
$env:WIX=%PATH_TO_WIX_INSTALL%
sbcl --script scripts/build-msi.lisp
#+end_src
This will get you an installer you can use.
......
......@@ -3,69 +3,6 @@
This file is meant to be a colleciton of notes for CLPM developers that users
don't typically have to worry about.
* CI
The CI jobs require SBCL to be built with non standard options (and a
patch). To avoid having to build SBCL with these changes in every job, we
build a Docker image with this patched SBCL. The ideal situation would be to
have a job early in the pipeline that builds the image (only if needed) and
then the later jobs consume this image.
Unfortunately, gitlab.common-lisp.net does not have the built in container
registry enabled. This means that we have to use a third party, such as
Docker Hub, to hold the image between jobs. I strongly prefer to not put
access tokens to my personal Docker Hub account on the clpm group (as I'd
like to eventually have more people added to the group). Therefore, I
(etimmons) build the CI images locally, push them to Docker Hub, and then
just use those images in the CI pipeline. In the future we may want to make a
clpm org on Docker Hub or see if the admins can enable the built-in Docker
registry for us.
Build on amd64:
#+begin_src shell
ARCH=amd64
SBCL_VERSION=2.1.1
ALPINE_VERSION=3.13
docker build --build-arg sbcl_version=$SBCL_VERSION \
--build-arg alpine_version=$ALPINE_VERSION \
-t daewok/clpm-ci:$SBCL_VERSION-alpine$ALPINE_VERSION-$ARCH \
--pull \
--platform=linux/amd64 \
-f docker/Dockerfile.linux-ci \
docker
docker push daewok/clpm-ci:$SBCL_VERSION-alpine$ALPINE_VERSION-$ARCH
#+end_src
Build on armhf:
#+begin_src shell
ARCH=armhf
SBCL_VERSION=2.1.1
ALPINE_VERSION=3.13
docker build --build-arg sbcl_version=$SBCL_VERSION \
--build-arg alpine_version=$ALPINE_VERSION \
-t daewok/clpm-ci:$SBCL_VERSION-alpine$ALPINE_VERSION-$ARCH \
--pull \
--platform=linux/arm/v7 \
-f docker/Dockerfile.linux-ci \
docker
docker push daewok/clpm-ci:$SBCL_VERSION-alpine$ALPINE_VERSION-$ARCH
#+end_src
Build on arm64:
#+begin_src shell
ARCH=arm64
SBCL_VERSION=2.1.1
ALPINE_VERSION=3.13
docker build --build-arg sbcl_version=$SBCL_VERSION \
--build-arg alpine_version=$ALPINE_VERSION \
-t daewok/clpm-ci:$SBCL_VERSION-alpine$ALPINE_VERSION-$ARCH \
--pull \
--platform=linux/arm64/v8 \
-f docker/Dockerfile.linux-ci \
docker
docker push daewok/clpm-ci:$SBCL_VERSION-alpine$ALPINE_VERSION-$ARCH
#+end_src
* Dependencies
CLPM has a lot of dependencies. Probably too many, but that's a problem for
......
......@@ -58,24 +58,24 @@ files.
[[https://files.clpm.dev/clpm/][https://files.clpm.dev/clpm/]]. The current release files for each platform
are:
+ [[https://files.clpm.dev/clpm/clpm-amd64-darwin-v0.3.6.tar.gz][clpm-amd64-darwin-v0.3.6.tar.gz]] :: CLPM compiled for 64bit Mac OS.
+ [[https://files.clpm.dev/clpm/clpm-amd64-linux-gnu-v0.3.6.tar.gz][clpm-amd64-linux-gnu-v0.3.6.tar.gz]] :: CLPM compiled for 64bit Linux
+ [[https://files.clpm.dev/clpm/clpm-amd64-darwin-v0.3.5.tar.gz][clpm-amd64-darwin-v0.3.5.tar.gz]] :: CLPM compiled for 64bit Mac OS.
+ [[https://files.clpm.dev/clpm/clpm-amd64-linux-gnu-v0.3.5.tar.gz][clpm-amd64-linux-gnu-v0.3.5.tar.gz]] :: CLPM compiled for 64bit Linux
using GNU libc (by far the most common).
+ [[https://files.clpm.dev/clpm/clpm-amd64-linux-musl-v0.3.6.tar.gz][clpm-amd64-linux-musl-v0.3.6.tar.gz]] :: CLPM compiled for 64bit
+ [[https://files.clpm.dev/clpm/clpm-amd64-linux-musl-v0.3.5.tar.gz][clpm-amd64-linux-musl-v0.3.5.tar.gz]] :: CLPM compiled for 64bit
Linux using musl libc (e.g., Alpine Linux).
+ [[https://files.clpm.dev/clpm/clpm-arm64-linux-gnu-v0.3.6.tar.gz][clpm-arm64-linux-gnu-v0.3.6.tar.gz]] :: CLPM compiled for 64bit Linux
+ [[https://files.clpm.dev/clpm/clpm-arm64-linux-gnu-v0.3.5.tar.gz][clpm-arm64-linux-gnu-v0.3.5.tar.gz]] :: CLPM compiled for 64bit Linux
on ARM processors using GNU libc.
+ [[https://files.clpm.dev/clpm/clpm-arm64-linux-musl-v0.3.6.tar.gz][clpm-arm64-linux-musl-v0.3.6.tar.gz]] :: CLPM compiled for 64bit
+ [[https://files.clpm.dev/clpm/clpm-arm64-linux-musl-v0.3.5.tar.gz][clpm-arm64-linux-musl-v0.3.5.tar.gz]] :: CLPM compiled for 64bit
Linux on ARM processors using musl libc.
+ [[https://files.clpm.dev/clpm/clpm-armv7-linux-gnu-v0.3.6.tar.gz][clpm-armv7-linux-gnu-v0.3.6.tar.gz]] :: CLPM compiled for 32bit Linux
+ [[https://files.clpm.dev/clpm/clpm-armv7-linux-gnu-v0.3.5.tar.gz][clpm-armv7-linux-gnu-v0.3.5.tar.gz]] :: CLPM compiled for 32bit Linux
on ARM processors using GNU libc.
+ [[https://files.clpm.dev/clpm/clpm-armv7-linux-musl-v0.3.6.tar.gz][clpm-armv7-linux-musl-v0.3.6.tar.gz]] :: CLPM compiled for 32bit
+ [[https://files.clpm.dev/clpm/clpm-armv7-linux-musl-v0.3.5.tar.gz][clpm-armv7-linux-musl-v0.3.5.tar.gz]] :: CLPM compiled for 32bit
Linux on ARM processors using musl libc.
+ [[https://files.clpm.dev/clpm/clpm-amd64-windows-v0.3.6.msi][clpm-amd64-windows-v0.3.6.msi]] :: CLPM installer for 64 bit Windows.
+ [[https://files.clpm.dev/clpm/clpm-v0.3.6.tar.gz][clpm-v0.3.6.tar.gz]] :: Source code, including git submodules.
+ [[https://files.clpm.dev/clpm/clpm-v0.3.6.DIGESTS][clpm-v0.3.6.DIGESTS]] :: Text file containing the SHA512 sums for
+ [[https://files.clpm.dev/clpm/clpm-amd64-windows-v0.3.5.msi][clpm-amd64-windows-v0.3.5.msi]] :: CLPM installer for 64 bit Windows.
+ [[https://files.clpm.dev/clpm/clpm-v0.3.5.tar.gz][clpm-v0.3.5.tar.gz]] :: Source code, including git submodules.
+ [[https://files.clpm.dev/clpm/clpm-v0.3.5.DIGESTS][clpm-v0.3.5.DIGESTS]] :: Text file containing the SHA512 sums for
every previously mentioned file.
+ [[https://files.clpm.dev/clpm/clpm-v0.3.6.DIGESTS.asc][clpm-v0.3.6.DIGESTS.asc]] :: Same as =clpm-v0.3.6.DIGESTS=,
+ [[https://files.clpm.dev/clpm/clpm-v0.3.5.DIGESTS.asc][clpm-v0.3.5.DIGESTS.asc]] :: Same as =clpm-v0.3.5.DIGESTS=,
but signed with GPG key =0x10327DE761AB977333B1AD7629932AC49F3044CE=.
*** GNU/Linux and Darwin
......
# syntax=docker/dockerfile:1-experimental
#
# This software is part of CLPM. See README.org for more information. See
# LICENSE for license information.
FROM daewok/sbcl:2.0.3-alpine3.11
RUN apk add --no-cache openssl-dev gcc musl-dev git curl
ENV ASDF_VERSION=3.3.4
WORKDIR /tmp
RUN curl https://common-lisp.net/project/asdf/archives/asdf-${ASDF_VERSION}.tar.gz > asdf.tar.gz \
&& tar xvf asdf.tar.gz \
&& sbcl --disable-debugger --load "/tmp/asdf-${ASDF_VERSION}/tools/load-asdf.lisp" --load "/tmp/asdf-${ASDF_VERSION}/uiop/uiop.asd" --load "/tmp/asdf-${ASDF_VERSION}/tools/install-asdf.lisp" --quit
# We copy the git repository in to make sure we have a completely clean build
# and no lingering local changes.
WORKDIR /
COPY .git /clpm-git
# This is the git ref we build from.
ARG ref=master
# This is the "tag" (output from git describe)
ARG describe
RUN git clone /clpm-git /clpm-$describe
WORKDIR /clpm-$describe
RUN git checkout $ref \
&& git submodule init \
&& git submodule update
RUN ./scripts/clpm-lake build
WORKDIR /
RUN /clpm-$describe/package.sh clpm-$describe
# syntax=docker/dockerfile:1-experimental
#
# This software is part of CLPM. See README.org for more information. See
# LICENSE for license information.
# Use Bionic as Disco upgraded libc, making it more difficult to run the built
# executable on older systems.
FROM daewok/sbcl:2.0.3-ubuntu-bionic-build
RUN apt-get update \
&& apt-get install -y --no-install-recommends build-essential libssl-dev git curl \
&& rm -rf /var/lists/apt
ENV ASDF_VERSION=3.3.4
WORKDIR /tmp
RUN curl https://common-lisp.net/project/asdf/archives/asdf-${ASDF_VERSION}.tar.gz > asdf.tar.gz \
&& tar xvf asdf.tar.gz \
&& sbcl --disable-debugger --load "/tmp/asdf-${ASDF_VERSION}/tools/load-asdf.lisp" --load "/tmp/asdf-${ASDF_VERSION}/uiop/uiop.asd" --load "/tmp/asdf-${ASDF_VERSION}/tools/install-asdf.lisp" --quit
# We copy the git repository in to make sure we have a completely clean build
# and no lingering local changes.
WORKDIR /
COPY .git /clpm-git
# This is the git ref we build from.
ARG ref=master
# This is the "tag" (output from git describe)
ARG describe
RUN git clone /clpm-git /clpm-$describe
WORKDIR /clpm-$describe
RUN git checkout $ref \
&& git submodule init \
&& git submodule update
RUN ./scripts/clpm-lake build
WORKDIR /
RUN /clpm-$describe/package.sh clpm-$describe
# Builds a Docker image to build CLPM with Windows
#
# This software is part of CLPM. See README.org for more information. See
# LICENSE for license information.
ARG windows_version=1909
FROM daewok/sbcl:2.0.3-windowsservercore-$windows_version
WORKDIR "C:/"
# Switch to powershell and make sure it exits on error
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"]
# First, install chocolatey
RUN $chocourl = 'https://chocolatey.org/install.ps1'; \
Set-ExecutionPolicy Bypass -Scope Process -Force; \
iex ((New-Object System.Net.WebClient).DownloadString($chocourl));
# Install git so that we can determine release version.
RUN choco install -y git;
RUN git config --global core.autocrlf false;
# Install WIX. We don't install it through chocolatey because dotnet35 seems to
# be broken in chocolatey
RUN Write-Host "Starting download"; \
cmd /c curl -o wix311-binaries.zip -L "https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip"; \
Write-Host "Download done"; \
choco install -y unzip; \
mkdir wix/bin; \
cd wix/bin; \
unzip ../../wix311-binaries.zip;
# Install ASDF.
ENV ASDF_VERSION=3.3.4
RUN cmd /c curl -o asdf.tar.gz https://common-lisp.net/project/asdf/archives/asdf-$Env:ASDF_VERSION.tar.gz; \
tar -x -v -f asdf.tar.gz; \
sbcl --disable-debugger --load "asdf-$Env:ASDF_VERSION/tools/load-asdf.lisp" --load "asdf-$Env:ASDF_VERSION/uiop/uiop.asd" --load "asdf-$Env:ASDF_VERSION/tools/install-asdf.lisp" --quit
WORKDIR C:/
COPY .git C:/clpm-git
# This is the git ref we bvuild from.
ARG ref=master
# This is the "tag" (output from git describe)
ARG describe
RUN git clone C:/clpm-git C:/clpm-$Env:describe
WORKDIR C:/clpm-$describe
RUN git checkout $Env:ref; \
git submodule init; \
git submodule update;
RUN sbcl --disable-debugger --load scripts/build.lisp --quit; \
sbcl --disable-debugger --load scripts/build-wxs.lisp --quit;
WORKDIR C:/clpm-$describe/build
RUN ls; C:\wix\bin\candle clpm.wxs; \
C:\wix\bin\light clpm.wixobj -ext C:\wix\bin\WixUIExtension.dll -cultures:en-us -out clpm.msi;
#!/bin/sh
BASE="${1:-.}"
tar -cvf "$BASE/build/clpm.tar" "$BASE/build/bin/" "$BASE/build/lib/" "$BASE/build/man/" "$BASE/LICENSE" "$BASE/README.org" "$BASE/install.sh"
gzip "$BASE/build/clpm.tar"
......@@ -347,67 +347,67 @@
+ Download the latest tarball for your system. Assuming you are running an
amd64 processor on most GNU/Linux distributions, it is currently located
at
[[https://files.clpm.dev/clpm/clpm-amd64-linux-gnu-v0.3.6.tar.gz]].
[[https://files.clpm.dev/clpm/clpm-amd64-linux-gnu-v0.3.5.tar.gz]].
+ Download the signed digests for this version from
[[https://files.clpm.dev/clpm/clpm-v0.3.6.DIGESTS.asc]].
[[https://files.clpm.dev/clpm/clpm-v0.3.5.DIGESTS.asc]].
+ Download the CLPM Signing Key:
#+begin_src shell
gpg --recv-keys 0x10327DE761AB977333B1AD7629932AC49F3044CE
#+end_src
+ Verify the signature on the digests file:
#+begin_src shell
gpg --decrypt clpm-v0.3.6.DIGESTS.asc
gpg --decrypt clpm-v0.3.5.DIGESTS.asc
#+end_src
#+REVEAL: split:t
+ Ensure the sha512 sum for the downloaded file matches the one from the
digests file:
#+begin_src shell
sha512sum clpm-amd64-linux-gnu-v0.3.6.tar.gz
sha512sum clpm-amd64-linux-gnu-v0.3.5.tar.gz
#+end_src
+ Unpack the tarball:
#+begin_src shell
tar xf clpm-amd64-linux-gnu-v0.3.6.tar.gz
tar xf clpm-amd64-linux-gnu-v0.3.5.tar.gz
#+end_src
+ Install CLPM:
#+begin_src shell
cd clpm-v0.3.6 && sudo sh ./install.sh
cd clpm-v0.3.5 && sudo sh ./install.sh
#+end_src
*** MacOS
+ Download the latest tarball, currently located at
[[https://files.clpm.dev/clpm/clpm-amd64-darwin-v0.3.6.tar.gz]]
[[https://files.clpm.dev/clpm/clpm-amd64-darwin-v0.3.5.tar.gz]]
+ Download the signed digests for this version from
[[https://files.clpm.dev/clpm/clpm-v0.3.6.DIGESTS.asc]].
[[https://files.clpm.dev/clpm/clpm-v0.3.5.DIGESTS.asc]].
+ Download the CLPM Signing Key:
#+begin_src shell
gpg --recv-keys 0x10327DE761AB977333B1AD7629932AC49F3044CE
#+end_src
+ Verify the signature on the digests file:
#+begin_src shell
gpg --decrypt clpm-v0.3.6.DIGESTS.asc
gpg --decrypt clpm-v0.3.5.DIGESTS.asc
#+end_src
#+REVEAL: split:t
+ Ensure the sha512 sum for the downloaded file matches the one from the
digests file:
#+begin_src shell
sha512sum clpm-amd64-darwin-v0.3.6.tar.gz
sha512sum clpm-amd64-darwin-v0.3.5.tar.gz
#+end_src
+ Unpack the tarball:
#+begin_src shell
tar xf clpm-amd64-darwin-v0.3.6.tar.gz
tar xf clpm-amd64-darwin-v0.3.5.tar.gz
#+end_src
+ Install CLPM:
#+begin_src shell
cd clpm-v0.3.6 && sudo sh ./install.sh
cd clpm-v0.3.5 && sudo sh ./install.sh
#+end_src
*** Windows
+ Download the latest installer, currently located at
[[https://files.clpm.dev/clpm/clpm-amd64-windows-v0.3.6.msi]].
[[https://files.clpm.dev/clpm/clpm-amd64-windows-v0.3.5.msi]].
+ Run the installer.
NOTE: I do not think gpg is very common on Windows, but if you use it, you
......@@ -481,13 +481,13 @@
*** Default configuration
As of v0.3.6, the recommended configuration is:
As of v0.3.5, the recommended configuration is:
# #+ATTR_REVEAL: :code_attribs data-line-numbers='1-2|5-7|8-9'
#+begin_src common-lisp
;;; Use CLPM with default configuration.
;;;
;;; Generated by CLPM 0.3.6
;;; Generated by CLPM 0.3.5
(require "asdf")
#-clpm-client
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment