Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
5703 commits
Select commit Hold shift + click to select a range
f2f37c7
Remove synonyms from label designer
Jun 15, 2026
55a9725
manage accession lists
Jun 12, 2026
0a61d76
Manage Accessions: remove list_id query param after adding accessions
Jun 17, 2026
562ce22
add observationUnitDbId to list of valid headers for phenotype upload…
May 1, 2026
ecbe80c
add observationUnitDbId as valid input for phenotype spreadsheet parser
Jun 11, 2026
c6aa671
update bookdown docs
Jun 18, 2026
6707cea
fix an issue with the get_direct_parents function (accessor get_stock…
Jun 18, 2026
3579e7c
retrieve parents
Jun 19, 2026
698823e
Merge branch 'master' into topic/speed_up_merge_script
Jun 21, 2026
16a02bf
Merge pull request #6166 from solgenomics/topic/tissue_sample_fieldbo…
Jun 21, 2026
b266912
Merge pull request #6145 from solgenomics/topic/fix_trait_search
Jun 21, 2026
5c6728b
update hierarchical clustering selenium test
Jun 22, 2026
69314e8
fixe conflict and merge master
Jun 22, 2026
28953ac
fix perl lint issues
Jun 22, 2026
798b04a
replace legacy mkpath with make_path
Jun 22, 2026
f2a6a98
fix perl lint issues
Jun 22, 2026
a738c37
Project Locations Test: add additional location metadata
Jun 22, 2026
cc282e0
Merge branch 'master' into topic/figshare_integration
Jun 22, 2026
f89d61d
replace Unix rm command with perl remove_tree func
Jun 22, 2026
3281310
update bookdown docs
Jun 22, 2026
5cca6e8
update bookdown docs
Jun 22, 2026
0f5d643
Merge pull request #6119 from solgenomics/topic/pheno_summary_statistics
Jun 22, 2026
31ba6ae
modified dialog titles
Jun 22, 2026
fabfc4a
include parent search in query
Jun 22, 2026
9f56f9d
clean up
Jun 22, 2026
dd304cf
fix ordering
Jun 23, 2026
229f5fb
use genotyping protocol from dataset, if dataset has it
Jun 24, 2026
25d3d0b
Merge branch 'master' into topic/advance_meeting
Jun 24, 2026
7826708
Add plot name template to trial design workflow
Jun 24, 2026
ef3b8b1
Merge pull request #6093 from solgenomics/topic/env_stratification
Jun 24, 2026
19eadf4
Update PhenotypeSpreadsheetSimpleGeneric.pm
Jun 24, 2026
3a2cc8b
fixing timestamp and trait name
Jun 24, 2026
43ac111
Label Designer: sort labels by trial layout from list of plots
Jun 24, 2026
6397421
Label Designer: add fix for sorting from a Public List
Jun 25, 2026
35dabea
Merge pull request #6164 from solgenomics/archive-genotype-file
Jun 25, 2026
a9bb8a9
Merge pull request #6124 from solgenomics/topic/fix_fieldbook_json_up…
Jun 25, 2026
e17e94f
Merge pull request #6078 from solgenomics/topic/new_trial_design_method
Jun 25, 2026
3358f32
Merge pull request #6004 from solgenomics/topic/advance_meeting
Jun 25, 2026
994264a
Add text to plot name templates
Jun 25, 2026
c9f0ffe
Add plot name template to trial detail page
Jun 25, 2026
57d949d
add check that template produces globally unique stock names
Jun 25, 2026
66624fb
Incorporate naming templates in accession swap
Jun 25, 2026
505c22b
fix bug with accession swap
Jun 25, 2026
b503163
Merge branch 'master' into topic/catalog_section
Jun 25, 2026
e8492c1
download: remove redundant branch and use intended value for genotypi…
Jun 25, 2026
a6f8549
Merge branch 'master' into topic/apply_plot_name_template
Jun 26, 2026
9e39572
Tweak uniqueness check and fix tests
Jun 26, 2026
fb03041
modified order form
Jun 26, 2026
aa2241d
Change operator
Jun 29, 2026
10f8e94
Add accession name direct swap as fallback
Jun 29, 2026
6ea3d1c
Fix syntax error in plant coords javascript
Jun 29, 2026
81a191f
Fix trial selenium test
Jun 29, 2026
2457bdf
Merge pull request #6172 from solgenomics/topic/trial_pedigree
Jun 29, 2026
9f66a8f
Add dynamic readout for whether the template-in-progress is valid
Jun 29, 2026
eb5beb5
removed unused codes
Jun 29, 2026
8ae0f03
Merge pull request #6165 from solgenomics/topic/trait_synonyms_and_pa…
Jun 29, 2026
8bb1459
refactor parent addition - add add_parent function to CXGN::Stock obj…
Jun 30, 2026
c75e77a
fix merge stock test.
Jun 30, 2026
ff2f5db
option to filter only wild type or transgenic plants
Jun 30, 2026
a31daa1
put rollback back.
Jun 30, 2026
5700f93
option to filter by vector construct
Jun 30, 2026
8da8761
refactor clear analysis result cache
Jul 1, 2026
95f8a01
update trial related analysis result cache deletion call
Jul 1, 2026
67f911c
delete cached analysis result from the dataset
Jul 1, 2026
731ad73
Merge branch 'master' into topic/solgs/add-clear-cache
Jul 1, 2026
8ec747b
check dataStr is defined...
Jul 1, 2026
e1fa44d
bring back code snippet lost during merge and conflict fix
Jul 1, 2026
365b81b
retrieve transgenic lines
Jul 1, 2026
9a9eb1d
fix input type
Jul 1, 2026
d62970f
Merge pull request #6177 from BFF-AFIRMS/fix/upstream/download-plate-…
Jul 2, 2026
2cb9f57
Merge pull request #6174 from solgenomics/topic/labeldesigner_sort_tr…
Jul 2, 2026
951c8f8
Merge pull request #6168 from solgenomics/topic/speed_up_merge_script
Jul 2, 2026
961654e
Explicitly state plot name template requirements
Jul 2, 2026
83287d4
Add plot name template to multiple trial upload
Jul 2, 2026
d229adb
make all items as a default
Jul 2, 2026
10a7a1c
fix vector construct empty string
Jul 2, 2026
7baef1b
display as checked for selected items
Jul 4, 2026
dc41dc5
relax regular expression for timestamp.
Jul 6, 2026
0bd9bf8
edit error message to reflect new accepted formats.
Jul 6, 2026
ae1744c
Merge branch 'topic/fix_activity_page' into topic/catalog_section_mod…
Jul 6, 2026
e56c5f2
Add plot_name_template to multi trial upload help file
Jul 7, 2026
5e76575
Merge branch 'master' into topic/catalog_section_modified
Jul 7, 2026
9f0a286
fix datatable
Jul 7, 2026
2033002
clean up
Jul 8, 2026
8c542f8
Merge branch 'master' into topic/figshare_integration
Jul 8, 2026
6347e13
Dataset Archive Directory: mkpath changes
Jul 8, 2026
734a2b5
update bookdown docs
Jul 8, 2026
eceb956
Merge pull request #6170 from solgenomics/topic/solgs/add-clear-cache
Jul 9, 2026
4db5594
Remove finish_logfile
Jul 9, 2026
144fedd
Forgot username: only send email if address is associated with an acc…
Jul 9, 2026
b48480d
Try to fix solgs job tracking
Jul 9, 2026
bd45d9a
Merge pull request #6181 from solgenomics/topic/fix_activity_page
Jul 10, 2026
a889dea
Fix SolGS job tracking and tweak finish timestamp script
Jul 10, 2026
3d9dd7a
Remove job_finish_log config key
Jul 10, 2026
1016f66
Throw error if no args supplied to submit() or generate_finish_timest…
Jul 10, 2026
527d0e6
Forgot Password: do not disclose if email is associated with an account
Jul 10, 2026
562da0e
Reconcile moose attribute with actual timed_out term
Jul 13, 2026
0414c6a
Add info to first page of trial workflows
Jul 13, 2026
f2885ee
Captcha: add option to provide signed token as query param
Jul 13, 2026
1195aba
Change endpoint logic slightly
Jul 13, 2026
6f13f02
Add plot name template to accession swap warning
Jul 13, 2026
271ce6d
Add plot name template to single trial upload
Jul 13, 2026
9364e3c
Merge pull request #6187 from solgenomics/topic/relax_timestamp_re2
Jul 13, 2026
72124dc
Filter out duplicate synonyms in trait search controller
Jul 13, 2026
d8702bb
pass dirs array to make_path
Jul 14, 2026
5161dc5
add dataset geotype protocol to analysis args
Jul 14, 2026
d97da38
clean up
Jul 14, 2026
9820728
Login Tests: add forgot username check, update response messages
Jul 14, 2026
e1147e0
Reset Password: remove token and link from response
Jul 14, 2026
609f9e6
Add autogenerated name dialog to create trial dialogs
Jul 14, 2026
fa52794
family parents section
Jul 14, 2026
ec784b7
crosses in family section
Jul 14, 2026
ad0409e
progenies from family section
Jul 14, 2026
06f7ea6
trial and trait sections
Jul 14, 2026
f6c5925
add margin between heatmap plot and download links
Jul 15, 2026
d3e0a52
fix hide run kinship btn while on progress
Jul 15, 2026
01b0ff8
fixing menu bar for trial allocation
Jul 16, 2026
085f338
update bookdown docs
Jul 16, 2026
ad54fa8
refactor family page
Jul 16, 2026
9cb6302
Combine synonym and variety queries into single query
Jul 16, 2026
c0c3616
include family name and cross for phenotype data
Jul 16, 2026
81703a9
include family and cross for phenotype download
Jul 16, 2026
4a3f4b0
hide JBrowse Genome Alignments section for family and cross
Jul 16, 2026
7d264c9
Fix how multiple stock names and ids are passed in image search, fixe…
Jul 16, 2026
1c589bb
Include field trial association in image search results
Jul 17, 2026
8eb5aef
Add field trial to image search in controller
Jul 17, 2026
87d473e
Allow trial owners to edit phenotypes
Jul 17, 2026
2d62499
family deletion section
Jul 17, 2026
f501a61
remove member
Jul 17, 2026
9b09762
Fix added_by user display and template rules for transformants
Jul 20, 2026
977dbee
Change from label badges to code styling
Jul 20, 2026
1b4990a
remove family member fn
Jul 20, 2026
1bac8bd
delete family fn
Jul 21, 2026
a2fd8cb
add family members dialog
Jul 21, 2026
f9f893e
add member js and ajax functions
Jul 22, 2026
1a51d13
Search Wizard Download: rename hdp protocols variable
Jul 22, 2026
94d2350
Merge pull request #6169 from solgenomics/topic/figshare_integration
Jul 23, 2026
50fd4e6
validate existing members
Jul 23, 2026
cd1fe92
store new members
Jul 24, 2026
8fd5661
modified package name for clarity
Jul 24, 2026
af3f5e7
fixing text format and download the full grid view
Jul 27, 2026
910da93
use datepicker for date input
Jul 27, 2026
7d8fbb3
fix id
Jul 27, 2026
7d98983
Add error readout if python script fails
Jul 27, 2026
69d4f4b
fix missing vector id
Jul 27, 2026
52b3e2a
use datepicker for date input
Jul 27, 2026
93d1daf
fix id
Jul 27, 2026
3892abd
fix missing vector id
Jul 27, 2026
95c81b4
Appease the linter
Jul 28, 2026
bbc4044
Remove stringy evals from files
Jul 28, 2026
5784f2b
Appease the linter
Jul 28, 2026
bede227
change url for family to new page
Jul 28, 2026
ddf5261
remove old family page
Jul 28, 2026
9fb6221
Associate image with trial when uploaded on trial page via trial_asso…
Jul 29, 2026
738f7ed
Allow unicode characters in trait names and trait compositions
Jul 29, 2026
3eeb4bb
Migrate SQL query to shared function
Jul 29, 2026
495635b
fix merge conflict
Jul 29, 2026
7f768aa
Merge branch 'master' into topic/catalog_section_modified
Jul 29, 2026
806931a
Merge pull request #6220 from solgenomics/topic/wizard_genotype_protocol
Jul 30, 2026
ea4829a
Merge pull request #6216 from solgenomics/topic/solgs/dataset-geno-pr…
Jul 30, 2026
60a814f
Merge pull request #6214 from solgenomics/topic/trial_owner_pheno_edit
Jul 30, 2026
84e88d7
move cancelled order to completed section
Jul 30, 2026
f5b411e
Merge pull request #6224 from solgenomics/topic/co_culture_date
Jul 30, 2026
961c761
store input values
Jul 30, 2026
29da7fd
Merge branch 'master' into topic/catalog_section_modified
Jul 30, 2026
b7194f7
Merge pull request #6229 from solgenomics/topic/unicode_in_cvterms
Jul 30, 2026
93c04a4
Merge pull request #6194 from solgenomics/topic/forgot_username_email
Jul 31, 2026
410e4d7
Merge pull request #6195 from solgenomics/topic/trait_search_synonym_…
Jul 31, 2026
d0810c8
Merge pull request #6207 from solgenomics/topic/fixing_menu_text
Jul 31, 2026
57a70a7
Better error message for missing accession
Jul 31, 2026
fee7d49
Reverse accession trial image linking changes, fix stock image search…
Jul 31, 2026
ee5d711
Remove cvterm dbpatch, remove accession image trial association
Jul 31, 2026
1e731eb
move job recording logic to the specific job submission step, old imp…
Aug 3, 2026
dc38ec1
Refactor dbconnection params and try to integrate CXGN::Job into Blas…
Aug 3, 2026
fe96c2f
Merge pull request #6213 from solgenomics/topic/label_designer_slowdown
Aug 3, 2026
05fd920
Merge pull request #6190 from solgenomics/topic/bot_captcha
Aug 3, 2026
ba89b7d
Merge pull request #6191 from solgenomics/topic/job_fixes
Aug 3, 2026
1fa0323
Merge pull request #6230 from solgenomics/topic/catalog_section_modified
Aug 3, 2026
31dc66d
Merge pull request #6176 from solgenomics/topic/apply_plot_name_template
Aug 3, 2026
8939790
Merge pull request #6215 from solgenomics/topic/image_trial_linking
Aug 3, 2026
c601f3f
Use rs->count() to check for accession existence
Aug 3, 2026
6057882
look for analysis_type in the arguments json object also
Aug 4, 2026
499419e
fix issues with the properties download. 1) the download crashed. 2) …
Aug 4, 2026
052872d
Use observation variable name in exif if id is not found
Aug 6, 2026
5712a03
Merge branch 'master' into topic/verbose_accessionswap_error
Aug 6, 2026
e5782e3
order by submitter (for curators) and by job submission time
Aug 7, 2026
b0142cf
add analysis type to alternative source, (for back compatibility)
Aug 7, 2026
c19d48d
turn off uninitiliazed warnings
Aug 7, 2026
06a0a5f
couple job recording to slurm job submission
Aug 7, 2026
e51ff0e
update analysis type arg
Aug 7, 2026
0099da2
Merge pull request #6240 from solgenomics/topic/fix_download_accessio…
Aug 7, 2026
c8f6469
implement a deactivated user role to deactivate accounts.
Aug 7, 2026
e836a2a
fix linting issues.
Aug 7, 2026
f7a4d79
add role for deactivating user accounts.
Aug 7, 2026
d115c02
Node.js 20 deprecated, update to Node.js 24
Aug 10, 2026
6ac575d
add new job object attributes and remove obseleted args to generate_f…
Aug 10, 2026
9ae866d
update and pass selection index selenium test
Aug 10, 2026
9a79229
fix merge conflict and merge master
Aug 10, 2026
ed7402c
Merge pull request #6250 from solgenomics/topic/solgs/job-recording-u…
Aug 10, 2026
ad37c5d
Merge branch 'master' into topic/solgs/selection-index-selenium-test
Aug 10, 2026
2923838
Add fine-grained cvterm edit config key
Aug 10, 2026
18d43e5
add db config args slurm job recording args
Aug 11, 2026
7823e70
I put count check in wrong place
Aug 11, 2026
f49d8f1
Merge branch 'master' into topic/solgs/refactor-solgs-job-recording
Aug 12, 2026
dfcd08c
Fix additional files table not updating after file delete
Aug 12, 2026
b3981f0
Fix %missing calculation and remove histogram link when it doesn't ma…
Aug 12, 2026
11efb88
Fix unit_mech test
Aug 12, 2026
52afdd2
update to node.js v24
Aug 12, 2026
ddb4876
Upgrade Node setup action and version in workflow
Aug 13, 2026
a0b8190
Merge pull request #6248 from solgenomics/update-actions-node
Aug 13, 2026
55bc66b
Merge pull request #6247 from solgenomics/topic/deactivated_user_role
Aug 13, 2026
be0cc83
Merge pull request #6236 from solgenomics/topic/verbose_accessionswap…
Aug 13, 2026
98d449d
Add unit test for drone imagery math
Aug 14, 2026
b9a9748
Merge pull request #6223 from solgenomics/topic/update_drone_imagery_…
Aug 15, 2026
a4c2d3f
Let users choose which CV on trait designer, add automated tests, syn…
Aug 15, 2026
deffc9c
remove unneeded loader-utils
Aug 15, 2026
2f233db
Merge branch 'update-nodev24' of https://github.com/solgenomics/sgn i…
Aug 15, 2026
348e981
code cleanup
Aug 15, 2026
78ec986
specify file name for BTracTSendusuMultiParental
Aug 14, 2026
35cf999
Merge branch 'master' into topic/cross_and_family_trial_section
Aug 17, 2026
638c514
Move cvterm_id assigning cvterm_id if trait_id exists toutside of if …
Aug 17, 2026
ded0aed
Merge branch 'master' into topic/cross_and_family_trial_section
Aug 17, 2026
2bf911b
restrict user role
Aug 18, 2026
637f9cf
Add test for group by treatment
Aug 18, 2026
ec62ddc
debug
Aug 18, 2026
f903577
cannot remove any member if family is in a trial
Aug 18, 2026
e79cd51
tests
Aug 19, 2026
4fe1204
exclude job recording of analysis report job
Aug 19, 2026
c5711e6
make run method return 0
Aug 19, 2026
2aa9c88
turn of uninitialized warnings
Aug 19, 2026
62e41bb
Use Slurm terminal state to update job status
Aug 19, 2026
a72b12d
fix Slurm jobs start and end time recording
Aug 19, 2026
6279f6f
fix js/run-test.js
Aug 19, 2026
18630de
tests
Aug 19, 2026
4ae2cc4
fix lint
Aug 19, 2026
caa7d3d
Disable shell shfmt validation in linter workflow
Aug 19, 2026
37e1325
Merge pull request #6259 from solgenomics/update-nodev24
Aug 20, 2026
c71761d
Merge pull request #6255 from solgenomics/topic/fix_trial_file_display
Aug 20, 2026
1a5af4c
fix typo
Aug 20, 2026
3bcf352
Add more specific error handling for exif trait fields
Aug 24, 2026
5441306
Add check for synyonym for trait name
Aug 24, 2026
990e858
Handling for if cvterm does not exist
Aug 24, 2026
5165b12
Merge pull request #6264 from solgenomics/topic/cross_and_family_tria…
Aug 24, 2026
e6dec40
Merge pull request #6257 from solgenomics/topic/fix_treatment_groupin…
Aug 24, 2026
e0c867e
Merge pull request #6253 from solgenomics/topic/solgs/selection-index…
Aug 24, 2026
5bae8e0
Merge pull request #6252 from solgenomics/topic/ontology_edit_key
Aug 24, 2026
9bb13b5
Fix synonym matching and compilation error
Aug 24, 2026
b59e986
Merge pull request #6254 from solgenomics/topic/solgs/refactor-solgs-…
Aug 25, 2026
4e0f0e0
Merge pull request #6243 from solgenomics/topic/fix_exif_trait_id
Aug 25, 2026
ee30eff
Merge pull request #6261 from solgenomics/topic/cross_wishlist
Aug 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/docs/*
5 changes: 5 additions & 0 deletions .github/linters/.htmlhintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"head-script-disabled": false,
"alt-require": false,
"id-class-value": false
}
3 changes: 3 additions & 0 deletions .github/workflows/.htmlhintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"head-script-disabled": false
}
54 changes: 54 additions & 0 deletions .github/workflows/linter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
name: Lint

on: # yamllint disable-line rule:truthy
push:
branches:
- 'master'
pull_request:
branches:
- 'master'

permissions: {}

env:
FILTER_REGEX_EXCLUDE: "docs/.*|t/unit_mech/AJAX/_BrAPIv2_germplasm.t"

jobs:
build:
name: Lint
runs-on: ubuntu-latest

permissions:
contents: read
packages: read
# To report GitHub Actions status checks
statuses: write

steps:
- name: Checkout code
uses: actions/checkout@v5
with:
# super-linter needs the full git history to get the
# list of files that changed across commits
fetch-depth: 0

- name: Super-linter
uses: super-linter/super-linter@v8.3.1 # x-release-please-version
env:
# To report GitHub Actions status checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HTMLHINT_CONFIG_FILE: .github/linters/.htmlhintrc
VALIDATE_ALL_CODEBASE: false
VALIDATE_SHELL_SHFMT: false
VALIDATE_ANSIBLE: false
VALIDATE_CHECKOV: false
VALIDATE_JSCPD: false
VALIDATE_LATEX: false
VALIDATE_CSS: false
FIX_YAML_PRETTIER: true
VALIDATE_JAVASCRIPT_PRETTIER: false
VALIDATE_JAVASCRIPT_ES: false
VALIDATE_SQLFLUFF: false
VALIDATE_BIOME_FORMAT: false
VALIDATE_GITHUB_ACTIONS_ZIZMOR: false
47 changes: 47 additions & 0 deletions .github/workflows/static.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Simple workflow for deploying static content to GitHub Pages
name: Deploy static content to Pages

on:
# Runs on pushes/marge targeting the default branch
push:
branches: ["master"]
paths:
- 'docs/**'

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
# Single deploy job since we're just deploying
deploy_static_pages:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v4
with:
# Upload docs only
path: './docs'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4


42 changes: 41 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,46 @@ jobs:
- ${{ github.workspace }}:/home/vagrant/cxgn/sgn
options: --health-cmd="curl --silent --head http://localhost:4444 || exit 1"

keycloak_db:
image: postgres:13.0
env:
POSTGRES_DB: keycloak
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5

keycloak:
image: bffafirms/keycloak:26.5.1-0-breedbase-testing
env:
KC_DB_USERNAME: postgres
KC_DB_PASSWORD: postgres
KC_BOOTSTRAP_ADMIN_PASSWORD: password

steps:
- name: Checkout sgn
uses: actions/checkout@v2
uses: actions/checkout@v5

- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: '24'

- name: Install JS deps
working-directory: js
run: npm install

- name: Pin Node binaries
run: |
NODE_BIN="$(dirname "$(which node)")"
for tool in node npm npx; do
ln -sf "$NODE_BIN/$tool" /usr/local/bin/$tool
ln -sf "$NODE_BIN/$tool" /usr/bin/$tool
done
node --version
npm --version

- name: Run unit tests
run: prove --recurse t/unit 2>/dev/null
Expand Down Expand Up @@ -75,6 +112,9 @@ jobs:
- name: Run selenium tests dataset
run: /entrypoint.sh --nopatch t/selenium2/03_dataset 2>/dev/null

- name: Run selenium tests authenticate
run: /entrypoint.sh --nopatch t/selenium2/authenticate 2>/dev/null

- name: Run selenium tests breeders
run: /entrypoint.sh --nopatch t/selenium2/breeders 2>/dev/null

Expand Down
45 changes: 45 additions & 0 deletions .github/workflows/test_static.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Simple workflow for deploying static content to GitHub Pages
name: Build documentation with R bookmark

on:
# Runs on pushes/marge targeting the default branch
pull_request:
paths:
- 'docs/r_markdown_docs/**'

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: write
id-token: write

jobs:
# Single deploy job since we're just deploying
build_and_deploy_static_pages_for_manual:
runs-on: ubuntu-latest
container:
image: bienkowskid/fedora40-r-bookdown
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.ref }}
- name: Save directory for checkout
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Create gitbook
working-directory: ./docs/r_markdown_docs
run: R -q -e 'bookdown::render_book("index.Rmd", "bookdown::gitbook")'
- name: Create manual pdf
working-directory: ./docs/r_markdown_docs
run: R -q -e 'bookdown::render_book("index.Rmd", "bookdown::pdf_book")'
- name: Commit and push documentation
run: |
date > generated.txt
git config user.name github-actions
git config user.email github-actions@github.com
git add --force --all docs/
git commit -m "update bookdown docs"
git push
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ logfile*.txt
MANIFEST*
./cgi-bin/secretom
MYMETA.json
db/delete_nd_experiment_ids/
tags
.prove
.Rhistory
Expand All @@ -47,4 +48,8 @@ typescript
docs/Gemfile.lock
docs/_site/
.DS_Store
sgn.iml
sgn.iml
docs/*
!docs/r_markdown_docs/
!docs/r_markdown_docs/**
.idea/
127 changes: 127 additions & 0 deletions R/DRRC.r
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@

args=commandArgs(TRUE)

##args is now a list of character vectors
## First check to see if arguments are passed.
## Then cycle through each element of the list and evaluate the expressions.

if(length(args)==0){
print("No arguments supplied.")
##supply default values
paramfile=''
} else {
for(i in 1:length(args)){
print(paste("Processing arg ", args[[i]]));
eval(parse(text=args[[i]]))
}
}

library(reshape2)
library(dplyr)
library(blocksdesign)

source(paramfile)
## 1) Preparing dataframe
if (!exists("engine", inherits = FALSE)) engine <- "breedbase"
if(engine == 'trial_allocation'){ all.clones <- c(treatments, controls) } else { all.clones <- treatments }
nTrt <- length(all.clones)
nRep <- nRep
nRows <- nRow
nCols <- nCol
# nCols <- nTrt*nRep/nRows
rowsPerBlock <- nTrt/nCols
colsPerBlock <- nTrt/nRows
superCols <- nCols/colsPerBlock
totalPlots <- nTrt*nRep

plot_type <- plot_type

plot_start = 1
if( serie == 2){ plot_start <- 101 }
if( serie == 3){ plot_start <- 1001 }

blocks = data.frame(block_number = gl(nRep,nTrt),
Cols = gl(superCols,colsPerBlock,totalPlots),
row_number = gl(nRows,nCols,totalPlots),
col_number = gl(nCols,1,totalPlots))

## Setting rep number orthogonal to block number
rep_number = as.numeric(blocks$Cols)


# treatments = data.frame(treatments =gl(nTrt,1,totalPlots))
Z=design(all.clones,blocks, searches = 50, weighting=0.5)
fieldBook <- Z$Design

trialMatrix <- matrix(0,nRows,nCols)

for(i in 1:nrow(fieldBook)){
trialMatrix[fieldBook$subRows[i],fieldBook$subCols[i]]<-fieldBook$treatments[i]
}
trialMatrix

## Adding plot number
colnames(fieldBook)[5] <- "plot_number"

fieldBook$block_number <- as.integer(fieldBook$block_number)
fieldBook$row_number <- as.integer(fieldBook$row_number)
fieldBook$col_number <- as.integer(fieldBook$col_number)

# Load dplyr
library(dplyr)

# Arrange fieldBook by row_number and col_number
fieldBook <- fieldBook %>% arrange(row_number, col_number)
fieldBook$plot_number <- c(1:totalPlots)
fieldBook$plot_id <- c(1:nTrt)



## Number start
## 00101 will be added for NCSU
if(plot_start == "00101"){
fieldBook$plot_number = paste0(formatC(fieldBook$block_number,width=3,flag="0"),
formatC(fieldBook$plot_id,width=2,flag="0"))
}else if (plot_start == 1001){
fieldBook$plot_number <- (1000*fieldBook$block_number)+fieldBook$plot_id
}else if (plot_start == 101) {
fieldBook$plot_number <- (100*fieldBook$block_number)+fieldBook$plot_id
}

cat("plot start is ", plot_start,"\n")
cat("plot type is ", plot_type,"\n")

plot_type = "serpentine"
## Plot number format
if(plot_type == "serpentine"){
for(i in 1:nRows){
if(i%%2==0){
fieldBook[fieldBook$row_number == i, "plot_number"] <- rev(fieldBook[fieldBook$row_number==i,"plot_number"])
}
}
}

fieldBook$rep_number <- rep_number


#### create is_a_control
names(fieldBook)[names(fieldBook) == "treatments"] <- "accession_name"
fieldBook <- transform(fieldBook, is_a_control = ifelse(fieldBook$accession_name %in% controls, 1, 0))

design <- fieldBook %>% dplyr::select(block_number, rep_number, row_number, col_number, plot_number, accession_name, is_a_control)

if(engine == 'trial_allocation'){
design <- design %>% dplyr::select(plot_number, block_number, accession_name, rep_number, is_a_control)
colnames(design) <- c("plots", "block", "all_entries", "rep", "is_control")
}



head(design)

# save result files
basefile <- tools::file_path_sans_ext(paramfile)
outfile = paste(basefile, ".design", sep="");
sink(outfile)
write.table(design, quote=F, sep='\t', row.names=FALSE)
sink();
Loading