Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
259868b
chore: Upgrade Tower API version
bradhe Jun 12, 2025
ffe7f67
Let Tower SDK use the local session when running in `--local` mode (#55)
bradhe Jun 30, 2025
d395ec9
chore: Bump version to v0.3.19
bradhe Jun 30, 2025
3190f69
feat: move tower-cli to rustls
konstantinoscs Jul 4, 2025
6b03a95
fixing tests after api changes
konstantinoscs Jul 4, 2025
bf95fe1
Merge pull request #57 from tower/feature/tow-607-use-rustls-instead-…
konstantinoscs Jul 4, 2025
7bfd281
chore: Bump version to v0.3.20
bradhe Jul 4, 2025
fd0d721
Release v0.3.19 (#56)
bradhe Jul 1, 2025
f8fbda8
Add flake.nix file to support nix ecosystem
socksy Jul 4, 2025
5bca54b
Extract out metadata and common build inputs
socksy Jul 4, 2025
55f3af0
Add to README and rename tower-cli target to simply tower
socksy Jul 4, 2025
6435571
Use the version.txt file instead of hardcoding version in nix flake
socksy Jul 4, 2025
9653bd7
Merge branch 'main' into develop
bradhe Jul 4, 2025
67d1a9a
chore: Fix broken API integration
bradhe Jul 4, 2025
f062ce6
feat: add a script to build the nix flake and fix the build code for …
socksy Jul 8, 2025
0c9fd87
Merge pull request #61 from tower/feature/fix-nix-builds-with-nfpm
socksy Jul 8, 2025
76b4c33
fix: fix broken cross-linux binary production
konstantinoscs Jul 8, 2025
b1136d5
Merge pull request #64 from tower/feature/tow-628-fix-broken-tower-cl…
konstantinoscs Jul 9, 2025
3e4a3d4
Add support for shared code (#65)
bradhe Jul 16, 2025
a131603
chore: Upgrade to the latest Tower API
bradhe Jul 16, 2025
4e002cd
fix: A few bugs that I found when testing this out
bradhe Jul 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/build-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,12 @@ jobs:
manylinux: auto
docker-options: ${{ matrix.platform.maturin_docker_options }}
args: --release --locked --out dist
env:
# Set the CFLAGS for the aarch64 target, defining the ARM architecture
# for the ring crate's build script. This is a workaround for the
# issue where the ring crate's build script is not able to detect the
# ARM architecture.
CFLAGS_aarch64_unknown_linux_gnu: "-march=armv8-a -D__ARM_ARCH=8"
- uses: uraimo/run-on-arch-action@v2
if: ${{ matrix.platform.arch != 'ppc64' && matrix.platform.arch != 'ppc64le'}}
name: Test wheel
Expand Down
6 changes: 1 addition & 5 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,8 @@ resolver = "2"
[workspace.package]
edition = "2021"
version = "0.3.20"




description = "Tower is the best way to host Python data apps in production"
rust-version = "1.77"
rust-version = "1.81"
authors = ["Brad Heller <brad@tower.dev>"]
license = "MIT"
repository = "https://github.com/tower/tower-cli"
Expand Down
30 changes: 2 additions & 28 deletions crates/config/src/towerfile.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
use crate::Error;
use serde::Deserialize;
use std::path::PathBuf;
use tower_telemetry::debug;

#[derive(Deserialize, Debug)]
pub struct Parameter{
Expand Down Expand Up @@ -33,7 +32,7 @@ pub struct App {
pub description: String,

#[serde(default)]
pub workspace: PathBuf,
pub import_paths: Vec<PathBuf>,
}

#[derive(Deserialize, Debug)]
Expand All @@ -60,7 +59,7 @@ impl Towerfile {
source: vec![],
schedule: String::from("0 0 * * *"),
description: String::from(""),
workspace: PathBuf::new(),
import_paths: vec![],
},
}
}
Expand All @@ -86,16 +85,6 @@ impl Towerfile {
let mut towerfile = Self::from_toml(&std::fs::read_to_string(path.to_path_buf())?)?;
towerfile.file_path = path;

// We set the workspace to the directory of the Towerfile if it's not set because that's
// the implicit behavior overall for legacy Towerfiles.
if towerfile.app.workspace.as_os_str().is_empty() {
debug!("Setting workspace to the directory of the Towerfile");
towerfile.app.workspace = towerfile.file_path
.parent()
.map(|p| p.to_path_buf())
.unwrap();
}

Ok(towerfile)
}

Expand Down Expand Up @@ -261,19 +250,4 @@ mod test {
assert_eq!(towerfile.parameters[0].name, "my_first_param");
assert_eq!(towerfile.parameters[1].name, "my_second_param");
}

#[test]
fn test_parsing_workspaces() {
let toml = r#"
[app]
name = "my-app"
script = "my-app/script.py"
source = ["*.py"]
workspace = "../"
"#;

// All we want need to do is to ensure that the workspace is set accordingly.
let towerfile = crate::Towerfile::from_toml(toml).unwrap();
assert_eq!(towerfile.app.workspace, PathBuf::from("../"));
}
}
16 changes: 15 additions & 1 deletion crates/tower-api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ For more information, please visit [https://tower.dev](https://tower.dev)

This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [openapi-spec](https://openapis.org) from a remote server, you can easily generate an API client.

- API version: v0.6.14
- API version: v0.6.19
- Package version: 1.0.0
- Generator version: 7.13.0
- Build package: `org.openapitools.codegen.languages.RustClientCodegen`
Expand Down Expand Up @@ -39,6 +39,7 @@ Class | Method | HTTP request | Description
*DefaultApi* | [**create_catalog**](docs/DefaultApi.md#create_catalog) | **POST** /catalogs | Create catalog
*DefaultApi* | [**create_device_login_ticket**](docs/DefaultApi.md#create_device_login_ticket) | **GET** /login/device | Create device login ticket
*DefaultApi* | [**create_password_reset**](docs/DefaultApi.md#create_password_reset) | **POST** /accounts/password-reset | Create password reset
*DefaultApi* | [**create_schedule**](docs/DefaultApi.md#create_schedule) | **POST** /schedules | Create schedule
*DefaultApi* | [**create_secret**](docs/DefaultApi.md#create_secret) | **POST** /secrets | Create secret
*DefaultApi* | [**create_session**](docs/DefaultApi.md#create_session) | **POST** /session | Create session
*DefaultApi* | [**create_team**](docs/DefaultApi.md#create_team) | **POST** /teams | Create team
Expand All @@ -47,6 +48,7 @@ Class | Method | HTTP request | Description
*DefaultApi* | [**delete_app**](docs/DefaultApi.md#delete_app) | **DELETE** /apps/{slug} | Delete app
*DefaultApi* | [**delete_authenticator**](docs/DefaultApi.md#delete_authenticator) | **DELETE** /accounts/authenticator | Delete authenticator
*DefaultApi* | [**delete_catalog**](docs/DefaultApi.md#delete_catalog) | **DELETE** /catalogs/{slug} | Delete catalog
*DefaultApi* | [**delete_schedule**](docs/DefaultApi.md#delete_schedule) | **DELETE** /schedules/{id} | Delete schedule
*DefaultApi* | [**delete_secret**](docs/DefaultApi.md#delete_secret) | **DELETE** /secrets/{name} | Delete secret
*DefaultApi* | [**delete_team**](docs/DefaultApi.md#delete_team) | **DELETE** /teams | Delete team
*DefaultApi* | [**delete_team_invitation**](docs/DefaultApi.md#delete_team_invitation) | **DELETE** /teams/{slug}/invites | Delete team invitation
Expand All @@ -63,6 +65,7 @@ Class | Method | HTTP request | Description
*DefaultApi* | [**generate_app_statistics**](docs/DefaultApi.md#generate_app_statistics) | **GET** /stats/apps | Generate app statistics
*DefaultApi* | [**generate_authenticator**](docs/DefaultApi.md#generate_authenticator) | **POST** /accounts/authenticator/generate | Generate authenticator
*DefaultApi* | [**generate_run_statistics**](docs/DefaultApi.md#generate_run_statistics) | **GET** /stats/runs | Generate run statistics
*DefaultApi* | [**generate_runner_credentials**](docs/DefaultApi.md#generate_runner_credentials) | **POST** /runners/credentials | Generate runner credentials
*DefaultApi* | [**invite_team_member**](docs/DefaultApi.md#invite_team_member) | **POST** /teams/{slug}/invites | Invite team member
*DefaultApi* | [**leave_team**](docs/DefaultApi.md#leave_team) | **POST** /teams/{slug}/leave | Leave team
*DefaultApi* | [**list_alerts**](docs/DefaultApi.md#list_alerts) | **GET** /alerts | List alerts
Expand All @@ -74,6 +77,7 @@ Class | Method | HTTP request | Description
*DefaultApi* | [**list_catalogs**](docs/DefaultApi.md#list_catalogs) | **GET** /catalogs | List catalogs
*DefaultApi* | [**list_my_team_invitations**](docs/DefaultApi.md#list_my_team_invitations) | **GET** /team-invites | List my team invitations
*DefaultApi* | [**list_runs**](docs/DefaultApi.md#list_runs) | **GET** /apps/{slug}/runs | List runs
*DefaultApi* | [**list_schedules**](docs/DefaultApi.md#list_schedules) | **GET** /schedules | List schedules
*DefaultApi* | [**list_secret_environments**](docs/DefaultApi.md#list_secret_environments) | **GET** /secrets/environments | List secret environments
*DefaultApi* | [**list_secrets**](docs/DefaultApi.md#list_secrets) | **GET** /secrets | List secrets
*DefaultApi* | [**list_team_invitations**](docs/DefaultApi.md#list_team_invitations) | **GET** /teams/{slug}/invites | List team invitations
Expand All @@ -91,6 +95,7 @@ Class | Method | HTTP request | Description
*DefaultApi* | [**update_catalog**](docs/DefaultApi.md#update_catalog) | **PUT** /catalogs/{slug} | Update catalog
*DefaultApi* | [**update_my_team_invitation**](docs/DefaultApi.md#update_my_team_invitation) | **PUT** /team-invites | Update my team invitation
*DefaultApi* | [**update_password_reset**](docs/DefaultApi.md#update_password_reset) | **POST** /accounts/password-reset/{code} | Update password reset
*DefaultApi* | [**update_schedule**](docs/DefaultApi.md#update_schedule) | **PUT** /schedules/{id} | Update schedule
*DefaultApi* | [**update_secret**](docs/DefaultApi.md#update_secret) | **PUT** /secrets/{name} | Update secret
*DefaultApi* | [**update_team**](docs/DefaultApi.md#update_team) | **PUT** /teams/{slug} | Update team
*DefaultApi* | [**update_user**](docs/DefaultApi.md#update_user) | **PUT** /user | Update user profile
Expand Down Expand Up @@ -128,6 +133,8 @@ Class | Method | HTTP request | Description
- [CreateDeviceLoginTicketResponse](docs/CreateDeviceLoginTicketResponse.md)
- [CreatePasswordResetParams](docs/CreatePasswordResetParams.md)
- [CreatePasswordResetResponse](docs/CreatePasswordResetResponse.md)
- [CreateScheduleParams](docs/CreateScheduleParams.md)
- [CreateScheduleResponse](docs/CreateScheduleResponse.md)
- [CreateSecretParams](docs/CreateSecretParams.md)
- [CreateSecretResponse](docs/CreateSecretResponse.md)
- [CreateSessionParams](docs/CreateSessionParams.md)
Expand All @@ -140,6 +147,7 @@ Class | Method | HTTP request | Description
- [DeleteAuthenticatorParams](docs/DeleteAuthenticatorParams.md)
- [DeleteAuthenticatorResponse](docs/DeleteAuthenticatorResponse.md)
- [DeleteCatalogResponse](docs/DeleteCatalogResponse.md)
- [DeleteScheduleResponse](docs/DeleteScheduleResponse.md)
- [DeleteSecretResponse](docs/DeleteSecretResponse.md)
- [DeleteTeamInvitationParams](docs/DeleteTeamInvitationParams.md)
- [DeleteTeamInvitationResponse](docs/DeleteTeamInvitationResponse.md)
Expand Down Expand Up @@ -167,6 +175,7 @@ Class | Method | HTTP request | Description
- [GenerateAppStatisticsResponse](docs/GenerateAppStatisticsResponse.md)
- [GenerateAuthenticatorResponse](docs/GenerateAuthenticatorResponse.md)
- [GenerateRunStatisticsResponse](docs/GenerateRunStatisticsResponse.md)
- [GenerateRunnerCredentialsResponse](docs/GenerateRunnerCredentialsResponse.md)
- [InviteTeamMemberParams](docs/InviteTeamMemberParams.md)
- [InviteTeamMemberResponse](docs/InviteTeamMemberResponse.md)
- [LeaveTeamResponse](docs/LeaveTeamResponse.md)
Expand All @@ -180,6 +189,7 @@ Class | Method | HTTP request | Description
- [ListCatalogsResponse](docs/ListCatalogsResponse.md)
- [ListMyTeamInvitationsResponse](docs/ListMyTeamInvitationsResponse.md)
- [ListRunsResponse](docs/ListRunsResponse.md)
- [ListSchedulesResponse](docs/ListSchedulesResponse.md)
- [ListSecretEnvironmentsResponse](docs/ListSecretEnvironmentsResponse.md)
- [ListSecretsResponse](docs/ListSecretsResponse.md)
- [ListTeamInvitationsResponse](docs/ListTeamInvitationsResponse.md)
Expand All @@ -203,6 +213,8 @@ Class | Method | HTTP request | Description
- [RunResults](docs/RunResults.md)
- [RunStatistics](docs/RunStatistics.md)
- [RunTimeseriesPoint](docs/RunTimeseriesPoint.md)
- [RunnerCredentials](docs/RunnerCredentials.md)
- [Schedule](docs/Schedule.md)
- [SearchRunsResponse](docs/SearchRunsResponse.md)
- [Secret](docs/Secret.md)
- [Session](docs/Session.md)
Expand All @@ -224,6 +236,8 @@ Class | Method | HTTP request | Description
- [UpdateMyTeamInvitationResponse](docs/UpdateMyTeamInvitationResponse.md)
- [UpdatePasswordResetParams](docs/UpdatePasswordResetParams.md)
- [UpdatePasswordResetResponse](docs/UpdatePasswordResetResponse.md)
- [UpdateScheduleParams](docs/UpdateScheduleParams.md)
- [UpdateScheduleResponse](docs/UpdateScheduleResponse.md)
- [UpdateSecretParams](docs/UpdateSecretParams.md)
- [UpdateSecretResponse](docs/UpdateSecretResponse.md)
- [UpdateTeamParams](docs/UpdateTeamParams.md)
Expand Down
2 changes: 1 addition & 1 deletion crates/tower-api/src/apis/configuration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*
* REST API to interact with Tower Services.
*
* The version of the OpenAPI document: v0.6.14
* The version of the OpenAPI document: v0.6.19
* Contact: hello@tower.dev
* Generated by: https://openapi-generator.tech
*/
Expand Down
Loading