Skip to content

Commit b1db771

Browse files
authored
Merge pull request #2227 from broadinstitute/development
Release 1.92.1
2 parents 0daffcb + b332adb commit b1db771

38 files changed

Lines changed: 266 additions & 498 deletions

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# use SCP base Rails image, configure only project-specific items here
2-
FROM gcr.io/broad-singlecellportal-staging/rails-baseimage:2.3.0
2+
FROM gcr.io/broad-singlecellportal-staging/rails-baseimage:3.0.0
33

44
# Set ruby version
5-
RUN bash -lc 'rvm --default use ruby-3.2.2'
5+
RUN bash -lc 'rvm --default use ruby-3.4.2'
66
RUN bash -lc 'rvm rvmrc warning ignore /home/app/webapp/Gemfile'
77

88
# Set up project dir, install gems, set up script to migrate database and precompile static assets on run

Gemfile

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
source 'https://rubygems.org'
22
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
33

4-
ruby '3.2.2'
4+
ruby '3.4.2'
55

66
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
77
gem 'rails', '6.1.7.9'
@@ -29,7 +29,7 @@ gem 'sdoc', group: :doc
2929
# gem 'capistrano-rails', group: :development
3030

3131
gem 'bootsnap', require: false
32-
gem 'minitest', '5.15.0'
32+
gem 'minitest'
3333
gem 'minitest-rails'
3434
gem 'minitest-reporters'
3535

@@ -71,7 +71,6 @@ gem 'rack-brotli'
7171
gem 'time_difference'
7272
gem 'sys-filesystem', require: 'sys/filesystem'
7373
gem 'browser'
74-
gem 'ruby-prof'
7574
gem 'carrierwave', '~> 2.2'
7675
gem 'carrierwave-mongoid', :require => 'carrierwave/mongoid'
7776
gem 'uuid'
@@ -81,6 +80,14 @@ gem 'net-imap'
8180
gem 'net-pop'
8281
gem 'exponential-backoff'
8382
gem 'concurrent-ruby', '1.3.4'
83+
# gems removed from stdlib in 3.4
84+
gem 'bigdecimal'
85+
gem 'mutex_m'
86+
gem 'observer'
87+
gem 'ostruct'
88+
gem 'logger'
89+
gem 'benchmark'
90+
gem 'drb'
8491

8592
group :development, :test do
8693
# Access an IRB console on exception pages or by using <%= console %> in views
@@ -93,6 +100,7 @@ group :development, :test do
93100
gem 'puma'
94101
gem 'rubocop', require: false
95102
gem 'rubocop-rails', require: false
103+
gem 'csv'
96104

97105
# Profiling
98106
gem 'rack-mini-profiler'

