Mish Ushakov
9f9e2a8f20
Render failed layer stack traces on build error ( #901 )
...
### Changelog
- Added traces for Python and JavaScript SDK.
- Added methods for stack trace collection, stack trace context
- Updated file upload mechanism for tracing
- Changed API handling to support throwing API errors with traces
> **Note**
> For functions like `aptInstall`, `fromRegistry` which call `.run` and
`.fromImage`, the stack trace has to be replaced so it throws correctly
from parent.
> **Note**
> There are no build logs in the trace, we can add this at later point.
### Examples
Keep in mind that the way the traces are rendered entirely depends on
environment (Bun, Node, Deno, Vitest, Pytest)
**Standard Python**
```
Traceback (most recent call last):
File "/Users/mish/Documents/Projects/E2B/E2B/packages/python-sdk/tests/sync/template_sync/test_stacktrace.py", line 17, in <module>
Template.build(
~~~~~~~~~~~~~~^
template,
^^^^^^^^^
...<2 lines>...
memory_mb=1024,
^^^^^^^^^^^^^^^
)
^
File "/Users/mish/Documents/Projects/E2B/E2B/packages/python-sdk/e2b/template_sync/main.py", line 157, in build
wait_for_build_finish(
~~~~~~~~~~~~~~~~~~~~~^
api_client,
^^^^^^^^^^^
...<4 lines>...
stack_traces=template._template._stack_traces,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/Users/mish/Documents/Projects/E2B/E2B/packages/python-sdk/e2b/template_sync/build_api.py", line 199, in wait_for_build_finish
raise BuildException(error_message).with_traceback(stack_trace)
File "/Users/mish/Documents/Projects/E2B/E2B/packages/python-sdk/tests/sync/template_sync/test_stacktrace.py", line 12, in <module>
.run_cmd("cat non_existing_file.txt")
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
e2b.template.exceptions.BuildException: failed to run command: exit status 1
```
**Pytest**
```
[gw0] darwin -- Python 3.13.3 /Users/mish/Library/Caches/pypoetry/virtualenvs/e2b-e6GdLxLZ-py3.13/bin/python
@pytest.mark.skip_debug()
def test_build():
template = (
Template()
.from_image("ubuntu:22.04")
.run_cmd("cat non_existing_file.txt")
.set_workdir("/app")
.set_start_cmd("echo 'Hello, world!'", wait_for_timeout(10_000))
)
# try:
> Template.build(
template,
alias=str(uuid4()),
cpu_count=1,
memory_mb=1024,
)
tests/sync/template_sync/test_stacktrace.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
e2b/template_sync/main.py:157: in build
wait_for_build_finish(
e2b/template_sync/build_api.py:199: in wait_for_build_finish
raise BuildException(error_message).with_traceback(stack_trace)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
@pytest.mark.skip_debug()
def test_build():
template = (
Template()
.from_image("ubuntu:22.04")
> .run_cmd("cat non_existing_file.txt")
.set_workdir("/app")
.set_start_cmd("echo 'Hello, world!'", wait_for_timeout(10_000))
)
E e2b.template.exceptions.BuildException: failed to run command: exit status 1
tests/sync/template_sync/test_stacktrace.py:12: BuildException
========================================================== short test summary info ==========================================================
FAILED tests/sync/template_sync/test_stacktrace.py::test_build - e2b.template.exceptions.BuildException: failed to run command: exit status 1
```
**Node**
```
node:internal/modules/run_main:104
triggerUncaughtException(
^
at file:///Users/mish/Documents/Projects/E2B/E2B/packages/js-sdk/tests/template/trace.test.mts:8:4
at ModuleJob.run (node:internal/modules/esm/module_job:274:25)
at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:644:26)
at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:98:5) {
name: 'BuildError'
}
Node.js v23.11.0
```
**Bun**
```
1 | export class BuildError extends Error {
2 | constructor(message: string, stackTrace?: string) {
3 | super(message)
^
BuildError: failed to run command: exit status 1
at /Users/mish/Documents/Projects/E2B/E2B/packages/js-sdk/src/template/errors.ts:3:5
Bun v1.2.4 (macOS arm64)
```
**Vitest**
```
BuildError: failed to run command: exit status 1
❯ tests/template/trace.test.ts:8:6
6| const template = Template()
7| .fromImage('ubuntu:22.04')
8| .runCmd('cat folder/test.txt')
| ^
9| .setWorkdir('/app')
10| .setStartCmd('echo "Hello, world!"', waitForTimeout(10_000))
```
---------
Co-authored-by: Jakub Dobry <jakub.dobry8@gmail.com >
2025-09-19 12:34:08 +02:00
github-actions[bot]
9cbcaa40c4
[skip ci] Release new versions
2025-09-09 19:57:39 +00:00
Mish Ushakov
3d6418184f
Add custom registries support for pulling base images ( #897 )
...
### Changelog
- added support for pulling base images from AWS, Docker, GCP
registries.
- removed unnecessary conversion in build_api.py.
- synced serialize implementation in TypeScript and Python.
- added Cursor Pylance config (side-effect, can delete if unwanted).
### Examples
**TypeScript**
```ts
import { Template } from 'e2b'
// Generic Docker registry
Template().fromRegistry('ubuntu:22.04', {
username: 'jirka',
password: 'password',
})
// AWS ECR registry
Template().fromAWSRegistry('ubuntu:22.04', {
accessKeyId: '123',
secretAccessKey: '456',
region: 'eu-west-1',
})
// GCP GCR registry from file path
Template().fromGCPRegistry('ubuntu:22.04', {
serviceAccountJSON: './service_account.json',
})
// GCP GCR registry from object
Template().fromGCPRegistry('ubuntu:22.04', {
serviceAccountJSON: { project_id: '123', private_key_id: '456' },
})
```
**Python**
```py
from e2b import Template
# Generic Docker registry
Template().from_registry(
image="ubuntu:22.04",
username="jirka",
password="password",
)
# AWS ECR registry
Template().from_aws_registry(
image="ubuntu:22.04",
access_key_id="123",
secret_access_key="456",
region="eu-west-1",
)
# GCP GCR registry from file path
Template().from_gcp_registry(
image="ubuntu:22.04",
service_account_json="./service_account.json",
)
# GCP GCR registry from object
Template().from_gcp_registry(
image="ubuntu:22.04",
service_account_json={"project_id": "123", "private_key_id": "456"},
)
```
2025-09-09 19:51:40 +00:00
Mish Ushakov
79d4ce34e2
Templates SDK: simplify exports ( #898 )
...
- Removed unnecessary deep export chains
2025-09-08 08:38:16 -07:00
github-actions[bot]
bee91610dc
[skip ci] Release new versions
2025-09-06 10:58:21 +00:00
Jakub Dobry
6fc97604f7
Add ready command for JS and Python ( #893 )
2025-09-06 03:52:42 -07:00
github-actions[bot]
9d82bd60fc
[skip ci] Release new versions
2025-09-05 20:06:19 +00:00
Mish Ushakov
4a2a6c7051
Add Templates SDK ( #871 )
...
### Merge Templates SDK into E2B SDK.
This PR merges code from Templates SDK to E2B SDK.
**Changelog**
- Added new error classes: BuildError, FileUploadError.
- Added template API endpoints to API Client generation (Python).
- Updated API Clients error handling to throw BuildError in addition to
SandboxError.
- Exported Template and TemplateAsync classes.
- Moved `getRuntime` utility method from api to utils.
- Browser is supported except file operations (COPY). Incompatible
modules are not bundled, using dynamic imports (tar, glob) in supported
environments (Node, Deno, Bun) instead.
- Basic tests were added, subject to expansion in a follow-up PR.
- Breaking: Before, 401 error was raising `SandboxError`, which was
incorrect, now it will raise `AuthenticationError`. I have also changed
the `AuthenticationError` to extend Error class, not `SandboxError`
anymore as it's now thrown by both Sandbox and Template.
**Usage**
JavaScript
```js
import { Template } from 'e2b';
const template = Template()
.fromImage('ubuntu:22.04')
.copy('folder/*.txt', 'folder', { forceUpload: true })
.setEnvs({
ENV_1: 'value1',
ENV_2: 'value2',
})
.runCmd('cat folder/test.txt')
.setWorkdir('/app')
.setStartCmd('echo "Hello, world!"', Template.waitForTimeout('10s'))
await Template.build(template, {
alias: 'test-template',
cpuCount: 1,
memoryMB: 1024,
onBuildLogs: (logEntry) => console.log(logEntry.toString()),
})
```
Python
```py
from e2b import Template
template = (
Template()
.from_image("ubuntu:22.04")
.copy("folder/*.txt", "folder", force_upload=True)
.set_envs(
{
"ENV_1": "value1",
"ENV_2": "value2",
}
)
.run_cmd("cat folder/test.txt")
.set_workdir("/app")
.set_start_cmd("echo 'Hello, world!'", Template.wait_for_timeout("10s"))
)
Template.build(
template,
alias="test-template",
cpu_count=1,
memory_mb=1024,
on_build_logs=lambda log_entry: print(log_entry),
)
```
Python Async
```py
from e2b import AsyncTemplate
template = (
AsyncTemplate()
.from_image("ubuntu:22.04")
.copy("folder/*.txt", "folder", force_upload=True)
.set_envs(
{
"ENV_1": "value1",
"ENV_2": "value2",
}
)
.run_cmd("cat folder/test.txt")
.set_workdir("/app")
.set_start_cmd("echo 'Hello, world!'", Template.wait_for_timeout("10s"))
)
await AsyncTemplate.build(
template,
alias="test-template",
cpu_count=1,
memory_mb=1024,
on_build_logs=lambda log_entry: print(log_entry),
)
```
---
Merge progress
- [x] JavaScript SDK
- [x] Python SDK
- [x] Tests
- [x] Split files for review
2025-09-05 22:00:22 +02:00
github-actions[bot]
2162c6191f
[skip ci] Release new versions
2025-09-03 12:49:17 +00:00
Mish Ushakov
67070bb9ea
Synced spec + generated API client ( #889 )
...
Changelog
- Synced latest spec from e2b-dev/infra
- Regenerated API clients
2025-09-03 05:43:47 -07:00
github-actions[bot]
787a3192ce
[skip ci] Release new versions
2025-09-03 12:01:10 +00:00
Jakub Novák
cf0bb40ed3
Fix autopause ( #876 )
...
# Description
Autopause option shouldn't be passed for resume
2025-09-03 11:48:12 +00:00
Jakub Novák
b42ab2a86b
Add pipeline for linting and formatting ( #883 )
...
Setup linting and formatting in all packages
2025-08-31 12:06:00 -07:00
Jakub Novák
a5f4802ec5
Add migration guide to docs ( #870 )
...
Adds migration guide for SDK v2
Adds mentions about auto pause
https://e2b-web-git-migration-guide-v2.e2b-preview.dev/docs/migration/v2
---------
Co-authored-by: Vasek Mlejnsky <vasek@e2b.dev >
2025-08-28 01:21:43 -07:00
github-actions[bot]
774dfd7667
[skip ci] Release new versions
2025-08-21 15:51:16 +00:00
Jakub Novák
74457ff1dd
SDK v2 - Changeset and docs ( #862 )
...
SDK v2 release
2025-08-21 08:45:25 -07:00
Jakub Novák
d117ba09e8
SDK v2 - Add beta pause and update Sandbox list ( #854 )
...
Introduce beta submodule with beta features - pause and resume
Update Sandbox list to also return paused sandboxes
---------
Co-authored-by: Tomas Valenta <valenta.and.thomas@gmail.com >
2025-08-19 00:37:07 -07:00
Jakub Novák
1aee7c8195
Refactor Sandbox object in Python ( #855 )
...
# Description
We can simplify typing and return only SandboxInfo in SDKs as the types
are very similar (there are some extra fields in detail, which we don't
want to expose but we need them e.g. for connect)
2025-08-10 12:40:09 -07:00
Jakub Novák
da7c60d2dd
Simplify connection config handling in Python SDK ( #849 )
...
Several improvements and refactors to the Python SDK's sandbox
connection and configuration logic.
The main focus is on making header management more flexible, improving
API parameter handling, and simplifying class structures for better
maintainability and usability.
Also unifies doc strings
2025-08-10 08:09:45 -07:00
github-actions[bot]
7540839268
[skip ci] Release new versions
2025-08-06 10:32:14 +00:00
Tomas Valenta
0bace983b1
Increase default request timeout ( #847 )
...
Increase the default request timeout to 60 seconds. This is the value in
the current beta, and with the merge, we want to keep it that way, to
minimize possible negative migration impact.
2025-08-06 03:27:19 -07:00
Tomas Valenta
33b9467bef
Allow more protobuf versions ( #846 )
...
- Allow protobuf `4.21.0`+ (we previously allowed this, and some users
in beta require this)
- Allow protobuf `6.0.0`+ (some other users need to use the SDK with the
latest versions)
The SDK should work with both of these, but we may want to smoke test it
somehow.
---------
Co-authored-by: Jakub Novak <jakub@e2b.dev >
2025-08-06 03:27:00 -07:00
github-actions[bot]
9d2b3c92a7
[skip ci] Release new versions
2025-08-04 12:40:16 +00:00
Jiri Sveceny
c0a41722e5
Secured sandbox auto signature ( #845 )
...
Some users report that JS/Python types lack a `useSignature` attribute,
which only works when `secure=true` is set for the sandbox. This change
removes the `useSignatrue` parameter and makes all upload/download URL
requests signed if `secure` was provided, making sure the function will
work for all possible cases.
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Ben Fornefeld <50748440+ben-fornefeld@users.noreply.github.com >
2025-08-04 12:34:59 +00:00
github-actions[bot]
115407cf1e
[skip ci] Release new versions
2025-07-31 09:44:55 +00:00
Jakub Novák
f123091e9a
Allow to block network from SDK ( #834 )
...
# Description
This pull request introduces the ability to control internet access for
sandboxes, enhancing security for sensitive workloads.
2025-07-31 02:34:57 -07:00
github-actions[bot]
76d62ed070
[skip ci] Release new versions
2025-07-30 19:25:33 +00:00
Jakub Novák
e34d69525f
Expose sandbox metrics in SDKs and CLI ( #828 )
...
# Description
Expose sandbox metrics in SDKs and CLI
```
e2b sbx mt il98ycmohc6enybi79uf8
Metrics for sandbox il98ycmohc6enybi79uf8:
[2025-07-25 14:05:55Z] CPU: 8.27% / 2 Cores | Memory: 31 / 484 MiB | Disk: 1445 / 2453 MiB
[2025-07-25 14:06:00Z] CPU: 0.5% / 2 Cores | Memory: 32 / 484 MiB | Disk: 1445 / 2453 MiB
[2025-07-25 14:06:05Z] CPU: 0.1% / 2 Cores | Memory: 32 / 484 MiB | Disk: 1445 / 2453 MiB
[2025-07-25 14:06:10Z] CPU: 0.3% / 2 Cores | Memory: 32 / 484 MiB | Disk: 1445 / 2453 MiB
```
---------
Co-authored-by: Tomas Valenta <valenta.and.thomas@gmail.com >
2025-07-30 12:17:30 -07:00
github-actions[bot]
7f26f5536e
[skip ci] Release new versions
2025-07-29 10:44:36 +00:00
Mish Ushakov
edeafb1cdd
Adds files.getInfo / files.get_info methods to retrieve information about directory/files ( #724 )
...
**Changelog**
- Adds `files.getInfo`, `files.get_info` methods to the SDKs.
- Adds tests for the new methods
- Adds documentation for the above.
**Examples**
JavaScript
```js
import { Sandbox } from '@e2b/code-interpreter'
const sandbox = await Sandbox.create()
// Create a new file
await sandbox.files.write('test_file.txt', 'Hello, world!')
// Get information about the file
const info = await sandbox.files.getInfo('test_file.txt')
console.log(info)
// {
// name: 'test_file.txt',
// type: 'file',
// path: '/home/user/test_file.txt'
// }
```
Python
```py
from e2b_code_interpreter import Sandbox
sandbox = Sandbox()
# Create a new file
sandbox.files.write('test_file', 'Hello, world!')
# Get information about the file
info = sandbox.files.get_info('test_file')
print(info)
# EntryInfo(name='test_file.txt', type=<FileType.FILE: 'file'>, path='/home/user/test_file.txt')
```
---------
Co-authored-by: Jakub Novak <jakub@e2b.dev >
2025-07-29 03:39:42 -07:00
github-actions[bot]
37d69be891
[skip ci] Release new versions
2025-07-28 15:23:07 +00:00
Jakub Novák
c54528faea
Update User-Agent header in SDKs based on the SDK version ( #830 )
...
# Description
The bug where extra fields in envd response caused an exception was
fixed in #738 . As we're also ignoring new fields in envd (implemented in
https://github.com/e2b-dev/infra/pull/847 ). We now have to update the
`user-agent` header.
2025-07-28 08:18:02 -07:00
Jakub Novák
706ebd9af8
Fix generating files with docker ( #829 )
...
# Description
Fixes an issue in generating files in Docker. There has been an
incompatibility of `buf` (version `29.5`) and `protoc-gen-es` (version
`2.2.2`).
I updated `protoc-gen-es@` to `2.6.2`
Also refactored the code a little so it's easier to read
Added a CI pipeline job to check all files are properly generated
2025-07-28 13:47:26 +02:00
github-actions[bot]
e7538fb5cc
[skip ci] Release new versions
2025-07-18 11:20:02 +00:00
Jiri Sveceny
10e9a28a82
Support sandbox domain in sdk and cli ( #821 )
...
Support sandbox traffic routing to the custom domain returned from API.
2025-07-18 13:15:12 +02:00
github-actions[bot]
5f207ffa95
[skip ci] Release new versions
2025-07-17 13:16:31 +00:00
Jiri Sveceny
9f8c40e49e
Client ID part removal from SDKs ( #820 )
...
- CLI spawn, connect, and logs work with and without the client part
provided
- JavaScript and Python SDKs are no longer returning IDs with client
part
2025-07-17 13:11:50 +00:00
github-actions[bot]
5cf6c145a5
[skip ci] Release new versions
2025-07-10 13:45:42 +00:00
Mish Ushakov
5c68eb7a25
Fixes Sandbox.connect not working when trying to pass API key via parameters ( #772 )
...
fixes https://github.com/e2b-dev/E2B/issues/746
- Renamed SandboxApi.get_info() > SandboxApi._cls_get_info()
- Properly overloaded Sandbox.get_info()
- Passed connect parameters to SandboxApi._cls_get_info()
2025-07-10 15:41:33 +02:00
github-actions[bot]
083d5eefa8
[skip ci] Release new versions
2025-07-09 14:08:34 +00:00
Jakub Novák
10aab1d7d6
Set default domain even if the env variable is an empty string ( #813 )
...
# Description
os.getenv doesn't use the default value, if the variable is empty string
2025-07-09 07:03:31 -07:00
0div
9b4861d2ea
Add sandbox metadata docs and update env var tests ( #804 )
...
# Description
- [x] update env var docs to include new default sandbox metadata env
vars
- [x] update js-sdk tests
- [x] update python tests
# Test
```sh
$ [packages/js-sdk] pnpm test env
$ [packages/python-sdk] poetry run pytest --verbose -x tests/async/sandbox_async/commands/test_env_vars.py
$ [packages/python-sdk] poetry run pytest --verbose -x tests/sync/sandbox_sync/commands/test_env_vars.py
```
2025-07-03 14:44:27 -07:00
github-actions[bot]
3547878756
[skip ci] Release new versions
2025-07-03 18:31:46 +00:00
Mish Ushakov
0ac4112b25
Fixes parsing http errors in connect client ( #806 )
2025-07-03 20:27:32 +02:00
github-actions[bot]
69eacc71bb
[skip ci] Release new versions
2025-06-27 20:24:58 +00:00
Mish Ushakov
1067fc53e8
Ignore unknown fields from received messages (protobuf) ( #738 )
...
(We might actually not need this if we version the methods instead)
context:
https://github.com/e2b-dev/infra/pull/655#pullrequestreview-2851059703
reference:
https://googleapis.dev/python/protobuf/latest/google/protobuf/message.html#google.protobuf.message.Message.MergeFrom
2025-06-27 13:20:40 -07:00
dependabot[bot]
c87dd4a4b8
Bump urllib3 from 2.2.3 to 2.5.0 in /packages/python-sdk in the pip group across 1 directory ( #785 )
...
Bumps the pip group with 1 update in the /packages/python-sdk directory:
[urllib3](https://github.com/urllib3/urllib3 ).
Updates `urllib3` from 2.2.3 to 2.5.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/urllib3/urllib3/releases ">urllib3's
releases</a>.</em></p>
<blockquote>
<h2>2.5.0</h2>
<h2>🚀 urllib3 is fundraising for HTTP/2 support</h2>
<p><a
href="https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support ">urllib3
is raising ~$40,000 USD</a> to release HTTP/2 support and ensure
long-term sustainable maintenance of the project after a sharp decline
in financial support. If your company or organization uses Python and
would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and
thousands of other projects <a
href="https://opencollective.com/urllib3 ">please consider contributing
financially</a> to ensure HTTP/2 support is developed sustainably and
maintained for the long-haul.</p>
<p>Thank you for your support.</p>
<h1>Security issues</h1>
<p>urllib3 2.5.0 fixes two moderate security issues:</p>
<ul>
<li>Pool managers now properly control redirects when
<code>retries</code> is passed — CVE-2025-50181 reported by <a
href="https://github.com/sandumjacob "><code>@sandumjacob</code></a>
(5.3 Medium, GHSA-pq67-6m6q-mj2v)</li>
<li>Redirects are now controlled by urllib3 in the Node.js runtime —
CVE-2025-50182 (5.3 Medium, GHSA-48p4-8xcf-vxj5)</li>
</ul>
<h1>Features</h1>
<ul>
<li>Added support for the <code>compression.zstd</code> module that is
new in Python 3.14. See <a href="https://peps.python.org/pep-0784/ ">PEP
784</a> for more information. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3610 ">#3610</a>)</li>
<li>Added support for version 0.5 of <code>hatch-vcs</code> (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3612 ">#3612</a>)</li>
</ul>
<h1>Bugfixes</h1>
<ul>
<li>Raised exception for <code>HTTPResponse.shutdown</code> on a
connection already released to the pool. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3581 ">#3581</a>)</li>
<li>Fixed incorrect <code>CONNECT</code> statement when using an IPv6
proxy with <code>connection_from_host</code>. Previously would not be
wrapped in <code>[]</code>. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3615 ">#3615</a>)</li>
</ul>
<h2>2.4.0</h2>
<h2>🚀 urllib3 is fundraising for HTTP/2 support</h2>
<p><a
href="https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support ">urllib3
is raising ~$40,000 USD</a> to release HTTP/2 support and ensure
long-term sustainable maintenance of the project after a sharp decline
in financial support. If your company or organization uses Python and
would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and
thousands of other projects <a
href="https://opencollective.com/urllib3 ">please consider contributing
financially</a> to ensure HTTP/2 support is developed sustainably and
maintained for the long-haul.</p>
<p>Thank you for your support.</p>
<h1>Features</h1>
<ul>
<li>Applied PEP 639 by specifying the license fields in pyproject.toml.
(<a
href="https://redirect.github.com/urllib3/urllib3/issues/3522 ">#3522</a>)</li>
<li>Updated exceptions to save and restore more properties during the
pickle/serialization process. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3567 ">#3567</a>)</li>
<li>Added <code>verify_flags</code> option to
<code>create_urllib3_context</code> with a default of
<code>VERIFY_X509_PARTIAL_CHAIN</code> and
<code>VERIFY_X509_STRICT</code> for Python 3.13+. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3571 ">#3571</a>)</li>
</ul>
<h1>Bugfixes</h1>
<ul>
<li>Fixed a bug with partial reads of streaming data in Emscripten. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3555 ">#3555</a>)</li>
</ul>
<h1>Misc</h1>
<ul>
<li>Switched to uv for installing development dependecies. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3550 ">#3550</a>)</li>
<li>Removed the <code>multiple.intoto.jsonl</code> asset from GitHub
releases. Attestation of release files since v2.3.0 can be found on
PyPI. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3566 ">#3566</a>)</li>
</ul>
<h2>2.3.0</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/urllib3/urllib3/blob/main/CHANGES.rst ">urllib3's
changelog</a>.</em></p>
<blockquote>
<h1>2.5.0 (2025-06-18)</h1>
<h2>Features</h2>
<ul>
<li>Added support for the <code>compression.zstd</code> module that is
new in Python 3.14.
See <code>PEP 784 <https://peps.python.org/pep-0784/> ;</code>_ for
more information.
(<code>[#3610 ](https://github.com/urllib3/urllib3/issues/3610 )
<https://github.com/urllib3/urllib3/issues/3610> ;</code>__)</li>
<li>Added support for version 0.5 of <code>hatch-vcs</code>
(<code>[#3612 ](https://github.com/urllib3/urllib3/issues/3612 )
<https://github.com/urllib3/urllib3/issues/3612> ;</code>__)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Fixed a security issue where restricting the maximum number of
followed
redirects at the <code>urllib3.PoolManager</code> level via the
<code>retries</code> parameter
did not work.</li>
<li>Made the Node.js runtime respect redirect parameters such as
<code>retries</code>
and <code>redirects</code>.</li>
<li>Raised exception for <code>HTTPResponse.shutdown</code> on a
connection already released to the pool.
(<code>[#3581 ](https://github.com/urllib3/urllib3/issues/3581 )
<https://github.com/urllib3/urllib3/issues/3581> ;</code>__)</li>
<li>Fixed incorrect <code>CONNECT</code> statement when using an IPv6
proxy with <code>connection_from_host</code>. Previously would not be
wrapped in <code>[]</code>.
(<code>[#3615 ](https://github.com/urllib3/urllib3/issues/3615 )
<https://github.com/urllib3/urllib3/issues/3615> ;</code>__)</li>
</ul>
<h1>2.4.0 (2025-04-10)</h1>
<h2>Features</h2>
<ul>
<li>Applied PEP 639 by specifying the license fields in pyproject.toml.
(<code>[#3522 ](https://github.com/urllib3/urllib3/issues/3522 )
<https://github.com/urllib3/urllib3/issues/3522> ;</code>__)</li>
<li>Updated exceptions to save and restore more properties during the
pickle/serialization process.
(<code>[#3567 ](https://github.com/urllib3/urllib3/issues/3567 )
<https://github.com/urllib3/urllib3/issues/3567> ;</code>__)</li>
<li>Added <code>verify_flags</code> option to
<code>create_urllib3_context</code> with a default of
<code>VERIFY_X509_PARTIAL_CHAIN</code> and
<code>VERIFY_X509_STRICT</code> for Python 3.13+.
(<code>[#3571 ](https://github.com/urllib3/urllib3/issues/3571 )
<https://github.com/urllib3/urllib3/issues/3571> ;</code>__)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Fixed a bug with partial reads of streaming data in Emscripten.
(<code>[#3555 ](https://github.com/urllib3/urllib3/issues/3555 )
<https://github.com/urllib3/urllib3/issues/3555> ;</code>__)</li>
</ul>
<h2>Misc</h2>
<ul>
<li>Switched to uv for installing development dependecies.
(<code>[#3550 ](https://github.com/urllib3/urllib3/issues/3550 )
<https://github.com/urllib3/urllib3/issues/3550> ;</code>__)</li>
<li>Removed the <code>multiple.intoto.jsonl</code> asset from GitHub
releases. Attestation of release files since v2.3.0 can be found on
PyPI. (<code>[#3566 ](https://github.com/urllib3/urllib3/issues/3566 )
<https://github.com/urllib3/urllib3/issues/3566> ;</code>__)</li>
</ul>
<h1>2.3.0 (2024-12-22)</h1>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/urllib3/urllib3/commit/aaab4eccc10c965897540b21e15f11859d0b62e7 "><code>aaab4ec</code></a>
Release 2.5.0</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/7eb4a2aafe49a279c29b6d1f0ed0f42e9736194f "><code>7eb4a2a</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/f05b1329126d5be6de501f9d1e3e36738bc08857 "><code>f05b132</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/d03fe327a71d09728512217149f269763671f296 "><code>d03fe32</code></a>
Fix HTTP tunneling with IPv6 in older Python versions</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/11661e9bb4278e43d081f47a516e287a928c2206 "><code>11661e9</code></a>
Bump github/codeql-action from 3.28.0 to 3.29.0 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3624 ">#3624</a>)</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/6a0ecc6b16fe30f721021b44a81d19615098c71e "><code>6a0ecc6</code></a>
Update v2 migration guide to 2.4.0 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3621 ">#3621</a>)</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/8e32e60d9024c05bc6f7adda08bdf6c539d0b0d4 "><code>8e32e60</code></a>
Raise exception for shutdown on a connection already released to the
pool (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3 ">#3</a>...</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/9996e0fbf90b77083ad3c73737a6c6395703faa9 "><code>9996e0f</code></a>
Fix emscripten CI for Chrome 137+ (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3599 ">#3599</a>)</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/4fd1a99a59725faf0efc946ce3b6bc9a194420af "><code>4fd1a99</code></a>
Bump RECENT_DATE (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3617 ">#3617</a>)</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/c4b5917e911a90c8bf279448df8952a682294135 "><code>c4b5917</code></a>
Add support for the new <code>compression.zstd</code> module in Python
3.14 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3611 ">#3611</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/urllib3/urllib3/compare/2.2.3...2.5.0 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/e2b-dev/E2B/network/alerts ).
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-18 21:20:53 -07:00
dependabot[bot]
4091da6fde
Bump protobuf from 5.29.4 to 5.29.5 in /packages/python-sdk in the pip group across 1 directory ( #780 )
...
Bumps the pip group with 1 update in the /packages/python-sdk directory:
[protobuf](https://github.com/protocolbuffers/protobuf ).
Updates `protobuf` from 5.29.4 to 5.29.5
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/protocolbuffers/protobuf/commit/f5de0a0495faa63b4186fc767324f8b9a7bf4fc4 "><code>f5de0a0</code></a>
Updating version.json and repo version numbers to: 29.5</li>
<li><a
href="https://github.com/protocolbuffers/protobuf/commit/85637662f7fb32722416b127ce3b1808609fc0fa "><code>8563766</code></a>
Merge pull request <a
href="https://redirect.github.com/protocolbuffers/protobuf/issues/21858 ">#21858</a>
from shaod2/py-cp-29</li>
<li><a
href="https://github.com/protocolbuffers/protobuf/commit/05ba1a8104c5cc39a7b00b749883bbd2de8bca79 "><code>05ba1a8</code></a>
Add recursion depth limits to pure python</li>
<li><a
href="https://github.com/protocolbuffers/protobuf/commit/1ef3f01c4647df8e63d989489bf1ec1acbcbf8aa "><code>1ef3f01</code></a>
Internal pure python fixes</li>
<li><a
href="https://github.com/protocolbuffers/protobuf/commit/69cca9b7f591ab0edcbd348a5f12ad7103e98f84 "><code>69cca9b</code></a>
Remove fast-path check for non-clang compilers in MessageCreator. (<a
href="https://redirect.github.com/protocolbuffers/protobuf/issues/21612 ">#21612</a>)</li>
<li><a
href="https://github.com/protocolbuffers/protobuf/commit/21fdb7acdb11fbca234570fa30d2e5687eaf12f6 "><code>21fdb7a</code></a>
fix: contains check segfaults on empty map (<a
href="https://redirect.github.com/protocolbuffers/protobuf/issues/20446 ">#20446</a>)
(<a
href="https://redirect.github.com/protocolbuffers/protobuf/issues/20904 ">#20904</a>)</li>
<li><a
href="https://github.com/protocolbuffers/protobuf/commit/03c50e38747da472e47ad1ceae5dfb02fa90ff66 "><code>03c50e3</code></a>
Re-enable aarch64 tests. (<a
href="https://redirect.github.com/protocolbuffers/protobuf/issues/20853 ">#20853</a>)</li>
<li><a
href="https://github.com/protocolbuffers/protobuf/commit/128f0aafd9d32dc537fffb6b6fd9aa7f680ee55c "><code>128f0aa</code></a>
Add volatile to featuresResolved (<a
href="https://redirect.github.com/protocolbuffers/protobuf/issues/20767 ">#20767</a>)</li>
<li><a
href="https://github.com/protocolbuffers/protobuf/commit/bdd49bb1413710b49142d8d0da54e79cecb72724 "><code>bdd49bb</code></a>
Merge pull request <a
href="https://redirect.github.com/protocolbuffers/protobuf/issues/20755 ">#20755</a>
from protocolbuffers/29.x-202503192110</li>
<li><a
href="https://github.com/protocolbuffers/protobuf/commit/c65946848f55148b1ee0ff6c5bfc3e83c4fce90e "><code>c659468</code></a>
Updating version.json and repo version numbers to: 29.5-dev</li>
<li>See full diff in <a
href="https://github.com/protocolbuffers/protobuf/compare/v5.29.4...v5.29.5 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/e2b-dev/E2B/network/alerts ).
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-18 14:26:35 +02:00
github-actions[bot]
995c494d4a
[skip ci] Release new versions
2025-06-16 18:46:47 +00:00
Mish Ushakov
96f8c64b6f
Changes timeout exception format ( #778 )
...
- this is a follow-up to #777 , fixing the timeout exception format
option
2025-06-16 11:42:40 -07:00