Commit Graph

105 Commits

Author SHA1 Message Date
Gregg Donovan
62ec929629 Fix Python 3.12 build issues in thrift Python (#3276)
- Add pyproject.toml with setuptools build requirement for PEP 517 compliance
- Replace distutils imports with setuptools equivalents
- Use setuptools error names directly (CompileError, ExecError, PlatformError)
- Fix macOS header collision with ntohll/htonll macros in endian.h
- Add a matrix of MacOS versions (macos-15-intel, macos-14, macos-15,
  macos-26)
- Add a matrix of non-EOL Python versions for testing
- Remove MSVC2015 from the test matrix (very old).
- Support MSVC2022, the latest in AppVeyor.
- Upgrade tornado, twisted, and zope.interface versions to the first
  that support Python 3.12.
- Try to make the test_socket, RunClientServer, and TestServer tests less flaky.

This fixes the ModuleNotFoundError: No module named 'distutils' error
when building thrift with Python 3.12+.
2026-01-29 13:51:37 -08:00
Dmytro Shteflyuk
75a287728a Added a special no-extension build to test the code paths without native extensions 2026-01-28 01:52:06 +01:00
Dmytro Shteflyuk
6e5e18180b Added Ruby library tests to the GitHub workflow 2026-01-22 01:41:32 +01:00
copilot-swe-agent[bot]
c3ced62289 ## cpp: add private_optional support (and wire up tests/CI)
Add a new `cpp:private_optional` generator option for C++ that emits optional fields as private members and provides const getters, enabling stricter encapsulation while preserving access for generated helpers.

To keep the feature stable and exercised in automation, add fixture-based compiler tests and the minimal build/CI wiring required for those tests to build and run in the workflow (including MSVC).

 ### Example generated code (behavior change only, from `TestStruct`)

 #### Default (no `cpp:private_optional`): optional fields stay public
```cpp
public:
  int32_t required_field;
  int32_t optional_field;
  std::string optional_string;
```

With cpp:private_optional: optional fields become private + const getters

```cpp
public:
  int32_t required_field;

  const int32_t& __get_optional_field() const { return optional_field; }
  const std::string& __get_optional_string() const { return optional_string; }

private:
  int32_t optional_field;
  std::string optional_string;

  friend void swap(TestStruct &a, TestStruct &b) noexcept;
  friend std::ostream& operator<<(std::ostream& out, const TestStruct& obj);

```
2026-01-22 01:40:07 +01:00
HTHou
d9b4d95a1f try to fix kotlin cross tests 2026-01-07 22:31:52 +01:00
HTHou
b5919dd8f7 Add async nonblocking ssl support in java client 2026-01-07 22:31:52 +01:00
dependabot[bot]
22ffdc79d0 Bump actions/download-artifact from 6 to 7
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-07 22:27:49 +01:00
dependabot[bot]
e0d99c91a8 Bump actions/checkout from 4 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-07 22:24:29 +01:00
dependabot[bot]
b8f24076cd Bump actions/upload-artifact from 4 to 6
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-07 22:24:06 +01:00
Dmytro Shteflyuk
2097ed7898 Added auto-labeling configuration to .github/mergeable.yml 2026-01-07 22:15:47 +01:00
Shaoyu Zhang
230d0a96a2 Refresh windows docker setup 2025-12-10 23:46:25 +01:00
dependabot[bot]
724b038b9f Bump actions/setup-python from 3 to 6
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v3...v6)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 22:04:10 +01:00
dependabot[bot]
d90f2bb1e8 Bump actions/checkout from 3 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 22:03:38 +01:00
Carel Combrink
5abe53feaf Thrift-5900: Fix Tests for Python 3.14
Client: py
Patch: Carel Combrink

This closes #3239

- Disclaimer: Claude came up with this
- Python 3.14 made files explicitly unpicklable for reasons
- The out can't be pickled in SummaryReporter
- stop in TestDispatcher is an instance method that should not be captured

Delay the imports to where they are needed

- Claude believes this is due to the way that the server is called vs the client is called and the server does not have enough time to set up completely

Attempt to fix issue with python 3.14

