Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aysher #2087

Closed
wants to merge 135 commits into from
Closed

Aysher #2087

wants to merge 135 commits into from

Conversation

SherfeyInv
Copy link

Summary

How was it tested?

mikeland73 and others added 30 commits April 24, 2024 11:08
## Summary

Simple implementation for generating a prod dockerfile from a devbox
project.

Notes:

* Flag to create this is hidden.
* Currently this requires a `start` script. There are also optional
`install` and `build` scripts.

Follow ups:
* In addition to `start` script I want to support services but I was
having trouble getting process compose to start as Dockerfile CMD. Will
debug further and add in follow up.
* We can greatly optimize the Dockerfile by downloading devbox
dependencies first before coping source code. This will likely require a
new devbox command or flag.

## How was it tested?

Tested using this project
https://github.com/mikeland73/hello-world-server

```bash
devbox generate dockerfile --for prod
docker build . -t hello-world
docker run -p 8080:8080 hello-world
```
## Summary

This PR improves segment logging by:

* Adding orgID if user is logged in.
* Using userID if user is logged in.
* Removing anonymousID if userID is non zero. (Segment will remove
userID if we pass an anonymousID)
* Add new event to track `nix build`

This allows us to:

* Use orgID to segment data, potentially allowing individual orgs to
export/use their own data as needed.
* Track logged in users.
* Track which packages are slow to build.

Private Notes:

* We still respect `DO_NOT_TRACK` even if user is logged in. 
* userID and orgID data is only sent if user is logged in.

cc: @Lagoja 

## How was it tested?

Logged to development segment/amplitude, built a quick table showing nix
average build times:

<img width="1208" alt="image"
src="https://github.com/jetify-com/devbox/assets/544948/4ec2d49e-c886-4032-a5c6-9dff6986d780">
Increase the `nix --version` command timeout from 3 seconds to 10
seconds. It was timing out in CI.
…#2021)

## Summary

The devbox installer has compatibility issues with macos-14 so changing
from latest to 13 until that is fixed

## How was it tested?
…shellenv's recompute flag with default=false (jetify-com#2013)

## Summary

Credit to @dax and jetify-com#1963 for pointing out the need for this, and
pioneering this solution.
This PR merely nudges the code to be a bit neater.

## How was it tested?

```
% git diff
diff --git a/internal/boxcli/shellenv.go b/internal/boxcli/shellenv.go
index 991c2bec..8076e125 100644
--- a/internal/boxcli/shellenv.go
+++ b/internal/boxcli/shellenv.go
@@ -78,6 +78,9 @@ func shellEnvFunc(
        cmd *cobra.Command,
        flags shellEnvCmdFlags,
 ) (string, error) {
+       fmt.Printf("shellenv --recompute flag is %v\n", flags.recompute)
+       return "", nil
+
        env, err := flags.Env(flags.config.path)
        if err != nil {
                return "", err
```

compiled via `devbox run build`, and then:

```
 % devbox shellenv
shellenv --recompute flag is true

hash -r
 % devbox global shellenv
shellenv --recompute flag is false

hash -r
```
## Summary
`devbox shell` and `devbox shell --pure` have differences in inheriting
the host shell's env variables. But there is no devbox-defined env
variable for users and devbox itself to know if it is in a pure shell or
regular shell.
This PR sets a `DEVBOX_PURE_SHELL=1` env variable to help fix that
issue.

This will allow users to differentiate and customize their setup based
on if they're in a pure shell or not. For example, not sourcing
`.bashrc` if in a pure shell.

## How was it tested?
- `devbox run build`
- `devbox shell` then `env | grep "DEVBOX_PURE_SHELL"`
- exit
- `devbox shell --pure` then `env | grep "DEVBOX_PURE_SHELL"`
- confirm the env variable is set for pure shell and not for regular
shell.
## Summary

TSIA

## How was it tested?
## Summary

## How was it tested?

Signed-off-by: guangwu <guoguangwug@gmail.com>
…#2028)

To check if nix daemon is running, Devbox runs:

	nix store info --json --store daemon

This fails on older versions of Nix for a couple reasons:

- Before Nix 2.19.0, `nix store info` was `nix store ping`.
- Before Nix 2.14.0, the `--json` flag wasn't supported.

Check for both of these versions when constructing the `nix store`
command so it works for Nix versions 2.12 - 2.21+.

Also add a `nix.VersionInfo.AtLeast` method and constants to make
checking for supported major Nix versions easier.

Tested by running the `nix store` commands on all supported Nix
versions.
## Summary

This changes how `installNixPackagesToStore` calls `nix.Build` so that
it installs all installables in same nix command.

It does this by grouping all installables into two groups, one for
allow-insecure and other for default and runs `build` on both groups (if
not empty)

I was able to remove `packageInstallErrorHandler` because it is already
called in `packagesToInstallInStore` so we will never actually try to
build something that can't build on the system, or if it requires
`--allow-insecure` we will notice it then.

This does change our segment logging to group packages together for
install times, so we will need to do some more work on the metrics side
to determine slow packages.

## How was it tested?

* Installed multiple packages not present in my nix store at once,
including a combination of secure and insecure ones.
* Tried to install something that doesn't build on my system, saw
correct error message

## Perf test

Anecdotal test:

Using the following
<img width="257" alt="image"
src="https://github.com/jetify-com/devbox/assets/544948/8b1ab39c-7a1b-40d3-ab5a-516cde3b1525">


Before 
<img width="261" alt="image"
src="https://github.com/jetify-com/devbox/assets/544948/ce397f59-1eaf-41dc-8256-6306f36e596b">

After 
<img width="293" alt="image"
src="https://github.com/jetify-com/devbox/assets/544948/55ed3214-ff1d-4115-b767-7ad5d29dedd3">
## Summary

Bumps to v1.5.0

Note: Because process-compose flake is not in any cache installing a new
version can be pretty slow (it has to build which means it has to
download dependencies in order to build). A few solutions:

* We could use nixpkgs (which lags the repo version by a few versions)
* We could use runx to install it (not nix, but it gets the latest
version)
* We could store in our own cache.

## How was it tested?

Tested running services on a few examples.
## Summary

If store path exists locally, we know we can use that store path in
`fetchClosure`. This helps speed up almost any operation where state is
not up to date and we need to check if some store path is in cache.

## How was it tested?

* added print statement

`devbox run echo 5`
…etify-com#2044)

## Summary

Current `devbox search` UI only shows the 10 newest versions for a
package, unless the developer runs the command with `--show-all`. With
the current presentation, this may confuse developers by making it seem
like only 10 versions are available at all.

This pr Adds a `...` at the end to indicate that more versions are
available. For example:

```
Found 8+ results for "python":

* python  (3.13.0a6, 3.13.0a5, 3.13.0a3, 3.13.0a2, 3.13.0a1, 3.12.3, 3.12.2, 3.12.1, 3.12.0, 3.12.0rc3 ...)
* python-cosmopolitan  (3.6.14)
* python-launcher  (1.0.0)
* python-qt  (3.5.2, 3.5.1, 3.4.2, 3.3.0, 3.2)
* python-swiftclient  (4.2.0, 4.1.0, 4.0.0, 3.13.1, 3.13.0, 3.12.0)
* python-language-server  (2022-02-18, 2021-09-08, 2021-05-20, 2020-10-08, 2020-06-19, 2020-04-24)
* python-matter-server  (5.10.0, 5.9.0, 5.8.1, 5.8.0, 5.7.0b2, 5.5.3, 5.1.1, 5.0.3, 4.0.2, 4.0.1 ...)
* python-full  (3.13.0a6, 3.13.0a5, 3.13.0a3, 3.13.0a2, 3.13.0a1, 3.12.3, 3.12.2, 3.12.1, 3.12.0, 3.11.9 ...)

Warning: Showing top 10 results and truncated versions. Use --show-all to show all.
```

## How was it tested?

Debugged locally, tested with `go` and `python`
Also verified that the ellipses don't appear when the `--show-all` flag
is set
## Summary

Add documentation for RabbitMQ + MongoD

## How was it tested?

Localhost + `npm run build` to test broken links
## Summary

TSIA

