Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
clpm
clpm
Commits
34a743c2
Commit
34a743c2
authored
Feb 21, 2021
by
Eric Timmons
Browse files
Update documentation and cleanup some files
parent
15f03f93
Changes
9
Hide whitespace changes
Inline
Side-by-side
CHANGELOG.org
View file @
34a743c2
#+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.
...
...
INSTALL.org
View file @
34a743c2
...
...
@@ -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.
...
...
README-dev.org
View file @
34a743c2
...
...
@@ -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
...
...
README.org
View file @
34a743c2
...
...
@@ -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
...
...
docker/Dockerfile.alpine
deleted
100644 → 0
View file @
15f03f93
# 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
docker/Dockerfile.ubuntu
deleted
100644 → 0
View file @
15f03f93
# 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
docker/Dockerfile.windows
deleted
100644 → 0
View file @
15f03f93
# 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;
package.sh
deleted
100755 → 0
View file @
15f03f93
#!/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"
tutorial/tutorial.org
View file @
34a743c2
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment