Skip to content

Conversation

ysmolski
Copy link
Contributor

@ysmolski ysmolski commented Oct 16, 2025

pkg/** and Makefile were removed.
I kept go.mod for the release. We will remove it later.

Dummy CI was added for non-code changes to files in the root.
Changes in linter config will trigger v2 and executions workflows.

I plan to merge it and then tag it with v1.67.5

Summary by CodeRabbit

  • Chores

    • Marked older module versions as retracted and added deprecation/migration guidance to v2; removed developer automation targets (tests, formatting, generation) and tool bootstrapping.
  • Documentation

    • README edits: typos, wording, and maintenance notes; v1 marked deprecated/inactive.
  • Refactor

    • Major removal of AST, parsing and normalization public surface — breaking change affecting APIs.
  • Tests

    • Large set of AST/normalization/import tests removed.
  • CI

    • Added a lightweight PR workflow and updated CI trigger paths.

I plan to merge it and then tag it with v1.68.0
@ysmolski ysmolski requested a review from a team as a code owner October 16, 2025 16:34
Copy link
Contributor

coderabbitai bot commented Oct 16, 2025

Walkthrough

Removes almost the entire AST subsystem (types, values, selections, nodes, input handling, index, helpers), the parser and importer, the normalization framework and most normalization passes and tests; updates module metadata with a go.mod retract + deprecation comments; removes many Makefile targets and adjusts CI workflows and README text.

Changes

Cohort / File(s) Change Summary
Module metadata
go.mod
Added a retract block listing multiple versions and deprecation comments pointing to github.com/wundergraph/graphql-go-tools/v2. Removed prior require block content.
Build & docs
Makefile, README.md
Removed many Makefile targets and tool bootstrap rules; edited README for wording and to mark v1 as deprecated/inactive.
AST core (massive removals)
pkg/ast/... (e.g. pkg/ast/ast.go, pkg/ast/ast_* .go, pkg/ast/index.go, pkg/ast/input.go, pkg/ast/path.go, pkg/ast/directive_location.go, pkg/ast/ast_string.go, helpers, stringers, etc.)
Deleted nearly all AST types, constants, structs, methods, helpers, generated stringers, input/ByteSlice machinery, Index and related tests — removing the public API surface for AST representation, values, types, selections, nodes, and utilities.
Value/type/selection subsystems
pkg/ast/ast_value.go, pkg/ast/ast_type.go, pkg/ast/ast_selection.go, pkg/ast/ast_*_value.go
Removed value-kind/type/selection implementations, their constructors, printers, JSON conversion, and equality semantics.
Parser & importer
pkg/astparser/parser.go, pkg/astimport/...
Removed GraphQL parser implementation and parsing entry points; removed AST importer and its tests.
AST normalization framework & passes
pkg/astnormalization/... (many files)
Removed normalization framework, normalizer types, and a large set of visitors/passes (fragment inlining, include/skip, selection merging, field deduplication, input coercion/injection, variable extraction/deletion, type-extension handlers, implicit schema/root handling, etc.) and associated tests.
Visitors & utilities
pkg/astnormalization/*, pkg/ast/helpers.go, pkg/ast/path.go
Deleted many normalization visitors and small AST helper utilities (slice helpers, line splitting, whitespace counting), plus Path and related serialization.
Tests removed across packages
pkg/ast/*_test.go, pkg/astnormalization/*_test.go, pkg/astparser/*_test.go, pkg/astimport/*_test.go, etc.
Removed numerous unit and integration tests covering AST, parser, importer, normalization and helpers.
CI workflows
.github/workflows/dummy-ci.yaml, .github/workflows/execution.yml, .github/workflows/v2.yml
Added a lightweight "Dummy CI" workflow limited to a few paths; added triggers for .golangci.yml to existing workflows.

Sequence Diagram(s)

(omitted) — changes are wholesale removals and do not introduce a new control-flow feature suitable for a sequence diagram.

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120+ minutes

Reason: Very large, heterogeneous deletions across core packages removing many exported types/functions and tests; requires thorough API-compatibility, dependency impact analysis, and migration verification.

Possibly related PRs

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Title Check ⚠️ Warning The title "chore: retract v1" refers to a legitimate aspect of the changeset, specifically the addition of retract directives to go.mod for versions [v1.0.0, v1.67.5], v0.13.2, and v0.0.1. However, the overwhelming majority of the changes consist of the complete removal of the entire pkg directory including pkg/ast, pkg/astnormalization, pkg/astimport, and pkg/astparser packages, along with removal of the Makefile and deprecation updates to the README. The title focuses narrowly on the go.mod retract aspect but does not capture the primary change: the removal of the v1 codebase. A developer scanning the history would see "retract v1" but would not immediately understand that the commit represents a massive deprecation and code removal. Consider revising the title to more accurately reflect the primary changes, such as "chore: remove v1 codebase and retract versions" or "chore: deprecate and remove v1 implementation". This would better convey to teammates that this commit represents a major removal of functionality rather than a simple version management action in go.mod.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch yury/eng-8352-engine-remove-deprecated-v1

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a5e36ee and 9541989.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (1)
  • go.mod (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • go.mod
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: Build and test (go 1.25 / windows-latest)
  • GitHub Check: Build and test (go 1.25 / ubuntu-latest)
  • GitHub Check: Build and test (go 1.25 / windows-latest)
  • GitHub Check: Build and test (go 1.25 / ubuntu-latest)

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
go.mod (2)

1-1: Good deprecation notice; also announce in docs/release notes.

The comment is fine, but it won’t surface on pkg.go.dev. Add a deprecation note to the v1.68.0 release notes and README to maximize visibility and migration clarity.


6-11: Deduplicate retractions and clarify rationale

  • Remove standalone v1.0.0; the range [v1.0.0, v1.67.4] already covers all v1 tags.
  • Add inline comments explaining why each version/range is retracted (e.g. migration to v2 path).
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9227464 and a5009a5.

📒 Files selected for processing (1)
  • go.mod (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-29T09:35:47.969Z
Learnt from: ysmolski
PR: wundergraph/graphql-go-tools#1282
File: v2/pkg/engine/plan/visitor.go:5-5
Timestamp: 2025-08-29T09:35:47.969Z
Learning: The wundergraph/graphql-go-tools project does not support Go versions < 1.23, so compatibility concerns for features available in Go 1.21+ (like cmp.Or) should not be raised.

Applied to files:

  • go.mod

@ysmolski ysmolski changed the title chore: deprecate and retract v1 chore: retract v1 Oct 17, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
.github/workflows/dummy-ci.yaml (1)

1-15: Clarify whether this minimal CI approach is intentional and temporary.

This workflow intentionally does nothing (echo Nothing to do) and only runs on meta-file changes (.gitignore, LICENSE, README.md). Given that this PR removes most of the codebase as part of a v1 retraction, this appears to be a pragmatic placeholder during the deprecation phase.

However, ensure:

  • This is explicitly intended by the team (not an accidental skipping of real tests)
  • Other workflows (mentioned in the PR summary: execution.yml, v2.yml) provide sufficient coverage for the remaining codebase
  • The approach is temporary or clearly documented for future maintainers

As an operational note: Consider adding a more descriptive workflow name, explicit if conditions, or documentation in your CI/CD process indicating this is a temporary measure during the v1 retraction. This prevents future contributors from being confused about why PR checks pass with no validation.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 878f278 and a5e36ee.

📒 Files selected for processing (3)
  • .github/workflows/dummy-ci.yaml (1 hunks)
  • .github/workflows/execution.yml (1 hunks)
  • .github/workflows/v2.yml (2 hunks)
✅ Files skipped from review due to trivial changes (2)
  • .github/workflows/execution.yml
  • .github/workflows/v2.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Build and test (go 1.25 / windows-latest)
  • GitHub Check: Build and test (go 1.25 / ubuntu-latest)
  • GitHub Check: Build and test (go 1.25 / windows-latest)

Copy link
Member

@devsergiy devsergiy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add 1.67.5 to retracted

@ysmolski
Copy link
Contributor Author

please add 1.67.5 to retracted

Thanks. I did it and also tidied the go.mod

@ysmolski ysmolski merged commit 737f2a4 into master Oct 17, 2025
12 checks passed
@ysmolski ysmolski deleted the yury/eng-8352-engine-remove-deprecated-v1 branch October 17, 2025 11:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants