Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .claude/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# CLAUDE.md

## External-Interface Change Sign-Off

This plugin's *external interface* is: cvalues external project configs can
set/override, `<tool>` names, environment-script names, documented
file-naming conventions, and public Groovy/Java API (classes/methods other
plugins could extend or call).

Before closing any task or change in this plugin, check whether it touches
the external interface. If yes:

1. Add/update a row in `docs/developers/ExternalInterfaceChangeLog.adoc`
describing the change and its risk if unconfirmed.
2. Get explicit user sign-off before merging that change — do not silently
assume a breaking change is acceptable, even if it looks like dead or
already-broken code.

Keep that table current for all changes, or whenever you notice it's
drifted from the ground truth (the code) — not just when a task happens to
touch it.

This is a standing, cross-cutting process rule, not a one-shot task — apply
it for the lifetime of this plugin's development, not just the current
branch's task batch.

### Version numbers in change documentation

Never assert the version/tag a not-yet-released change will ship under
(e.g. "new in 1.2.73-205") unless that number is already decided and fixed
— branch-local "next version" labels are placeholders and the actual
release tag (e.g. it could become 1.4.0 instead) is often undecided until
release time. When documenting a still-unreleased addition, either omit the
version or say it's "on this branch, not yet released under a tag". When
documenting a removed/renamed/deprecated item, anchor on the last tag that
is certain to have shipped it (e.g. "present up to and including
1.2.73-204") rather than the uncertain next tag.
16 changes: 16 additions & 0 deletions .claude/hooks/lintr-r-changes.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/usr/bin/env bash
set -ueo pipefail

input="$(cat)"
filePath="$(jq -r '.tool_input.file_path // .tool_response.filePath // empty' <<<"$input")"

[[ "$filePath" =~ \.[Rr]$ ]] || exit 0
[[ -f "$filePath" ]] || exit 0
command -v Rscript >/dev/null 2>&1 || exit 0

output="$(Rscript -e 'lints <- lintr::lint(commandArgs(trailingOnly = TRUE)[1]); if (length(lints) > 0) print(lints)' "$filePath" 2>&1)"

[[ -z "$output" ]] && exit 0

jq -n --arg ctx "lintr found issues in $filePath:
$output" '{hookSpecificOutput: {hookEventName: "PostToolUse", additionalContext: $ctx}}'
15 changes: 15 additions & 0 deletions .claude/hooks/shellcheck-bash-changes.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -ueo pipefail

input="$(cat)"
filePath="$(jq -r '.tool_input.file_path // .tool_response.filePath // empty' <<<"$input")"

[[ "$filePath" == *.sh ]] || exit 0
[[ -f "$filePath" ]] || exit 0

if output="$(shellcheck "$filePath" 2>&1)"; then
exit 0
fi

jq -n --arg ctx "shellcheck found issues in $filePath:
$output" '{hookSpecificOutput: {hookEventName: "PostToolUse", additionalContext: $ctx}}'
21 changes: 21 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR/.claude/hooks/shellcheck-bash-changes.sh\" 2>/dev/null || true",
"statusMessage": "Running shellcheck..."
},
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR/.claude/hooks/lintr-r-changes.sh\" 2>/dev/null || true",
"statusMessage": "Running lintr..."
}
]
}
]
}
}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@ manifest.tmp
build/
out/
shunit2/
.claude/tasks/
.claude/CLAUDE.local.md
.claude/local/
Binary file modified AlignmentAndQCWorkflows.jar
Binary file not shown.
20 changes: 20 additions & 0 deletions AlignmentAndQCWorkflows_1.2.73-205.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/docs" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/resources/analysisTools" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/resources/configurationFiles" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/resources/tests" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="Roddy.main" />
<orderEntry type="library" name="Gradle: org.codehaus.groovy:groovy-all:2.4.21" level="project" />
<orderEntry type="module" module-name="BatchEuphoria.main" />
<orderEntry type="module" module-name="RoddyToolLib.main" />
<orderEntry type="module" module-name="COWorkflowsBasePlugin_1.4.2" />
</component>
</module>
36 changes: 0 additions & 36 deletions AlignmentAndQCWorkflows_1.2.73.iml

This file was deleted.

12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,18 @@ The original script with a documentation of the underlying ideas can be found [h

## Change Logs

* 1.2.73-205 (branch-specific change)
- minor: Added `bwaPostAltJsK8Options` to allow setting opt K8 options for `bwa-postalt.js`
- minor: Upgrade from COWorkflows 1.2.76 to COWorkflowsBasePlugin 1.4.2.
- minor: Old `FLAG_USE_EXISTING_PAIRED_BAMS` was renamed to `FLAG_USE_ONLY_EXISTING_PAIRED_BAMS`
- minor: Removed `FLAG_RUN_SLIM_WORKFLOW`. Corresponding code is unused for years.
- patch: Added `SAM_SORT_MEMSIZE` to allow reducing memory for SAM sorting. Default: `500M` per thread (see issue #97: unbounded growth with ALT-contig/`bwa-postalt.js` processing was traced to `samtools sort`, not to `bwa-postalt.js` itself; bounding this cvalue fixes it for all alignment workflow runs, not only ALT-aware ones).
* `SAMPESORT_MEMSIZE` (the original name for this cvalue) is deprecated but still works: `SAM_SORT_MEMSIZE` defaults to `${SAMPESORT_MEMSIZE}`, so existing project configs that set the old name keep functioning unchanged.
- patch: Little refactorings and groovification of old Java code

* 1.2.73-204 (branch-specific change)
- minor: Separate BWA from BWAKIT version. Default `BWAKIT_VERSION` to `BWA_VERSION`. Independently set `K8_VERSION` (default 0.2.5). Changed associated module-loading code in environment setup file `tbi-lsf-cluster.sh`.

* 1.2.73-203 (branch-specific change)
- minor: Optional ALT-chromosome processing via bwa.kit's `bwa-postaln.js`.
* Set `runBwaPostAltJs=true` to activate the ALT chromosome processing. Default: `false`.
Expand Down
4 changes: 2 additions & 2 deletions buildinfo.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
dependson=COWorkflows:1.2.76
dependson=COWorkflowsBasePlugin:1.4.2
JDKVersion=1.8
GroovyVersion=2.4
RoddyAPIVersion=3.0
RoddyAPIVersion=3.7
Loading