Commit Graph

20 Commits

Author SHA1 Message Date
Oleksandr Levchenkov
2a4d81042b
make pg backend acquire schema-based global locks (#2411)
Signed-off-by: ollevche <ollevche@gmail.com>
2025-01-31 14:21:36 +02:00
Martin Atkins
2848ed054e
rfc: Update README.md to discuss RFC Tracking Issues (#2377)
Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-01-15 07:36:54 -05:00
Martin Atkins
0576d07397 RFC: Naming convention for internal variables representing "contexts"
This is a lightweight RFC proposing that we adopt some cross-cutting naming
conventions for variables of various different types whose names all
include the noun "context", both to gradually improve existing confusion
and inconsistency in the codebase and in particular to un-squat the name
"ctx" that has emerged as the idiomatic name for a context.Context
elsewhere in the Go ecosystem.

This proposal does not call for any immediate code changes. It is only an
attempt to agree on some conventions to follow in future work on other
projects.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-01-14 14:39:29 -08:00
Martin Atkins
6bd681e98f Process RFC: RFC Tracking Issues
Proposal for creating a separate "tracking issue" for each accepted RFC,
which represents the implementation of the features described in that RFC
separately from the potentially-many feature request issues it aims to
address.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-01-14 14:33:04 -08:00
Martin Atkins
f802281c5a rfc: A Pragmatic Approach to Linting for Code Complexity
We currently have a set of aspirational linting rules in the project's
golangci-lint configuration, but this codebase was derived from a much
older codebase that was not written under those lint rules and so we made
the pragmatic decision that only code that has changed since the addition
of the lint rules is subjected to those lint rules.

That approach aims to make the compromise of encouraging us to gradually
improve code "while we're in the area" working on other changes, while
avoiding the need for a huge retrofit of existing code.

However, that compromise seems to be less appropriate for the subset of
linting rules related to code complexity in particular. That category of
rules typically imposes some arbitrary limit on a qualitative metric that
the linting tool can measure. These particular rules therefore have a
relatively broad scope and tend to require very disruptive changes to
existing code in order to resolve them.

This proposal aims to find a pragmatic path that will lead to a codebase
that _does_ conform to the complexity lint rules in the long run, but to
treat those improvements as a separate project in their own right rather
than as something we aim to gradually improve as part of other work.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-01-02 13:35:50 -08:00
Martin Atkins
954e3aed01 rfc: Static Evaluation of Provider Iteration state tracking revision
The original proposal called for the state snapshot loader to accept a
resource instance with both an instance-level provider instance address
and a resource-level provider instance address.

The final implementation does follow that specification, but it also emits
a warning in that case to draw attention to the inconsistency.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2024-12-11 12:52:50 -08:00
Martin Atkins
b480343798 rfc: Static Evaluation of Provider Iteration state tracking revision
The original proposal called for the state snapshot writer to generate a
resource-level provider property if all of the instances of the resource
had the same provider instance address, regardless of what that address
actually is.

The actual implementation instead chose to generate the resource-level
property only if none of the instances of the resource refer to a provider
instance that has an instance key.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2024-12-11 12:52:50 -08:00
Christian Mesh
8fb8f066c4
Detect when provider and resource/module have identical for_each (#2186)
Signed-off-by: Christian Mesh <christianmesh1@gmail.com>
Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
Co-authored-by: Martin Atkins <mart@degeneration.co.uk>
2024-12-03 14:02:27 -05:00
Martin Atkins
e6ca786e09 rfc: Static Evaluation of Provider Iteration further updates
This continues the work of the last few commits, updating this RFC to
reflect the evolved design that's makes room for adding fully-dynamic
provider instance expansion in a later release.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2024-10-31 10:50:34 -07:00
Christian Mesh
b8d4b24964 RFC: Claify scenarios that don't work
Signed-off-by: Christian Mesh <christianmesh1@gmail.com>
2024-10-31 10:50:34 -07:00
Christian Mesh
a11251cb67 RFC: Clarify provider validate special case
Signed-off-by: Christian Mesh <christianmesh1@gmail.com>
2024-10-31 10:50:34 -07:00
Christian Mesh
68a3d7fcd3 RFC provider iteration: Update technical details
Now that we have a prototype well understood, we can
better describe the technical challenges and implementation
flow

Signed-off-by: Christian Mesh <christianmesh1@gmail.com>
2024-10-31 10:50:34 -07:00
Martin Atkins
757daacab9 RFC: Updated "Static Evaluation of Provider Iteration"
This is the beginnings of a proposed amendment to the previously-approved
RFC for static-eval-based provider expansion to incorporate the new
constraints discovered for RFC "Dynamic Provider Instances and Instance
Assignment".

This first draft of the changes focuses only on the "User Documentation"
portion to ensure that we have consensus on the intended user-facing
changes before worrying too much about the implementation details. A
subsequent commit will revise the implementation details once the new
version of the language design is settled.

Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2024-10-31 10:50:34 -07:00
Nathan Baulch
ea558d9d4b
Fix typos (#1905)
Signed-off-by: Nathan Baulch <nathan.baulch@gmail.com>
Signed-off-by: Christian Mesh <christianmesh1@gmail.com>
Co-authored-by: Christian Mesh <christianmesh1@gmail.com>
2024-08-29 13:20:33 -04:00
Arel Rabinowitz
801421870a
RFC: -exclude flag for planning and applying (#1860)
Signed-off-by: RLRabinowitz <rlrabinowitz2@gmail.com>
2024-08-08 09:31:36 -04:00
Jon Johnson
b6c31dfb87
Fix RFC template link (#1821)
Signed-off-by: Jon Johnson <jon.johnson@chainguard.dev>
2024-07-15 14:07:56 -04:00
Ronny Orot
5a40234661
RFC: OpenTofu Specific Code Override (#1699)
Signed-off-by: Ronny Orot <ronny.orot@gmail.com>
Co-authored-by: Oleksandr Levchenkov <ollevche@gmail.com>
2024-06-17 13:35:42 +03:00
Christian Mesh
ed0c761b0e
RFC #1042: Planning the implementation of static evaluation (#1649)
Signed-off-by: Christian Mesh <christianmesh1@gmail.com>
Signed-off-by: Janos <86970079+janosdebugs@users.noreply.github.com>
Co-authored-by: Janos <86970079+janosdebugs@users.noreply.github.com>
Co-authored-by: James Humphries <James@james-humphries.co.uk>
Co-authored-by: Ronny Orot <ronny.orot@gmail.com>
Co-authored-by: Oleksandr Levchenkov <ollevche@gmail.com>
2024-06-12 09:21:32 -04:00
Christian Mesh
874483182b
Backfill accepted RFCs into new location (#1702)
Signed-off-by: Christian Mesh <christianmesh1@gmail.com>
2024-06-12 07:31:35 -04:00
Janos
bfe5a4cd13
New RFC process (#1669)
Signed-off-by: Janos <86970079+janosdebugs@users.noreply.github.com>
Signed-off-by: Christian Mesh <christianmesh1@gmail.com>
Co-authored-by: James Humphries <James@james-humphries.co.uk>
Co-authored-by: Christian Mesh <christianmesh1@gmail.com>
Co-authored-by: Siddhartha Sonker <158144589+siddharthasonker95@users.noreply.github.com>
Co-authored-by: Ronny Orot <ronny.orot@gmail.com>
Co-authored-by: Oleksandr Levchenkov <ollevche@gmail.com>
2024-06-03 10:30:18 -04:00