Skip to content

Commit f6601b3

Browse files
committed
Prepare for release
1 parent db1fb6f commit f6601b3

File tree

8 files changed

+143
-11
lines changed

8 files changed

+143
-11
lines changed

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Change Log
2+
3+
## mapiproxy NEXTVERSION - YYYY-MM-DD
4+
5+
First public release.
6+
7+
- This version can be used to connect to MonetDB and execute queries.
8+
The API is subject to change.
9+
10+
- There are typed getters for boolean and the various integer types.
11+
Other types, including decimals and temporal types, must be retrieved
12+
as strings and converted manually.
13+
14+
- Understands the full MonetDB URL syntax, though not all features have been
15+
implemented.
16+
17+
- There is a demo program and a number of unit tests but this release has
18+
not seen much testing.
19+
20+
- Has been tested mostly with MonetDB versions Aug2024 (11.51.3) and
21+
Jun2020 (11.37.13) but older versions are believed to work fine.
22+
23+
- Works with Rust 1.80.0, the exact minimum supported Rust version yet to be
24+
decided.
25+
26+
- Extremely basic and untested TLS support can optionally be compiled in
27+
be enabling the `rustls` Cargo feature.

Cargo.toml

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
[package]
22
name = "monetdb"
3-
version = "0.1.1"
4-
edition = "2021"
3+
version = "0.2.0-alpha.1"
4+
description = "Client library for MonetDB, a high performance SQL database for analytics"
5+
authors = [ "Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>" ]
6+
keywords = [ "monetdb", "database", "sql" ]
7+
categories = [ "database" ]
58
license = "MPL-2.0"
69

10+
edition = "2021"
11+
12+
readme = "README.md"
13+
homepage = "https://github.com/MonetDB/monetdb-rust"
14+
repository = "https://github.com/MonetDB/monetdb-rust"
15+
716
[lib]
817
# doctest = false
918

@@ -25,12 +34,12 @@ ripemd = "0.1.3"
2534
rustls = { version="0.23.13", optional = true }
2635
rustls-platform-verifier = { version="0.3.4", optional = true }
2736
sha2 = "0.10.8"
28-
thiserror = "1.0.63"
37+
thiserror = "1.0.64"
2938
time = { version="0.3.36", features = [ "alloc", "std", "local-offset" ] }
3039
url = "2.5.2"
3140

3241
[dev-dependencies]
33-
anyhow = "1.0.88"
42+
anyhow = "1.0.89"
3443
bstr = "1.10.0"
3544
itertools = "0.13.0"
3645
simplelog = "0.12.2"

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ fn main() -> Result<(), Box<dyn Error>> {
3636
// host=Some("totoro") clientpid=Some(1914127) client=Some("monetdb-rust 0.1.1") remark=None
3737
```
3838

39-
You can also use a [`Parameters`] object to fine tune the connection parameters:
39+
You can also use a `Parameters` object to fine tune the connection parameters:
4040

4141
```rust
4242
# use std::error::Error;
@@ -55,7 +55,7 @@ Current status
5555
* Support for MonetDB Jun2020 (11.37.7) and higher. Older versions are highly
5656
likely to work but haven't been tested. If you need this, just ask.
5757

58-
* Rust 1.81 and higher. (TODO: check this)
58+
* Rust 1.80 and higher, older versions have not yet been tested.
5959

6060
* The full `monetdb://` connection URL syntax is supported, though not all features have been implemented.
6161

checklicense.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ def find_files_to_check():
2121
('checklicense.py', ''),
2222
('.gitignore', ''),
2323
('Cargo.toml', ''),
24+
('release.toml', ''),
2425
('LICENSE', ''),
2526
('TODO.org', ''),
2627
]

notes/202410-how-to-release.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
How to release a new version of monetdb-rust
2+
============================================
3+
4+
To prepare for the release, first make sure [CHANGELOG.md] contains all relevant
5+
changes, the documentation is tidy, CI is clean, etc. etc. Script
6+
`checklicense.py` can be used to check if all files contain a copyright notice.
7+
8+
Note: there is no need to add a new section header to [CHANGELOG.md], the
9+
scripts will do that.
10+
11+
Then use [cargo release] to create a new section in in [CHANGELOG.md], bump the
12+
version number in Cargo.toml, create a Git tag, publish the crate on [crates.io]
13+
and push the tag to GitHub. This can be done with a single command, e.g.,
14+
`cargo release minor`, but you can also let it perform the steps separately. See
15+
Section [Steps](#steps) below.
16+
17+
Note: until we are a bit more experienced, the automated 'publish' and 'push' steps have been disabled and must be performed manually.
18+
19+
When this is done, use `cargo release alpha` to switch the main branch back to a
20+
development version number. For example, after releasing version 0.7.10, `cargo
21+
release alpha` bumps to version 0.7.11-alpha.1. Push this commit to GitHub too,
22+
but do not tag it.
23+
24+
Also, you need to manually create a GitHub release from the tag,
25+
with text copy-pasted from [CHANGELOG.md].
26+
I don't think [cargo release] can automate that.
27+
28+
29+
Steps
30+
-----
31+
32+
The configuration file for [cargo release] is [release.toml].
33+
When in doubt, check the [documentation][cargo release docs].
34+
35+
When you run for example `cargo release minor`, [cargo release] will perform all
36+
steps below. The command to run individual steps is noted in the stepTo execute
37+
individual steps, write `cargo release version <version>`, `cargo release
38+
replace`, etc. You can also perform these actions by hand if that feels safer.
39+
40+
1. `cargo release version <major|minor|patch|alpha>`. Bumps the version number in
41+
Cargo.toml.
42+
43+
2. `cargo release replace`. Adds a section for this version to [CHANGELOG.md], containing
44+
the items that used to be in section "NEXTVERSION".
45+
46+
3. `cargo release hook`. Runs the pre-release hooks configured in [release.toml].
47+
At the time of writing, this checks the copyright messages.
48+
49+
4. `cargo release commit`. Commits the changed version number and the updated
50+
CHANGELOG.md. The commit message is configured in [release.toml].
51+
52+
5. `cargo release publish`. Currently disabled in [release.toml], runs `cargo
53+
publish`. Before running this, set env var `CARGO_REGISTRY_TOKEN`
54+
to a token obtained from `cargo login` or https://crates.io/me.
55+
56+
6. `cargo release tag`. Creates a tag `vMAJOR.MINOR.PATCH`.
57+
58+
7. `cargo release push`. Pushes the commits to GitHub. Currently disabled in
59+
[release.toml].
60+
61+
62+
[cargo release]: https://github.com/crate-ci/cargo-release
63+
[cargo release docs]: https://github.com/crate-ci/cargo-release/blob/master/docs/reference.md
64+
[CHANGELOG.md]: ../CHANGELOG.md
65+
[crates.io]: https://crates.io
66+
[release.toml]: ../release.toml

notes/README.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,20 @@ Design notes
44
Having a coherent and up to date design document is a bit too much at this point
55
but it's a good idea to keep some notes.
66

7-
1. [getting-started](./202409-001-getting-started.md)
7+
Favorites
8+
---------
89

9-
2. [name-notes](./202409-naming.md)
10+
*. [how to release](./202410-how-to-release.md)
1011

11-
3. [license](./202410-license.md)
12+
In chronological order
13+
----------------------
1214

13-
4. [status](./202410-status.md)
15+
*. [getting-started](./202409-001-getting-started.md)
16+
17+
*. [name-notes](./202409-naming.md)
18+
19+
*. [license](./202410-license.md)
20+
21+
*. [status](./202410-status.md)
22+
23+
*. [how to release](./202410-how-to-release.md)

release.toml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Config for the 'cargo release' command.
2+
# This can be installed with `cargo install cargo-release`.
3+
# Documentation: https://github.com/crate-ci/cargo-release/blob/master/docs/reference.md
4+
5+
# for the time being we push and publish manually
6+
push = false
7+
publish = false
8+
9+
pre-release-hook = [ "./checklicense.py", "--check" ]
10+
pre-release-commit-message = "Release {{crate_name}} version {{version}}"
11+
tag = true
12+
tag-message = "Release {{crate_name}} {{version}}"
13+
14+
[[pre-release-replacements]]
15+
file = "CHANGELOG.md"
16+
search = "## mapiproxy NEXTVERSION - .*"
17+
exactly = 1
18+
replace = "## mapiproxy NEXTVERSION - YYYY-MM-DD\n\n\n## mapiproxy {{version}} - {{date}}"
19+

src/toplevel.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ Current status
5252
* Support for MonetDB Jun2020 (11.37.7) and higher. Older versions are highly
5353
likely to work but haven't been tested. If you need this, just ask.
5454

55-
* Rust 1.81 and higher. (TODO: check this)
55+
* Rust 1.80 and higher, older versions have not yet been tested.
5656

5757
* The full `monetdb://` connection URL syntax is supported, though not all features have been implemented.
5858

0 commit comments

Comments
 (0)