fix(deps): update go major updates#820
Merged
Merged
Conversation
80b3678 to
482b934
Compare
Contributor
Author
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v4.0.0→v5.0.1v7.3.0→v8.0.0v1.2.0→v3.0.1v15.0.0→v16.0.0v4.7.0→v5.8.0v1.0.0→v2.1.0v1.3.10→v2.0.6v1.1.0→v2.0.3v0.5.0→v1.0.0v1.12.0→v2.1.1v1.5.1-0.20230307220236-3a3c6141e376→v2.0.2v0.1.6→v2.0.12v4.11.2→v5.0.0v8.11.0→v9.11.0v1.4.1→v2.1.3v5.3.1→v6.0.2v2.4.3→v3.0.4Release Notes
GaijinEntertainment/go-exhaustruct (dev.gaijin.team/go/exhaustruct/v4)
v5.0.1Compare Source
Two v5 API bugs traced to the same root cause:
NewAnalyzercaptured patterns into the processor before the analysis driver parsed flags, so flag-driven values never reached analysis, and theConfigfields had to be typed againstinternal/patternto be writable at all.Fixes
-enforce-rx,-ignore-rx,-optional-rx, and-allow-empty-rxhad no effect under the standalone CLI (#155). Processor construction now happens lazily on first analyzer run, after flags are populated. golangci-lint integrations were unaffected, since they populateConfigprogrammatically before callingNewAnalyzer.analyzer.Configno longer leaks the internalpattern.Listtype (#158). The four pattern fields (EnforcePatterns,IgnorePatterns,OptionalPatterns,AllowEmptyPatterns) are now plain[]string; pattern compilation has moved inside the analyzer. Library callers populating these fields directly drop thepattern.NewListcall:Upgrading
CLI users reinstall. Library callers update
Configfield assignments as shown above.v5.0.0Compare Source
exhaustructv5 reshapes how the linter is configured. Struct tags give way to comment directives, opt-in checking lands as a first-class mode, and patterns now reach down to individual fields. The full reference is in the README; this is the highlight reel.What's new
Comment directives replace struct tags. Three directives —
enforce,ignore,optional— now work at three levels of granularity: type definitions, struct literals, and individual fields. A documented priority order keeps the interaction between them predictable.Explicit mode (
-explicit) flips the default. Instead of checking every struct literal in the project, the linter only checks types you've explicitly marked — either with//exhaustruct:enforceor via-enforce-rx. The right pick for large codebases where exhaustruct should be a precision tool, not a blanket policy.Field-level regex patterns. The pattern flags now accept
Type#Fieldsyntax, so a single configuration line can express optionality across a codebase without touching the type definitions:Optional patterns (
-optional-rx). Regex-based optionality for whole types or specific fields. Closes a long-standing gap for third-party types you can't annotate directly.Derived types and aliases now follow a clearer rule. Field-level directives carry through
type T = Uandtype T U— so a field marked optional stays optional on every alias and derived type. Type-level directives stay attached to the original type, which means you can promote a derived type to "enforced" independently.Better diagnostics.
-report-full-type-pathreportsnet/http.Cookieinstead ofhttp.Cookie, removing ambiguity when import aliases are in play (#146).-debug-cache-metricsprints per-package cache statistics, useful for tuning patterns on large projects.Auto-migration.
exhaustruct -fix ./...rewrites the legacyexhaustruct:"optional"tags to comment directives in one pass — no manual sweep required.Breaking changes
exhaustruct:"optional"is no longer recognized. The-fixflag migrates existing tags automatically; the manual equivalent is a one-line move from the field's struct tag to a//exhaustruct:optionalcomment above (or beside) the field.include/excludevocabulary suggested filtering, but the linter has always been about enforcement. The new names say what they do:-include-rx/-i→-enforce-rx-exclude-rx/-e→-ignore-rx/v5. Update imports and reinstall:Fixes
&T{}returned where the function signature expects*T) are now flagged — previously they slipped past the checker (#147).types.Unaliasso their fields are inspected even behind an alias chain (#149).Migrating from v4
/v4to/v5.exhaustruct -fix ./...to rewrite struct tags to comment directives.-include-rx/-iwith-enforce-rx, and-exclude-rx/-ewith-ignore-rxin CI configs and.golangci.yaml.-explicitif you'd rather opt specific types into checking than opt the rest out.apparentlymart/go-textseg (github.com/apparentlymart/go-textseg/v15)
v16.0.0Compare Source
bombsimon/wsl (github.com/bombsimon/wsl/v4)
v5.8.0Compare Source
What's Changed
cuddle-max-statementsby @bombsimon in #258cuddle-groupcheck by @bombsimon in #257deferallows any expression with intersecting variables by @bombsimon in #260gocuddling same asdeferby @bombsimon in #261CheckErrtakes precedence over all other cuddling rules by @bombsimon in #263Full Changelog: bombsimon/wsl@v5.7.0...v5.8.0
v5.7.0Compare Source
This was a pre-mature release containing regressions and unfinished changes. This release was never included in
golangci-lintand will be replaced with v5.8.0What's Changed
branch-max-linesflag by @bombsimon in #237after-checks by @bombsimon in #253go/defernot inspecting anonymous function bodies by @bombsimon in #255New Contributors
Full Changelog: bombsimon/wsl@v5.6.0...v5.7.0
v5.6.0Compare Source
What's Changed
elseblocks by @bombsimon in #230Full Changelog: bombsimon/wsl@v5.5.0...v5.6.0
v5.5.0Compare Source
What's Changed
newline-after-blocktoafter-blockby @bombsimon in #228Full Changelog: bombsimon/wsl@v5.4.0...v5.5.0
v5.4.0Compare Source
NOTE⚠️
This release immediately got superseded by v5.5.0. The only reason being a fix of a bad name of the new check before widely spread. The check should be referred to as
after-blockwhich it is from v5.5.0 and onwards.What's Changed
newline-after-blockby @bombsimon in #221CommentMapby @bombsimon in #225ast.Inspectinstead ofcheckExprand manually calls by @bombsimon in #226New Contributors
Full Changelog: bombsimon/wsl@v5.3.0...v5.4.0
Thanks
newline-after-blockv5.3.0Compare Source
What's Changed
Full Changelog: bombsimon/wsl@v5.2.0...v5.3.0
v5.2.0Compare Source
What's Changed
KeyValueExprvalues by @bombsimon in #192New Contributors
Full Changelog: bombsimon/wsl@v5.1.1...v5.2.0
v5.1.1Compare Source
What's Changed
golangci-lintby @bombsimon in #185golangci-lint, update config by @bombsimon in #188Full Changelog: bombsimon/wsl@v5.1.0...v5.1.1
v5.1.0Compare Source
What's Changed
Full Changelog: bombsimon/wsl@v5.0.0...v5.1.0
v5.0.0Compare Source
What's Changed
wslv5 - a complete rewrite ✍️ by @bombsimon in #169lineForto get node line by @bombsimon in #176DeclStmtby @bombsimon in #175errby default by @bombsimon in #178errchecking, ensure working isolated by @bombsimon in #179appendcheck work isolated, update check type forappendby @bombsimon in #181Full Changelog: bombsimon/wsl@v4.7.0...v5.0.0
charmbracelet/bubbles (github.com/charmbracelet/bubbles)
v2.1.0Compare Source
Shrink ’n’ grow your textareas
The update adds a new feature to automatically resize your
textareavertically as its content changes.Piece of cake, right?
Enjoy! 💘
Changelog
New!
f1daacf: feat(textarea): dynamic height (#910) (@meowgorithm)Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v2.0.0Compare Source
Bubbles v2 is here! 🫧
We're thrilled to share Bubbles v2 with you! This release accompanies Bubble Tea v2 and Lip Gloss v2 and brings a ton of consistency, new features, and quality-of-life improvements across every component. Catch 'em all:
You can also check the Upgrade Guide for more info.
There are a lot of changes in here, but we've found upgrading pretty easy, especially with a linter. Read on for the full breakdown!
🏠 New Home
Bubbles v2 now lives at
charm.land:All sub-packages follow the same pattern:
charm.land/bubbles/v2/viewport,charm.land/bubbles/v2/list, etc.🎨 Light and Dark Styles
Some Bubbles, like
help, offer default styles for both light and dark backgrounds. Since Lip Gloss v2 removesAdaptiveColor, choosing light or dark is now a manual process. You've got a couple of options.🎩 The Best Way
Have Bubble Tea query the background color for you. This properly queries the correct inputs and outputs, and happens in lockstep with your application:
If you're using Wish you must do it this way to get the background color of the client.
🤠 The Quick Way
Use the
compatpackage in Lip Gloss. It's less recommended because it contains blocking I/O that operates independently of Bubble Tea, and when used with Wish it won't detect the client's background:👀 Or Just Pick One
This pattern applies to
help,list,textarea, andtextinput.🔑 The Init You Know and Love is Back
After experimenting with a few different forms of
Initduring the alphas, we decided the v1 signature was the right call after all.Initwas a bit too redundant for our tastes given that initialization already happens inNew:✨ The Big Highlights
Getters and Setters Everywhere
All components now use getter/setter methods instead of exported
WidthandHeightfields. This lets us do internal bookkeeping when things change, and it makes the API consistent across every Bubble:Affected:
filepicker,help,progress,table,textinput,viewport.Functional Options
Constructors now use the functional options pattern instead of positional args or separate constructor functions:
DefaultKeyMap is a Function Now
All
DefaultKeyMappackage-level variables are now functions, so you get fresh values every time:Real Cursor Support 🖱️
Both
textareaandtextinputnow support real terminal cursors! The feature is opt-in, so by default your programs will continue to use the easy-breezy virtual cursor. SetVirtualCursortofalseand useModel.Cursor()for the real deal. Check out the textarea and textinput examples to see it in action.Cleaned House 🧹
All previously deprecated symbols have been removed:
NewModelvariants — just useNewspinner.Tick()— useModel.Tick()insteadpaginator.UsePgUpPgDownKeysand friends — customizeKeyMapdirectlyfilepicker.DefaultStylesWithRenderer()— Lip Gloss is pure now, useDefaultStyles()viewport.HighPerformanceRendering— no longer neededruneutilandmemoizationpackages moved tointernal/(they were never meant for public use anyway)What's Changed: the Laundry List
🔮 Cursor
Model.Blinkrenamed toModel.IsBlinkedfor clarityModel.BlinkCmd()renamed toModel.Blink()📂 Filepicker
DefaultStylesWithRenderer()removed — Lip Gloss is pure now, so just useDefaultStyles()Model.Heightbroken intoSetHeight(int)/Height() int❓ Help
Model.Widthbroken intoSetWidth(int)/Width() intDefaultStyles(isDark bool),DefaultDarkStyles(), andDefaultLightStyles()🥕 List
DefaultStyles()andNewDefaultItemStyles()now take anisDark boolparameterStyles.FilterPromptandStyles.FilterCursorhave been consolidated intoStyles.Filter(atextinput.Styles)GlobalIndexhelper added📄 Paginator
DefaultKeyMapvariable →DefaultKeyMap()functionUsePgUpPgDownKeys,UseLeftRightKeys, etc.) removed — customizeKeyMapdirectly🌈 Progress
This one got the biggest makeover!
WithGradient/WithScaledGradient→WithColors(...color.Color)— pass 2+ colors for blendingWithSolidFill(string)→WithColors(color)— pass a single color for a solid fillWithDefaultGradient()→WithDefaultBlend()WithScaled(bool)to scale the blend to fit only the filled portionWithColorFunc(func(total, current float64) color.Color)for fully dynamic coloringWithColorProfileremoved — Bubble Tea handles this automatically nowModel.FullColorandModel.EmptyColorchanged fromstringtoimage/color.ColorModel.Widthbroken intoSetWidth(int)/Width() intModel.Updatenow returnsModelinstead oftea.Model🌀 Spinner
Tick()package-level function removed — useModel.Tick()instead⏱️ Stopwatch
NewWithInterval(d)removed — useNew(WithInterval(d))instead🔢 Table
Model.Width/Model.Heightreplaced with getter/setter methodsansi.Truncateinstead ofrunewidth.Truncate✏️ Textarea
The big change here is real cursor support — but that's opt-in, so by default your programs will keep using the virtual cursor.
DefaultKeyMapvariable →DefaultKeyMap()functionPageUp/PageDownkey bindingsModel.FocusedStyle/Model.BlurredStyle→Model.Styles.Focused/Model.Styles.BlurredStyletype renamed toStyleState; newStylesstruct groupsFocused,Blurred, andCursorModel.SetCursorrenamed toModel.SetCursorColumnModel.Cursoris nowfunc() *tea.Cursorfor real cursor supportModel.VirtualCursorbool added — set tofalsewhen using a real cursorDefaultStyles(isDark bool),DefaultDarkStyles(),DefaultLightStyles()Column(),ScrollYOffset(),ScrollPosition(),MoveToBeginning(),MoveToEnd()SetPromptFunc📜 Textinput
Most of the changes here bring
textinputto parity withtextarea, including real cursor support. Styling has been consolidated into aStylesstruct withFocusedandBlurredstates:DefaultKeyMapvariable →DefaultKeyMap()functionModel.Widthbroken intoSetWidth(int)/Width() intModel.PromptStyle→StyleState.PromptModel.TextStyle→StyleState.TextModel.PlaceholderStyle→StyleState.PlaceholderModel.CompletionStyle→StyleState.SuggestionModel.Cursoris nowfunc() *tea.Cursorfor real cursor supportModel.VirtualCursor()/SetVirtualCursor(bool)addedModel.Styles()/SetStyles(Styles)addedDefaultStyles(isDark bool),DefaultDarkStyles(),DefaultLightStyles()⏲️ Timer
NewWithInterval(timeout, interval)removed — useNew(timeout, WithInterval(interval))📦 Viewport
viewportgot a ton of love in v2. Let's dive in!Breaking changes:
New(width, height int)→New(...Option)withWithWidth/WithHeightModel.Width,Model.Height,Model.YOffsetreplaced with getter/setter methodsHighPerformanceRenderingremovedShiny new features:
You can now scroll horizontally with the left and right arrow keys, and set up a custom gutter column for things like line numbers:
Highlight parts of what's being viewed with regex:
Let viewport handle soft wrapping for you:
Or, if you need fine control, use
SetContentLineswith "virtual lines" containing\n— they're treated as soft wraps automatically.Also new:
GetContent()to retrieve contentFillHeightto pad the viewport with empty linesStyleLineFuncfor per-line stylingHighlightStyleandSelectedHighlightStylefor highlight appearanceChangelog
Fixed
ansi.Truncateinstead ofrunewidth.Truncate(#884) (@jedevc)Docs
Other stuff
💝 That's a wrap!
Feel free to reach out, ask questions, give feedback, and let us know how it's going. We'd love to know what you think.
Part of Charm.
Charm热爱开源 • Charm loves open source • نحنُ نحب المصادر المفتوحة
charmbracelet/bubbletea (github.com/charmbracelet/bubbletea)
v2.0.6Compare Source
This release fixes an issue with how Bubble Tea handled wide characters. Before, a wide character might be skipped or cause an infinite loop causing the CPU to spike. See
fdcd0cfand charmbracelet/ultraviolet#109 for more details.Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v2.0.5Compare Source
Changelog
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v2.0.4Compare Source
Changelog
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v2.0.3Compare Source
Extra Extra Extended Keyboard Enhancements!
This release adds support for the full set of Keyboard Enhancements. Now you can enable any enhancements on top of the default disambiguate one.
Smarter Renderer
We also fixed a few renderer related bugs and made the Cursed Renderer smarter. Now, we always reset the terminal tab stops for the Bubble Tea program process context. People using
tabs -Nin their shell profiles shouldn't be affected.See the full changelog below.
Changelog
New!
05df5ae: feat: support extended keyboard enhancements (#1626) (@aymanbagabas)Fixed
a3d7807: fix(ci): only run build-examples on non-dependabot PRs (@aymanbagabas)7df1e65: fix(examples): migrate imports to charm.land for the glamour example (#1642) (@mhdna)ee06e98: fix(examples): resolve nil pointer dereference (#1663) (@mattpcaswell)ac355fe: fix(renderer): restore tab stops if hard tabs are enabled (#1677) (@aymanbagabas)729f05c: fix: add missing signal.Stop in suspendProcess to prevent signal channel leak (Closes #1673) (#1674) (@kuishou68)Docs
bbe4faf: docs(example): add textarea dynamic height example (#1639) (@meowgorithm)e19d255: docs: fix README wording (#1624) (@Rohan5commit)Other stuff
65c3978: ci: sync golangci-lint config (#1556) (@github-actions[bot])Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v2.0.2Compare Source
This release contains a small patch fixing a rendering that might affect Wish users running on Unix platforms.
Changelog
Fixed
f25595a: fix(renderer): use mapNl optimization when not on Windows and no PTY input (#1615) (@aymanbagabas)Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v2.0.1Compare Source
A small patch release to fix opening the proper default stdin file for input.
Changelog
Fixed
110a919: fix(examples): add missingWithWidthto table example (#1598) (@shv-ng)66b7abd: fix: check if os.Stdin is a terminal before opening the TTY (@aymanbagabas)Docs
c751374: docs: correct whats new link (@aymanbagabas)736fba2: docs: upgrade guide: correct badge url (@aymanbagabas)Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.
v2.0.0Compare Source
What's New in Bubble Tea v2
We're very excited to announce the second major release of Bubble Tea!
If you (or your LLM) are just looking for technical details on on migrating from v1, please check out the Upgrade Guide.
❤️ Charm Land Import Path
We've updated our import paths to use vanity domains and use our domain to import Go packages.
Everything else stays the same 🙂
👾 The Cursed Renderer
Bubble Tea v2 ships with the all-new Cursed Renderer which was built from the ground up. It's based on the ncurses rendering algorithm and is highly optimized for speed, efficiency, and accuracy and is built on an enormous amount of research and development.
Optimized renders also means that Wish users get big performance benefits and lower bandwidth usage by orders of magnitude.
To take advantage of the new Cursed Renderer you don't need to do anything at all except keep on using the Bubble Tea you know and love.
✌️ Key handling is way better now
Newer terminals can now take advantage of all sorts keyboard input via progressive keyboard enhancements. You can now map all sorts of keys and modifiers like shift+enter and super+space. You can also detect key releases (we're looking at you, game developers).
It's easy to detect support for supporting terminals and add fallbacks for those that don't. For details, see keyboard enhancements below.
🥊 No more fighting
In the past, Bubble Tea and Lip Gloss would often fight over i/o. Bubble Tea wanted to read keyboard input and Lip Gloss wanted to query for the background color. This means that things could get messy. Not anymore! In v2, Lip Gloss is now pure, which means, Bubble Tea manages i/o and gives orders to Lip Gloss. In short, we only need one lib to call the shots, and in the context of this relationship, that lib is Bubble Tea.
But what about color downsampling? That's a great question.
👨🏻🎨 Built-in Color Downsampling
We sneakily released a little library called colorprofile that will detect the terminal's color profile and auto-downsample any ANSI styling that flows through it to the best available color profile. This means that color will "just work" (and not misbehave) no matter where the ANSI styling comes from.
Downsampling is built-into Bubble Tea and is automatically enabled.
🧘 Declarative, Not Imperative
This is a big one. In v1, you'd toggle terminal features on and off with commands like
tea.EnterAltScreen,tea.EnableMouseCellMotion,tea.EnableReportFocus, and so on. In v2, all of that is gone and replaced by fields on theViewstruct. You just declare what you want your view to look like and Bubble Tea takes care of the rest.This means no more fighting over startup options and commands. Just set the fields and forget about it. For example, to enter full screen mode:
The same goes for mouse mode, bracketed paste, focus reporting, window title, keyboard enhancements, and more. See A Declarative View below for the full picture.
Keyboard Enhancements
Progressive keyboard enhancements allow you to receive key events not normally possible in traditional terminals. For example, you can now listen for the ctrl+m key, as well as previously unavailable key combinations like shift+enter.
Bubble Tea v2 will always try to enable ba
Configuration
📅 Schedule: (UTC)
* 0-3 * * 1)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.