Gemfile.lock

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ GEM
9999
execjs
100100
base64 (0.2.0)
101101
bcrypt (3.1.16)
102+
benchmark (0.4.0)
103+
bigdecimal (3.1.9)
102104
bootsnap (1.13.0)
103105
msgpack (~> 1.2)
104106
brakeman (5.0.1)
@@ -129,6 +131,7 @@ GEM
129131
coffee-script-source (1.12.2)
130132
concurrent-ruby (1.3.4)
131133
crass (1.0.6)
134+
csv (3.3.2)
132135
daemons (1.4.0)
133136
date (3.4.1)
134137
declarative (0.0.20)
@@ -146,9 +149,10 @@ GEM
146149
warden (~> 1.2.3)
147150
digest-crc (0.6.4)
148151
rake (>= 12.0.0, < 14.0.0)
149-
docile (1.3.5)
152+
docile (1.4.1)
150153
domain_name (0.5.20190701)
151154
unf (>= 0.0.5, < 1.0.0)
155+
drb (2.2.1)
152156
dry-cli (0.7.0)
153157
easy_diff (1.0.0)
154158
erubi (1.13.1)
@@ -258,6 +262,7 @@ GEM
258262
listen (3.5.1)
259263
rb-fsevent (~> 0.10, >= 0.10.3)
260264
rb-inotify (~> 0.9, >= 0.9.10)
265+
logger (1.6.6)
261266
loofah (2.24.0)
262267
crass (~> 1.0.2)
263268
nokogiri (>= 1.12.0)
@@ -277,7 +282,7 @@ GEM
277282
mime-types-data (3.2021.0225)
278283
mini_magick (4.12.0)
279284
mini_mime (1.1.5)
280-
minitest (5.15.0)
285+
minitest (5.25.5)
281286
minitest-hooks (1.5.0)
282287
minitest (> 5.3)
283288
minitest-rails (6.1.0)
@@ -317,6 +322,7 @@ GEM
317322
multi_json (1.15.0)
318323
multi_xml (0.6.0)
319324
multipart-post (2.3.0)
325+
mutex_m (0.3.0)
320326
naturally (2.2.1)
321327
net-imap (0.5.6)
322328
date
@@ -329,18 +335,19 @@ GEM
329335
net-protocol
330336
netrc (0.11.0)
331337
nio4r (2.7.4)
332-
nokogiri (1.18.3-arm64-darwin)
338+
nokogiri (1.18.4-arm64-darwin)
333339
racc (~> 1.4)
334-
nokogiri (1.18.3-x86_64-darwin)
340+
nokogiri (1.18.4-x86_64-darwin)
335341
racc (~> 1.4)
336-
nokogiri (1.18.3-x86_64-linux-gnu)
342+
nokogiri (1.18.4-x86_64-linux-gnu)
337343
racc (~> 1.4)
338344
oauth2 (1.4.7)
339345
faraday (>= 0.8, < 2.0)
340346
jwt (>= 1.0, < 3.0)
341347
multi_json (~> 1.3)
342348
multi_xml (~> 0.5)
343349
rack (>= 1.2, < 3)
350+
observer (0.1.2)
344351
omniauth (2.0.4)
345352
hashie (>= 3.4.6)
346353
rack (>= 1.6.2, < 3)
@@ -358,6 +365,7 @@ GEM
358365
omniauth (~> 2.0)
359366
orm_adapter (0.5.0)
360367
os (1.1.4)
368+
ostruct (0.6.1)
361369
parallel (1.22.1)
362370
parser (3.1.2.1)
363371
ast (~> 2.4.1)
@@ -446,7 +454,6 @@ GEM
446454
activesupport (>= 4.2.0)
447455
rack (>= 1.1)
448456
rubocop (>= 1.7.0, < 2.0)
449-
ruby-prof (1.7.0)
450457
ruby-progressbar (1.11.0)
451458
ruby-vips (2.2.1)
452459
ffi (~> 1.12)
@@ -473,13 +480,13 @@ GEM
473480
faraday (>= 0.17.5, < 3.a)
474481
jwt (>= 1.5, < 3.0)
475482
multi_json (~> 1.10)
476-
simplecov (0.21.2)
483+
simplecov (0.22.0)
477484
docile (~> 1.1)
478485
simplecov-html (~> 0.11)
479486
simplecov_json_formatter (~> 0.1)
480-
simplecov-html (0.12.3)
487+
simplecov-html (0.13.1)
481488
simplecov-lcov (0.8.0)
482-
simplecov_json_formatter (0.1.3)
489+
simplecov_json_formatter (0.1.4)
483490
sprockets (4.2.1)
484491
concurrent-ruby (~> 1.0)
485492
rack (>= 2.2.4, < 4)
@@ -489,7 +496,7 @@ GEM
489496
sprockets (>= 3.0.0)
490497
ssrf_filter (1.1.2)
491498
stackprof (0.2.17)
492-
stringio (3.1.0)
499+
stringio (3.1.5)
493500
swagger-blocks (3.0.0)
494501
sys-filesystem (1.4.1)
495502
ffi (~> 1.1)
@@ -541,9 +548,12 @@ PLATFORMS
541548
x86_64-darwin-20
542549
x86_64-darwin-21
543550
x86_64-darwin-23
551+
x86_64-darwin-24
544552
x86_64-linux
545553

