Liking cljdoc? Tell your friends :D

pod-jackdbd-jsoup

CI/CD Clojars Project

Babashka pod for parsing HTML with jsoup.

How to use it?

If you want to load a version of this pod that was registered (see below) on the Pod registry, you can do it using the qualified keyword of this pod.

(require '[babashka.pods :as pods])
(pods/load-pod 'com.github.jackdbd/pod.jackdbd.jsoup "0.1.2")

Whether the pod is registered or not, you can always load it with this method:

  1. Download the archive (e.g. .zip) containing the pod binary for your OS/architecture from a GitHub release.
  2. Extract the binary from the archive (e.g. unzip it).
  3. Move the binary to your BABASHKA_PODS_DIR.
  4. Load the pod using its file name.
(require '[babashka.pods :as pods])
(pods/load-pod "pod-jackdbd-jsoup")

See also examples/jsoup.bb.

Development

The file devenv.nix declares a developer environment for this project. This file is used by devenv to create such environment. If you don't use devenv you can ignore this file, or use it to understand which dependencies are required by this project.

This project uses a bb.edn file to define a few Babashka tasks. You can type bb tasks to view them.

Linux binary

If you are on Linux, you can compile a statically-linked binary using this Babashka task.

bb build:binary

You can double check that the binary is statically linked using one of the following commands.

ldd target/pod-jackdbd-jsoup
objdump --dynamic-syms target/pod-jackdbd

Upgrade version

At the moment neil version creates a git commit but fails to create a git tag. You can use the following commands instead.

bb bump:patch
bb tag

These commands bump the patch version and create an annotated git tag.

Create manifest.edn and register the pod on Pod registry

The CI/CD pipeline takes care of creating a GitHub release with compilation artifacts for Linux, macOS and Windows.

After all compilation artifacts for one pod version have been uploaded to the GitHub release associated with that version, that pod version can be registered in the Pod registry.

important

Every pod version has its own manifest.edn.

Currently, registering a pod involves two manual steps.

First, create a manifest.edn file for one version of the pod.

bb bb/manifest.bb \
  --uberjar "https://github.com/jackdbd/pod-jackdbd-jsoup/releases/download/v$POD_VERSION/pod-jackdbd-jsoup-$POD_VERSION-ubuntu-latest-x86_64.zip" \
  --linux-x86_64 "https://github.com/jackdbd/pod-jackdbd-jsoup/releases/download/v$POD_VERSION/pod-jackdbd-jsoup-$POD_VERSION-ubuntu-latest-x86_64.zip" \
  --macos-aarch64 "https://github.com/jackdbd/pod-jackdbd-jsoup/releases/download/v$POD_VERSION/pod-jackdbd-jsoup-$POD_VERSION-macos-latest-aarch64.zip" \
  --windows-x86_64 "https://github.com/jackdbd/pod-jackdbd-jsoup/releases/download/v$POD_VERSION/pod-jackdbd-jsoup-$POD_VERSION-windows-latest-x86_64.zip"

Then, make a PR on Pod registry following these instructions.

Once the PR on Pod registry gets merged, that pod version will be considered registered and users will be able to load it using the qualified keyword for the pod and the desired version.

Can you improve this documentation?Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close