We are excited to announce the release of Atlas v0.24 🎊
We are back again with a new release of Atlas, v0.24. In this release we double down on the core principle that has been guiding us from the start: enabling developers to manage their database Schema as Code. The features we announce today may appear like a yet another cool addition to Atlas, but we're confident, that in a few years' time, they will be recognized as something foundational.
In this release we introduce:
schema test - a new command (and framework) for testing your database schema using familiar software testing paradigms.
migrate test - a new command for testing writing tests for you schema migrations.
Enhanced editor support - we have added support for some long awaited features in our VSCode and JetBrains plugins: multi-file schemas, jump to definition, and support for much larger schemas.
test "migrate" "20240613061102" {
# Migrate to version 20240613061046.
migrate {
to = "20240613061046"
}
# Insert some test data.
exec {
sql = "insert into users (name) values ('Ada Lovelace')"
}
# Migrate to version 20240613061102.
migrate {
to = "20240613061102"
}
# Verify the correctness of the data migration.
exec {
sql = "select first_name,last_name from users"
output = "Ada, Lovelace"
}
}
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.
v0.26.3
This is a patch release that prevents tea.WindowSizeMsgs from being fired during altscreen changes on Windows. This was due to the fact that Windows emits a window-size-event on altscreen changes even if the size hand’t changed. Now, we cache the window-size and compare before sending the message to the Model.
Style and ANSI operations under the hood are faster
There are also a handful of great lil' bug fixes. Read on for more.
Immutable Styles
Every Style method now returns a completely new style with its own underlying data structure no matter what. This means working with Styles is a lot easier. No more need for Copy()!
// Before
s := lipgloss.NewStyle().Bold(true)
newStyle := s.Copy()
// After
s := lipgloss.NewStyle().Bold(true)
newStyle := s // this is a true copy
Okay, but why are styles easier to work with now? Consider this:
// Before
baseStyle := lipgloss.NewStyle().Background(lipgloss.Color("59"))
styleAtRuntime := baseStyle.Copy().Width(m.Width)
// After
baseStyle := lipgloss.NewStyle().Padding(1, 2)
styleAtRuntime := baseStyle.Width(m.Width)
It might seem small, but eliminating the risk of mutations in persistent styles in an enormous usability improvement.
How to upgrade
There's nothing to do, however Style.Copy() is now deprecated and only returns itself, so you can just remove Style.Copy() calls. If you need to just copy a style without any changes to it you can simply b := a.
Faster ANSI
Sometimes watch companies brag about their "in-house" watch movement. Well, now we're bragging about our in-house-amazing x/ansi library by our own @​aymanbagabas. It's a fine-tuned, low-level way to manage ANSI sequencing and, because we're pretty nerdy, we’re super excited about it.
What's Changed
... (truncated)
Commits
5cd858c fix: respect UnderlineSpaces and StrikethroughSpaces (#299)
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.
v1.3.1
Changelog
Documentation updates
23261db3d12423efceda03ef15dec56bdcf28cec: docs: improving examples and docs (#235) (@​caarlos0)
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.
v1.3.0
PTYs, Subsystems, and More
This release is loaded with improvements and new features like support for exec, server banners, subsystems, and client color profiles. Read on for more!
Exec and PTYs
At last, now you can get real a PTY for reach SSH connection. This allows you to exec.Command on the remote. This also means bubbletea.Exec will now work as expected[^windows]!
// Open a file in Vim in Bubble Tea (on the server)
c := wish.Command(m.sess, "vim", "file.txt")
</tr></table>
Adds Discard() method to the middleware.WrapResponseWriter interface. This is technically an API breaking change. However after some discussion at go-chi/chi#926, we decided to move forward, and release as minor version, as we don't expect anyone to rely on this interface / implement it externally.
Bumps the gomod group with 12 updates in the / directory:
0.15.0
0.24.0
2.10.0
2.14.0
0.25.0
0.26.6
0.9.1
0.11.0
1.2.0
1.4.0
5.0.12
5.1.0
1.3.0
1.4.0
1.17.7
1.17.9
1.31.0
1.33.0
2.20.15
2.20.34
1.7.0
1.7.4
1.0.2
1.0.3
Updates
ariga.io/atlas
from 0.15.0 to 0.24.0Release notes
Sourced from ariga.io/atlas's releases.
... (truncated)
Commits
44a6f88
doc/website: v0.24 release notes (#2860)078008e
schemahcl: add support for regexpescape hcl function (#2855)0a93842
cmd/atlas/internal/cmdapi: add test spec (#2854)373fb3d
schemahcl: copy typerange for dynamic blocks (#2852)754453f
cmd/atlas/internal/cmdapi: env lint config overrides global one (#2851)40269aa
doc/website: unify-footer (#2848)c8c647f
sql/postgres: attach namespace to opc identifier if not default (#2850)cffea3d
doc/md: fix typos and remove unnecessary backslash (#2849)ca581a5
cmd/atlas/internal: exclude .test.hcl from hcl state reader (#2843)2ae36b2
chore: upgrade toolchain to go1.22.4 (#2842)Updates
github.com/alecthomas/chroma/v2
from 2.10.0 to 2.14.0Release notes
Sourced from github.com/alecthomas/chroma/v2's releases.
... (truncated)
Commits
1e983e7
lexers/cue: support CUE attributes (#961)9347b55
Add Gleam syntax highlighting (#959)6b7ffe1
chore(styles): add tokyonight inspired styles (#957)736c0ea
Typescript: Several fixes (#952)e5c25d0
Org: Keep all newlines (#951)d07caa4
chore(deps): update module github.com/alecthomas/assert/v2 to v2.7.0 (#949)5f83664
Vue: Handle more edge cases (#950)32c053f
chore(deps): update all non-major dependencies (#948)2580aaa
Add Bazel bzlmod support into Python lexer (#947)bd47355
fix: include compress state in style cache keyUpdates
github.com/charmbracelet/bubbletea
from 0.25.0 to 0.26.6Release notes
Sourced from github.com/charmbracelet/bubbletea's releases.
... (truncated)
Commits
60a57ea
fix: nil deref on release terminal42a7dd8
feat(ci): use goreleaser for releases (#1023)a08802e
fix(windows): coninput not handling control sequences (#1041)ab28057
chore: update codeowners (correctly this time)3c6fe8a
chore: update codeowners7899f0f
chore(deps): bump golang.org/x/sys from 0.20.0 to 0.21.0 (#1035)2d65ed6
Removed use of deprecated Copyeb78a8c
fix: program renderer commands (#1030)5331b83
chore(deps): bump github.com/charmbracelet/lipgloss in /examples (#1025)c900512
chore(deps): bump github.com/charmbracelet/x/ansi from 0.1.1 to 0.1.2 (#1026)Updates
github.com/charmbracelet/lipgloss
from 0.9.1 to 0.11.0Release notes
Sourced from github.com/charmbracelet/lipgloss's releases.
... (truncated)
Commits
5cd858c
fix: respect UnderlineSpaces and StrikethroughSpaces (#299)c91ab3e
chore(ci): enable gofumpt83fa9be
chore: use x/ansi instead of exp/termce5323e
chore(deps): bump golangci/golangci-lint-action from 5 to 6 (#290)e3596ae
chore(ci): test for different GOOS & GOARCH2fe044a
fix: Change the propkeys from int to int643ee5dca
chore(docs): doc updates with regard to style.Copy() deprecation517b1a1
fix: remove unused typed2795c7
refactor: replace props map with struct fields (#276)c986440
chore(lint): remove deprecated ifshort linting optionUpdates
github.com/charmbracelet/wish
from 1.2.0 to 1.4.0Release notes
Sourced from github.com/charmbracelet/wish's releases.
... (truncated)
Commits
309ee5c
chore(deps): update charmbracelet/sshbc0f67f
chore(deps): bump github.com/go-git/go-git/v5 from 5.11.0 to 5.12.0 (#255)0169ff6
feat: logging.StructuredMiddleware (#254)c8de232
chore(deps): bump github.com/charmbracelet/log in /examples (#252)3061fba
chore(deps): bump github.com/charmbracelet/log from 0.3.1 to 0.4.0 (#253)3d2054d
fix: remove ssh server version (#249)8edb0a1
chore(deps): bump github.com/charmbracelet/lipgloss in /examples (#248)b0e6bdc
chore(deps): bump github.com/charmbracelet/lipgloss from 0.9.1 to 0.10.0 (#247)748a837
chore(deps): bump golang.org/x/crypto from 0.20.0 to 0.21.0 in /examples (#246)65d9f07
chore(deps): bump golang.org/x/crypto from 0.20.0 to 0.21.0 (#245)Updates
github.com/go-chi/chi/v5
from 5.0.12 to 5.1.0Release notes
Sourced from github.com/go-chi/chi/v5's releases.
Changelog
Sourced from github.com/go-chi/chi/v5's changelog.
Commits
67be7d9
middleware: add Discard method to WrapResponseWriter (#926)7957c0d
Revert "fix(middleware): Close created writer in the compressor middleware (#...f728a1c
docs: Update stale links in docs for contributing (#904)f10dc4a
fix(middleware): Close created writer in the compressor middleware (#919)ef31c0b
reduce context struct size from 216 bytes to 208 bytes (#912)c1f2a7a
middleware: fix typo in RealIP doc (#903)Updates
github.com/jaevor/go-nanoid
from 1.3.0 to 1.4.0Release notes
Sourced from github.com/jaevor/go-nanoid's releases.
Commits
3a26723
readme update; briefer comments & tests; direct canonic func9cf0764
Merge pull request #6 from ramonberrutti/patch-204d01b5
fix: correct asciiAlphabet indexdbbf01d
Merge pull request #4 from ErebusBat/add-must-custom-asciib98b58b
shorter readmeb1ec969
Add MustCustomASCII function.ae1d3ca
deps update | shorter readme2a78a8e
updated readme & go.modUpdates
github.com/klauspost/compress
from 1.17.7 to 1.17.9Release notes
Sourced from github.com/klauspost/compress's releases.
Commits
7ae2138
Upgrade zlib to upstream (#971)0396178
zstd: BuildDict fails with RLE table (#951)8411e1d
zip: Upgrade to 1.22.4 upstream (#970)d9f6f55
build(deps): bump the github-actions group across 1 directory with 2 updates ...5f7dd25
flate, zstd: Shave some bytes off amd64 matchLen (#963)3a0faf3
Fix arm64 vet issues (#964)8bd3916
s2: Reduce ReadFrom temporary allocations (#949)c0ff47e
Update README.md657dc16
chore: remove repetitive words (#946)3f77d8c
build(deps): bump the github-actions group with 1 update (#944)Updates
github.com/rs/zerolog
from 1.31.0 to 1.33.0Commits
c78e50e
Add fields order (#550)8582bed
fix: useTimestampFunc
in busrt sampler (#671) (#672)7d9db06
Allow setting floating point precision in JSON. (#663)e5aa7e3
Revert #6620efa414
Fix panic caused by an extra malformedlevel
field (#665)eb081e1
chore: fix some typos in comments (#667)2d899f0
set debug log color (#662)74cf37a
Add EmptyFields method to remove all the fileds from logger (#575)e5edd4b
Refactor: make code in comment valid and runable (#654)582007f
Add a time.Location to ConsoleWriter. (This allows UTC timestamps.) (#531)Updates
github.com/stretchr/testify
from 1.8.4 to 1.9.0Release notes
Sourced from github.com/stretchr/testify's releases.
... (truncated)
Commits
bb548d0
Merge pull request #1552 from stretchr/dependabot/go_modules/github.com/stret...814075f
build(deps): bump github.com/stretchr/objx from 0.5.1 to 0.5.2e045612
Merge pull request #1339 from bogdandrutu/uintptr5b6926d
Merge pull request #1385 from hslatman/not-implements9f97d67
Merge pull request #1550 from stretchr/release-notesbcb0d3f
Include the auto-release notes in releasesfb770f8
Merge pull request #1247 from ccoVeille/typos85d8bb6
fix typos in comments, tests and github templatese2741fa
Merge pull request #1548 from arjunmahishi/msgAndArgs6e59f20
http_assertions: assert that the msgAndArgs actually works in testsUpdates
github.com/tdewolff/minify/v2
from 2.20.15 to 2.20.34Release notes
Sourced from github.com/tdewolff/minify/v2's releases.