Skip to content

Commit 92f1e47

Browse files
committed
chore: prepare for v1.1.0 release
- Update version to 1.1.0 in Cargo.toml - Update CHANGELOG.md with v1.1.0 release date - Update version references in documentation (README.md, ARCHITECTURE.md, src/lens/README.md)
1 parent 419f3e9 commit 92f1e47

File tree

6 files changed

+49
-49
lines changed

6 files changed

+49
-49
lines changed

ARCHITECTURE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ Use when building applications that need:
354354
- Table formatting with tabled
355355

356356
```toml
357-
monocle = { version = "1.0", default-features = false, features = ["lib"] }
357+
monocle = { version = "1.1", default-features = false, features = ["lib"] }
358358
```
359359

360360
```rust
@@ -374,7 +374,7 @@ Use when building applications that need:
374374
- WebSocket server for remote API access
375375

376376
```toml
377-
monocle = { version = "1.0", default-features = false, features = ["server"] }
377+
monocle = { version = "1.1", default-features = false, features = ["server"] }
378378
```
379379

380380
```rust
@@ -390,13 +390,13 @@ start_server("127.0.0.1:3000").await?;
390390
The full CLI binary with all features, WebSocket server, and terminal UI:
391391

392392
```toml
393-
monocle = "1.0"
393+
monocle = "1.1"
394394
```
395395

396396
Or explicitly:
397397

398398
```toml
399-
monocle = { version = "1.0", features = ["cli"] }
399+
monocle = { version = "1.1", features = ["cli"] }
400400
```
401401

402402
### Valid Feature Combinations

CHANGELOG.md

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,35 @@ All notable changes to this project will be documented in this file.
44

55
## Unreleased changes
66

7+
## v1.1.0 - 2025-02-10
8+
79
### Breaking Changes
810

11+
* **Simplified feature flags**: Replaced 6-tier feature system with 3 clear features
12+
* Old: `database`, `lens-core`, `lens-bgpkit`, `lens-full`, `display`, `cli`
13+
* New: `lib`, `server`, `cli`
14+
* Quick guide:
15+
- Need CLI binary? Use `cli` (includes everything)
16+
- Need WebSocket server without CLI? Use `server` (includes lib)
17+
- Need only library/data access? Use `lib` (database + all lenses + display)
18+
* Display (tabled) now always included with `lib` feature
19+
920
* **CLI flag renamed**: `--no-refresh` renamed to `--no-update` for consistency with "update" terminology
1021
* Old: `monocle --no-refresh <command>`
1122
* New: `monocle --no-update <command>`
12-
23+
1324
* **Config subcommands renamed**: Removed `db-` prefix from config subcommands for cleaner syntax
1425
* `monocle config db-refresh``monocle config update`
1526
* `monocle config db-backup``monocle config backup`
1627
* `monocle config db-sources``monocle config sources`
17-
28+
1829
* **Configurable TTL for all data sources**: All data sources now have configurable cache TTL with 7-day default
1930
* Added `asinfo_cache_ttl_secs` config option (default: 7 days)
2031
* Added `as2rel_cache_ttl_secs` config option (default: 7 days)
2132
* Changed `rpki_cache_ttl_secs` default from 1 hour to 7 days
2233
* Changed `pfx2as_cache_ttl_secs` default from 24 hours to 7 days
2334
* Configure via `~/.monocle/monocle.toml` or environment variables (`MONOCLE_ASINFO_CACHE_TTL_SECS`, etc.)
2435

25-
* **Simplified feature flags**: Replaced 6-tier feature system with 3 clear features
26-
* Old: `database`, `lens-core`, `lens-bgpkit`, `lens-full`, `display`, `cli`
27-
* New: `lib`, `server`, `cli`
28-
* Quick guide:
29-
- Need CLI binary? Use `cli` (includes everything)
30-
- Need WebSocket server without CLI? Use `server` (includes lib)
31-
- Need only library/data access? Use `lib` (database + all lenses + display)
32-
* Display (tabled) now always included with `lib` feature
33-
3436
* **Standardized database refresh API**: Consistent interface for all data sources
3537
* New `RefreshResult` struct with `records_loaded`, `source`, `timestamp`, `details`
3638
* Renamed methods for consistency:
@@ -50,26 +52,6 @@ All notable changes to this project will be documented in this file.
5052
* Removed verbose multi-example files
5153
* All examples use `lib` feature exclusively
5254

