Skip to content

Commit 6984550

Browse files
committed
Changelog
1 parent 0541774 commit 6984550

4 files changed

Lines changed: 73 additions & 10 deletions

File tree

RELEASE-CHECKLIST.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# Release checklist
2-
1. Make sure the Update Settings Documentation action finishes and merge the PR.
3-
2. Make sure the Copilot Documentation Check action finishes and merge the PR.
4-
3. Make sure the CI action finishes successfully.
5-
4. Make sure the Generate Demos action finishes successfully.
6-
5. Update Cargo.toml to new version. Build locally so Cargo.lock updates.
7-
6. Tag the commit.
8-
7. Push all so the tag and commit are on the remote master.
9-
8. Wait for all actions to have finished.
10-
9. Once the release action has finished, the new release will be marked as pre-release. Manually change it from pre-release to release.
11-
10. If it fails, delete the tag, fix the problem, retag and repeat.
2+
- Make sure the Update Settings Documentation action finishes and merge the PR.
3+
- Make sure the CI action finishes successfully.
4+
- Make sure the Generate Demos action finishes successfully.
5+
- Generate changelog and embed it into the binary.
6+
- Update Cargo.toml to new version. Build locally so Cargo.lock updates.
7+
- Tag the commit.
8+
- Push all so the tag and commit are on the remote master.
9+
- Wait for all actions to have finished.
10+
- Once the release action has finished, the new release will be marked as pre-release. Manually change it from pre-release to release.
11+
- If it fails, delete the tag, fix the problem, retag and repeat.

src/changelog.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
pub(crate) const CHANGELOG: &str = r#"# Changelog
2+
3+
## v1.2.1
4+
- **Declarative Mouse Actions**: Re-architected mouse event processing into a declarative, context-aware routing system.
5+
- **Tab Completion Latency**: Reduced visual flashing during tab completion redraws and optimized filtering latency for large lists.
6+
- **Offline Installer**: Updated `install.sh` to bypass GitHub API rate limits by resolving release redirect headers.
7+
- **Wider Platform Support**: Added release builds for FreeBSD, ARMv7, 32-bit x86, RISC-V 64, and PowerPC 64 LE.
8+
- **OSC 52 Paste**: Replaced custom OSC 52 querying with crossterm's native RequestClipboardContents.
9+
10+
## v1.2.0
11+
- **Transient Prompts**: Added support for transient prompts, reducing terminal noise by condensing past prompts upon execution.
12+
- **History Management**: Introduced separate history managers for cancelled commands and agent prompts.
13+
- **Non-blocking Completion**: Improved tab-completion responsiveness by spawning completion generation in a dedicated process.
14+
- **Scroll & Right-Click UX**: Enhanced right-click context menu and continuous proportional scrollbar dragging.
15+
16+
## v1.1.0
17+
- **Fuzzy Sorting**: Introduced suggestion sorting algorithms (mtime, alphabetical) and CLI configuration options.
18+
- **Improved Parsing**: Enhanced flycomp parsing for cargo, git --help, and flag values ending in `=`.
19+
- **Fuzzy Matching**: Tightened fuzzy suggestion matching and fixed scrollbar positions.
20+
21+
## v1.0.0
22+
- **Stable Line Editor**: First major release of the Rust-based GNU readline replacement builtin for Bash.
23+
- **Mouse Selection**: Support for cursor placement and visual drag-selections using mouse.
24+
- **Auto-Closing pairs**: Automatic insertion of closing quotes, brackets, and parentheses.
25+
- **Interactive Tutorial**: Added an in-terminal tutorial to guide users through keyboard and mouse controls.
26+
"#;

src/cli.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -545,6 +545,12 @@ enum Commands {
545545
#[command(subcommand)]
546546
subcommand: PerfSubcommands,
547547
},
548+
/// Display the changelog of user-facing changes.
549+
///
550+
/// Examples:
551+
/// flyline changelog
552+
#[command(name = "changelog", verbatim_doc_comment)]
553+
Changelog,
548554
}
549555

550556
#[derive(Subcommand, Debug)]
@@ -1414,6 +1420,36 @@ impl Flyline {
14141420
crate::perf::dump_to_stdout();
14151421
}
14161422
},
1423+
Some(Commands::Changelog) => {
1424+
let content = crate::changelog::CHANGELOG;
1425+
let pager = std::env::var("PAGER").unwrap_or_else(|_| "less".to_string());
1426+
let mut parts = pager.split_whitespace();
1427+
if let Some(bin) = parts.next() {
1428+
let args: Vec<&str> = parts.collect();
1429+
let mut cmd = std::process::Command::new(bin);
1430+
cmd.args(&args);
1431+
if bin == "less" && args.is_empty() {
1432+
cmd.args(["-R", "-F", "-X"]);
1433+
}
1434+
cmd.stdin(std::process::Stdio::piped());
1435+
match cmd.spawn() {
1436+
Ok(mut child_proc) => {
1437+
if let Some(mut stdin) = child_proc.stdin.take() {
1438+
use std::io::Write;
1439+
if stdin.write_all(content.as_bytes()).is_ok() {
1440+
drop(stdin); // close stdin to signal EOF to the pager
1441+
let _ = child_proc.wait();
1442+
}
1443+
}
1444+
}
1445+
Err(_) => {
1446+
println!("{}", content);
1447+
}
1448+
}
1449+
} else {
1450+
println!("{}", content);
1451+
}
1452+
}
14171453
}
14181454

14191455
bash_symbols::BuiltinExitCode::ExecutionSuccess as c_int

src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ mod agent_mode;
1313
mod app;
1414
mod bash_funcs;
1515
mod bash_symbols;
16+
mod changelog;
1617
mod cli;
1718
mod command_acceptance;
1819
mod content_builder;

0 commit comments

Comments
 (0)