Major changes:
- New apps:
gitui
,libconfig
,luigi
,openldap
,pbzip2
, andwalk
(renamed fromllama
). - Removed apps:
llama
(renamed towalk
) andvisual-studio-code-cli
. - Reworked language / package manager-specific installers: Conda packages, GNU apps, Go packages, Haskell packages, Node packages, Python packages, Ruby packages, and Rust packages.
- App installer function now sets
LIBRARY_PATH
, which can be picked up inmake
install scripts. Note that this needs to be unset when installing GCC. koopa_decompress
andkoopa_extract
now attempt to use pbzip2 (for bzip2) and pigz (for gz) for parallel processing when possible.
Minor changes:
- App updates:
ack
,apache-airflow
,apache-spark
,armadillo
,aws-cli
,azure-cli
,bashcov
,binutils
,bioconda-utils
,blast
,boost
,bottom
,broot
,brotli
,bustools
,ca-certificates
,chezmoi
,cmake
,coreutils
,csvtk
,deeptools
,difftastic
,doom-emacs
,ensembl-perl-api
,flac
,flake8
,fmt
,fqtk
,freetype
,gcc
,gettext
,gffutils
,gget
,gh
,git
,git-lfs
,glib
,gmp
,gnupg
,gnutls
,google-cloud-sdk
,googletest
,graphviz
,grex
,groff
,gseapy
,gzip
,hdf5
,hexyl
,hugo
,icu4c
,imagemagick
,ipython
,julia
,krb5
,latch
,ldc
,less
,libassuan
,libconfig
,libedit
,libidn
,libksba
,libluv
,libpng
,libssh2
,libtiff
,libxcrypt
,libxml2
,libzip
,lmod
,lsd
,luigi
,mamba
,miller
,mpfr
,ncbi-sra-tools
,ncbi-vdb
,nghttp2
,nim
,nushell
,openbb
,openldap
,openssh
,oracle-instant-client
,pandoc
,parallel
,pbzip2
,pigz
,poetry
,prettier
,pycodestyle
,pyenv
,pyflakes
,python3.11
,r-devel
,radian
,ripgrep-all
,rstudio-server
,ruff
,ruff-lsp
,rust
,sambamba
,scalene
,screen
,seqkit
,spacemacs
,spacevim
,sqlite
,star
,subread
,tar
,temurin
,tree
,vim
,vulture
,walk
,wget2
,xorg-libpthread-stubs
,xorg-libx11
,xorg-libxcb
,xorg-xcb-proto
,xorg-xorgproto
,xxhash
,xz
,yaml-cpp
,yapf
,zellij
, andzlib
. - Added app locator functions for
CC
,CXX
, pbzip2, and pigz. - Reworked app subshell handling.
- Reworked temporary CMake build location to be consistency out of the source
directory in
koopa_cmake_build
install calls. - Reworked
koopa_docker_prune_all_images
to not listbuildx
images. - Improved linkage when installing
ncbi-sra-tools
.
Minor changes:
- App updates:
anaconda
,aws-cli
,black
,chezmoi
,csvtk
,curl
,doom-emacs
,dotfiles
,emacs
,fmt
,go
,gtop
,harfbuzz
,hugo
,jupyterlab
,latch
,libarchive
,libgit2
,lmod
,meson
,mold
,multiqc
,nextflow
,node
,nushell
,ont-bonito
,ont-dorado
,openssl3
,pandoc
,pyenv
,pygments
,quarto
,ruff
,snakemake
,spacemacs
,starship
,vulture
,yq
,zoxide
. - Added support to deparallelize builds in
koopa_cmake_build
. - Updated GNU FTP mirror back to canonical URL, now that Emacs update has successfully propagated.
- Increased the number of
X
characters inkoopa_mktemp
, to avoid warnings seen with Ubuntu 22. - The
black
installer now includesblackd
, which is very useful for live code formatting in PyCharm. - System R installer now includes pandoc on Debian.
- The tbb installer deparallizes CMake to avoid issues on Linux.
Major changes:
- Removed support for
python3.10
. Updatedgoogle-cloud-sdk
andlatch
to depend onpython3.11
. - Improved internal consistency of
aws
cli command syntax and JSON return.
Minor changes:
- Updated apps:
anaconda
,aws-cli
,broot
,chezmoi
,conda
,difftastic
,gh
,google-cloud-sdk
,gum
,htslib
,latch
,libarchive
,lmod
,multiqc
,node
,nushell
,openbb
,pandoc
,pyenv
,rclone
,ruff
,samtools
,snakemake
,tbb
, andvisidata
. - Reverted
prettier
from 3.0.0 back to 2.8.8 to avoid breaking changes with JSON sorting plugin. - Renamed
koopa_aws_ec2_suspend
tokoopa_aws_ec2_stop
, matching the current syntax conventions of AWS CLI. - Add notes on GENCODE handling during salmon indexing and quant. We're working
on improving the sanitization of GENCODE FASTA files to avoid identifier
issues related to usage of the non-standard
|
delimiter instead of spaces, which will be deployed in a pendingr-acidgenomes
package update.
New functions:
koopa_aws_ec2_list_running_instances
: List currently running EC2 instances.koopa_aws_ec2_map_instance_ids_to_names
: New convenience function that returns mappings of AWS EC2 instance identifiers to defined human-friendly names (aliases).
New apps: blast
, jless
, ronn-ng
, and wget2
.
New binaries:
ip-info
: Detailed information on current IP address, including city, organization, and timezone. Returned in JSON format.
Major changes:
koopa_download
function has been overhauled and simplified to only wrapcurl
. Support forwget
engine has been dropped from this function.- Improved R system configuration.
- Improved cross-platform and cross-shell compatibility of some convenience
aliases, most notably
conda
andz
(for zoxide).
Minor changes:
- Fixed typo in
koopa_aws_s3_delete_versioned_glacier_objects
name. - The
koopa install
command now supports positional arguments with--all
and--all-binary
flags set. - Definition lists are no longer bold by default.
koopa_docker_run
now allows unauthenticated pulls from AWS ECR. To enable authenticated pulls, ensure thatAWS_ECR_ACCOUNT_ID
,AWS_ECR_PROFILE
, andAWS_ECR_REGION
environment variables are defined.- Binaries are now only pushed consistently when
--push
flag is set. - Relaxed apt configuration for new Debian 12 instances.
Major changes:
- Added support for salmon quantification directly from BAM files. Using this code to process Nanopore output aligned with minimap2.
- Improved handling of FASTQ symlinks in kallisto and salmon functions.
- Improved parameterization of
koopa_sub
, ensuring that both regex and fixed modes work as expected. - Apps that depend on Node no longer attempt to burn in module path.
Minor changes:
- Updated Posit package manager (for R) snapshot to 2023-06-23.
- Reworked
ont-dorado
install support, using pre-built binaries instead of attempting to install from source using CMake. - Simplified and reworked file rename functions:
koopa_rename_camel_case
,koopa_rename_kebab_case
,koopa_rename_snake_case
. - Removed support for
curl7
, now that we can convince R thatcurl
8 is OK. extract
andfind
: Improved handling of hidden dot files when using GNU find, which we detected when attempting to installont-dorado
inside a Linux Docker instance.- Export of
EDITOR
value now only defines koopa vim when it is installed. koopa_is_ssh_enabled
no longer errors ifssh
is not installed.- Fixed cryptic R build error seen on macOS (4.3.1) that was due to usage of
GNU binutils
ar
instead of systemar
. - Added support for locating
gunzip
andminimap2
. - Relaxed Renviron PATH checks for directory paths that may not exist.
- Homebrew updater now untaps deprecated
homebrew/cask-drivers
tap. - Our
koopa_dot_clean
function now useskoopa_find
internally. - R system configuration now removes legacy
Makevars.site
file on Linux.
New installers:
- Added install support for
libaec
, which is now a dependency forhdf5
. - Added install support for
mold
.
Major changes:
- Reworked
decompress
andextract
functions. Added support for additional compression formats, including brotli, lz4, lzip, and zstd.
Minor changes:
- Removed
decompress
from koopa bin. We recommend usingextract
instead, which supports multiple archive formats, including compressed files. - Removed install support for
yarn
, which is now bundled inside ofnode
. - Renamed
defaults
configuration topreferences
on macOS. - Renamed
defaults
configuration tobase
on Debian. - Added
ca-certificates
activation function. - Improved time zone configuration handling on Debian systems not booted with systemd (e.g. Latch Pods).
- Hardened extraction steps inside of installers, where applicable.
New installers:
- Added support for
apache-arrow
,krb5
,ldns
,libcbor
,libfido2
,libxcrypt
,p7zip
.
This is a big update, with thousands of changes since our prelease stable 0.12.1 release in 2021. Documentation explaining these changes in more detail will be added to the main koopa website in the next few months.
Major changes:
- Added install support for hundreds of commonly used programs.
- Added application-specific functionality in the CLI under
koopa app
. - Dotfiles are now version pinned. These can be configured by first installing
with
koopa install dotfiles
and then configuring usingkoopa configure user dotfiles
. - Renamed and reorganized internal function library. Bash scripts are now
consistently prefixed with
koopa_
. Note that POSIX shell scripts are prefixed with_koopa_
.
Major changes:
- Removed automatic dotfiles installation from main installer.
Major changes:
- Improved internal subshell handling, which now avoids the duplicate tmux session messages seen on EC2 instances.
- Internal
install_app
function now provides better support for non-default--prefix
handling, which is useful for configuration on AWS EC2 instances. In particular, this is useful for installing large programs onto internal volumes, such as bcbio-nextgen. aws_s3_sync
: Improved array handling of--exclude
patterns.generate_ssh_key
: Defaulting back toid_rsa
instead ofid_ed25119
, which still has better general compatibility support on AWS, in particular with regard to CodeCommit. May revert back in a future update, but now is not the time.- Improved the consistency (i.e. standardized) the configuration of language- specific package libarries, including Julia, Nim, Node, Perl, Python, R, Ruby, and Rust.
- Improved Docker install support on Debian 10 and Ubuntu 20.
Minor changes:
- Simplified Homebrew activation and R configuration on Linux.
- Updated RSPM CRAN snapshot to 2021-10-05.
- Added installation and auto-completion support for
nim
andnim-packages
. - Homebrew link fixes for
nghttp2
/libnghttp2
and[email protected]
. - Miscellaneous package version updates in
variables.txt
. - Updated conda recipe versions and added
mirdeep2
to bioinfo recipes. python_get_pkg_versions
: Split out this function, which is shared in pip installer calls during standard Python package install, and in ourr-reticulate
virtualenv generator.init_dir
: Improved detection and handling of input containing user home directory abbreviated as~
.- Emacs needs to be in path for our Doom Emacs updater.
- Improved consistency of kallisto and salmon output directory handling in
their respective
index
functions. - Simplifed Emacs locator function approach on macOS.
- Shared profile configuration file in
zzz-koopa.sh
should use.
instead ofsource
in the call, which is POSIX-compliant. - Improved support for Prelude Emacs.
Major changes:
- All functions supporting long flag arguments (e.g.
--argument=VALUE
) now also support the--argument VALUE
positional variant, which are easier to code inside Python/R wrapper functions. - Added single-end sample processing support for kallisto and salmon.
- Improved Homebrew (Linuxbrew) support for Linux. Split out the brewfiles into separate files that we can share across Linux and macOS. This is still a bit of a work in progress, and may change in the future. In particular, support for Homebrew on ARM Linux is currently quite poor and helps development help.
- Reworked and improved AWS CLI utility functions. In particular,
aws_s3_ls
is improved to better pick out directories and files, usingawk
now internally. All AWS functions now support non-default CLI profiles, either usingAWS_PROFILE
global variable, or--profile
argument. - Hardened
PATH
andPKG_CONFIG_PATH
inside of install and update function calls, where applicable. - Reverted use of
_koopa_conda_alias
back to full conda activation inside of interactive shells. Use of this approach was resulting in weird behavior on Debian 11 ARM test AWS AMI image.
Minor changes:
run-kallisto
is now a symlink torun-kallisto-paired-end
, andrun-salmon
is now a symlink torun-salmon-paired-end
.- Our default
condarc
file inherited by conda now uses capitalizedTrue
andFalse
values, recommended by Bioconda. Also disabling auto update of conda in this config by default. - Improved auto-completion support for main
koopa
program. - Improved conda detection support inside of active R session.
See
Rprofile.site
file for details. - Updated RSPM snapshot from 2021-07-01 to 2021-09-21.
- Increased default timeout in R configuration.
- Improved configuration when handing off to r-koopa package.
See
header.R
file for details. - All case switch statement arguments are now quoted, where applicable.
- Improved CLI handoff to r-koopa.
- Renamed
is_git
function tois_git_repo
. - Added draft support for Debian 11 Bullseye release.
- Reorganized installer functions, adding an additional level of nesting in directory hierarchy.
- Internal koopa coreutils functions now support long
--sudo
argument instead of simply using-S
, which is more readable. - Added more internal program locator functions.
- Improved functions that extract program versions.
- Miscellaneous improvements to non-interactive and interactive shell activation functions.
- Improved handling of Emacs configuration on macOS.
Removed functions:
- Removed
indrops-i5-sample-index-counts
, which has been migrated to r-koopa package instead.
Minor changes:
- Updated Python dependencies. Also updated other versions as recommended by latest Homebrew update.
- Updated r-koopa dependency to 0.1.20.
- Updated RStudio Package Manager (RSPM) to 2021-07-01.
This is a significant release that overhauls a number of functions in the Bash library, with the intent to improve standardization of app configuration.
Major changes:
- Overhauled and significantly improved completion support for main
koopa
script on Bash and Zsh. Added support for nested completion ofinstall
anduninstall
here, which is very useful for quickly identifying which install scripts are supported for a specific platform (e.g. macOS or Linux). Internally reduced the complexity by simplifying the number of calls toCOMPREPLY
. - Reworked main shell activation script defined in
activate
file. This now defines some standard POSIX functions internally, and then hands off to POSIX shell library inside of POSIX header file to complete the activation process. This helps improve configuration consistency whenkoopa
is called externally outside of our Bash or Zsh configuration files. - Improved standardization (and consistency) of installer functions by
using new
install_app
anduninstall_app
wrapper functions. These help improve the consistency of linking intoapp/
andopt/
subdirectories inside of koopa installation. - Hardened coreutils and other commonly used external programs with function
wrappers, with the intent to improve consistency across platforms. This
applies primarily to GNU coreutils, which can be distributed instead as
BSD variants on some platforms (e.g. macOS, Busybox). These wrappers are
named with
locate_*
prefix internally in the Bash library. - Added initial support for Julia package management with
koopa install julia-packages
. - Reworked
julia-packages
,perl-packages
,r-packages
,ruby-packages
, andrust-packages
structure inapp/
. These now contain versioned subdirectories consistently, similar to installed apps. The latest version is now linked intoopt/
.
Minor changes:
- Added support for new Rocky Linux distribution, which aims to replace CentOS 8 for HPC configurations.
- Updated multiple dependency version checks. Refer to
include/variables.txt
for a diff of all specific changes. - Updated R RSPM CRAN shapshot for Linux to 2021-06-16 in
Rprofile.site
file. - Hardened R CRAN binary check on macOS in
Rprofile.site
file. - Renamed
current-bioc-version
tocurrent-bioconductor-version
. - Renamed
current-bcbio-version
tocurrent-bcbio-nextgen-version
. - Removed
tldr
custom code, in favor of using Rusttealdeer
to manage tldr look-ups. - Prefixed all
venv-*
exported scripts and functions withpython-*
. - Removed
goalie::isCleanSystemLibrary
check inside of R script header, which can be overly strict. This check currently fails on Debian/Ubuntu CRAN binaries for R 4.1.0. - Simplified conda environment handling in
activate_conda_env
function. - Initial commit of
koopa_find
internal function, which attempts to use Rustfd
instead of GNUfind
when possible. - Improved support for multiple Emacs configurations (e.g. Spacemacs, Doom Emacs, etc.) using chemacs2 approach.
- Reorganized R configuration files, to better support new 4.1 release.
- Reworked some linter checks that are called by
koopa system test
. Some of these checks will migrate to new AcidLinter package in the future.
Minor changes:
- R configuration updates to provide compatibility with R 4.1. Refer to
Renviron.site
files for configuration changes. Note that R configuration defined inetc/
is now versioned to support 4.1 in addition to 4.0, 3.6, and devel releases.
Major changes:
- Reworked shell detection and export of
KOOPA_SHELL
,SHELL
variables during activation. This now should consistently return the full path to the current shell application, including in subshells. - Improved consistency of Miniconda (default) and Anaconda installs.
- The
koopa_downloader
function now callswget
instead ofcurl
when under qemu emulation (e.g. ARM Docker image running on x86 Intel machine). This is not common but helps avoid edge case issues with curl currently crashing with a segfault for some HTTPS URLs that fail specifically when called in qemu emulation environment. This was noted to happen with therepo.anaconda.com
server, for example.
Minor changes:
- Updated the dependency versions for recommended conda bioinfo environments.
- Reworked the
conda_create_bioinfo_envs
function to use a dictionary approach, which better supports a lot of variables in use. Added some more tools potentially useful for enrichment (i.e. MIME Suite) and for single-cell and spatial analysis. - Now wrapping calls to
conda
in a variable, in case we want to dynamically switch to using mamba when mamba is installed. - Potentially empty arrays have been appended with
:-
, to avoid some potential issues with Bash running in-u
(no unbound variable) mode. - Reverted Docker builds to check for builds older than 7 days instead of 30 by default.
- The
docker_run
function now supports a--bind
argument, enabling bind mode of the current working directory. - Internal
*has_sudo
functions have been renamed to*is_admin
instead, which makes more sense for a root user. - Improved error message when attempting to install on macOS with ancient Bash.
- Updated Conda installer to use Python 3.9, which now also provides initial support for aarch64 (ARM) platform in addition to x86.
Major changes:
- This release introduces a overhaul to the internal app install engine defined
in the
koopa_install_app
function. Primarily this helps improve app installation consistency intoapp/<version>/<name>
with subsequent unversioned links inopt/<name>
, similar to the current approach used in the Homebrew package manager. - Migrated all app installer code from
include/install
into the main Bash function library. These get defined internally (as__koopa_install_bash
, for example). Then they are called fromkoopa_install_bash
, which subsequently hand off tokoopa_install_app
for improved linkage and permission consistency. - The main
koopa_install_app
installer function now hardensPATH
,PKG_CONFIG_PATH
and other variables for improved installation handling. - App installs now rely on koopa opt (e.g.
/opt/koopa/opt/<name>
) and Homebrew opt (e.g./usr/local/opt/<name>
) for app installs. This really helps improve installation recipes to build successfully on macOS. - Reworked the Perl, Python, R, Ruby, and Rust package configuration. Now all
of these link consistently into koopa opt (e.g.
/opt/koopa/opt/r-packages
for R;/opt/koopa/opt/python-packages
for Python). Packages should never get installed into the system site libraries and/or inside Homebrew. - R site configuration has been updated to use the same path for
R_LIBS_SITE
andR_LIBS_USER
. IfR_LIBS_USER
is not the same, RStudio Server will now create an unwanted user package directory. This is not the case with base R or the RStudio app on macOS. - Added macOS dark/light mode detection support. The shell session now sets
the
KOOPA_COLOR_MODE
variable, which can get picked up in supported iTerm2 and Vim configurations. We currently recommend using Dracula for dark mode and Solarized Light for light mode where possible. This currently applies to our Vim and Spacemacs (Emacs) configurations. - Reworked main activation script.
- Improved completion handling support for Bash.
Minor changes:
- Multiple updates to dependency package versions.
- Updated r-koopa check to v0.1.18.
- Improved consistency of
--reinstall
flag handling for app installs. - Improved dircolors handling on macOS.
- Removed some exported apps in
PATH
that are not frequently used. - Improved architecture support (i.e. x86, ARM) in some install scripts.
- GDAL installer no longer attempts to install Python code, which links into system site library, no matter the Python configuration.
- Hardened internal downloader function (
koopa_download
) to ignore manual user cURL configuration defined in~/.curlrc
.
Major changes:
- Reworked activation of GNU coreutils on macOS, significantly speeding up the loading time.
- Useful GNU utitiles on macOS from Homebrew are now defined as aliases (e.g. 'gcp' is aliased to 'cp'). The original BSD variants are consistently prefixed with 'bsd' (e.g. 'bsdcp' for 'cp').
Minor changes:
- Updated system dependency checks. Now intentionally errors when attempting to run inside a Docker image.
- Shared
Rprofile.site
configuration is now respectful of quiet mode, defined with either '--quiet', '-q', or '--silent' flags.
Minor changes:
- Improved activation speed of Homebrew GNU utilities on macOS.
- Updated dependency versions.
Major changes:
- Improved support for 64-bit ARM (AArch) in addition to x86. Installers and
other platform-specific scripts now use
koopa_arch
function internally when applicable. Note that ARM is still not well supported in some bioinformatic workflows, RStudio installers, and conda.
Minor changes:
- Updated package versions supported by installers.
- Improved shared R profile configuration to suppress messages regarding manual CRAN configuration that now pop up with the BiocManager update.
Minor changes:
- Reorganized some internal Bash functions.
- Improved and hardened functions that can enable passwordless sudo or sudo via Touch ID on macOS.
- Updated package version checks to support more libraries, such as cairo, harfbuzz, and imagemagick. These checks are defined in the r-koopa package.
- Installer now defaults to
/opt/koopa
instead of/usr/local/koopa
. - Reworked organization of "cellar" and "app" prefixes. Removing the usage of "cellar", since this is a Homebrew-specific idiom. Instead koopa will now use "app" for versioned installed, and a nested "opt" directory for unversioned symlinks, similar to the approach used by Homebrew.
- Removed autojump activation support in favor of zoxide, which is faster.
- Massive rework of internal shell script function library, which is now
defined inside
lang/shell
(seebash
andposix
subdirectories). - Offloaded some functionality to koopa R package, which can be installed
if necessary with
koopa install r-koopa
.
Minor changes:
- Improved internal code that checks for unstaged changes in current Git repo.
- Updated r-koopa dependencies.
- Updated RSPM snapshot to 2020-10-06.
Minor changes:
- Upgraded Python from 3.8.5 to 3.9.0.
- Upgraded GDAL from 3.1.2 to 3.1.3.
Minor changes:
- Updated RSPM to 2020-10-01 snapshot.
- Updated check against Ruby version.
Minor changes:
- Updated bcbio-nextgen version to 1.2.4.
Minor changes:
koopa header
: Added support for R. Input is no longer case sensitive.- Improved broot activation support on macOS.
- Updated OpenJDK to 15.
- Updated RStudio Package Manager (RSPM) snapshot to 2020-09-16.
- Updated GDAL, Go, and htop versions.
Minor changes:
- Improved
install-rust-packages
, pinning to specific Rust versions. User can define custom packages to install as positional arguments, following the conventions used forinstall-python-packages
. - Activation fix for broot on macOS. The location of the br activation script has changed recently.
- broot configuration is now under Git in the dotfiles repo.
New software recipes:
- Added install support for bpytop.
Minor changes:
- Updated r-koopa dependency to 0.0.7 from 0.0.4.
- Updated htop installer to use new forked repo.
- Updated RStudio Package Manager (RSPM) snapshot to 2020-09-01.
- Miscellaneous software version updates: Aspera Connect, GDAL, PROJ.
New software recipes:
- Added taglib cellar recipe. Also added dependency support for Debian, Fedora, and RHEL.
Minor changes:
- Added support for
koopa fix-zsh-permissions
. - Miscellaneous software dependency version updates.
Minor changes:
- Updated r-koopa dependency from 0.0.1 to 0.0.4.
- Use single quotes in shell when possilble, to pass lintr checks.
- Cleaned up comments in
Rprofile.site
file. - Draft support for pytaglib installation.
drat
: Switched default path to~/monorepo/drat
.- Updated pinned
pip
dependency version.
This release migrates all internal Bash code to functions in a shared library.
Major changes:
- Repackaged all internal Bash code inside exported scripts to function library
in
shell/bash
. Refer to scripts insidebin
orsbin
for examples. - Split out internal Python code into new separate Python package.
- Split out internal R code into new separate R package.
New scripts:
- Now exporting:
convert-utf8-nfd-to-nfc
,current-bcbio-version
, delete-adobe-bridge-cache
,docker-remove
,docker-run-wine
,drat
,file-count
,find-and-move-in-sequence
,git-rm-submodule
,install-pip
,install-ruby-packages
,jekyll-serve
,line-count
,move-files-in-batch
,rename-snake-to-kebab
,rsync-ignore
,update-r-config
,url-encode
,venv-create
,youtube-mp3
,youtube-thumbnail
.- New macOS scripts:
brew-outdated
,clean-launch-services
,ifactive
,install-pytaglib
,list-launch-agents
,merge-pdf
. - New Raspbian scripts:
install-pihole
,install-pivpn
.
Removed scripts:
- Removed unnecessary exported scripts:
docker-build-all-batch-images
,emacs-vanilla
,emacs24
,install-chrohmm
,nvim-vanilla
,rename-fq-to-fastq
,sha256
,tar-c
,tar-x
,update-google-cloud-sdk
,update-python-packages
,vim-vanilla
.
Minor changes:
- Tightened up internal R code used for
koopa check-system
andkoopa list
. - Simplified version checks inside R header.
- Working toward improving roff documentation (inside
man
directories) using ronn. - Improved Wine installer on Debian and Fedora.
- Reorganized and reworked bcbio scripts for Linux.
This is a pretty major update, where a lot of the internal functions have been overhaluled and improved.
Major changes:
- Documentation has been migrated into
man
-compatible format, and are now saved inman/man1/
. These are accessible per program via the--help
flag, which now spawnsman
internally. Python scripts still use the argparser help format. - Renamed all internal shell functions with
koopa_
prefix instead of previouskoopa_
prefix. Note that we always want to use an internal prefix, so we don't accidentally mask any system functions defined for bash and/or zsh loaded by other program scripts. For example, be careful not to maskdeactivate
for Python venv.
Minor changes:
- Reorganied bcbio admin scripts previously defined for Azure VMs. Migraged
these scripts to Linux
sbin/
.
New scripts:
- Added syntactic naming scripts:
camel-case
,kebab-case
,snake-case
, andmake-names
. These scripts support file renaming via glob matching with the--rename
flag. They call the syntactic R package internally. install-rstudio-server-pro
: Added support for RStudio Server Pro installation on Fedora / RHEL.download-cran-latest
: Pull down the latest R package release from CRAN.- Added support for RefSeq genome with
download-refseq-genome
. Can get current RefSeq release version withrefseq-version
script. install-python-pip
: Quickly installpip
into current Python library.- Added cellar scripts for:
genrich
,lua
,luarocks
,neofetch
,rmate
,shellcheck
, andsra-tools
. - Added internal version detection scripts via the shell for multiple programs,
including bash, bioconductor, clang, condam docker, emacs, etc.
See
system/include/version
for scripts.
Major changes:
- Improved prompt string configuration support and colors for git, conda environent, and Python virtual environment (venv) names. The internal code has been consolidate and simplified, for improved consistency between bash and zsh shells. Note that bash uses "$" prefix, whereas zsh uses "%".
- Now defining pykoopa Python import internally in the package, making it easier
to share functions across Python scripts exported in
bin/
. - Updated dotfiles configuration to use pylint and flake8 for Python checks. See separate dotfiles repo for changes.
- Improved conda environment creation scripts. New
conda-create-env-bioinfo
automatically sets up multiple useful environment for bioinformatics. Added generalconda-create-env
andconda-remove-env
scripts for quick environment creation and deletion. - Renamed and reworked genome download scripts:
ensembl-fasta
,ensembl-gtf
merged intodownload-ensembl-genome
;flybase-fastq
,flybase-gtf
merged intodownload-flybase-genome
;gencode-fastq
,gencode-gtf
merged intodownload-gencode-genome
. - Renamed rsync scripts for Azure VM admin. Now prefixed with
rsync-*
. - Added additional internal POSIX functions, including assert checks.
- GNU coreutils are now included in PATH for macOS, when installed via Homebrew. Normally they are prefixed with "g" on macOS instead.
Minor changes:
- Added 'download-' prefix to FASTA and GTF download scripts.
- Improved Emacs
emacs
andspacemacs
configuration files inside the dotfiles repo, based on some issues seen in the Emacs GUI on macOS. - Added R lintr config to check R scripts.
- System linter used for CI checks can now check against Python scripts.
- Migrated away from
source "$(koopa header bash)"
method to sourcing internal functions via a relative path instead. - Removed some unused scripts:
extract-fastq
,ffmpeg-*
,gzip-dir
. - Added draft configuration of 24-bit terminal color support with
terminfo
.
New scripts:
gencode-fasta
andgencode-gtf
Python scripts for downloaded GENCODE genome annotations. Currently supports Homo sapiens and Mus musculus.- (Azure)
link-msigdb
: Shared MSigDB file annotation utility.
Minor changes:
- Improved global activation of general exports, including
EDITOR
, which defines the default text editor. "vim" is recommended by default but "emacs" is also a good choice.
Major changes:
- Updater now checks for: oh-my-zsh, spacemacs symlinks in config directory.
Minor changes:
- Added install support for ChromHMM.
- Bug fix for directory creation in Python cellar script.
- ZSH configuration improvements.
Minor changes:
- Improved alias handling for zsh configuration.
- Added additional useful aliases and functions from Stephen Turner's oneliners guide for bioinformatics.
- Initial configuration support for autojump, currently limited to zsh. Will test and add bash support in a future update.
Minor changes:
- Improved zsh activation and oh-my-zsh configuration handling when koopa is
active inside
/etc/profile.d/
on Linux (i.e. RHEL 7).
This release improves prompt consistency between zsh and bash.
Minor changes:
- Reworked prompt string configuration. Now automatically updates correctly when either a conda environment or Python virtual environment are loaded. Removed shell version and disk usage from the prompt.
- Updated zsh shell configuration to use our custom, more minimal koopa prompt instead of Pure prompt. This prompt is visually identical to our bash PS1.
- Reduced the number of available string returns from main
koopa
function. Instead, these are now called more consistently using internal prefixes. (e.g.koopa_cellar_prefix
instead ofkoopa cellar-prefix)
.
Minor changes:
- Bug fixes for koopa activation inside a subshell (e.g. tmux or slurm queue).
Major changes:
- Koopa now attempts to source user configuration files prior to activation. This enables better passthrough of user-defined configuration variables.
- Simplified dotfiles configuration handling. Now need to install manually using
--dotfiles
flag or can useinstall-dotfiles
script after installation. - Fixed shell configuration when
EDITOR="emacs"
.
New scripts:
ftp-mirror
: Script that helps quickly mirror an FTP directory using wget.install-rcheck
: Utility for quickly checking R packages.
Minor changes:
- Reworked the file paths of some dot files related to vim and zsh config.
- Improved
docker-run-image
workdir configuration. - Improved shell checks, following shellcheck 0.7 release updates.
- Relaxed checks in Debian and Fedora headers when running as sudo user.
Minor changes:
- Improved detection and handling of unbound variables during installation and activation of koopa.
New scripts:
ffmepeg-alac-to-flac
,ffmepeg-flac-to-alac
: Lossless audio conversion.move-into-dated-dirs-by-filename
: Automatically move files containing a date (e.g.2019-07-28-12-01-59.txt
) into dated subdirectories (e.g.2019/07/28/
).move-into-dated-dirs-by-timestamp
: Automatically move files into a dated subdirectory according to its timestamp.sox-downsample
: Utilty script for easily downsampling high resolution audio.
Darwin (macOS)-specific:
delete-adobe-bridge-cache
: Delete Adobe Bridge cache files.dotfile-icloud
: Dot file utility for linking from iCloud, instead of our dotfiles git repo.update-defaults
: Utility for setting recommended defaults. Modifies some finder settings, screen shots path, etc.
Debian-specific:
install-git-lfs
: Utility script for installing Git LFS.
Fedora-specific:
- Added additional packages to install via yum by default.
install-cellar-gdal
: New recipe required to install rgdal R package.install-cellar-proj
: New recipe required to install rgdal R package.
Major changes:
- Installation will now clone private scripts and docker recipes. The activation
script now knows to look for these and will add
bin/
directories toPATH
.
Minor changes:
- Reworked linter engine to check for maximum of 80 characters per line.
- Improved internal update timestamp consistency across files.
- Improved shared Renviron and Rprofile site configuration files.
New scripts:
docker-run-image
: Useful utility script for booting a Docker image.patch-bcbio
: Utility for patching bcbio development installation from GitHub codebase.upgrade-bcbio
: Utilty for upgrading bcbio on a virtual machine.
Minor changes:
- Improved automatic XDG configuration in
~/.config/koopa
. Needed to update configuration of R symlink.
Major changes:
- Removed support for ksh. This shell does not support usage of
local
variables inside of functions, which are tremendously useful, and prevent accidental variable overwrites. Therefore, we're restricting support for bash and zsh at the moment. - Improved Fedora install scripts to support RHEL 8. Also updated Docker install script to support RHEL 8.
Minor changes:
- Harden scripts to pass shellcheck.
- Switch back to using
-n
instead of! -z
consistently for POSIX code. Double checking, this works correctly with latest version of ZSH. - Sort arrays using
mapfile
, which is recommended by shellcheck. - Improve shebang detection inside recursive shellcheck script.
- Added fixme/todo comments detection in linter script.
- Updated recommended program versions.
- Improved version checks inside
check.R
script.
New programs:
- Added
copy-bam-files
utility, which makes it easier to quickly set up an IGV session, which requires both*.bam
and*.bam.bai
files. Previously, this was namedcp-bam-files
.
This is the first release supported to work when installed at /usr/local
.
This enables shared shell configuratino of all users, via configuration in
/etc/profile
(or /etc/profile.d/
) instead of relying on .bash_profile
.
Major changes:
- koopa now checks for root and doesn't attempt to activate.
- Improved dotfile initialization, and no files are overwritten by default.
- Reworked
install
script, and added usage accessible via--help
. - Added
uninstall
utility script. - Reworked activation scripts to support multi-user config.
- Reworked shared script header approach.
- Improved automatic
/etc/
configuration.
Minor changes:
KOOPA_PREFIX
path is always expanded, and symlinks are now resolved.- Improved Travis CI testing approach.
- Reorganized workflow scripts.
- Split out functions into individual scripts.
Major changes:
- Improved update script.
- Install koopa using simply
install
instead ofINSTALL.sh
. - Improved attempt at dotfiles auto-linking during
install
call. - Improved OS-specific PATH exports.
- Switched to using
KOOPA_BUILD_PREFIX
andKOOPA_TMP_DIR
variables for build scripts.
New programs:
sudo-install-amzn-base
: Recommended initial setup for Amazon Linux 2.sudo-install-debian-base
: Recommended initial setup for Debian.sudo-install-fedora-base
: Recommended initial setup for Fedora.sudo-update-system
scripts for supported operating systems.sudo-install-perl-rename
sudo-install-shiny-server
Minor changes:
- Removed attempt at automatic bcbio install detection for Azure. Consider linking current release as recommended in bcbio install instructions.
- Hardened some additional unbound variables detected in the activation scripts.
- Reworked bash and zsh activation steps. Namely, removed
init.sh
file. - Disabled
set +x
for some scripts, which was used for testing. - Renamed pre-flight check scripts.
- Hardened zsh setup scripts, using
[[
instead of[
consistently. - Miscellaneous early return fixes, e.g. for conda and virtualenv detection.
- Renamed RHEL scripts to use Fedora instead. Improved check support for distros that extend Fedora, such as RHEL 7 and Amazon Linux 2.
- Simplified shellcheck installation across distros.
- Improved conda installation messages.
This version introduces a fair number of changes, in preparation for future v0.4 release series. They should be breaking changes, so we indicated this as a point release instead.
Major changes:
- koopa now clones Mike's dotfiles repo as a submodule, in
dotfiles/
. - Moved install scripts from
install/
into nested insidebin/
instead.
Minor changes:
- Reorganized exported scripts in
bin/
directory. - Improved platform checks and related messages.
- Moved
sudo-*
scripts into nestedsudo/
directory, to allow conditional access in$PATH
export for sudo users only. - Improved
check-versions
script to determine if R is installed. Added additional improvements to the R code for these checks. - Azure:
rsync-azure-files
: Now excludingwork/
directories, for bcbio. - Initial setup of sudo scripts for RHEL 7.
- Improved information shown in
koopa-info
script.
New programs:
install-doom-emacs
: Setup script for doom-emacs.install-genrich
: Install Genrich caller for ChIP/ATAC-seq.install-python-virtualenv
: Updated to support Python 3.install-rmate
: Useful utility for opening remote scripts in VS Code.install-spacemacs
: Install script for spacemacs (emacs+vim editor).youtube-mp3
,youtube-thumbnail
: Newyoutube-dl
-related utility scripts.
Additional files:
- Added support files for fedora
ldconfig
inetc/ld.so.conf.d/
. This are particularly useful for configuring programs installed at/usr/local
, and for R to correctly pick up library dependencies.
- Improved version dependency checks.
- Added new
check-versions
program, for additional version checks. - Improved build scripts in
install/
to use/tmp/
for temp files. - New build scripts: bash, coreutils, gnupg, openssl, pass, r, rstudio-server, and zsh.
- Now using a shared
__init__.sh
script for simpler build dependency checks.
- Renamed all exported scripts to no longer use file extensions. This makes transitioning any bash scripts to python easier, without breaking names.
- Reworked
shellcheck-recursive
to check for shell shebang, rather than relying on the file extension. - Rewrote
download-fasta
anddownload-gtf
in Python instead of Bash.
- Improved build scripts, and hardened some intended for RedHat Linux.
- Updated genome build information.
- Improved bcbio scripts and custom genome builds.
- New exported scripts:
ip-address.sh
,vim-sort.sh
. - Added script to build Python from source for RedHat.
- Updated to Ensembl release to 95.
- Updated GENCODE to release human 29 / mouse M20.
- Updated FlyBase to 2019_01.
git-pull-all.sh
: Addedgit fetch
call.- Improved build configuration scripts: emacs, git, gsl, openssl, tmux.
- Added bcbio system configuration files (bcbio_system.yaml).
- Improved default run template for bcbio RNA-seq.
This release overhauls the previous activation method. Refer to the README for details on how to reconfigure your shell profile.
- Changed activation method to use
activate.sh
script at top of repo. - Improved support for ksh and zsh shells. Added Travis CI checks.
- Added native support for zsh pure prompt, including async script. These files
are saved in
zsh/fpath/
. - Reorganized bcbio configuration scripts and templates.
- Completely overhauled system activation method. Additional shell
configuration, including prompt string customization is now disabled by
default. Refer to the installation instructions for details on how to enable
this new optional
extra
mode. - Reorganized installer scripts exported in
bin/
including conda scripts,reset-permissions.sh
,sudo-yum-update.sh
, etc.
- Migrated darwin (macOS)-specific scripts from bash repo to koopa.
- Migrated Harvard O2 and Harvard Odyssey HPC scripts here from bash repo.
- Added
rsync-azure-files.sh
script for working with Azure Shares (Samba). - Added
autopad-samples.sh
script. - Added
bash-strict-mode.sh
script. - Added
md5sum.sh
script. - Reorganized other scripts accessible via
bin/
. - Reorganized activation and system scripts, in preparation for 0.3 release.
- Improved shellchecks on workflows.
- Split out some activation steps into separate scripts.
- Added back ".sh" extension for all exported scripts.
- Updated Travis CI configuration to use shellcheck.
- Reorganized and improved workflow scripts.
- Updated installation instructions to recommend cloning to
~/.koopa
. - Conda now will only activate when
CONDA_DEFAULT_ENV
is set in environment. This improves handling in situations for user accounts where we don't want to activate conda in a shared environemnt (e.g. bioinfo account on Azure).
Major changes:
- Reworked activation script to use POSIX instead of bash conventions. Notably,
this involves switching to
[
from[[
. - Early return using
return
instead ofexit
when koopa is already active, to prevent accidental lockout on a remote SSH connection.
Minor changes:
- Improved support for ZSH in activation script.
- Initial commit of
NEWS
file. - Now checking on Travis CI only against master branch.
Minor changes:
- Improved variable quoting inside
bin/
scripts. - Reworked activation steps in main
activate.sh
script. - Deleted
reference.txt
file insystem/
. - Deleted function scripts inside
functions/
. Rethinking this approach.
Removed programs:
- Deleted
sam_to_bam
utility script.
New programs:
- Added
trash
utility, which moves files to~/.Trash
, similar to macOS.
Removed programs:
- Removed
sudo_install_git
andsudo_install_r_cran
. Rethinking this approach in a future update. - Removed these macOS-specific scripts:
brew_cleanup
,brew_status
,brew_upgrade
,install_homebrew
, andinstall_openssl
.
New functions:
- Added
path_modifiers.sh
andquiet_which.sh
utilty functions.
Minor changes:
- Improved error message for unsupported shells in
koopa
.
New programs:
- Added
git_push_all
andgit_status_all
, corresponding togit_pull_all
.
Minor changes:
- Improved comments regarding HISAT2 for bcbio.
- Reorganized interactive and non-interactive script handling in
system/
. - Hardened shell scripts using
set -Eeuo pipefail
.
Now exporting new scripts in bin/
, accessible in $PATH
.
Major changes:
- Reworked
koopa.sh
to be exported inbin/
as simplykoopa
. - Reorganized activation scripts. Split out aliases into
01_aliases.sh
. Improved automatic activation scripts for HPC and PATH exports. - Improved activation handling in
activate.sh
. - Added new
info.sh
info box utility script. - Added
list.sh
program list utility.
Minor changes:
- Reorganized activation script for login / non-login and interactive / non-interactive shells.
- Improved automatic configuration for bcbio on Harvard HPC clusters.
- Improved GENCODE workflow scripts.
- Improved automatic conda configuration.
- Now exporting
KOOPA_VERSION
andKOOPA_DATE
global variables. - Updated installation instructions.
- Removed
/setup/
config files. - Added support for automatic SSH key import, using
$SSH_KEY
variable. - Removed "g" aliases for GitHub commands (e.g. ga, gc, gd). Too confusing.
- Simplified the separator bar for koopa message, avoiding unicode.
- Renamed
bcl2fastq_indrop
script tobcl2fastq_indrops
. - Added some utility scripts from macOS bash repo:
delete_fs_cruft
,git_pull_all
,gzip_dir
,install_tex
,move_files_up_1_level
,rename_from_csv
,reset_permissions
.
- Initial stable release.
- Repo was previously named "seqcloud".