- Looks like python is getting more strict about scoping
- Decided to go with a local option instead of global or module variable
2025-11-20 23:12:02 +01:00
Carel Combrink
f2534ad343 Pin python building also to 3.13
- No need for the check in the step any more since not supporting python 2
2025-11-20 00:01:57 +01:00
Carel Combrink
7770d27499 Put back the actual python tests 2025-11-20 00:01:57 +01:00
James E. King III
90ba80427d THRIFT-5546: automate pypi publishing [ci skip]
When a pre-release is created on GitHub for the repo it will publish
to the TestPyPI service, and if that pre-release is promoted to a
release, it will publish to the PyPI (real) service.
2025-11-19 17:41:42 +01:00
dependabot[bot]
17c8b838e1 Bump actions/upload-artifact from 4 to 5
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-19 17:20:13 +01:00
dependabot[bot]
0e4abab35a Bump actions/download-artifact from 5 to 6
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-19 17:19:57 +01:00
Jens Geyer
2f214c28d8 THRIFT-5902 Add net10 support
Client: netstd
Patch: Jens Geyer
2025-11-14 21:17:28 +01:00
Carel
ed55a18c30 Remove kotlin cross tests (#3236)
- They have been failing for months now without any actions
- The red builds have already desensitized the project to checking for failures
2025-11-14 16:54:52 +08:00
Carel
e720e6fecb THRIFT-5899: Python tests fail for the Appveyor MSVC builds (#3229)
* Temporarily switch off shared build

- See THRIFT-5898

* Skip type_hints tests for python lower than 3.7

- PR#2929 called out that the changes breaks Python 3.5 since types came in in 3.6
- Python 3.6 errors out with 'from __future__ import annotations' since it looks like it was only added in 3.7

* More appveyer issues on Windows due to old python

* Remove enum tests for old python versions

- Getting `raise TApplicationException(TApplicationException.MISSING_RESULT, "testEnum failed: unknown result"` error
- PR#2825 state it is a breaking change, not sure why and for what version of Python

* Disable SSL tests for old Python

- Appveyor error: ` AttributeError: module 'ssl' has no attribute 'PROTOCOL_TLS_CLIENT'`

* Can't get the test to skip so revert the change that broke it

- See PR#3050

* THRIFT-5900: Pin the cross test stage to python 3.13

- See https://issues.apache.org/jira/browse/THRIFT-5900
2025-11-07 08:48:27 +00:00
dependabot[bot]
1a5b7fc85b Bump actions/setup-python from 5 to 6
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 07:34:18 -07:00
dependabot[bot]
755f7d9faf Bump actions/setup-go from 5 to 6
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5 to 6.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 07:33:25 -07:00
dependabot[bot]
eaec898df1 Bump actions/setup-java from 4 to 5 (#3206)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4 to 5.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-05 15:53:08 -04:00
dependabot[bot]
55783f90db Bump actions/download-artifact from 4 to 5 (#3207)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-05 15:52:26 -04:00
dependabot[bot]
e6f532421c Bump actions/checkout from 4 to 5 (#3208)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-05 15:50:09 -04:00
Carel Combrink
fbe685aae1 Add cpp cross tests to the build workflow
- Remove usage of v0.16 thrift files for C++ since UUID support was added
- Need to install the locals for some of the unit tests
- Fix UUID support for THeaderProtocol
    - Without this the protocol went into an infinite loop due to virtual function calls that recursed to itself
    - Best case was a crash, worst case was process got stuck
- Fix UUID support for TProtocolTap
- Sorted the known failures
- Mark cpp and java ssl tests as known failures
2025-08-28 00:36:39 +02:00
Yuxuan 'fishy' Wang
3b86252e05 Update supported go versions to 1.24+1.25
Drop support for go 1.23 as it's no longer supported by upstream.
2025-08-13 13:32:53 -07:00
Yuxuan 'fishy' Wang
716835fa76 Fix cross-test
1. Comment in the middle of multi-line shell command joined by \ does
   not work, change to multiple individual commands instead.
2. Fix a py 2vs3 compat issue missed in 24df0a5 used in cross runner.
2025-05-29 08:42:25 -07:00
Jens Geyer
63b7a263fc THRIFT-5864 swift CI broken & no maintainer around to fix
Client: swift
Patch: Jens Geyer
2025-05-25 15:46:27 +02:00
Kino Roy
29d8773e7c THRIFT-4838: Add unix socket support for Swift
Client: Swift
Patch: Kino Roy
2025-04-28 23:42:16 +02:00
Jens Geyer
1834bfc957 added -y switch to prevent hang during CI run 2025-04-18 11:22:29 +02:00
Yuxuan 'fishy' Wang
7e45f58ad7 Remove ubuntu-20.04 from github actions
This is fully unsupported [1], and prevents further tests from running.

[1]: https://github.com/actions/runner-images/issues/11101
2025-04-17 09:02:03 -07:00
Cameron Martin
a675c4f858 THRIFT-5564: Add nodets tests to Github Actions
Client: nodets

This adds the tests for the "nodets" library. This isn't an actual library, and are just another set of tests for the nodejs library, but also using typescript. Therefore I have added them in the existing "nodejs" job.
2025-02-13 22:15:26 +01:00
Yuxuan 'fishy' Wang
624118f61f Update supported go versions
With the release of go 1.24.0, go 1.22.x is no longer supported. Update
supported go versions to go 1.23 and go 1.24.
2025-02-11 15:11:10 -08:00
Jens Geyer
8a5538a9a1 net9 on Noble only via NET backports 2025-02-11 23:16:46 +01:00
Cameron Martin
da54fc814c THRIFT-5819: use latest rustc version for rustlib (#3085)
Client: rust

This upgrades the version of rust in the rust-toolchain file, docs and dockerfiles. Doing so requires a few changes to the source, mainly to fix or silence new warnings.

Submitted on behalf of a third-party: Jiayu Liu
Derived from the following PR: https://github.com/apache/thrift/pull/3045

Co-authored-by: Jiayu Liu <jiayu@hey.com>
2025-01-12 16:55:45 +08:00
Cameron Martin
ab70652576 THRIFT-5564: Add nodejs tests to github actions (#3082)
These tests exist, but don't currently run on github actions. This adds a new job to run these.

This also fixes the regression in the tests caused by https://github.com/apache/thrift/pull/3014.
2025-01-12 16:54:49 +08:00
Jens Geyer
3a37d15341 net9 sdk is NOT YET installed by default 2024-11-22 23:25:49 +01:00
Jens Geyer
e26b4a8384 THRIFT-5832 Drop net6 support and add net9 instead
Client: netstd
Patch: Jens Geyer
2024-11-22 23:25:49 +01:00
Jens Geyer
a085b0ecee Revert "GitHub cmake workflow to build libraries as well [skip ci] (#2679)"
This reverts commit b65ec607db.
2024-11-14 23:16:37 +01:00
Jiayu Liu
b65ec607db GitHub cmake workflow to build libraries as well [skip ci] (#2679)
* cmake to build with java and kotlin

* add kotlin

* turn off python in cmake

* cmake and cpack

---------

Co-authored-by: Jiayu Liu <jiayu.liu@airbnb.com>
2024-11-06 11:39:01 +08:00
Jiayu Liu
e7f1a26a95 use 24.04 for github ci jobs (#3044) 2024-11-06 11:37:25 +08:00
Alexandre Detiste
8f9fba8a94 remove dependency on Six 2024-11-01 18:49:00 +01:00
Xuanwo
a32990df27 ci(rust): Add release workflow for rust, Update release_rust.yml
This closes #3027

Signed-off-by: Xuanwo <github@xuanwo.io>
2024-09-07 13:01:57 +02:00
Sven Roederer
cb9ceada55 GHA/build: run tests for netstd
Build and test the netstd library so there is some basic testing.
Run tests on ubuntu-22.04, as 20.04 wil be EoL soon and also had some issues with dotnet-sdk.
2024-08-22 13:39:31 +02:00
Yuxuan 'fishy' Wang
cf0b803512 Fix python build on Github Actions
There were some recent changes causing six to be installed on the `make
install` step instead of (implicitly) on the `Python setup` step before,
and the six installed on `make install` step was not available to the
next `make check` step and causing errors.

Install six on `Python setup` step explicitly instead.
2024-08-20 17:30:25 -07:00
Yuxuan 'fishy' Wang
91565d490e Update supported go versions
Client: go

With the release of go 1.23, update supported go versions to 1.22+1.23
according to our go support policy.

Also update the code to use the new range loop feature introduced in go
1.22 when appropriate.

Also fix a bug in TSSLServerSocket.Addr that it does not return the
listener address.
2024-08-14 10:39:41 -07:00
Sven Roederer
3d02c0f94e GHA/build: bring lib-php job to same versions of artifact-action and ubuntu-image 2024-07-25 11:59:25 +02:00