546554
DEPENDENCIES
555+
benchmark
556+
bigdecimal
547557
bootsnap
548558
bootstrap-sass!
549559
brakeman
@@ -554,10 +564,12 @@ DEPENDENCIES
554564
carrierwave-mongoid
555565
coffee-rails
556566
concurrent-ruby (= 1.3.4)
567+
csv
557568
daemons
558569
delayed_job
559570
delayed_job_mongoid
560571
devise
572+
drb
561573
exponential-backoff
562574
factory_bot_rails
563575
flamegraph
@@ -573,22 +585,26 @@ DEPENDENCIES
573585
jquery-fileupload-rails
574586
jquery-rails
575587
listen
588+
logger
576589
memory_profiler
577-
minitest (= 5.15.0)
590+
minitest
578591
minitest-hooks
579592
minitest-rails
580593
minitest-reporters
581594
mongoid
582595
mongoid-encrypted-fields
583596
mongoid-history
584597
mongoid_rails_migrations
598+
mutex_m
585599
naturally
586600
nested_form!
587601
net-imap
588602
net-pop
589603
net-smtp
604+
observer
590605
omniauth-google-oauth2
591606
omniauth-rails_csrf_protection
607+
ostruct
592608
parallel
593609
puma
594610
rack-brotli
@@ -597,7 +613,6 @@ DEPENDENCIES
597613
rest-client
598614
rubocop
599615
rubocop-rails
600-
ruby-prof
601616
ruby_native_statistics
602617
rubyzip
603618
sass-rails (>= 6)
@@ -619,7 +634,7 @@ DEPENDENCIES
619634
will_paginate_mongoid
620635

621636
RUBY VERSION
622-
ruby 3.2.2p53
637+
ruby 3.4.2p28
623638

624639
BUNDLED WITH
625-
2.6.1
640+
2.6.2

app/javascript/components/upload/upload-utils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export function findBundleChildren(file, files) {
111111
f.study_file_bundle_id
112112
]
113113
return parentFields.includes(file._id) ||
114-
file.study_file_bundle_id && parentFields.includes(file.study_file_bundle_id)
114+
file.study_file_bundle_id && parentFields.includes(file.study_file_bundle_id) && f._id !== file._id
115115
})
116116
}
117117

app/models/batch_api_client.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
# frozen_string_literal: true
2-
#
31
# Wrapper around Google Batch API for submitting for submitting/reporting scp-ingest-service jobs
42
class BatchApiClient
53
extend ServiceAccountManager

bin/docker-compose-setup.sh

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,18 @@ $0 [OPTION]
1212
-i {IMAGE_TAG} override default GCR image tag of development
1313
-p {PORTAL_RAM_GB} specify as integer the amount of RAM in GB for the single_cell container
1414
-v {VITE_RAM_GB} specify as integer the amount of RAM in GB for the single_cell_vite container
15+
-l use a local copy of GCR_IMAGE (for testing build updates)
1516
-h print this text
1617
EOF
1718
)
1819

1920
DETACHED=""
2021
VITE_FRONTEND_SERVICE_WORKER_CACHE="false"
2122
IMAGE_TAG="development"
23+
LOCAL="false"
2224
export PORTAL_RAM_GB="6"
2325
export VITE_RAM_GB="2"
24-
while getopts "dchi:p:v:" OPTION; do
26+
while getopts "dchi:p:v:l" OPTION; do
2527
case $OPTION in
2628
d)
2729
echo "### SETTING DETACHED ###"
@@ -48,6 +50,9 @@ case $OPTION in
4850
echo "### SETTING VITE_RAM_GB TO $OPTARG ###"
4951
VITE_RAM_GB="$OPTARG"
5052
;;
53+
l)
54+
LOCAL="true"
55+
;;
5156
*)
5257
echo "unrecognized option"
5358
echo "$usage"
@@ -66,9 +71,11 @@ CHANGED=$(git diff "$LOCAL_BRANCH" development --name-only -- Dockerfile)
6671
if [[ "$CHANGED" = "Dockerfile" ]]; then
6772
echo "### DOCKERFILE CHANGES DETECTED, BUILDING $GCR_IMAGE LOCALLY ###"
6873
docker build -t "$GCR_IMAGE" .
69-
else
74+
elif [[ "$LOCAL" = "false" ]]; then
7075
echo "### PULLING UPDATED IMAGE FOR $GCR_IMAGE ###"
7176
docker pull "$GCR_IMAGE"
77+
else
78+
echo "### USING LOCAL COPY OF $GCR_IMAGE ###"
7279
fi
7380
echo "### STARTING SERVICES ###"
7481
VITE_FRONTEND_SERVICE_WORKER_CACHE="$VITE_FRONTEND_SERVICE_WORKER_CACHE" \