## How was it tested?

localhost + npm run build
…-com#2054)

Reverts jetify-com#2042

jetify-com#2042 introduced a bug where adding non-cached packages
would fail to add them to the flake on the first attempt. (it would
succeed on subsequent attempts after the package is already in the
store).

The root cause is that `fetchNarInfoStatus` gets called twice per
package (even though we cache it and we're not supposed to call it
twice). The first call returns `false` because the package is not
cached. The second call returns `true` because the package is already in
store. This discrepancy essentially causes the package not to appear on
the flake at all. When updating state again, the package is already in
the nix store so both `fetchNarInfoStatus` calls return true.

I think reverting this is best immediate course of action. In follow up
we should fix `fetchNarInfoStatus` so it only gets called once (it will
improve performance and is more correct).

Later on we can think of better way to do jetify-com#2042. The
current implementation is a bit fragile and not 100% consistent with the
initial intention of the function, so I'm concerned it can lead to more
bugs in the future.
## Summary

TSIA

## How was it tested?
## Summary

Fixes bug described here jetify-com#2054

A better (but a bit more involved) solution is to parallelize by output.
Currently we parallelize by meta-output (which includes
`__default_output__`). This has two downsides:

* `__default_output__` can be multiple outputs, in which case we don't
parallelize them at all.
* We still do redundant work when `__default_output__` is multiple
outputs. (once as `__default_output__` and once for each individual
outout that forms part of defaults).

## How was it tested?
…ify-com#2060)

Bumps [rexml](https://github.com/ruby/rexml) from 3.2.5 to 3.2.8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ruby/rexml/releases">rexml's
releases</a>.</em></p>
<blockquote>
<h2>REXML 3.2.8 - 2024-05-16</h2>
<h3>Fixes</h3>
<ul>
<li>Suppressed a warning</li>
</ul>
<h2>REXML 3.2.7 - 2024-05-16</h2>
<h3>Improvements</h3>
<ul>
<li>
<p>Improve parse performance by using <code>StringScanner</code>.</p>
<ul>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/106">GH-106</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/107">GH-107</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/108">GH-108</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/109">GH-109</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/112">GH-112</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/113">GH-113</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/114">GH-114</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/115">GH-115</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/116">GH-116</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/117">GH-117</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/118">GH-118</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/119">GH-119</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/121">GH-121</a></p>
</li>
<li>
<p>Patch by NAITOH Jun.</p>
</li>
</ul>
</li>
<li>
<p>Improved parse performance when an attribute has many
<code>&lt;</code>s.</p>
<ul>
<li><a
href="https://github.com/ruby/rexml/issues/124">GH-124</a></li>
</ul>
</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>
<p>XPath: Fixed a bug of <code>normalize_space(array)</code>.</p>
<ul>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/110">GH-110</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/111">GH-111</a></p>
</li>
<li>
<p>Patch by flatisland.</p>
</li>
</ul>
</li>
<li>
<p>XPath: Fixed a bug that wrong position is used with nested path.</p>
<ul>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/110">GH-110</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/122">GH-122</a></p>
</li>
<li>
<p>Reported by jcavalieri.</p>
</li>
<li>
<p>Patch by NAITOH Jun.</p>
</li>
</ul>
</li>
<li>
<p>Fixed a bug that an exception message can't be generated for
invalid encoding XML.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ruby/rexml/blob/master/NEWS.md">rexml's
changelog</a>.</em></p>
<blockquote>
<h2>3.2.8 - 2024-05-16 {#version-3-2-8}</h2>
<h3>Fixes</h3>
<ul>
<li>Suppressed a warning</li>
</ul>
<h2>3.2.7 - 2024-05-16 {#version-3-2-7}</h2>
<h3>Improvements</h3>
<ul>
<li>
<p>Improve parse performance by using <code>StringScanner</code>.</p>
<ul>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/106">GH-106</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/107">GH-107</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/108">GH-108</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/109">GH-109</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/112">GH-112</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/113">GH-113</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/114">GH-114</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/115">GH-115</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/116">GH-116</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/117">GH-117</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/118">GH-118</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/119">GH-119</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/121">GH-121</a></p>
</li>
<li>
<p>Patch by NAITOH Jun.</p>
</li>
</ul>
</li>
<li>
<p>Improved parse performance when an attribute has many
<code>&lt;</code>s.</p>
<ul>
<li><a
href="https://github.com/ruby/rexml/issues/124">GH-124</a></li>
</ul>
</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>
<p>XPath: Fixed a bug of <code>normalize_space(array)</code>.</p>
<ul>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/110">GH-110</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/111">GH-111</a></p>
</li>
<li>
<p>Patch by flatisland.</p>
</li>
</ul>
</li>
<li>
<p>XPath: Fixed a bug that wrong position is used with nested path.</p>
<ul>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/110">GH-110</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/122">GH-122</a></p>
</li>
<li>
<p>Reported by jcavalieri.</p>
</li>
<li>
<p>Patch by NAITOH Jun.</p>
</li>
</ul>
</li>
<li>
<p>Fixed a bug that an exception message can't be generated for</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ruby/rexml/commit/1cf37bab79d61d6183bbda8bf525ed587012b718"><code>1cf37ba</code></a>
Add 3.2.8 entry</li>
<li><a
href="https://github.com/ruby/rexml/commit/b67081caa807fad48d31983137b7ed8711e7f0df"><code>b67081c</code></a>
Remove an unused variable (<a
href="https://github.com/ruby/rexml/issues/128">#128</a>)</li>
<li><a
href="https://github.com/ruby/rexml/commit/94e180e939baff8f7e328a287bb96ebbd99db6eb"><code>94e180e</code></a>
Suppress a warning</li>
<li><a
href="https://github.com/ruby/rexml/commit/d574ba5fe1c40adbafbf16e47533f4eb32b43e60"><code>d574ba5</code></a>
ci: install only gems required for running tests (<a
href="https://github.com/ruby/rexml/issues/129">#129</a>)</li>
<li><a
href="https://github.com/ruby/rexml/commit/4670f8fc187c89d0504d027ea997959287143453"><code>4670f8f</code></a>
Add missing Thanks section</li>
<li><a
href="https://github.com/ruby/rexml/commit/9ba35f9f032c07c39b8c86536ac13a9cb313bef2"><code>9ba35f9</code></a>
Bump version</li>
<li><a
href="https://github.com/ruby/rexml/commit/085def07425561862d8329001168d8bc9c75ae8f"><code>085def0</code></a>
Add 3.2.7 entry</li>
<li><a
href="https://github.com/ruby/rexml/commit/4325835f92f3f142ebd91a3fdba4e1f1ab7f1cfb"><code>4325835</code></a>
Read quoted attributes in chunks (<a
href="https://github.com/ruby/rexml/issues/126">#126</a>)</li>
<li><a
href="https://github.com/ruby/rexml/commit/e77365e2d1c9cdb822c7e09b05fc5a4903d92c23"><code>e77365e</code></a>
Exclude older than 2.6 on macos-14</li>
<li><a
href="https://github.com/ruby/rexml/commit/bf2c8edb5facb206c25a62952aa37218793283e6"><code>bf2c8ed</code></a>
Move development dependencies to Gemfile (<a
href="https://github.com/ruby/rexml/issues/124">#124</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ruby/rexml/compare/v3.2.5...v3.2.8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rexml&package-manager=bundler&previous-version=3.2.5&new-version=3.2.8)](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 this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/jetify-com/devbox/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…-com#2059)

## Summary

* Use new API
* Allow devbox to use multiple caches for read. 
* Split read vs write caches

## How was it tested?

Untested, needs new api to be deployed

---------

Signed-off-by: Mike Landau <mikeland86@gmail.com>
Co-authored-by: Greg Curtis <greg.curtis@jetpack.io>
…-com#2061)

Bumps [rexml](https://github.com/ruby/rexml) from 3.2.6 to 3.2.8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ruby/rexml/releases">rexml's
releases</a>.</em></p>
<blockquote>
<h2>REXML 3.2.8 - 2024-05-16</h2>
<h3>Fixes</h3>
<ul>
<li>Suppressed a warning</li>
</ul>
<h2>REXML 3.2.7 - 2024-05-16</h2>
<h3>Improvements</h3>
<ul>
<li>
<p>Improve parse performance by using <code>StringScanner</code>.</p>
<ul>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/106">GH-106</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/107">GH-107</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/108">GH-108</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/109">GH-109</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/112">GH-112</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/113">GH-113</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/114">GH-114</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/115">GH-115</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/116">GH-116</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/117">GH-117</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/118">GH-118</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/119">GH-119</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/121">GH-121</a></p>
</li>
<li>
<p>Patch by NAITOH Jun.</p>
</li>
</ul>
</li>
<li>
<p>Improved parse performance when an attribute has many
<code>&lt;</code>s.</p>
<ul>
<li><a
href="https://github.com/ruby/rexml/issues/124">GH-124</a></li>
</ul>
</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>
<p>XPath: Fixed a bug of <code>normalize_space(array)</code>.</p>
<ul>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/110">GH-110</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/111">GH-111</a></p>
</li>
<li>
<p>Patch by flatisland.</p>
</li>
</ul>
</li>
<li>
<p>XPath: Fixed a bug that wrong position is used with nested path.</p>
<ul>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/110">GH-110</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/122">GH-122</a></p>
</li>
<li>
<p>Reported by jcavalieri.</p>
</li>
<li>
<p>Patch by NAITOH Jun.</p>
</li>
</ul>
</li>
<li>
<p>Fixed a bug that an exception message can't be generated for
invalid encoding XML.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ruby/rexml/blob/master/NEWS.md">rexml's
changelog</a>.</em></p>
<blockquote>
<h2>3.2.8 - 2024-05-16 {#version-3-2-8}</h2>
<h3>Fixes</h3>
<ul>
<li>Suppressed a warning</li>
</ul>
<h2>3.2.7 - 2024-05-16 {#version-3-2-7}</h2>
<h3>Improvements</h3>
<ul>
<li>
<p>Improve parse performance by using <code>StringScanner</code>.</p>
<ul>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/106">GH-106</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/107">GH-107</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/108">GH-108</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/109">GH-109</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/112">GH-112</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/113">GH-113</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/114">GH-114</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/115">GH-115</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/116">GH-116</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/117">GH-117</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/118">GH-118</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/119">GH-119</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/121">GH-121</a></p>
</li>
<li>
<p>Patch by NAITOH Jun.</p>
</li>
</ul>
</li>
<li>
<p>Improved parse performance when an attribute has many
<code>&lt;</code>s.</p>
<ul>
<li><a
href="https://github.com/ruby/rexml/issues/124">GH-124</a></li>
</ul>
</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>
<p>XPath: Fixed a bug of <code>normalize_space(array)</code>.</p>
<ul>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/110">GH-110</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/111">GH-111</a></p>
</li>
<li>
<p>Patch by flatisland.</p>
</li>
</ul>
</li>
<li>
<p>XPath: Fixed a bug that wrong position is used with nested path.</p>
<ul>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/110">GH-110</a></p>
</li>
<li>
<p><a
href="https://github.com/ruby/rexml/issues/122">GH-122</a></p>
</li>
<li>
<p>Reported by jcavalieri.</p>
</li>
<li>
<p>Patch by NAITOH Jun.</p>
</li>
</ul>
</li>
<li>
<p>Fixed a bug that an exception message can't be generated for</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ruby/rexml/commit/1cf37bab79d61d6183bbda8bf525ed587012b718"><code>1cf37ba</code></a>
Add 3.2.8 entry</li>
<li><a
href="https://github.com/ruby/rexml/commit/b67081caa807fad48d31983137b7ed8711e7f0df"><code>b67081c</code></a>
Remove an unused variable (<a
href="https://github.com/ruby/rexml/issues/128">#128</a>)</li>
<li><a
href="https://github.com/ruby/rexml/commit/94e180e939baff8f7e328a287bb96ebbd99db6eb"><code>94e180e</code></a>
Suppress a warning</li>
<li><a
href="https://github.com/ruby/rexml/commit/d574ba5fe1c40adbafbf16e47533f4eb32b43e60"><code>d574ba5</code></a>
ci: install only gems required for running tests (<a
href="https://github.com/ruby/rexml/issues/129">#129</a>)</li>
<li><a
href="https://github.com/ruby/rexml/commit/4670f8fc187c89d0504d027ea997959287143453"><code>4670f8f</code></a>
Add missing Thanks section</li>
<li><a
href="https://github.com/ruby/rexml/commit/9ba35f9f032c07c39b8c86536ac13a9cb313bef2"><code>9ba35f9</code></a>
Bump version</li>
<li><a
href="https://github.com/ruby/rexml/commit/085def07425561862d8329001168d8bc9c75ae8f"><code>085def0</code></a>
Add 3.2.7 entry</li>
<li><a
href="https://github.com/ruby/rexml/commit/4325835f92f3f142ebd91a3fdba4e1f1ab7f1cfb"><code>4325835</code></a>
Read quoted attributes in chunks (<a
href="https://github.com/ruby/rexml/issues/126">#126</a>)</li>
<li><a
href="https://github.com/ruby/rexml/commit/e77365e2d1c9cdb822c7e09b05fc5a4903d92c23"><code>e77365e</code></a>
Exclude older than 2.6 on macos-14</li>
<li><a
href="https://github.com/ruby/rexml/commit/bf2c8edb5facb206c25a62952aa37218793283e6"><code>bf2c8ed</code></a>
Move development dependencies to Gemfile (<a
href="https://github.com/ruby/rexml/issues/124">#124</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ruby/rexml/compare/v3.2.6...v3.2.8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rexml&package-manager=bundler&previous-version=3.2.6&new-version=3.2.8)](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 this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/jetify-com/devbox/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…m#2065)

## Summary

Credentials command is hidden, this flag can help debugging.

## How was it tested?
```
% git grep "jetpack cloud"
internal/boxcli/push.go:                Short: "Push a [global] config. Leave empty to use jetpack cloud. Can " +
internal/boxcli/secrets.go:             Short:             "Interact with devbox secrets in jetpack cloud.",
internal/boxcli/secrets.go:             Short: "Initialize secrets management with jetpack cloud",
internal/devbox/devbox.go:                              "Ignoring env_from directive. jetpack cloud secrets is not "+
internal/devbox/devbox.go:                                      "Error reading secrets from jetpack cloud: %s\n\n",
internal/pullbox/s3/pull.go:            "Logged in as %s, pulling from jetpack cloud (profile: %s)\n",
```

cleared these up
## Summary

TSIA

## How was it tested?
## Summary

The main change this PR does is that it considers jetify read caches
when determining if a given store path is in binary cache. It loops
though all caches (default nix cache, jetify provided caches) and if it
finds a path in any one of them, we know output is in binary cache. It
also changes the fetch nar info function so that it stores which cache
each output is in since we may now use multiple caches.

List of changes:

* `fetchNarInfoStatusOnce` now checks all caches and returns which cache
each output is in.
* Moved in memory cache to be at the request level instead of output
level. This is more efficient because the meta-output
`__default_output__ ` can now propertly use the request cache.
* Changed providers to be true singletons.
* Small improvements to flake template to prepare for each output using
own cache. (Currently there's a hack in there where we always use nix
cache as `fromStore` even if not correct. See comment in code.

## How was it tested?

Installed `https://github.com/Lagoja/terraform-test` and confirmed cache
was used.
The list had `readme` instead of `description`

## Summary

## How was it tested?

Signed-off-by: Saulo Vallory <me@saulo.engineer>
@savil
Copy link
Collaborator

savil commented Aug 13, 2024

@SherfeyInv can you add some context to this PR, please? what is the goal here?

mikeland73 and others added 27 commits August 15, 2024 12:19
## Summary

Uses newest version of runx
(jetify-com/opensource#368)

cc: @mikael-lindstrom

## How was it tested?

```
rm -rf ~/Library/Caches/runx/pkgs/mvdan
devbox run fmt  # which requires mvdan/gofumpt
```
Add tests that install Python with Devbox and then run scripts that import numpy
and psycopg2. They currently fail on Linux due to linker errors.

To run the tests on Linux with Docker, run:

	devbox run -e DEVBOX_RUN_FAILING_TESTS=1 docker-testscripts -test.run '^TestScripts$/python'

The new docker-testscripts script in devbox.json runs testscripts in a Docker
container to make it easier to test various Linux distros and architectures.
…yblog/Gemfile.lock to reduce vulnerabilities

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-RUBY-REXML-7814166
## Summary

## How was it tested?

Signed-off-by: Michael Gallagher <mjgallag@gmail.com>
Start porting the glibc patching script (which has expanded to patching
other libraries too) over to Go.

To make this change more incremental, this commit only ports copying the
original package's files to the patched package (basically the `cp`
command). Devbox still runs the embedded bash script until the rest of
it is ported.

The general patching steps are:

- When generating the `glibc-patch.nix` flake, Devbox gets the absolute
  path to itself and adds it as a flake input. This makes devbox
  available in the flake's build.
- Instead of running `glibc-patch.bash` as the flake's builder, run
  `devbox patch <pkg>`.
Bumps the npm_and_yarn group with 2 updates in the /docs/app directory: [elliptic](https://github.com/indutny/elliptic) and [webpack](https://github.com/webpack/webpack).


Updates `elliptic` from 6.5.5 to 6.5.7
- [Commits](indutny/elliptic@v6.5.5...v6.5.7)

Updates `webpack` from 5.92.1 to 5.94.0
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](webpack/webpack@v5.92.1...v5.94.0)

---
updated-dependencies:
- dependency-name: elliptic
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: webpack
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Ron Sherfey <aysherintel@icloud.com>
…pp/npm_and_yarn-9b148c16b4

Bump the npm_and_yarn group across 1 directory with 2 updates
…a0ce8616cec

[Snyk] Security upgrade jekyll from 3.9.3 to 3.9.4
…2dbd3914a6c

[Snyk] Security upgrade selenium-webdriver from 4.21.1 to 4.22.0
…1e57de0b004

[Snyk] Security upgrade stimulus-rails from 1.3.3 to 1.3.4
…8b6f1c2cbea

[Snyk] Fix for 8 vulnerabilities
…update

Bumps the npm_and_yarn group with 1 update in the /docs/app directory: [micromatch](https://github.com/micromatch/micromatch).
Bumps the npm_and_yarn group with 1 update in the /vscode-extension directory: [micromatch](https://github.com/micromatch/micromatch).


Updates `micromatch` from 4.0.7 to 4.0.8
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md)
- [Commits](micromatch/micromatch@4.0.7...4.0.8)

Updates `micromatch` from 4.0.5 to 4.0.8
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md)
- [Commits](micromatch/micromatch@4.0.7...4.0.8)

---
updated-dependencies:
- dependency-name: micromatch
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: micromatch
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the bundler group with 1 update in the /examples/stacks/rails/blog directory: [rexml](https://github.com/ruby/rexml).


Updates `rexml` from 3.2.8 to 3.3.6
- [Release notes](https://github.com/ruby/rexml/releases)
- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md)
- [Commits](ruby/rexml@v3.2.8...v3.3.6)

---
updated-dependencies:
- dependency-name: rexml
  dependency-type: indirect
  dependency-group: bundler
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Ron Sherfey <aysherintel@icloud.com>
…8492a4cf171

[Snyk] Security upgrade jekyll from 3.9.3 to 3.9.4
…acks/rails/blog/bundler-6e3bc67060

build(deps-dev): bump rexml from 3.2.8 to 3.3.6 in /examples/stacks/rails/blog in the bundler group across 1 directory
…pp/npm_and_yarn-2b7a36c4f5

build(deps): bump the npm_and_yarn group across 2 directories with 1 update
…4ae1c3b3e32

[Snyk] Security upgrade @docusaurus/preset-classic from 3.4.0 to 3.5.0
…be3befd61bc

[Snyk] Fix for 5 vulnerabilities
…vulnerabilities

The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-ZIPP-7430899
…267ff54f403

[Snyk] Security upgrade zipp from 3.15.0 to 3.19.1
@savil savil closed this Sep 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.