-
Notifications
You must be signed in to change notification settings - Fork 51
Expand file tree
/
Copy pathargo-software-dev-evaluation.json
More file actions
1038 lines (1038 loc) · 34.1 KB
/
Copy pathargo-software-dev-evaluation.json
File metadata and controls
1038 lines (1038 loc) · 34.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"targetLevel": "Expert",
"metadata": {
"version": "1.0",
"tool": "EuroArgo Software Evaluator"
},
"repository": {
"owner": "euroargodev",
"repo": "argopy",
"url": "https://github.com/euroargodev/argopy"
},
"evaluation": {
"level": "Advanced",
"targetLevel": "Expert",
"achievedLevel": "Novice",
"score": 0.8993775933609959,
"stats": {
"totalCriteria": 65,
"metCriteria": 60,
"unmetCriteria": 5,
"weightedScore": 86.70000000000002,
"totalWeight": 96.40000000000002,
"autoCriteria": 16,
"manualCriteria": 49,
"targetLevel": "Expert"
}
},
"details": {
"1": {
"title": "A version control tool is used to manage the codebase",
"level": "Beginner",
"category": "Versioning",
"group": "General",
"status": "met",
"weight": 1.2,
"type": "auto",
"evidence": [
"GitHub repository"
],
"url": "https://github.com/euroargodev/software_guidelines/issues/1"
},
"2": {
"title": "Argo Data accessed locally by the software are assumed to be organised following the GDAC folder structure",
"level": "Beginner",
"category": "Argo Compliance",
"group": "Argo specific",
"status": "met",
"weight": 1.2,
"type": "manual",
"evidence": "Argopy local access to Argo data assume a GDAC structure",
"url": "https://github.com/euroargodev/software_guidelines/issues/2"
},
"3": {
"title": "Argo Data accessed remotely by the software are retrieved from an official GDAC server (http, ftp, s3 servers)",
"level": "Beginner",
"category": "Continuous Integration",
"group": "Argo specific",
"status": "met",
"weight": 1.2,
"type": "manual",
"evidence": "Argopy support all official GDAC servers",
"url": "https://github.com/euroargodev/software_guidelines/issues/3"
},
"4": {
"title": "Argo Data used by the software are traceable with a persistent identifier (Argo GDAC DOI or snapshot DOIs)",
"level": "Beginner",
"category": "FAIR Data",
"group": "Argo specific",
"status": "met",
"weight": 1.2,
"type": "manual",
"evidence": "Argo DOIs is preserved in dataset returned by Argopy",
"url": "https://github.com/euroargodev/software_guidelines/issues/4"
},
"5": {
"title": "Argo Meta-Data accessed remotely by the software are retrieved from an official Argo sources (GDAC ftp, GDAC https, NVS, SparQL, STAC)",
"level": "Beginner",
"category": "Continuous Integration",
"group": "Argo specific",
"status": "met",
"weight": 1.2,
"type": "manual",
"evidence": "Meta data are always retrieved from official servers",
"url": "https://github.com/euroargodev/software_guidelines/issues/5"
},
"6": {
"title": "Argo papers and DOIs are referenced in the software metadata",
"level": "Beginner",
"category": "FAIR Data",
"group": "Argo specific",
"status": "unmet",
"weight": 1.2,
"type": "manual",
"evidence": null,
"url": "https://github.com/euroargodev/software_guidelines/issues/6"
},
"7": {
"title": "Code review meetings are organized when needed",
"level": "Advanced",
"category": "General",
"group": "General",
"status": "unmet",
"weight": 2,
"type": "manual",
"evidence": null,
"url": "https://github.com/euroargodev/software_guidelines/issues/7"
},
"8": {
"title": "Data produced by the software preserve the Argo license (CC BY 4.0)",
"level": "Advanced",
"category": "Licensing",
"group": "Argo specific",
"status": "met",
"weight": 2,
"type": "manual",
"evidence": "Argopy retrieve and manipulate data while preserving the license",
"url": "https://github.com/euroargodev/software_guidelines/issues/8"
},
"9": {
"title": "Data produced by the software respect Argo file formats and conventions wherever relevant (e.g. NetCDF CF-1.7)",
"level": "Beginner",
"category": "Argo Compliance",
"group": "Argo specific",
"status": "met",
"weight": 1.2,
"type": "manual",
"evidence": "Argopy does not produce official netcdf files",
"url": "https://github.com/euroargodev/software_guidelines/issues/9"
},
"10": {
"title": "Each collaborator is clearly identified within the project",
"level": "Intermediate",
"category": "General",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "https://github.com/euroargodev/argopy/graphs/contributors",
"url": "https://github.com/euroargodev/software_guidelines/issues/10"
},
"11": {
"title": "Each pull request is reviewed by at least one collaborator",
"level": "Advanced",
"category": "General",
"group": "General",
"status": "met",
"weight": 2,
"type": "manual",
"evidence": "Implemented with rules",
"url": "https://github.com/euroargodev/software_guidelines/issues/11"
},
"12": {
"title": "Every significant change within the code is managed through a pull (or merge) request",
"level": "Intermediate",
"category": "General",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "auto",
"evidence": [
"PR #620"
],
"url": "https://github.com/euroargodev/software_guidelines/issues/12"
},
"13": {
"title": "Issues or bug reports are described as fully as possible (e.g. use labels, reproducible example)",
"level": "Advanced",
"category": "Continuous Integration",
"group": "General",
"status": "met",
"weight": 2,
"type": "manual",
"evidence": "It's in the guidelines to post an issue",
"url": "https://github.com/euroargodev/software_guidelines/issues/13"
},
"14": {
"title": "Issues or bugs are explicitly referencing the concerned Argo mission (e.g. core, deep, BGC, ...) or component (e.g. trajectories, decoding,...)",
"level": "Intermediate",
"category": "Continuous Integration",
"group": "Argo specific",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "In the guidelines to contribute and report issues/bugs",
"url": "https://github.com/euroargodev/software_guidelines/issues/14"
},
"15": {
"title": "Issues or bugs are managed through the web-based development platform (e.g., GitHub or GitLab issues)",
"level": "Intermediate",
"category": "General",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "auto",
"evidence": [
"issues_enabled",
".github/ISSUE_TEMPLATE"
],
"url": "https://github.com/euroargodev/software_guidelines/issues/15"
},
"16": {
"title": "Metadata produced by the software follow Argo conventions (as in reference tables provided by the NVS server)",
"level": "Beginner",
"category": "Argo Compliance",
"group": "Argo specific",
"status": "met",
"weight": 1.2,
"type": "manual",
"evidence": "Argo conventions are respected wherever relevant",
"url": "https://github.com/euroargodev/software_guidelines/issues/16"
},
"17": {
"title": "Non-Argo Data used by the software are explicitly identified and traceable with a persistent identifier (DOI) when available",
"level": "Beginner",
"category": "FAIR Data",
"group": "General",
"status": "met",
"weight": 1.2,
"type": "manual",
"evidence": "Always done when possible",
"url": "https://github.com/euroargodev/software_guidelines/issues/17"
},
"18": {
"title": "Non-Argo Data used by the software should be accessible online",
"level": "Novice",
"category": "Argo Compliance",
"group": "General",
"status": "met",
"weight": 1,
"type": "manual",
"evidence": "Non-Argo data can be downloaded by the library and are accessible online",
"url": "https://github.com/euroargodev/software_guidelines/issues/18"
},
"19": {
"title": "Project meetings are periodically organized",
"level": "Advanced",
"category": "General",
"group": "General",
"status": "unmet",
"weight": 2,
"type": "manual",
"evidence": null,
"url": "https://github.com/euroargodev/software_guidelines/issues/19"
},
"20": {
"title": "Software training sessions are periodically organized",
"level": "Expert",
"category": "General",
"group": "General",
"status": "met",
"weight": 2.5,
"type": "manual",
"evidence": "More details at https://argopy.readthedocs.io/en/latest/tutorials.html#training-sessions",
"url": "https://github.com/euroargodev/software_guidelines/issues/20"
},
"21": {
"title": "The codebase includes comments and is documented following referenced standards (e.g. numpy style docstrings in Python)",
"level": "Beginner",
"category": "General",
"group": "General",
"status": "met",
"weight": 1.2,
"type": "manual",
"evidence": "Argopy uses Numpy style docstrings",
"url": "https://github.com/euroargodev/software_guidelines/issues/21"
},
"22": {
"title": "The codebase includes comments and is documented to explain the purpose and functionality of each module, class, and function",
"level": "Novice",
"category": "General",
"group": "General",
"status": "met",
"weight": 1,
"type": "manual",
"evidence": "Argopy uses docstrings to document the codebase internally",
"url": "https://github.com/euroargodev/software_guidelines/issues/22"
},
"23": {
"title": "The codebase is \"consistent\", i.e. it follows consistent naming conventions, coding styles, and design patterns throughout the software",
"level": "Beginner",
"category": "General",
"group": "General",
"status": "met",
"weight": 1.2,
"type": "manual",
"evidence": "We use black and flake8 to implement this guidelines",
"url": "https://github.com/euroargodev/software_guidelines/issues/23"
},
"24": {
"title": "The codebase is designed with modular components to facilitate reuse, testing and maintenance",
"level": "Intermediate",
"category": "Continuous Integration",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "that is design we tried to implement",
"url": "https://github.com/euroargodev/software_guidelines/issues/24"
},
"25": {
"title": "The codebase is formatted following referenced standards (e.g. black in Python)",
"level": "Intermediate",
"category": "General",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "auto",
"evidence": [
".flake8",
"pyproject.toml"
],
"url": "https://github.com/euroargodev/software_guidelines/issues/25"
},
"26": {
"title": "The methodology implemented by the software has been presented to the Argo community (e.g. Data Management Team meeting)",
"level": "Intermediate",
"category": "Community",
"group": "Argo specific",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "Presented in ADMT24 and ASW7",
"url": "https://github.com/euroargodev/software_guidelines/issues/26"
},
"27": {
"title": "The project allows any user to submit an issue or bug report and ease the process (e.g. provide list of labels, issue templates)",
"level": "Intermediate",
"category": "General",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "Done and possible on the Github web service",
"url": "https://github.com/euroargodev/software_guidelines/issues/27"
},
"28": {
"title": "The project clearly list all software identifiers in the README file (e.g. DOI, SWHID)",
"level": "Intermediate",
"category": "Documentation",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "Done with badges",
"url": "https://github.com/euroargodev/software_guidelines/issues/28"
},
"29": {
"title": "The project defines expected standards of conduct when engaging in the project (e.g. includes a CODE_OF_CONDUCT file to the codebase)",
"level": "Intermediate",
"category": "General",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "https://github.com/euroargodev/argopy?tab=coc-ov-file#readme",
"url": "https://github.com/euroargodev/software_guidelines/issues/29"
},
"30": {
"title": "The project has multiple collaborators from outside the Argo community",
"level": "Advanced",
"category": "Community",
"group": "Argo specific",
"status": "met",
"weight": 2,
"type": "manual",
"evidence": "https://github.com/euroargodev/argopy/graphs/contributors",
"url": "https://github.com/euroargodev/software_guidelines/issues/30"
},
"31": {
"title": "The project has multiple collaborators from the Argo community",
"level": "Intermediate",
"category": "Community",
"group": "Argo specific",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "Yes and from multiple laboratories",
"url": "https://github.com/euroargodev/software_guidelines/issues/31"
},
"32": {
"title": "The project include a CITATION.cff file to indicate how to cite the software",
"level": "Intermediate",
"category": "FAIR Data",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "auto",
"evidence": [
"CITATION.cff"
],
"url": "https://github.com/euroargodev/software_guidelines/issues/32"
},
"33": {
"title": "The project includes a CONTRIBUTING file",
"level": "Intermediate",
"category": "General",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "auto",
"evidence": [
"CONTRIBUTING.md"
],
"url": "https://github.com/euroargodev/software_guidelines/issues/33"
},
"34": {
"title": "The project includes a LICENSE file",
"level": "Novice",
"category": "Licensing",
"group": "General",
"status": "met",
"weight": 1,
"type": "auto",
"evidence": [
"LICENSE"
],
"url": "https://github.com/euroargodev/software_guidelines/issues/34"
},
"35": {
"title": "The project includes a README file",
"level": "Novice",
"category": "Documentation",
"group": "General",
"status": "met",
"weight": 1,
"type": "auto",
"evidence": [
"README detected via API"
],
"url": "https://github.com/euroargodev/software_guidelines/issues/35"
},
"36": {
"title": "The project includes a basic documentation",
"level": "Novice",
"category": "Documentation",
"group": "General",
"status": "met",
"weight": 1,
"type": "manual",
"evidence": "https://github.com/euroargodev/argopy/blob/master/README.md",
"url": "https://github.com/euroargodev/software_guidelines/issues/36"
},
"37": {
"title": "The project includes a change log",
"level": "Advanced",
"category": "General",
"group": "General",
"status": "unmet",
"weight": 2,
"type": "auto",
"evidence": [],
"url": "https://github.com/euroargodev/software_guidelines/issues/37"
},
"38": {
"title": "The project includes a document describing how to contribute",
"level": "Advanced",
"category": "General",
"group": "General",
"status": "met",
"weight": 2,
"type": "manual",
"evidence": "https://github.com/euroargodev/argopy/blob/master/CONTRIBUTING.md",
"url": "https://github.com/euroargodev/software_guidelines/issues/38"
},
"39": {
"title": "The project is hosted on a web-based development platform (e.g., GitHub or GitLab).",
"level": "Beginner",
"category": "General",
"group": "General",
"status": "met",
"weight": 1.2,
"type": "auto",
"evidence": [
"GitHub repository"
],
"url": "https://github.com/euroargodev/software_guidelines/issues/39"
},
"40": {
"title": "The project is hosted on an Argo-recognised web-based development platform",
"level": "Beginner",
"category": "Argo Compliance",
"group": "Argo specific",
"status": "met",
"weight": 1.2,
"type": "auto",
"evidence": [
"euroargodev"
],
"url": "https://github.com/euroargodev/software_guidelines/issues/40"
},
"41": {
"title": "The software documentation and codebase are written in English",
"level": "Beginner",
"category": "Documentation",
"group": "General",
"status": "met",
"weight": 1.2,
"type": "auto",
"evidence": [
"5/7 common English words found"
],
"url": "https://github.com/euroargodev/software_guidelines/issues/41"
},
"42": {
"title": "The software documentation has an API reference section automatically generated",
"level": "Intermediate",
"category": "Documentation",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "https://argopy.readthedocs.io/en/latest/api.html",
"url": "https://github.com/euroargodev/software_guidelines/issues/42"
},
"43": {
"title": "The software documentation includes installation guidelines",
"level": "Intermediate",
"category": "Documentation",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "https://argopy.readthedocs.io/en/latest/install.html",
"url": "https://github.com/euroargodev/software_guidelines/issues/43"
},
"44": {
"title": "The software documentation includes the definition of the execution environment supported",
"level": "Intermediate",
"category": "Documentation",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "https://argopy.readthedocs.io/en/latest/install.html",
"url": "https://github.com/euroargodev/software_guidelines/issues/44"
},
"45": {
"title": "The software documentation includes the list of changes to the codebase between each software releases",
"level": "Advanced",
"category": "Documentation",
"group": "General",
"status": "met",
"weight": 2,
"type": "manual",
"evidence": "https://argopy.readthedocs.io/en/latest/whats-new.html",
"url": "https://github.com/euroargodev/software_guidelines/issues/45"
},
"46": {
"title": "The software documentation includes the list of operating systems supported",
"level": "Intermediate",
"category": "Documentation",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "https://argopy.readthedocs.io/en/latest/install.html",
"url": "https://github.com/euroargodev/software_guidelines/issues/46"
},
"47": {
"title": "The software documentation includes usage guidelines and examples",
"level": "Beginner",
"category": "Documentation",
"group": "General",
"status": "met",
"weight": 1.2,
"type": "manual",
"evidence": "See README and full documentation at https://argopy.readthedocs.io",
"url": "https://github.com/euroargodev/software_guidelines/issues/47"
},
"48": {
"title": "The software documentation is hosted on the web",
"level": "Intermediate",
"category": "Documentation",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "https://argopy.readthedocs.io",
"url": "https://github.com/euroargodev/software_guidelines/issues/48"
},
"49": {
"title": "The software has a unique persistent identifier (e.g. DOI from paper or Zenodo, SWHID)",
"level": "Intermediate",
"category": "FAIR Data",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "10.21105/joss.02425",
"url": "https://github.com/euroargodev/software_guidelines/issues/49"
},
"50": {
"title": "The software has been presented to the Argo community (e.g. Data Management Team meeting)",
"level": "Beginner",
"category": "Community",
"group": "Argo specific",
"status": "met",
"weight": 1.2,
"type": "manual",
"evidence": "Argopy was presented to the Argo community during the ADMT24 and ASW7 meetings",
"url": "https://github.com/euroargodev/software_guidelines/issues/50"
},
"51": {
"title": "The software ensures timely distribution of updates",
"level": "Intermediate",
"category": "General",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "https://github.com/euroargodev/argopy/releases",
"url": "https://github.com/euroargodev/software_guidelines/issues/51"
},
"52": {
"title": "The software is tested and implements continuous integration",
"level": "Intermediate",
"category": "Continuous Integration",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "https://github.com/euroargodev/argopy/actions",
"url": "https://github.com/euroargodev/software_guidelines/issues/52"
},
"53": {
"title": "The software is distributed via well-known services (e.g., pip or conda for Python)",
"level": "Intermediate",
"category": "General",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "https://pypi.org/project/argopy/ and https://anaconda.org/conda-forge/argopy",
"url": "https://github.com/euroargodev/software_guidelines/issues/53"
},
"54": {
"title": "The software is registered in an Argo software registry (e.g. AST and Argo-BGC dedicated webpages)",
"level": "Intermediate",
"category": "Argo Compliance",
"group": "Argo specific",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "Registered on both AST and Argo-BGC websites",
"url": "https://github.com/euroargodev/software_guidelines/issues/54"
},
"55": {
"title": "The software is registered in at least one public software registry (e.g., Zenodo, Seanoe, Research Software Directory)",
"level": "Intermediate",
"category": "General",
"group": "General",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "Registered on Zenodo, Software Heritage and Research Software Directory",
"url": "https://github.com/euroargodev/software_guidelines/issues/55"
},
"56": {
"title": "The software is released under an open-source license",
"level": "Novice",
"category": "Licensing",
"group": "General",
"status": "met",
"weight": 1,
"type": "auto",
"evidence": [
"LICENSE"
],
"url": "https://github.com/euroargodev/software_guidelines/issues/56"
},
"57": {
"title": "The software provides a clear description of its dependencies",
"level": "Beginner",
"category": "Continuous Integration",
"group": "General",
"status": "met",
"weight": 1.2,
"type": "auto",
"evidence": [
"pyproject.toml",
"requirements.txt",
"setup.py"
],
"url": "https://github.com/euroargodev/software_guidelines/issues/57"
},
"58": {
"title": "The software uses a programming language adopted within the Argo community (e.g. Matlab, Python, R, Java, Julia)",
"level": "Novice",
"category": "Community",
"group": "Argo specific",
"status": "met",
"weight": 1,
"type": "auto",
"evidence": [
"Python"
],
"url": "https://github.com/euroargodev/software_guidelines/issues/58"
},
"59": {
"title": "The software uses an open-source programming language (https://en.wikipedia.org/wiki/List_of_open-source_programming_languages)",
"level": "Novice",
"category": "General",
"group": "General",
"status": "met",
"weight": 1,
"type": "auto",
"evidence": [
"Python",
"CSS",
"Shell"
],
"url": "https://github.com/euroargodev/software_guidelines/issues/59"
},
"60": {
"title": "The software uses the Argo vocabulary server (to enforce conventions as defined in Argo reference tables)",
"level": "Intermediate",
"category": "Argo Compliance",
"group": "Argo specific",
"status": "met",
"weight": 1.5,
"type": "manual",
"evidence": "Yes, it also provides APIs to work with the AVTT",
"url": "https://github.com/euroargodev/software_guidelines/issues/60"
},
"61": {
"title": "There is a published paper associated with the software (e.g. JOSS article)",
"level": "Expert",
"category": "Referencing",
"group": "General",
"status": "met",
"weight": 2.5,
"type": "manual",
"evidence": "https://doi.org/10.21105/joss.02425",
"url": "https://github.com/euroargodev/software_guidelines/issues/61"
},
"62": {
"title": "Unit tests cover multiple operating systems",
"level": "Advanced",
"category": "Continuous Integration",
"group": "General",
"status": "met",
"weight": 2,
"type": "manual",
"evidence": "https://github.com/euroargodev/argopy/actions",
"url": "https://github.com/euroargodev/software_guidelines/issues/62"
},
"63": {
"title": "User meetings or workshops are held and communicated within the Argo community",
"level": "Expert",
"category": "Community",
"group": "Argo specific",
"status": "unmet",
"weight": 2.5,
"type": "manual",
"evidence": null,
"url": "https://github.com/euroargodev/software_guidelines/issues/63"
},
"66": {
"title": "The project includes a basic description of what it does with or to the Argo dataset (e.g. read index file, calibrate salinity, plot trajectory, assess BGC variables,...)",
"level": "Novice",
"category": "Argo Compliance",
"group": "Argo specific",
"status": "met",
"weight": 1,
"type": "manual",
"evidence": "https://github.com/euroargodev/argopy/blob/master/README.md",
"url": "https://github.com/euroargodev/software_guidelines/issues/66"
},
"67": {
"title": "Publicly communicate about codebase new versions and releases (e.g. mailing list, newsletter, post on social networks, RSS feeds)",
"level": "Advanced",
"category": "Versioning",
"group": "General",
"status": "met",
"weight": 2,
"type": "manual",
"evidence": "Posted on https://bsky.app/profile/gmaze.bsky.social",
"url": "https://github.com/euroargodev/software_guidelines/issues/67"
}
},
"userAnswers": {
"2": {
"status": "met",
"evidence": "Argopy local access to Argo data assume a GDAC structure"
},
"3": {
"status": "met",
"evidence": "Argopy support all official GDAC servers"
},
"4": {
"status": "met",
"evidence": "Argo DOIs is preserved in dataset returned by Argopy"
},
"5": {
"status": "met",
"evidence": "Meta data are always retrieved from official servers"
},
"6": {
"status": "unmet",
"evidence": ""
},
"7": {
"status": "unmet",
"evidence": ""
},
"8": {
"status": "met",
"evidence": "Argopy retrieve and manipulate data while preserving the license"
},
"9": {
"status": "met",
"evidence": "Argopy does not produce official netcdf files"
},
"10": {
"status": "met",
"evidence": "https://github.com/euroargodev/argopy/graphs/contributors"
},
"11": {
"status": "met",
"evidence": "Implemented with rules"
},
"13": {
"status": "met",
"evidence": "It's in the guidelines to post an issue"
},
"14": {
"status": "met",
"evidence": "In the guidelines to contribute and report issues/bugs"
},
"16": {
"status": "met",
"evidence": "Argo conventions are respected wherever relevant"
},
"17": {
"status": "met",
"evidence": "Always done when possible"
},
"18": {
"status": "met",
"evidence": "Non-Argo data can be downloaded by the library and are accessible online"
},
"19": {
"status": "unmet",
"evidence": ""
},
"20": {
"status": "met",
"evidence": "More details at https://argopy.readthedocs.io/en/latest/tutorials.html#training-sessions"
},
"21": {
"status": "met",
"evidence": "Argopy uses Numpy style docstrings"
},
"22": {
"status": "met",
"evidence": "Argopy uses docstrings to document the codebase internally"
},
"23": {
"status": "met",
"evidence": "We use black and flake8 to implement this guidelines"
},
"24": {
"status": "met",
"evidence": "that is design we tried to implement"
},
"26": {
"status": "met",
"evidence": "Presented in ADMT24 and ASW7"
},
"27": {
"status": "met",
"evidence": "Done and possible on the Github web service"
},
"28": {
"status": "met",
"evidence": "Done with badges"
},
"29": {
"status": "met",
"evidence": "https://github.com/euroargodev/argopy?tab=coc-ov-file#readme"
},
"30": {
"status": "met",
"evidence": "https://github.com/euroargodev/argopy/graphs/contributors"
},
"31": {
"status": "met",
"evidence": "Yes and from multiple laboratories"
},
"36": {
"status": "met",
"evidence": "https://github.com/euroargodev/argopy/blob/master/README.md"
},
"38": {
"status": "met",
"evidence": "https://github.com/euroargodev/argopy/blob/master/CONTRIBUTING.md"
},
"42": {
"status": "met",
"evidence": "https://argopy.readthedocs.io/en/latest/api.html"
},
"43": {
"status": "met",
"evidence": "https://argopy.readthedocs.io/en/latest/install.html"
},
"44": {
"status": "met",
"evidence": "https://argopy.readthedocs.io/en/latest/install.html"
},
"45": {
"status": "met",
"evidence": "https://argopy.readthedocs.io/en/latest/whats-new.html"
},
"46": {
"status": "met",
"evidence": "https://argopy.readthedocs.io/en/latest/install.html"
},
"47": {
"status": "met",
"evidence": "See README and full documentation at https://argopy.readthedocs.io"
},
"48": {
"status": "met",
"evidence": "https://argopy.readthedocs.io"
},
"49": {
"status": "met",
"evidence": "10.21105/joss.02425"
},
"50": {
"status": "met",
"evidence": "Argopy was presented to the Argo community during the ADMT24 and ASW7 meetings"
},
"51": {
"status": "met",
"evidence": "https://github.com/euroargodev/argopy/releases"
},
"52": {
"status": "met",
"evidence": "https://github.com/euroargodev/argopy/actions"
},
"53": {
"status": "met",
"evidence": "https://pypi.org/project/argopy/ and https://anaconda.org/conda-forge/argopy"
},
"54": {
"status": "met",
"evidence": "Registered on both AST and Argo-BGC websites"
},
"55": {
"status": "met",
"evidence": "Registered on Zenodo, Software Heritage and Research Software Directory"
},
"60": {
"status": "met",
"evidence": "Yes, it also provides APIs to work with the AVTT"
},
"61": {
"status": "met",
"evidence": "https://doi.org/10.21105/joss.02425"
},
"62": {
"status": "met",
"evidence": "https://github.com/euroargodev/argopy/actions"
},
"63": {
"status": "unmet",
"evidence": ""
},
"66": {
"status": "met",
"evidence": "https://github.com/euroargodev/argopy/blob/master/README.md"
},
"67": {
"status": "met",
"evidence": "Posted on https://bsky.app/profile/gmaze.bsky.social"
}
},
"feedback": [
{
"category": "Overall",
"priority": "info",
"message": "🎉 Excellent work! Your project follows most best practices.",
"missing": []
},
{
"category": "General",
"priority": "high",
"message": "Critical: Improve your General practices to reach the next level",
"missing": [
{
"id": 7,
"level": "Advanced",
"title": "Code review meetings are organized when needed",
"isBlocker": true
},
{
"id": 19,
"level": "Advanced",
"title": "Project meetings are periodically organized",