bin/run_tests.sh

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -29,29 +29,8 @@ RETURN_CODE=0
2929
THIS_DIR="$(cd "$(dirname "$BASH_SOURCE")"; pwd)"
3030
BASE_DIR="$(dirname $THIS_DIR)"
3131

32-
function setup_burp_cert {
33-
if [ -n "$BURP_PROXY" ]; then
34-
# we will store Burp certificate here
35-
local BURP_CERT="/usr/local/share/ca-certificates/burp.crt"
36-
37-
# fetch Burp certificate from Burp proxy localhost endpoint and store it into $BURP_CERT
38-
curl -s --proxy "$BURP_PROXY" burp/cert | openssl x509 -inform DER -out "$BURP_CERT"
39-
40-
# update system-wide certificate store
41-
update-ca-certificates
42-
43-
# override cacert store for httpclient package (used by Google libraries)
44-
ln -sf "$BURP_CERT" /usr/local/rvm/gems/default/gems/httpclient-*/lib/httpclient/cacert.pem
45-
46-
# override cafile for Yarn (used during package fetching)
47-
yarn config set cafile "$BURP_CERT" -g
48-
49-
# set http_proxy variable, which will make HTTP connections go through the Burp proxy
50-
export http_proxy="$BURP_PROXY"
51-
fi
52-
}
53-
5432
export PASSENGER_APP_ENV=test
33+
export RUBYOPT=--disable-frozen-string-literal
5534

5635
function clean_up {
5736
echo "Cleaning up..."
@@ -90,7 +69,6 @@ else
9069
rm -f "$TMP_PIDS_DIR/delayed_job.*.pid"
9170
fi
9271

93-
setup_burp_cert
9472
clean_up
9573

9674
echo "*** STARTING DELAYED_JOB for $PASSENGER_APP_ENV env ***"

db/seed/example_studies/human_milk_de_49k_cell/study_info.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
{
22
"study": {
3-
"name": "Human milk - differential expression",
3+
"name": "Human milk - differential expression Mar 2025 update",
44
"description": "(Based on SCP1671) Human breast milk is a dynamic fluid that contains millions of cells, but their identities and phenotypic properties are poorly understood. We used single-cell RNA-seq (scRNA-seq) to characterize the transcriptomes of cells from human breast milk (hBM) across lactational time from 3 to 632 days postpartum in 15 donors. We find that the majority of cells in human breast milk are lactocytes, a specialized epithelial subset, and cell type frequencies shift over the course of lactation yielding greater epithelial diversity at later points. Analysis of lactocytes reveals a continuum of cell states characterized by transcriptional changes in hormone, growth factor, and milk production related pathways. Generalized additive models suggest that one sub-cluster, LC1 epithelial cells, increase as a function of time postpartum, daycare attendance, and the use of hormonal birth control. We identify several sub-clusters of macrophages in hBM that are enriched for tolerogenic functions, possibly playing a role in protecting the mammary gland during lactation. Our description of the cellular components of breast milk, their association with maternal-infant dyad metadata and quantification of alterations at the gene and pathways levels provides the first detailed longitudinal picture of human breast milk cells across lactational time. This work paves the way for future investigations of how a potential division of cellular labor and differential hormone regulation might be leveraged therapeutically to support healthy lactation and potentially aid in milk production.",
55
"data_dir": "test"
66
},
77
"files": [
88
{
99
"type": "Metadata",
10-
"filename": "MIT_milk_study_metadata.csv.gz",
10+
"filename": "MIT_milk_study_metadata_Mar2025update.csv.gz",
1111
"use_metadata_convention": true,
12-
"bucket_url": "gs://broad-singlecellportal-public/test/studies/SCP1671/MIT_milk_study_metadata.csv.gz"
12+
"bucket_url": "gs://broad-singlecellportal-public/test/studies/SCP1671/MIT_milk_study_metadata_Mar2025update.csv.gz"
1313
},
1414
{
1515
"type": "Expression Matrix",

0 commit comments

Comments
 (0)