Skip to content

Commit

Permalink
codd: init at 0.1.4
Browse files Browse the repository at this point in the history
  • Loading branch information
mzabani committed Jan 12, 2025
1 parent ad2f67b commit 7db718e
Show file tree
Hide file tree
Showing 2 changed files with 171 additions and 0 deletions.
118 changes: 118 additions & 0 deletions pkgs/by-name/co/codd/generated.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
{
mkDerivation,
aeson,
aeson-pretty,
ansi-terminal,
attoparsec,
base,
bytestring,
clock,
containers,
criterion-measurement,
deepseq,
dlist,
filepath,
formatting,
hashable,
haxl,
hspec,
hspec-core,
hspec-expectations,
lib,
mtl,
network-uri,
optparse-applicative,
postgresql-libpq,
postgresql-simple,
QuickCheck,
random,
resourcet,
statistics,
streaming,
text,
time,
transformers,
typed-process,
unliftio,
unliftio-core,
unordered-containers,
vector,
}:
mkDerivation {
pname = "codd";
version = "0.1.4";
src = ./.;
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
aeson
aeson-pretty
ansi-terminal
attoparsec
base
bytestring
clock
containers
dlist
filepath
formatting
hashable
haxl
mtl
network-uri
postgresql-libpq
postgresql-simple
resourcet
streaming
text
time
transformers
unliftio
unliftio-core
unordered-containers
vector
];
executableHaskellDepends = [
base
optparse-applicative
postgresql-simple
text
time
];
testHaskellDepends = [
aeson
attoparsec
base
containers
hashable
hspec
hspec-core
mtl
network-uri
postgresql-simple
QuickCheck
random
resourcet
streaming
text
time
typed-process
unliftio
];
benchmarkHaskellDepends = [
aeson
base
criterion-measurement
deepseq
hspec
hspec-core
hspec-expectations
statistics
streaming
text
vector
];
homepage = "https://github.com/mzabani/codd#readme";
license = lib.licenses.bsd3;
mainProgram = "codd";
}
53 changes: 53 additions & 0 deletions pkgs/by-name/co/codd/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
lib,
fetchFromGitHub,
haskell,
haskellPackages,
}:

##############
# To upgrade codd you typically only need to change the version, revision and SHA hash
# in this very file.
# If codd's dependencies change, however, clone codd at https://github.com/mzabani/codd,
# checkout the desired tag and run `cabal2nix .` to produce and replace the generated.nix
# file. Finally, do change the version in this file.
##############

let
# Haxl has relatively tight version requirements and is thus often marked as broken.
haxlJailbroken = haskell.lib.markUnbroken (haskell.lib.doJailbreak haskellPackages.haxl);

generated = haskellPackages.callPackage ./generated.nix { haxl = haxlJailbroken; };

derivationWithVersion = haskell.lib.compose.overrideCabal (rec {
version = "0.1.4";
src = fetchFromGitHub {
owner = "mzabani";
repo = "codd";
rev = "refs/tags/v${version}";
hash = "sha256-hFAo0DLhxULeib3OMjfTYBQIBJ5+apWlMDGsK5gUwho=";
};

# We only run codd's tests that don't require postgresql nor strace. We need to support unix sockets in codd's test suite
# before enabling postgresql's tests, and SystemResourcesSpecs might fail on macOS because of the need for strace and parsing
# libc calls. Not that we really gain much from running SystemResourcesSpecs here anyway.
testFlags = [
"--skip"
"/DbDependentSpecs/"
"--skip"
"/SystemResourcesSpecs/"
];

isLibrary = false;
testToolDepends = [ haskellPackages.hspec-discover ];

description = "CLI tool that applies postgres SQL migrations atomically with schema equality checks";

homepage = "https://github.com/mzabani/codd";

changelog = "https://github.com/mzabani/codd/releases/tag/v${version}";

maintainers = with lib.maintainers; [ mzabani ];
}) generated;
in
haskell.lib.compose.justStaticExecutables derivationWithVersion

0 comments on commit 7db718e

Please sign in to comment.