[Git][clojure-team/typesafe-config-clojure][master] 5 commits: Switch the package to the OpenVoxProject github namespace.
Thomas Goirand (@zigo)
gitlab at salsa.debian.org
Sun Jul 19 18:33:41 BST 2026
Thomas Goirand pushed to branch master at Debian Clojure Maintainers / typesafe-config-clojure
Commits:
39333c84 by Thomas Goirand at 2026-07-19T19:24:43+02:00
Switch the package to the OpenVoxProject github namespace.
- - - - -
0e8f0e6e by Thomas Goirand at 2026-07-19T19:31:01+02:00
New upstream version 1.0.4
- - - - -
c11649f5 by Thomas Goirand at 2026-07-19T19:31:01+02:00
Update upstream source from tag 'upstream/1.0.4'
Update to upstream version '1.0.4'
with Debian dir e7af69a1b214fcd4af12ed1ad0cf627898d9763f
- - - - -
905249ac by Thomas Goirand at 2026-07-19T19:31:24+02:00
Now packaging 1.0.4
- - - - -
6033f829 by Thomas Goirand at 2026-07-19T19:32:57+02:00
Add 0001_Lein_Local.patch.
- - - - -
19 changed files:
- + .github/dependabot.yml
- + .github/release.yml
- + .github/workflows/pr-testing.yaml
- + .github/workflows/release.yaml
- − .travis.yml
- − CONTRIBUTING.md
- README.md
- debian/changelog
- debian/control
- debian/copyright
- + debian/patches/0001_Lein_Local.patch
- + debian/patches/series
- debian/watch
- − ext/travisci/test.sh
- − jenkins/deploy.sh
- project.clj
- + renovate.json
- src/puppetlabs/config/typesafe.clj
- test/puppetlabs/config/typesafe_test.clj
Changes:
=====================================
.github/dependabot.yml
=====================================
@@ -0,0 +1,17 @@
+version: 2
+updates:
+ # raise PRs for gem updates
+ - package-ecosystem: bundler
+ directory: "/"
+ schedule:
+ interval: daily
+ time: "13:00"
+ open-pull-requests-limit: 10
+
+ # Maintain dependencies for GitHub Actions
+ - package-ecosystem: github-actions
+ directory: "/"
+ schedule:
+ interval: daily
+ time: "13:00"
+ open-pull-requests-limit: 10
=====================================
.github/release.yml
=====================================
@@ -0,0 +1,39 @@
+---
+# https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
+
+changelog:
+ exclude:
+ labels:
+ - duplicate
+ - invalid
+ - modulesync
+ - question
+ - skip-changelog
+ - wont-fix
+ - wontfix
+
+ categories:
+ - title: Breaking Changes 🛠
+ labels:
+ - backwards-incompatible
+
+ - title: New Features 🎉
+ labels:
+ - enhancement
+
+ - title: Bug Fixes 🐛
+ labels:
+ - bug
+
+ - title: Documentation Updates 📚
+ labels:
+ - documentation
+ - docs
+
+ - title: Dependency Updates ⬆️
+ labels:
+ - dependencies
+
+ - title: Other Changes
+ labels:
+ - "*"
=====================================
.github/workflows/pr-testing.yaml
=====================================
@@ -0,0 +1,61 @@
+---
+name: lein_test
+
+on:
+ pull_request: {}
+ push:
+ branches:
+ - main
+
+# minimal permissions
+permissions:
+ contents: read
+
+jobs:
+ run-lein-tests:
+ name: lein test - Java ${{ matrix.java }}
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ java:
+ - '25'
+ - '21'
+ - '17'
+ steps:
+ - name: Check out repository code
+ uses: actions/checkout at v6
+ - name: Setup java
+ uses: actions/setup-java at v5
+ with:
+ distribution: temurin
+ java-version: ${{ matrix.java }}
+ - name: Install Clojure tools
+ uses: DeLaGuardo/setup-clojure at 13.5
+ with:
+ cli: latest # Clojure CLI based on tools.deps
+ lein: latest # Leiningen
+ boot: latest # Boot.clj
+ bb: latest # Babashka
+ clj-kondo: latest # Clj-kondo
+ cljstyle: latest # cljstyle
+ zprint: latest # zprint
+ - name: Run lein tests with update profile
+ run: |
+ set -x
+ set -e
+ lein version
+ echo "Running tests"
+ lein -U test
+
+ tests:
+ if: always()
+ needs:
+ - run-lein-tests
+ runs-on: ubuntu-24.04
+ name: Test suite
+ steps:
+ - name: Decide whether the needed jobs succeeded or failed
+ uses: re-actors/alls-green at release/v1
+ with:
+ jobs: ${{ toJSON(needs) }}
=====================================
.github/workflows/release.yaml
=====================================
@@ -0,0 +1,18 @@
+---
+name: Release and publish package to clojars.org
+
+permissions:
+ contents: write
+ packages: write
+
+on:
+ workflow_dispatch:
+
+jobs:
+ release:
+ uses: 'openvoxproject/shared-actions/.github/workflows/clojure_release.yml at main'
+ secrets:
+ github_pat: ${{ secrets.OPENVOXBOT_COMMIT_AND_PRS }}
+ ssh_private_key: ${{ secrets.OPENVOXBOT_SSH_PRIVATE_KEY }}
+ clojars_username: ${{ secrets.CLOJARS_USERNAME }}
+ clojars_password: ${{ secrets.CLOJARS_PASSWORD }}
=====================================
.travis.yml deleted
=====================================
@@ -1,9 +0,0 @@
-language: clojure
-lein: lein2
-jdk:
- - oraclejdk7
- - openjdk7
-script: ./ext/travisci/test.sh
-notifications:
- email: false
-
=====================================
CONTRIBUTING.md deleted
=====================================
@@ -1,9 +0,0 @@
-# How to contribute
-
-Third-party patches are essential for keeping Puppet Labs open-source projects
-great. We want to keep it as easy as possible to contribute changes that
-allow you to get the most out of our projects. There are a few guidelines
-that we need contributors to follow so that we can have a chance of keeping on
-top of things. For more info, see our canonical guide to contributing:
-
-[https://github.com/puppetlabs/puppet/blob/master/CONTRIBUTING.md](https://github.com/puppetlabs/puppet/blob/master/CONTRIBUTING.md)
=====================================
README.md
=====================================
@@ -1,5 +1,3 @@
-[](https://travis-ci.org/puppetlabs/clj-typesafe-config)
-
clj-typesafe-config
===================
@@ -9,8 +7,4 @@ A thin clojure wrapper around the [Typesafe Config](https://github.com/typesafeh
Add the following dependency to your `project.clj` file:
-[](http://clojars.org/puppetlabs/typesafe-config)
-
-## Support
-
-Please log tickets and issues at our [Jira Tracker](https://tickets.puppetlabs.com/issues/?jql=project%20%3D%20Trapperkeeper).
+[](http://clojars.org/org.openvoxproject/typesafe-config)
=====================================
debian/changelog
=====================================
@@ -1,3 +1,12 @@
+typesafe-config-clojure (1.0.4-1) experimental; urgency=medium
+
+ * Team upload.
+ * Switch the package to the OpenVoxProject github namespace.
+ * New upstream release.
+ * Add 0001_Lein_Local.patch.
+
+ -- Thomas Goirand <zigo at debian.org> Sun, 19 Jul 2026 19:24:17 +0200
+
typesafe-config-clojure (0.1.5-2) unstable; urgency=medium
* Team upload.
=====================================
debian/control
=====================================
@@ -13,7 +13,7 @@ Build-Depends: debhelper-compat (= 13),
Standards-Version: 4.7.0
Vcs-Browser: https://salsa.debian.org/clojure-team/typesafe-config-clojure
Vcs-Git: https://salsa.debian.org/clojure-team/typesafe-config-clojure.git
-Homepage: https://github.com/puppetlabs/clj-typesafe-config
+Homepage: https://github.com/OpenVoxProject/clj-typesafe-config
Package: libtypesafe-config-clojure
Architecture: all
=====================================
debian/copyright
=====================================
@@ -1,6 +1,6 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: clj-typesafe-config
-Source: https://github.com/puppetlabs/clj-typesafe-config
+Source: https://github.com/OpenVoxProject/clj-typesafe-config
Files: *
Copyright: 2014-2016 Puppet Labs
=====================================
debian/patches/0001_Lein_Local.patch
=====================================
@@ -0,0 +1,32 @@
+Description: Lein local
+Author: Thomas Goirand <zigo at debian.org>
+Forwarded: not-needed
+Last-Update: 2026-07-19
+
+--- typesafe-config-clojure-1.0.4.orig/project.clj
++++ typesafe-config-clojure-1.0.4/project.clj
+@@ -1,4 +1,4 @@
+-(defproject org.openvoxproject/typesafe-config "1.0.4"
++(defproject puppetlabs/typesafe-config "0.1.5"
+ :description "Thin Clojure wrapper around Typesafe Config library"
+ :license {:name "Apache License, Version 2.0"
+ :url "http://www.apache.org/licenses/LICENSE-2.0.html"}
+@@ -8,13 +8,12 @@
+ ;; requires lein 2.2.0+.
+ :pedantic? :abort
+
+- :dependencies [[org.clojure/clojure "1.12.5"]
+- [com.typesafe/config "1.4.9"]]
++ :dependencies [[org.clojure/clojure "1.x"]
++ [com.typesafe/config "1.2.0"]]
++
++ :plugins [[lein-release "1.0.5"]]
+
+ :lein-release {:scm :git
+ :deploy-via :lein-deploy}
+
+- :deploy-repositories [["releases" {:url "https://clojars.org/repo"
+- :username :env/CLOJARS_USERNAME
+- :password :env/CLOJARS_PASSWORD
+- :sign-releases false}]])
++ :local-repo "debian/maven-repo")
=====================================
debian/patches/series
=====================================
@@ -0,0 +1 @@
+0001_Lein_Local.patch
=====================================
debian/watch
=====================================
@@ -1,4 +1,4 @@
version=4
opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%@PACKAGE at -$1.tar.gz%" \
- https://github.com/puppetlabs/clj-typesafe-config/tags (?:.*?/)?(\d[\d.]*)\.tar\.gz
+ https://github.com/OpenVoxProject/clj-typesafe-config/tags (?:.*?/)?(\d[\d.]*)\.tar\.gz
=====================================
ext/travisci/test.sh deleted
=====================================
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-lein2 test
=====================================
jenkins/deploy.sh deleted
=====================================
@@ -1,16 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-set -x
-
-git fetch --tags
-
-lein test
-echo "Tests passed!"
-
-lein release
-echo "Release plugin successful, pushing changes to git"
-
-git push origin --tags HEAD:$TYPESAFE_CONFIG_BRANCH
-
-echo "git push successful."
=====================================
project.clj
=====================================
@@ -1,4 +1,4 @@
-(defproject puppetlabs/typesafe-config "0.1.5"
+(defproject org.openvoxproject/typesafe-config "1.0.4"
:description "Thin Clojure wrapper around Typesafe Config library"
:license {:name "Apache License, Version 2.0"
:url "http://www.apache.org/licenses/LICENSE-2.0.html"}
@@ -8,16 +8,13 @@
;; requires lein 2.2.0+.
:pedantic? :abort
- :dependencies [[org.clojure/clojure "1.5.1"]
- [com.typesafe/config "1.2.0"]]
-
- :plugins [[lein-release "1.0.5"]]
+ :dependencies [[org.clojure/clojure "1.12.5"]
+ [com.typesafe/config "1.4.9"]]
:lein-release {:scm :git
:deploy-via :lein-deploy}
:deploy-repositories [["releases" {:url "https://clojars.org/repo"
- :username :env/clojars_jenkins_username
- :password :env/clojars_jenkins_password
- :sign-releases false}]
- ["snapshots" "http://nexus.delivery.puppetlabs.net/content/repositories/snapshots/"]])
+ :username :env/CLOJARS_USERNAME
+ :password :env/CLOJARS_PASSWORD
+ :sign-releases false}]])
=====================================
renovate.json
=====================================
@@ -0,0 +1,9 @@
+{
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
+ "addLabels": ["renovate", "dependencies"],
+ "assigneesFromCodeOwners": true,
+ "automerge": true,
+ "automergeType": "pr",
+ "dependencyDashboard": true,
+ "enabledManagers": ["leiningen"]
+}
=====================================
src/puppetlabs/config/typesafe.clj
=====================================
@@ -1,8 +1,9 @@
(ns puppetlabs.config.typesafe
(:import (java.util Map List)
(com.typesafe.config ConfigFactory ConfigParseOptions ConfigSyntax
- Config))
- (:require [clojure.java.io :as io]))
+ Config ConfigValueFactory))
+ (:require [clojure.java.io :as io]
+ [clojure.walk :as walk]))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Private
@@ -12,7 +13,7 @@
(defn strip-quotes
"Given a string read from a config file, check to see if it begins and ends with
double-quotes, and if so, remove them."
- [s]
+ [^String s]
{:pre [(string? s)]
:post [(string? %)
(not (and (.startsWith % "\"")
@@ -45,7 +46,7 @@
(defn nested-java-map->map
"Given a (potentially nested) java Map object read from a config file,
convert it (potentially recursively) to a clojure map with keywordized keys."
- [m]
+ [^Map m]
{:pre [(instance? Map m)]
:post [(map? %)
(every? keyword? (keys %))]}
@@ -77,7 +78,7 @@
(defn config->map
"Converts an instance of `Config` to a more user-friendly clojure map"
- [config]
+ [^Config config]
{:pre [(instance? Config config)]
:post [(map? %)]}
(-> config
@@ -91,7 +92,8 @@
(defn config-file->map
"Given the path to a configuration file (of type .conf, .json, or .properties),
- parse the file and return a clojure map representation of the data."
+ parse the file and return a clojure map representation of the data.
+ Returns empty map for non-existing file."
[file-path]
{:pre [(string? file-path)]
:post [(map? %)]}
@@ -122,3 +124,12 @@
(ConfigFactory/parseReader parse-options)
config->map))))
+(defn map->string
+ "Serialize the clojure data structure `m` to string using the
+ typesafe config format. `m` is typically the result of a
+ `config-file->map` or `reader-map` with some modifications."
+ [m]
+ (-> m
+ walk/stringify-keys
+ ConfigValueFactory/fromAnyRef
+ .render))
=====================================
test/puppetlabs/config/typesafe_test.clj
=====================================
@@ -1,5 +1,5 @@
(ns puppetlabs.config.typesafe_test
- (:import (java.io FileInputStream))
+ (:import (java.io FileInputStream StringReader))
(:require [puppetlabs.config.typesafe :as ts]
[clojure.test :refer :all]))
@@ -33,8 +33,20 @@
(let [cfg (ts/config-file->map (str test-files-dir "substitution.conf"))]
(is (= {:top {:henry "text"
:bob "text"}}
+ cfg))))
+ (testing "returns empty result for non-existing file"
+ (let [cfg (ts/config-file->map (str test-files-dir "non-existing-file.conf"))]
+ (is (= {}
cfg)))))
+(defn round-trip-config
+ "Converts cfg (clojure representation of a config) to a string, then
+ back to clojure data structures"
+ [cfg]
+ (-> cfg
+ ts/map->string
+ StringReader.
+ ts/reader->map))
(deftest reader->map-test
(testing "can parse .properties stream with nested data structures"
@@ -45,7 +57,8 @@
:baz "bazbaz"
:bam 42
:bap {:boozle "boozleboozle"}}}
- cfg))))
+ cfg))
+ (is (= cfg (round-trip-config cfg)))))
(testing "can parse .json stream with nested data structures"
(let [cfg (ts/reader->map
(FileInputStream. (str test-files-dir "config.json"))
@@ -55,7 +68,8 @@
:bam 42
:bap {:boozle "boozleboozle"
:bip [1 2 {:hi "there"} 3]}}}
- cfg))))
+ cfg))
+ (is (= cfg (round-trip-config cfg)))))
(testing "can parse .conf stream with nested data structures"
(let [cfg (ts/reader->map
(FileInputStream. (str test-files-dir "config.conf"))
@@ -65,13 +79,13 @@
:bam 42
:bap {:boozle "boozleboozle"
:bip [1 2 {:hi "there"} 3]}}}
- cfg))))
+ cfg))
+ (is (= cfg (round-trip-config cfg)))))
(testing "can parse .conf file with substitution variables"
(let [cfg (ts/reader->map
(FileInputStream. (str test-files-dir "substitution.conf"))
:conf)]
(is (= {:top {:henry "text"
:bob "text"}}
- cfg)))))
-
-
+ cfg))
+ (is (= cfg (round-trip-config cfg))))))
View it on GitLab: https://salsa.debian.org/clojure-team/typesafe-config-clojure/-/compare/962b43c1c3172bff5dbab16129f582e534e696db...6033f829bcfa2832b3d7a2c2859f76a066c9881c
--
View it on GitLab: https://salsa.debian.org/clojure-team/typesafe-config-clojure/-/compare/962b43c1c3172bff5dbab16129f582e534e696db...6033f829bcfa2832b3d7a2c2859f76a066c9881c
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20260719/9a1daa3d/attachment.htm>
More information about the pkg-java-commits
mailing list