- BREAKING CHANGE:
AppContext.CreateAIChat()
now uses initial value from--system-prompt
flag - feat:
generate powerpoint
command, which generates PowerPoint.pptx
file from files using AI - refactor: code cleanups and improvements
- BREAKING CHANGE:
generate guid
=>guid
/uuid
- BREAKING CHANGE:
generate password
=>password
- feat:
base64
command also supports input files and--data-uri
flag now - feat:
compress
command which compresses data with GZIP - feat:
cron
command that runs any kind of "executables" periodically - feat:
sleep
command that waits for a specific number of time - feat:
uncompress
command which uncompresses GZIP data
- feat:
base64
command that outputs binary input data base Base64 string - feat:
cat
command that outputs binary input data combined to STDOUT - feat:
describe
command that describes images - feat:
now
command that outputs current time - refactor:
--model
flag is now global
- feat: enhance features of
gpm.yaml
file
- BREAKING CHANGE: when an environment is defined, the root base path of the application changes from
${HOME}/.gpm
to the specified path - BREAKING CHANGE: with the introduction of the
GPM_ROOT_BASE_PATH
environment variable,.env.{ENV-SUFFIX}
files are no longer supported ... these files must be moved or merged into the corresponding environment subfolder, like${HOME}/.gpm/<ENV-NAME>
, as.env
- BREAKING CHANGE: Scripts in the
gpm.yaml
file with an environment prefix (e.g.,dev:build
for adev
environment) will now execute instead of their unprefixed counterparts (e.g.,build
) - feat: added support for the
GPM_ROOT_BASE_PATH
environment variable - feat: you can now define a custom
files
section with an environment suffix in thegpm.yaml
file (e.g.,files:dev
for adev
environment) - feat: can define custom path to
aliases.yaml
file byGPM_ALIASES_FILE
environment variable - feat: can define custom path to
projects.yaml
file byGPM_PROJECTS_FILE
environment variable
- feat:
generate password
command - feat:
generate uuid
command
- feat:
gpm update
now supports update of specific modules as well - fix: using
TidyUp()
method fromAppContext
instead rawgo mod tidy
- refactor:
gpm doctor
now checks all dependencies for up-to-dateness - refactor: code cleanups and improvements
- feat: self-update by executing
gpm update --self
- chore: improve (self-)update scripts
- fix:
doctor
command
- BREAKING CHANGE:
bump version
command is now reduced to simplebump
- feat: additional checks like environment variables and unsed modules by
doctor
command
- BREAKING CHANGE: remove
audit
command - feat:
doctor
command
- feat: automatic Go compiler detection in
generate project
command - refactor: using Go compiler
1.23.4
- fix:
generate project
command
- feat:
publish
command - feat: add build for
windows/arm64
- fix:
push
command
- feat:
update
command which updates all dependencies of current project - refactor: updated all dependencies
- refactor:
generate project
now runs in a terminal UI - fix:
show dependencies
that can now handle big diagram sources as well
- BREAKING CHANGE: default AI model for Open AI is
gpt-4o-mini
now - BREAKING CHANGE: default AI model for Ollama is
llama3.3
now - feat:
generate project
command that generates a Go project with natural language - docs: can directly update
gpm
fromsh.kloubert.dev
server now
- ci: automatic update of GitHub wiki as well
- docs: will now be build for gpm.kloubert.dev
- feat:
push
command now supports--with-tags
flag to additionally push tags after upload changes to remote(s) - fix:
run
command - fix:
GetBestChromaFormatterName()
function
- feat:
chat
command is available on OpenBSD again
- BREAKING CHANGE: using
checkout
command with:
prefix in alias name, will handle this name as alias for a final target branch ... this can be defined via environment variables in the formatGPM_BRANCH_<ALIAS-NAME>
now - BREAKING CHANGE:
execute
command now generates shell commands from natural language using AI - feat:
generate documentation
command, that creates documentation files of this tool - fix:
down
command - fix: build fixes for different systems and architechtures
- feat:
show dependencies
command, which generates and opens HTML page with a dependency graph of the modules of the current project
- feat:
down
andup
commands, which are shorthands fordocker compose down
anddocker compose commands
- feat:
monitor
command now also displays open network and files information - feat:
prompt
command which invokes an AI prompt or (continues) a chat from command line - feat:
setup updater
now supports custom target folder for binary with--install-path
flag andGPM_INSTALL_PATH
environment variable - fix:
AppContext.RunShellCommandByArgs()
usesAppContext.Cwd
- refactor: code cleanups and improvements
- BREAKING CHANGE:
pack
command creates corresponding.sha256
file by default - feat:
monitor
command, which displays CPU and memory usage of a process in the console - feat:
setup git
command, which sets up basic git features like username and email address - feat: support for
CI
environment variable, which is used by GitHub actions or GitLab runners as well - refactor: using new and shorter
CheckForError()
function instead ofCloseWithError()
in most cases - refactor: improve logging
- refactor: using Go template engine now to generate final content of script by
setup updater
command - chore: update
projects.yaml
with: hugo
- BREAKING CHANGE:
audit
command now uses spinners and pretty tables for output - BREAKING CHANGE: if
GPM_BIN_PATH
is relative, it will be mapped to$HOME/.gpm
instead - feat:
bump version
command, which upgrades the current version of the underlying repository by setting up a new Git tag locally - feat:
diff
command, which displays changes between version (or the current HEAD) as pretty diff output - feat:
init
command, which currently can initialize agpm.yaml
file - feat: add
GPM_AI_CHAT_TEMPERATURE
environment variable, which defines the custom temperature value for AI chat (operations) - feat: add
--temperature
flag tochat
command, which can define the initial temperature value for the command - feat:
setup updater
command, which installs a shell script calledgpm-update
in$HOME/.gpm/bin
folder of a UNIX environment, like *BSD, Linux or MacOS - refactor: improve prompting in
chat
command - refactor:
pack
command now outputs progress with pretty bars - refactor: code cleanups and improvements
- feat:
chat
command, which is a simple user interface for communicating with AI chat bots via Ollama or ChatGPT / OpenAI - feat:
audit
command, which uses osv.dev API to scan installed modules for vulnerabilities - feat:
install
command now supports--tidy
flag to runtidy
command after successful installation - feat:
open alias
command, which opens the URL of an alias fromaliases.yaml
file in$HOME/.gpm/bin
folder - feat:
open project
command, which opens the URL of a project fromprojects.yaml
file in$HOME/.gpm/bin
folder - feat:
import aliases
command, which loads aliases from a local or web source and merge them withaliases.yaml
file in$HOME/.gpm
folder - feat:
import projects
command, which loads projects from a local or web source and merge them withprojects.yaml
file in$HOME/.gpm
folder - feat: implement
postinstall
,postpack
andprepack
scripts forgpm.yaml
files
- feat:
make
command, which downloads a Git repository, then runsbuild
command from it and move the final executable to$HOME/.gpm/bin
folder ... command is also able to handle aliases create byadd alias
command as well - feat: can setup
GPM_BIN_PATH
environment variable for a custom central folder for binaries, which is$HOME/.gpm/bin
by default - feat:
remove binary
command, which removes binary installed withmake
command - feat:
list binaries
command, which lists binaries installed withmake
command - feat:
pack
command, which compresses files defined infiles
section ofgpm.yaml
file to zip archive - fix: setup
Dir
property of commands used in Git* methods ofAppContext
instance - chore: code cleanups and improvements
- feat: load
.env
files from$HOME/.gpm
and project directories, if exist, automatically - feat: add
--env-file
file to load environment variables from external variables - feat:
execute
command which runs shell commands with the environment variables loaded from .env* files - fix: exit app if special files could not be loaded
- feat:
run
command without scripts will rungo run .
now - feat:
postbuild
,postinstall
,posttest
,prebuild
,preinstall
andpretest
script support - feat: add
--no-script
flags forbuild
,start
,test
andtidy
- initial release