docs: restock the good-first-issue starter board with concrete open issues - #339
Open
maxime2476 wants to merge 1 commit into
Open
docs: restock the good-first-issue starter board with concrete open issues#339maxime2476 wants to merge 1 commit into
maxime2476 wants to merge 1 commit into
Conversation
The starter board pointed at label search URLs only, so a newcomer had to run the search themselves to find out whether anything was open. Replace that with concrete tables of the 18 currently open `good first issue` and `good-first-rule` issues, split by general work and rule work, with area and difficulty per row. Mark the live GitHub queues as the source of truth and date the snapshot so a stale table is obvious. Keep the historical v0.3 Done tables intact and label them as history rather than the current queue. Refs ColumbusLabs#278
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #278 for the documentation half. The labeling half needs triage rights, so it is
written up below as a ready-to-apply batch rather than applied here.
What changed
docs/good-first-issues.mdpreviously sent newcomers to two label search URLs and nothingelse. If those searches came back thin, the reader had no way to tell whether the project
had no starter work or whether they had searched wrong.
The board now lists the open issues directly:
good first issue(8 rows)and
good-first-rule(10 rows), each with area and difficulty so a reader can filter byeye instead of by query string.
so a table that drifts is visibly stale rather than quietly wrong.
pointing back to the active board.
Every one of the 18 linked issues was checked as open with a matching title before the
table was written.
On the issue premise
#278 says open GFI volume is "low/empty". That is not quite what the queue looks like now:
9
good first issueand 10good-first-ruleissues are open. The real gap is narrower andmatches the acceptance criteria closely. Only 5 open issues carry
difficulty: small, andall 5 are
area: docs. There is no small-sized work at all in reporters, fixtures, ordetectors, which are exactly the tracks the board tells newcomers to look at.
So the batch below is built to fill that specific hole rather than to raise the raw count.
Proposed batch for AC 1
Twelve starter issues, all
difficulty: small, spanning the four tracks named in #278.Each one was checked against the tree at 2d577cf, and the observation that motivates it is
listed so a maintainer can confirm before filing.
Docs
docs/rules.mdhas 39 dedicated rule sections, but 23 shipped rule ids have none. Splittingby pack keeps each issue small.
Document the five Python pack rules missing from
docs/rules.mddocumentation,good first issue,difficulty: small,area: docspython-complex-control-flow,python-dead-abstraction,python-duplicate-logic,python-large-function, andpython-todo-commentdo not appear anywhere in the file.The other two Python rules do have sections (
python-route-sprawl,python-error-handling),which makes the gap look like an oversight rather than a decision.
Add
docs/rules.mdsections for the Ruby and Rails pack rulesdocumentation,good first issue,difficulty: small,area: docsSix ids ship without a section:
ruby-dead-abstraction,ruby-duplicate-logic,ruby-large-function,ruby-todo-comment,rails-controller-sprawl,rails-route-sprawl.Add
docs/rules.mdsections for the Kotlin and Compose pack rulesdocumentation,good first issue,difficulty: small,area: docsSix ids ship without a section:
kotlin-dead-abstraction,kotlin-duplicate-logic,kotlin-large-function,kotlin-todo-comment,compose-large-composable,compose-state-hoisting.Add
docs/rules.mdsections for the Swift and SwiftUI pack rulesdocumentation,good first issue,difficulty: small,area: docsSix ids ship without a section:
swift-dead-abstraction,swift-duplicate-logic,swift-large-function,swift-todo-comment,swiftui-large-view,swiftui-state-sprawl.Reporters
Thirteen of the modules in
src/reporters/have a matching file intests/reporters/.These three do not, and no other test references them either.
Add a unit test for
src/reporters/payoffSection.tsgood first issue,difficulty: small,area: reporterNo file under
tests/referencespayoffSection.Add a unit test for
src/reporters/suppressionAudit.tsgood first issue,difficulty: small,area: reporterNo file under
tests/referencessuppressionAudit, though--audit-suppressionsrunsin the
scan:selfscript.Add escaping tests for
htmlEscape.tsandmarkdownEscape.tsgood first issue,difficulty: small,area: reporterNeither helper is referenced from
tests/. Both sit on the path where scanned sourcetext reaches rendered output, so a regression here shows up as broken or unsafe report
markup.
Fixtures
Grow
examples/node-apipast a single filegood first issue,difficulty: small,area: detectorThe example is one file,
src/server.ts, which limits what the node pack can bedemonstrated or smoke-scanned against.
Grow
examples/react-nativepast a single filegood first issue,difficulty: small,area: detectorSame shape: one file,
src/ReleaseScreen.tsx, for a pack with rules such asrn-host-forwarding.Add false-positive fixtures for the Ruby, Rails, and Python packs
good first issue,difficulty: small,area: detector,type: false-positiveexamples/false-positives/covers ten rule areas and includescompose/andswiftui/,but has no directory for Ruby, Rails, Python, Vue, or Svelte. Ruby, Rails, and Python
are the tightest scope for one PR.
Conservative detector tweaks
Both of these follow a pattern the project already uses, where a hardcoded exclusion list
becomes configurable without changing default behavior.
Make the
duplicated-literalnumber ignore list configurablegood-first-rule,difficulty: small,area: detector,type: false-positiveCOMMON_NUMBER_LITERALSis fixed at["0", "1", "2", "-1"]insrc/detectors/duplicatedLiteral.ts:40. String literals already extend throughduplicatedLiteralIgnoreStrings, so the numeric side is the asymmetry. AddingduplicatedLiteralIgnoreNumberstouches the same files the string option alreadytouches:
src/core/types.ts,src/config/mergeConfig.ts, and the detector.Make the license and copyright exclusion in
commented-out-codeconfigurablegood-first-rule,difficulty: small,area: detector,type: false-positiveisLicenseOrCopyrightLineinsrc/detectors/commentedOutCode.tshardcodes fourpatterns:
SPDX-License-Identifier,Copyright,Licensed under, andAll rights reserved. Repos with a house header outside that set get the bannerflagged as commented-out code. This mirrors the configurable-markers work already done
for
todo-commentin Add configurable markers for todo-comment #4.Follow-up once the batch exists
The board tables in this PR are built only from issues that are open today, so nothing here
links to an issue that does not exist. After the batch is filed and labeled, the two tables
want one more pass to add the new rows and refresh the snapshot date.
Testing
npx tsx --test tests/docs/*.test.tsreports 9 passing and 2 failing. Both failures are inciProviderDocs.test.tsagainstdocs/ci-bitbucket.md, a file this PR does not touch, andthey reproduce identically on a clean checkout of 2d577cf. They come from CRLF line endings
on a Windows checkout meeting regexes that expect
\n.