Skip to content

Commit 032b887

Browse files
authored
Merge branch 'main' into copilot/add-jsonserviceclient-for-rust
2 parents 09b3914 + d5f1d4b commit 032b887

File tree

7 files changed

+479
-181
lines changed

7 files changed

+479
-181
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# will have compiled files and executables
33
debug
44
target
5+
Cargo.lock
56

67
# These are backup files generated by rustfmt
78
**/*.rs.bk
@@ -19,3 +20,8 @@ target
1920
# and can be added to the global gitignore or merged into this file. For a more nuclear
2021
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
2122
#.idea/
23+
24+
25+
# Added by cargo
26+
27+
/target

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2828
- Flexible error handling
2929
- Support for custom HTTP methods in request DTOs
3030
- Raw request method for advanced use cases
31+
## [0.1.0] - 2025-11-03
32+
33+
### Added
34+
- Initial release of ServiceStack Rust HTTP Client Library
35+
- Core `ServiceStackClient` for making HTTP requests
36+
- Support for all HTTP methods: GET, POST, PUT, DELETE, PATCH
37+
- Async/await support with tokio
38+
- JSON serialization/deserialization with serde
39+
- Type-safe request/response handling
40+
- Comprehensive documentation and examples
41+
- Error handling with custom error types
42+
- Basic usage example demonstrating client functionality
43+
44+
[0.1.0]: https://github.com/ServiceStack/servicestack-rust/releases/tag/v0.1.0

PUBLISHING.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# Publishing to crates.io
2+
3+
This document describes how to publish the ServiceStack Rust client library to crates.io.
4+
5+
## Prerequisites
6+
7+
1. Create an account on [crates.io](https://crates.io/)
8+
2. Get your API token from [crates.io/me](https://crates.io/me)
9+
3. Configure your token locally:
10+
```bash
11+
cargo login <your-api-token>
12+
```
13+
14+
## Pre-publication Checklist
15+
16+
Before publishing, ensure:
17+
18+
- [ ] All tests pass: `cargo test`
19+
- [ ] Documentation builds without warnings: `cargo doc --no-deps`
20+
- [ ] Package builds successfully: `cargo package`
21+
- [ ] Version number is correct in `Cargo.toml`
22+
- [ ] `CHANGELOG.md` is updated
23+
- [ ] `README.md` is accurate and up-to-date
24+
- [ ] License file exists and is correct
25+
- [ ] All code is committed and pushed to GitHub
26+
27+
## Package Verification
28+
29+
1. Build and test the package:
30+
```bash
31+
cargo build
32+
cargo test
33+
```
34+
35+
2. Verify the package contents:
36+
```bash
37+
cargo package --list
38+
```
39+
40+
3. Build the package to check for issues:
41+
```bash
42+
cargo package
43+
```
44+
45+
4. Test the packaged version:
46+
```bash
47+
cargo package
48+
cd target/package
49+
cargo test
50+
```
51+
52+
## Publishing
53+
54+
Once all checks pass, publish to crates.io:
55+
56+
```bash
57+
cargo publish
58+
```
59+
60+
This will:
61+
1. Package your crate
62+
2. Upload it to crates.io
63+
3. Make it available for download via `cargo install`
64+
65+
## Post-Publication
66+
67+
After publishing:
68+
69+
1. Create a GitHub release:
70+
- Tag: `v0.1.0`
71+
- Title: `ServiceStack Rust v0.1.0`
72+
- Description: Copy from CHANGELOG.md
73+
74+
2. Verify the package appears on crates.io:
75+
- Visit https://crates.io/crates/servicestack
76+
- Check that documentation is generated at https://docs.rs/servicestack
77+
78+
3. Test installation:
79+
```bash
80+
cargo new test-project
81+
cd test-project
82+
cargo add servicestack
83+
cargo build
84+
```
85+
86+
## Version Updates
87+
88+
For future releases:
89+
90+
1. Update version in `Cargo.toml`
91+
2. Update `CHANGELOG.md` with new changes
92+
3. Commit and push changes
93+
4. Run through the pre-publication checklist
94+
5. Publish with `cargo publish`
95+
6. Create a new GitHub release
96+
97+
## Troubleshooting
98+
99+
- **Publishing fails**: Check that all required fields in `Cargo.toml` are filled
100+
- **Documentation fails to build**: Run `cargo doc` locally to see errors
101+
- **Tests fail**: Run `cargo test` to identify and fix failing tests
102+
- **Version conflict**: Ensure version number is incremented from last published version

0 commit comments

Comments
 (0)