53-
### New Features
54-
55-
* **`monocle config sources`**: Shows staleness status based on TTL for all data sources
56-
* "Stale" column shows whether each source needs updating based on its configured TTL
57-
* Configuration section shows current TTL values for all sources
58-
59-
### Bug Fixes
60-
61-
* Avoid creating a new SQLite database when `monocle config sources` inspects staleness
62-
63-
### Code Improvements
64-
65-
* **Data refresh logging**: CLI now shows specific reason for data refresh ("data is empty" vs "data is outdated") instead of generic "empty or outdated" message
66-
* **AS name display**: ASN names are now displayed using a preferred source hierarchy:
67-
* Priority order: PeeringDB `aka` → PeeringDB `name_long` → PeeringDB `name` → AS2Org `org_name` → AS2Org `name` → Core `name`
68-
* This provides more recognizable, commonly-used AS names from PeeringDB when available
69-
* Affects all commands that display AS names: `inspect`, `as2rel`, `rpki`, `pfx2as`
70-
71-
### Breaking Changes
72-
7355
* **ParseFilters**: Changed filter field types to support multiple values with OR logic
7456
* `origin_asn`: `Option<u32>``Vec<String>`
7557
* `prefix`: `Option<String>``Vec<String>`
@@ -89,11 +71,12 @@ All notable changes to this project will be documented in this file.
8971
rpki_rtr_no_fallback = false
9072
```
9173
* Or use environment variables: `MONOCLE_RPKI_RTR_HOST`, `MONOCLE_RPKI_RTR_PORT`, `MONOCLE_RPKI_RTR_TIMEOUT_SECS`, `MONOCLE_RPKI_RTR_NO_FALLBACK`
92-
* Or use CLI flag for one-time override: `monocle config db-refresh --rpki --rtr-endpoint rtr.rpki.cloudflare.com:8282`
74+
* Or use CLI flag for one-time override: `monocle config update --rpki --rtr-endpoint rtr.rpki.cloudflare.com:8282`
9375
* ROAs are fetched via RTR, ASPAs always from Cloudflare (RTR v1 per RFC 8210 doesn't support ASPA)
9476
* Automatic fallback to Cloudflare if RTR connection fails, with warning message (set `rpki_rtr_no_fallback = true` to disable fallback and error out instead)
9577
* Connection timeout defaults to 10 seconds
9678
* Supports RTR protocol version negotiation (v1 with v0 fallback)
79+
9780
* **`--cache-dir`**: Added local caching support to the `search` command
9881
* Download MRT files to a local directory before parsing
9982
* Files are cached as `{cache-dir}/{collector}/{path}` (e.g., `cache/rrc00/2024.01/updates.20240101.0000.gz`)
@@ -106,15 +89,19 @@ All notable changes to this project will be documented in this file.
10689
* Subsequent identical queries use cached results, enabling offline operation
10790
* Tested: run search once, disable network, run same search again - results returned from cache
10891
* Example: `monocle search -t 2024-01-01 -d 1h --cache-dir /tmp/mrt-cache`
92+
10993
* **Multi-value filters**: `parse` and `search` commands now support filtering by multiple values with OR logic
11094
* Example: `-o 13335,15169,8075` matches elements from ANY of the specified origin ASNs
11195
* Example: `-p 1.1.1.0/24,8.8.8.0/24` matches ANY of the specified prefixes
11296
* Example: `-J 174,2914` matches elements from ANY of the specified peer ASNs
97+
11398
* **Negative filters**: Support for exclusion filters using `!` prefix
11499
* Example: `-o '!13335'` excludes elements from AS13335
115100
* Example: `-o '!13335,!15169'` excludes elements from AS13335 AND AS15169
116101
* Note: Cannot mix positive and negative values in the same filter
102+
117103
* Added validation for ASN format, prefix CIDR notation, and negation consistency
104+
118105
* **`--time-format`**: Added timestamp output format option to `parse` and `search` commands
119106
* `--time-format unix` (default): Output timestamps as Unix epoch (integer/float)
120107
* `--time-format rfc3339`: Output timestamps in ISO 8601/RFC3339 format (e.g., `2023-10-11T17:00:00+00:00`)
@@ -123,13 +110,6 @@ All notable changes to this project will be documented in this file.
123110
* Example: `monocle parse file.mrt --time-format rfc3339`
124111
* Example: `monocle search -t 2024-01-01 -d 1h -p 1.1.1.0/24 --time-format rfc3339`
125112

126-
### Code Improvements
127-
128-
* **Feature gate cleanup**: Simplified feature gating for the `database` module
129-
* The entire `database` module is now gated at `lib.rs` level with `#[cfg(feature = "database")]`
130-
* Removed redundant feature gates from internal submodules
131-
* Added detailed feature documentation to `ARCHITECTURE.md` with use case scenarios
132-
133113
* Added `--fields` (`-f`) option to `parse` and `search` commands for selecting output fields ([#99](https://github.com/bgpkit/monocle/issues/99), [#101](https://github.com/bgpkit/monocle/pull/101))
134114
* Choose which columns to display with comma-separated field names
135115
* Available fields: `type`, `timestamp`, `peer_ip`, `peer_asn`, `prefix`, `as_path`, `origin`, `next_hop`, `local_pref`, `med`, `communities`, `atomic`, `aggr_asn`, `aggr_ip`, `collector`
@@ -148,6 +128,26 @@ All notable changes to this project will be documented in this file.
148128
* Example: `monocle parse file.mrt --order-by timestamp --order asc`
149129
* Example: `monocle search -t 2024-01-01 -d 1h -p 1.1.1.0/24 --order-by timestamp --order desc`
150130

131+
* **`monocle config sources`**: Shows staleness status based on TTL for all data sources
132+
* "Stale" column shows whether each source needs updating based on its configured TTL
133+
* Configuration section shows current TTL values for all sources
134+
135+
### Bug Fixes
136+
137+
* Avoid creating a new SQLite database when `monocle config sources` inspects staleness
138+
139+
### Code Improvements
140+
141+
* **Data refresh logging**: CLI now shows specific reason for data refresh ("data is empty" vs "data is outdated") instead of generic "empty or outdated" message
142+
* **AS name display**: ASN names are now displayed using a preferred source hierarchy:
143+
* Priority order: PeeringDB `aka` → PeeringDB `name_long` → PeeringDB `name` → AS2Org `org_name` → AS2Org `name` → Core `name`
144+
* This provides more recognizable, commonly-used AS names from PeeringDB when available
145+
* Affects all commands that display AS names: `inspect`, `as2rel`, `rpki`, `pfx2as`
146+
* **Feature gate cleanup**: Simplified feature gating for the `database` module
147+
* The entire `database` module is now gated at `lib.rs` level with `#[cfg(feature = "lib")]`
148+
* Removed redundant feature gates from internal submodules
149+
* Added detailed feature documentation to `ARCHITECTURE.md` with use case scenarios
150+
151151
## v1.0.2 - 2025-12-18
152152

153153
### New Features

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "monocle"
3-
version = "1.0.2"
3+
version = "1.1.0"
44
authors = ["Mingwei Zhang <mingwei@bgpkit.com>"]
55
edition = "2021"
66
readme = "README.md"

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,13 @@ Monocle can also be used as a library in your Rust projects. Add it to your `Car
100100
```toml
101101
[dependencies]
102102
# Default: full CLI binary with all features
103-
monocle = "1.0"
103+
monocle = "1.1"
104104

105105
# Library only - all lenses and database operations
106-
monocle = { version = "1.0", default-features = false, features = ["lib"] }
106+
monocle = { version = "1.1", default-features = false, features = ["lib"] }
107107

108108
# Library + WebSocket server
109-
monocle = { version = "1.0", default-features = false, features = ["server"] }
109+
monocle = { version = "1.1", default-features = false, features = ["server"] }
110110
```
111111

112112
### Feature Tiers

src/lens/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ All lenses are available with the `lib` feature, which is the default for librar
5353

5454
```toml
5555
# Library usage (all lenses + database)
56-
monocle = { version = "1.0", default-features = false, features = ["lib"] }
56+
monocle = { version = "1.1", default-features = false, features = ["lib"] }
5757
```
5858

5959
The `lib` feature includes:

0 commit comments

Comments
 (0)