Releases: hydro-project/hydro
hydro_std v0.11.0
Chore
- bump versions manually for renamed crates, per
RELEASING.md
- Rename HydroflowPlus to Hydro
Documentation
-
add
repository
field toCargo.toml
s, fix #1452
#1452Will trigger new releases of the following:
unchanged = 'hydroflow_deploy_integration', 'variadics', 'variadics_macro', 'pusherator'
(All other crates already have changes, so would be released anyway)
-
cleanups for the rename, fixing links
Commit Statistics
- 5 commits contributed to the release.
- 4 commits were understood as conventional.
- 4 unique issues were worked on: #1501, #1617, #1624, #1627
Commit Details
view details
- #1501
- #1617
- Rename HydroflowPlus to Hydro (162e49c)
- #1624
- Cleanups for the rename, fixing links (6ab6252)
- #1627
- Bump versions manually for renamed crates, per
RELEASING.md
(03b3a34)
- Bump versions manually for renamed crates, per
- Uncategorized
- Release dfir_lang v0.11.0, dfir_datalog_core v0.11.0, dfir_datalog v0.11.0, dfir_macro v0.11.0, hydroflow_deploy_integration v0.11.0, lattices_macro v0.5.8, variadics v0.0.8, variadics_macro v0.5.6, lattices v0.5.9, multiplatform_test v0.4.0, pusherator v0.0.10, dfir_rs v0.11.0, hydro_deploy v0.11.0, stageleft_macro v0.5.0, stageleft v0.6.0, stageleft_tool v0.5.0, hydro_lang v0.11.0, hydro_std v0.11.0, hydro_cli v0.11.0, safety bump 6 crates (9a7e486)
hydro_lang v0.11.0
Chore
- use same hashing library everywhere
Documentation
-
add
repository
field toCargo.toml
s, fix #1452
#1452Will trigger new releases of the following:
unchanged = 'hydroflow_deploy_integration', 'variadics', 'variadics_macro', 'pusherator'
(All other crates already have changes, so would be released anyway)
-
update
CHANGELOG.md
s for big rename
Generated before rename perRELEASING.md
instructions. -
cleanups for the rename, fixing links
Chore
- bump versions manually for renamed crates, per
RELEASING.md
- cleanup snapshots
- Rename Hydroflow -> DFIR
Work In Progress:- hydroflow_macro
- hydroflow_datalog_core
- hydroflow_datalog
- hydroflow_lang
- hydroflow
- Rename HydroflowPlus to Hydro
New Features
- add
round_robin
helpers for networking
Also fixes compiler crashes when using.enumerate()
on an un-batched
stream.
Bug Fixes
- drop nightly feature flag from trybuild codegen
- restrict lifetime parameters to be actually invariant
Our lifetimes were accidentally made covariant when the lifetime'a
was removed from the process/cluster tag type. This fixes that typing
hole, and also loosens some restrictions on the lifetime of deploy
environments.
Refactor
- use
match_box
macro to compile on stable - generalize quorum logic
New Features (BREAKING)
-
minimize dependencies pulled into
trybuild
builds
We don't needhydroflow_lang
in the runtime builds, do some feature
flagging to avoid it. -
mark non-deterministic operators as unsafe and introduce timestamped streams
Big PR.First big change is we introduce a
Timestamped
location. This is a bit
of a hybrid between top-level locations andTick
locations. The idea
is that you choose where timestamps are generated, and then have a
guarantee that everything after that will be atomically computed (useful
for making sure we add payloads to the log before ack-ing).The contract is that an operator or module that takes a
Timestamped
input must still be deterministic regardless of the stamps on messages
(which are hidden unless youtick_batch
). But unlike a top-level
stream (which has the same constraints), you have the atomicity
guarantee. Right now the guarantee is trivial since we have one global
tick for everything. But in the future when we want to apply
@davidchuyaya's optimizations this will be helpful to know when there
are causal dependencies on when data can be sent to others.Second change is we mark every non-deterministic operator (modulo
explicit annotations such asNoOrder
) with Rust'sunsafe
keyword.
This makes it super clear where non-determinism is taking place.I've used this to put
unsafe
blocks throughout our example code and
addSAFETY
annotations that argue why the non-determinism is safe (or
point out that we've explicitly documented / expect non-determinism). I
also added#![warn(unsafe_op_in_unsafe_fn)]
to the examples and the
template, since this forces good hygiene of annotating sources of
non-determinism even inside a module that is intentionally
non-deterministic.Paxos changes are mostly refactors, and I verified that the performance
is the same as before. -
allow runtime context to be referenced as a global constant
-
allow cluster self ID to be referenced as a global constant
This eliminates the need to storecluster.self_id()
in a local
variable first, instead you can directly referenceCLUSTER_SELF_ID
. -
introduce an unordered variant of streams to strengthen determinism guarantees
Previously, sending data from aCluster
would return a stream assumed
to have deterministic contents and ordering, which is false. This
introduces another type parameter forStream
which tracks whether
element ordering is expected to be deterministic, and restricts
operators such asfold
andreduce
to commutative aggregations
accordingly.
Bug Fixes (BREAKING)
- rename
union
tochain
and restrict LHS to be bounded
Returning aStream
fromunion
on unbounded streams was unsound,
since the order of outputs is not deterministic.
Refactor (BREAKING)
-
use
cfg(nightly)
instead of feature, remove-Z
flag, useDiagnostic::try_emit
Previous PR (#1587) website build did not work becausepanic = "abort"
is set on wasm, leading to aborts forproc_macro2::Span::unwrap()
calls.All tests except trybuild seem to pass on stable, WIP #1587 next
-
further reduce namespace pollution
-
don't re-export all of
hydroflow
Reduces namespace pollution when wildcard-importinghydroflow_plus
.
hydroflow_plus
Commit Statistics
- 15 commits contributed to the release.
- 38 days passed between releases.
- 15 commits were understood as conventional.
- 15 unique issues were worked on: #1559, #1562, #1565, #1566, #1568, #1574, #1575, #1583, #1584, #1589, #1590, #1597, #1598, #1606, #1611
hydroflow_plus
Commit Details
view details
- #1559
- Restrict lifetime parameters to be actually invariant (
f6989ba
)
- Restrict lifetime parameters to be actually invariant (
- #1562
- Don't re-export all of
hydroflow
(9f3c8c4
)
- Don't re-export all of
- #1565
- Rename
union
tochain
and restrict LHS to be bounded (eb1ad3a
)
- Rename
- #1566
- Add
round_robin
helpers for networking (22de01f
)
- Add
- #1568
- Introduce an unordered variant of streams to strengthen determinism guarantees (
4c5ca31
)
- Introduce an unordered variant of streams to strengthen determinism guarantees (
- #1574
- Allow cluster self ID to be referenced as a global constant (
a93a5e5
)
- Allow cluster self ID to be referenced as a global constant (
- #1575
- Allow runtime context to be referenced as a global constant (
f96676d
)
- Allow runtime context to be referenced as a global constant (
- #1583
- Generalize quorum logic (
ec55910
)
- Generalize quorum logic (
- #1584
- Mark non-deterministic operators as unsafe and introduce timestamped streams (
9393899
)
- Mark non-deterministic operators as unsafe and introduce timestamped streams (
- #1589
- Further reduce namespace pollution (
78f6a32
)
- Further reduce namespace pollution (
- #1590
- Use same hashing library everywhere (
0dc709e
)
- Use same hashing library everywhere (
- #1597
- Use
match_box
macro to compile on stable (9ea5f06
)
- Use
- #1598
- Drop nightly feature flag from trybuild codegen (
032cde6
)
- Drop nightly feature flag from trybuild codegen (
- #1606
- Use
cfg(nightly)
instead of feature, remove-Z
flag, useDiagnostic::try_emit
(251b103
)
- Use
- **[#1611](https://github.com/hydro-project...
hydro_deploy v0.11.0
Documentation
-
add
repository
field toCargo.toml
s, fix #1452
#1452Will trigger new releases of the following:
unchanged = 'hydroflow_deploy_integration', 'variadics', 'variadics_macro', 'pusherator'
(All other crates already have changes, so would be released anyway)
-
update
CHANGELOG.md
s for big rename
Generated before rename perRELEASING.md
instructions.
New Features
- use regular println when no tasks are active
Significantly improves the appearance of Hydroflow+ logs when the
terminal causes wrapping.
Commit Statistics
- 3 commits contributed to the release.
- 45 days passed between releases.
- 3 commits were understood as conventional.
- 2 unique issues were worked on: #1501, #1577
Commit Details
hydro_cli v0.11.0
Documentation
-
add
repository
field toCargo.toml
s, fix #1452
#1452Will trigger new releases of the following:
unchanged = 'hydroflow_deploy_integration', 'variadics', 'variadics_macro', 'pusherator'
(All other crates already have changes, so would be released anyway)
New Features (BREAKING)
-
mark non-deterministic operators as unsafe and introduce timestamped streams
Big PR.First big change is we introduce a
Timestamped
location. This is a bit
of a hybrid between top-level locations andTick
locations. The idea
is that you choose where timestamps are generated, and then have a
guarantee that everything after that will be atomically computed (useful
for making sure we add payloads to the log before ack-ing).The contract is that an operator or module that takes a
Timestamped
input must still be deterministic regardless of the stamps on messages
(which are hidden unless youtick_batch
). But unlike a top-level
stream (which has the same constraints), you have the atomicity
guarantee. Right now the guarantee is trivial since we have one global
tick for everything. But in the future when we want to apply
@davidchuyaya's optimizations this will be helpful to know when there
are causal dependencies on when data can be sent to others.Second change is we mark every non-deterministic operator (modulo
explicit annotations such asNoOrder
) with Rust'sunsafe
keyword.
This makes it super clear where non-determinism is taking place.I've used this to put
unsafe
blocks throughout our example code and
addSAFETY
annotations that argue why the non-determinism is safe (or
point out that we've explicitly documented / expect non-determinism). I
also added#![warn(unsafe_op_in_unsafe_fn)]
to the examples and the
template, since this forces good hygiene of annotating sources of
non-determinism even inside a module that is intentionally
non-deterministic.Paxos changes are mostly refactors, and I verified that the performance
is the same as before.
Commit Statistics
- 3 commits contributed to the release.
- 45 days passed between releases.
- 2 commits were understood as conventional.
- 2 unique issues were worked on: #1501, #1584
Commit Details
view details
- #1501
- #1584
- Mark non-deterministic operators as unsafe and introduce timestamped streams (9393899)
- Uncategorized
- Release dfir_lang v0.11.0, dfir_datalog_core v0.11.0, dfir_datalog v0.11.0, dfir_macro v0.11.0, hydroflow_deploy_integration v0.11.0, lattices_macro v0.5.8, variadics v0.0.8, variadics_macro v0.5.6, lattices v0.5.9, multiplatform_test v0.4.0, pusherator v0.0.10, dfir_rs v0.11.0, hydro_deploy v0.11.0, stageleft_macro v0.5.0, stageleft v0.6.0, stageleft_tool v0.5.0, hydro_lang v0.11.0, hydro_std v0.11.0, hydro_cli v0.11.0, safety bump 6 crates (9a7e486)
dfir_rs v0.11.0
Documentation
-
getLines
support named section markers, fix #1320 -
add
repository
field toCargo.toml
s, fix #1452
#1452Will trigger new releases of the following:
unchanged = 'hydroflow_deploy_integration', 'variadics', 'variadics_macro', 'pusherator'
(All other crates already have changes, so would be released anyway)
-
fix some broken github tree/main links
-
update
CHANGELOG.md
s for big rename
Generated before rename perRELEASING.md
instructions. -
cleanups for the rename, fixing links
New Features
-
initial flo implementation
Basic first pass implementation, without changing the current scheduler,
no breaking behavior. Adds the flo syntax (loop { ... }
), basic graph
structure checks, nested loop blocks, and two basic windowing operators
(batch()
andall_once()
).Next steps:
- Needs scheduler changes:
- Implement un-windowing operators
-
Implement windowing operator
repeat_n()
-
Bug Fixes
- avoid pulling in
clap
as a dependency
We only need it for examples, so this reduces compilation burden for
trybuild
.
Other
-
fix stable tests
SetsTRYBUILD=overwrite
on stable, as the output messages will often
not matchpinned-nightly
Adds env
HYDROFLOW_EXPECT_WARNINGS=ignore
to allow warning tests to
pass
Chore
- update links for renamed repo (excluding
CHANGELOG.md
s), fix #1571 - bump versions manually for renamed crates, per
RELEASING.md
- cleanup snapshots
- Rename Hydroflow -> DFIR
Work In Progress:- hydroflow_macro
- hydroflow_datalog_core
- hydroflow_datalog
- hydroflow_lang
- hydroflow
Refactor
- rename
two_pc
->two_pc_hf
for collision with hf+two_pc
example - use
match_box
macro to compile on stable - move rest of scheduler state into
Context
New Features (BREAKING)
-
minimize dependencies pulled into
trybuild
builds
We don't needhydroflow_lang
in the runtime builds, do some feature
flagging to avoid it. -
remove
import!
, fix #1110
in prep for rust stable #1587No good way to resolve the source file paths on stable
No way to get good diagnostics on external files in general, at all
Refactor (BREAKING)
-
use
cfg(nightly)
instead of feature, remove-Z
flag, useDiagnostic::try_emit
Previous PR (#1587) website build did not work becausepanic = "abort"
is set on wasm, leading to aborts forproc_macro2::Span::unwrap()
calls.All tests except trybuild seem to pass on stable, WIP #1587 next
hydroflow
Commit Statistics
- 10 commits contributed to the release.
- 38 days passed between releases.
- 10 commits were understood as conventional.
- 10 unique issues were worked on: #1555, #1578, #1585, #1594, #1597, #1600, #1601, #1606, #1608, #1611
hydroflow
Commit Details
view details
- #1555
- #1578
- Avoid pulling in
clap
as a dependency (64578f3
)
- Avoid pulling in
- #1585
- Initial flo implementation (
b8acd84
)
- Initial flo implementation (
- #1594
- Move rest of scheduler state into
Context
(e440623
)
- Move rest of scheduler state into
- #1597
- Use
match_box
macro to compile on stable (9ea5f06
)
- Use
- #1600
- #1601
- Rename
two_pc
->two_pc_hf
for collision with hf+two_pc
example (33eed2f
)
- Rename
- #1606
- Use
cfg(nightly)
instead of feature, remove-Z
flag, useDiagnostic::try_emit
(251b103
)
- Use
- #1608
- Fix stable tests (
7dea92b
)
- Fix stable tests (
- #1611
- Minimize dependencies pulled into
trybuild
builds (c65b4c4
)
- Minimize dependencies pulled into
Commit Statistics
- 8 commits contributed to the release.
- 8 commits were understood as conventional.
- 6 unique issues were worked on: #1501, #1620, #1623, #1624, #1627, #1628
Commit Details
dfir_macro v0.11.0
Chore
- upgrade to Docusaurus v3
Main breaking change is MDX parsing, which trips up on unescaped<
in
the generated docs, so we have to adjust the generator logic.
Documentation
-
add
repository
field toCargo.toml
s, fix #1452
#1452Will trigger new releases of the following:
unchanged = 'hydroflow_deploy_integration', 'variadics', 'variadics_macro', 'pusherator'
(All other crates already have changes, so would be released anyway)
-
fix some broken github tree/main links
-
update
CHANGELOG.md
s for big rename
Generated before rename perRELEASING.md
instructions. -
cleanups for the rename, fixing links
Chore
- update links for renamed repo (excluding
CHANGELOG.md
s), fix #1571 - bump versions manually for renamed crates, per
RELEASING.md
- Rename Hydroflow -> DFIR
Work In Progress:- hydroflow_macro
- hydroflow_datalog_core
- hydroflow_datalog
- hydroflow_lang
- hydroflow
New Features (BREAKING)
-
remove
import!
, fix #1110
in prep for rust stable #1587No good way to resolve the source file paths on stable
No way to get good diagnostics on external files in general, at all
Refactor (BREAKING)
-
use
cfg(nightly)
instead of feature, remove-Z
flag, useDiagnostic::try_emit
Previous PR (#1587) website build did not work becausepanic = "abort"
is set on wasm, leading to aborts forproc_macro2::Span::unwrap()
calls.All tests except trybuild seem to pass on stable, WIP #1587 next
hydroflow_macro
Commit Statistics
- 3 commits contributed to the release.
- 38 days passed between releases.
- 3 commits were understood as conventional.
- 3 unique issues were worked on: #1558, #1600, #1606
hydroflow_macro
Commit Details
view details
Commit Statistics
- 7 commits contributed to the release.
- 7 commits were understood as conventional.
- 5 unique issues were worked on: #1501, #1620, #1624, #1627, #1628
Commit Details
dfir_lang v0.11.0
New Features
-
initial flo implementation
Basic first pass implementation, without changing the current scheduler,
no breaking behavior. Adds the flo syntax (loop { ... }
), basic graph
structure checks, nested loop blocks, and two basic windowing operators
(batch()
andall_once()
).Next steps:
- Needs scheduler changes:
- Implement un-windowing operators
-
Implement windowing operator
repeat_n()
-
Other
-
fix stable tests
SetsTRYBUILD=overwrite
on stable, as the output messages will often
not matchpinned-nightly
Adds env
HYDROFLOW_EXPECT_WARNINGS=ignore
to allow warning tests to
pass
Documentation
-
add
repository
field toCargo.toml
s, fix #1452
#1452Will trigger new releases of the following:
unchanged = 'hydroflow_deploy_integration', 'variadics', 'variadics_macro', 'pusherator'
(All other crates already have changes, so would be released anyway)
-
update
CHANGELOG.md
s for big rename
Generated before rename perRELEASING.md
instructions. -
cleanups for the rename, fixing links
Chore
- update links for renamed repo (excluding
CHANGELOG.md
s), fix #1571 - bump versions manually for renamed crates, per
RELEASING.md
- Rename Hydroflow -> DFIR
Work In Progress:- hydroflow_macro
- hydroflow_datalog_core
- hydroflow_datalog
- hydroflow_lang
- hydroflow
New Features (BREAKING)
-
remove
import!
, fix #1110
in prep for rust stable #1587No good way to resolve the source file paths on stable
No way to get good diagnostics on external files in general, at all
Bug Fixes (BREAKING)
- rename
union
tochain
and restrict LHS to be bounded
Returning aStream
fromunion
on unbounded streams was unsound,
since the order of outputs is not deterministic.
Refactor (BREAKING)
-
use
cfg(nightly)
instead of feature, remove-Z
flag, useDiagnostic::try_emit
Previous PR (#1587) website build did not work becausepanic = "abort"
is set on wasm, leading to aborts forproc_macro2::Span::unwrap()
calls.All tests except trybuild seem to pass on stable, WIP #1587 next
hydroflow_lang
Commit Statistics
- 5 commits contributed to the release.
- 38 days passed between releases.
- 5 commits were understood as conventional.
- 5 unique issues were worked on: #1565, #1585, #1600, #1606, #1608
hydroflow_lang
Commit Details
view details
Commit Statistics
- 6 commits contributed to the release.
- 6 commits were understood as conventional.
- 5 unique issues were worked on: #1501, #1620, #1624, #1627, #1628
Commit Details
dfir_datalog_core v0.11.0
New Features
-
initial flo implementation
Basic first pass implementation, without changing the current scheduler,
no breaking behavior. Adds the flo syntax (loop { ... }
), basic graph
structure checks, nested loop blocks, and two basic windowing operators
(batch()
andall_once()
).Next steps:
- Needs scheduler changes:
- Implement un-windowing operators
-
Implement windowing operator
repeat_n()
-
Refactor (BREAKING)
-
use
cfg(nightly)
instead of feature, remove-Z
flag, useDiagnostic::try_emit
Previous PR (#1587) website build did not work becausepanic = "abort"
is set on wasm, leading to aborts forproc_macro2::Span::unwrap()
calls.All tests except trybuild seem to pass on stable, WIP #1587 next
Documentation
-
add
repository
field toCargo.toml
s, fix #1452
#1452Will trigger new releases of the following:
unchanged = 'hydroflow_deploy_integration', 'variadics', 'variadics_macro', 'pusherator'
(All other crates already have changes, so would be released anyway)
-
update
CHANGELOG.md
s for big rename
Generated before rename perRELEASING.md
instructions.
Chore
- bump versions manually for renamed crates, per
RELEASING.md
- cleanup snapshots
- Rename Hydroflow -> DFIR
Work In Progress:- hydroflow_macro
- hydroflow_datalog_core
- hydroflow_datalog
- hydroflow_lang
- hydroflow
hydroflow_datalog_core
Commit Statistics
- 2 commits contributed to the release.
- 38 days passed between releases.
- 2 commits were understood as conventional.
- 2 unique issues were worked on: #1585, #1606
hydroflow_datalog_core
Commit Details
view details
Commit Statistics
- 5 commits contributed to the release.
- 5 commits were understood as conventional.
- 4 unique issues were worked on: #1501, #1620, #1623, #1627
Commit Details
dfir_datalog v0.11.0
Refactor (BREAKING)
-
use
cfg(nightly)
instead of feature, remove-Z
flag, useDiagnostic::try_emit
Previous PR (#1587) website build did not work becausepanic = "abort"
is set on wasm, leading to aborts forproc_macro2::Span::unwrap()
calls.All tests except trybuild seem to pass on stable, WIP #1587 next
Documentation
-
add
repository
field toCargo.toml
s, fix #1452
#1452Will trigger new releases of the following:
unchanged = 'hydroflow_deploy_integration', 'variadics', 'variadics_macro', 'pusherator'
(All other crates already have changes, so would be released anyway)
-
fix some broken github tree/main links
-
update
CHANGELOG.md
s for big rename
Generated before rename perRELEASING.md
instructions. -
cleanups for the rename, fixing links
Chore
- update links for renamed repo (excluding
CHANGELOG.md
s), fix #1571 - bump versions manually for renamed crates, per
RELEASING.md
- Rename Hydroflow -> DFIR
Work In Progress:- hydroflow_macro
- hydroflow_datalog_core
- hydroflow_datalog
- hydroflow_lang
- hydroflow
hydroflow_datalog
Commit Statistics
- 1 commit contributed to the release.
- 38 days passed between releases.
- 1 commit was understood as conventional.
- 1 unique issue was worked on: #1606
hydroflow_datalog
Commit Details
view details
Commit Statistics
- 7 commits contributed to the release.
- 7 commits were understood as conventional.
- 5 unique issues were worked on: #1501, #1620, #1624, #1627, #1628
Commit Details
variadics_macro v0.5.5
New Features
-
generalized hash trie indexes for relational tuples
Generalized Hash Tries are part of the SIGMOD '23 FreeJoin
paper by
Wang/Willsey/Suciu. They provide a compressed ("factorized")
representation of relations. By operating in the factorized domain, join
algorithms can defer cross-products and achieve asymptotically optimal
performance.
Commit Statistics
- 1 commit contributed to the release.
- 1 commit was understood as conventional.
- 1 unique issue was worked on: #1503