@gen3/workspaces 0.12.64 → 0.12.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/LICENSE +201 -0
  2. package/dist/jupyterlite-builds/free-private/jupyter_lite_config.json +5 -19
  3. package/dist/jupyterlite-builds/free-private/requirements.txt +1 -1
  4. package/dist/jupyterlite-builds/scripts/build-gen3sdk-lite.sh +428 -0
  5. package/dist/jupyterlite-builds/scripts/build-jupyterlite.sh +150 -33
  6. package/dist/jupyterlite-builds/scripts/setup-env.sh +81 -0
  7. package/dist/jupyterlite-builds/scripts/sync-jupyter-assets-into-package.sh +19 -2
  8. package/dist/jupyterlite-builds/scripts/validate-jupyterlite-assets.sh +3 -0
  9. package/jupyterlite-builds/free-private/jupyter_lite_config.json +5 -19
  10. package/jupyterlite-builds/free-private/requirements.txt +1 -1
  11. package/package.json +7 -4
  12. package/scripts/build-gen3sdk-lite.sh +428 -0
  13. package/scripts/build-jupyterlite.sh +150 -33
  14. package/scripts/patch-pyidode-lock.py +100 -0
  15. package/scripts/setup-env.sh +81 -0
  16. package/scripts/sync-jupyter-assets-into-package.sh +19 -2
  17. package/scripts/validate-jupyterlite-assets.sh +3 -0
  18. package/dist/jupyterlite-builds/scripts/build-gen3sdk-lite_v2.sh +0 -310
  19. package/dist/jupyterlite-builds/scripts/build-jupyterlite_v2.sh +0 -111
  20. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/aiofiles-25.1.0-py3-none-any.whl +0 -0
  21. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/backoff-2.2.1-py3-none-any.whl +0 -0
  22. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/cdislogging-1.2.0-py3-none-any.whl +0 -0
  23. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/comm-0.2.3-py3-none-any.whl +0 -0
  24. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/dataclasses_json-0.5.9-py3-none-any.whl +0 -0
  25. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/dictionaryutils-4.0.0-py3-none-any.whl +0 -0
  26. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/drsclient-0.4.0-py3-none-any.whl +0 -0
  27. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/fastavro-1.12.2-py3-none-any.whl +0 -0
  28. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/gen3-4.28.3-py3-none-any.whl +0 -0
  29. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/gen3dictionary-3.0.0-py3-none-any.whl +0 -0
  30. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/gen3users-1.1.1-py3-none-any.whl +0 -0
  31. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/humanfriendly-10.0-py2.py3-none-any.whl +0 -0
  32. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/importlib_metadata-8.9.0-py3-none-any.whl +0 -0
  33. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/indexclient-6.3.0-py3-none-any.whl +0 -0
  34. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/ipykernel-6.9.2-py3-none-any.whl +0 -0
  35. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/ipython_pygments_lexers-1.1.1-py3-none-any.whl +0 -0
  36. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/marshmallow-3.26.2-py3-none-any.whl +0 -0
  37. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/marshmallow_enum-1.5.1-py2.py3-none-any.whl +0 -0
  38. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/mypy_extensions-1.1.0-py3-none-any.whl +0 -0
  39. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/piplite-0.8.5-py3-none-any.whl +0 -0
  40. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/pyodide_http-0.2.2-py3-none-any.whl +0 -0
  41. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/pyodide_kernel-0.8.5-py3-none-any.whl +0 -0
  42. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/pypfb-0.6.2-py3-none-any.whl +0 -0
  43. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/python_dateutil-2.9.0.post0-py2.py3-none-any.whl +0 -0
  44. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/python_json_logger-4.2.0-py3-none-any.whl +0 -0
  45. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/typing_inspect-0.9.0-py3-none-any.whl +0 -0
  46. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/xmltodict-0.13.0-py2.py3-none-any.whl +0 -0
  47. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_uv_wheels/zipp-4.1.0-py3-none-any.whl +0 -0
  48. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_work/constraints.txt +0 -354
  49. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_work/excludes.txt +0 -3
  50. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_work/pylock.toml +0 -347
  51. package/jupyterlite-builds/free-private/.cache/pyodide-lock/_work/requirements.in +0 -26
  52. package/jupyterlite-builds/free-private/.cache/pyodide-lock/patched-pyodide-lock.json +0 -1
  53. package/jupyterlite-builds/free-private/.cache/pyodide-lock/pyodide-lock.json +0 -1
  54. package/jupyterlite-builds/free-private/.cache/pyodide-lock/remote-pyodide-lock.json +0 -1
  55. package/jupyterlite-builds/free-private/.cache/wheels/aiofiles-25.1.0-py3-none-any.whl.meta.json +0 -24
  56. package/jupyterlite-builds/free-private/.cache/wheels/backoff-2.2.1-py3-none-any.whl.meta.json +0 -24
  57. package/jupyterlite-builds/free-private/.cache/wheels/cdislogging-1.2.0-py3-none-any.whl.meta.json +0 -24
  58. package/jupyterlite-builds/free-private/.cache/wheels/dataclasses_json-0.5.9-py3-none-any.whl.meta.json +0 -24
  59. package/jupyterlite-builds/free-private/.cache/wheels/dictionaryutils-4.0.0-py3-none-any.whl.meta.json +0 -24
  60. package/jupyterlite-builds/free-private/.cache/wheels/drsclient-0.4.0-py3-none-any.whl.meta.json +0 -24
  61. package/jupyterlite-builds/free-private/.cache/wheels/fastavro-1.12.2-py3-none-any.whl.meta.json +0 -24
  62. package/jupyterlite-builds/free-private/.cache/wheels/gen3-4.28.3-py3-none-any.whl.meta.json +0 -24
  63. package/jupyterlite-builds/free-private/.cache/wheels/gen3dictionary-3.0.0-py3-none-any.whl.meta.json +0 -24
  64. package/jupyterlite-builds/free-private/.cache/wheels/gen3users-1.1.1-py3-none-any.whl.meta.json +0 -24
  65. package/jupyterlite-builds/free-private/.cache/wheels/humanfriendly-10.0-py2.py3-none-any.whl.meta.json +0 -24
  66. package/jupyterlite-builds/free-private/.cache/wheels/importlib_metadata-8.9.0-py3-none-any.whl.meta.json +0 -24
  67. package/jupyterlite-builds/free-private/.cache/wheels/indexclient-6.3.0-py3-none-any.whl.meta.json +0 -24
  68. package/jupyterlite-builds/free-private/.cache/wheels/marshmallow-3.26.2-py3-none-any.whl.meta.json +0 -24
  69. package/jupyterlite-builds/free-private/.cache/wheels/marshmallow_enum-1.5.1-py2.py3-none-any.whl.meta.json +0 -24
  70. package/jupyterlite-builds/free-private/.cache/wheels/mypy_extensions-1.1.0-py3-none-any.whl.meta.json +0 -24
  71. package/jupyterlite-builds/free-private/.cache/wheels/pypfb-0.6.2-py3-none-any.whl.meta.json +0 -24
  72. package/jupyterlite-builds/free-private/.cache/wheels/python_dateutil-2.9.0.post0-py2.py3-none-any.whl.meta.json +0 -24
  73. package/jupyterlite-builds/free-private/.cache/wheels/python_json_logger-4.2.0-py3-none-any.whl.meta.json +0 -24
  74. package/jupyterlite-builds/free-private/.cache/wheels/typing_inspect-0.9.0-py3-none-any.whl.meta.json +0 -24
  75. package/jupyterlite-builds/free-private/.cache/wheels/xmltodict-0.13.0-py2.py3-none-any.whl.meta.json +0 -24
  76. package/jupyterlite-builds/free-private/.cache/wheels/zipp-4.1.0-py3-none-any.whl.meta.json +0 -24
  77. package/jupyterlite-builds/free-private/cockle-config.json +0 -71
  78. package/jupyterlite-builds/free-private/cockle_wasm_env/.mambarc +0 -1
  79. package/jupyterlite-builds/free-private/cockle_wasm_env/bin/coreutils.js +0 -5421
  80. package/jupyterlite-builds/free-private/cockle_wasm_env/bin/coreutils.wasm +0 -0
  81. package/jupyterlite-builds/free-private/cockle_wasm_env/bin/fs.d.ts +0 -375
  82. package/jupyterlite-builds/free-private/cockle_wasm_env/bin/fs.js +0 -3401
  83. package/jupyterlite-builds/free-private/cockle_wasm_env/bin/fs.wasm +0 -0
  84. package/jupyterlite-builds/free-private/cockle_wasm_env/bin/grep.js +0 -3839
  85. package/jupyterlite-builds/free-private/cockle_wasm_env/bin/grep.wasm +0 -0
  86. package/jupyterlite-builds/free-private/cockle_wasm_env/bin/less.data +0 -0
  87. package/jupyterlite-builds/free-private/cockle_wasm_env/bin/less.js +0 -5060
  88. package/jupyterlite-builds/free-private/cockle_wasm_env/bin/less.wasm +0 -0
  89. package/jupyterlite-builds/free-private/cockle_wasm_env/bin/sed.js +0 -3843
  90. package/jupyterlite-builds/free-private/cockle_wasm_env/bin/sed.wasm +0 -0
  91. package/jupyterlite-builds/free-private/cockle_wasm_env/conda-meta/cockle_fs-0.3.0-h27506cd_2.json +0 -60
  92. package/jupyterlite-builds/free-private/cockle_wasm_env/conda-meta/coreutils-9.10-h072c4ef_3.json +0 -52
  93. package/jupyterlite-builds/free-private/cockle_wasm_env/conda-meta/emscripten-abi-4.0.9-h267e887_9.json +0 -31
  94. package/jupyterlite-builds/free-private/cockle_wasm_env/conda-meta/grep-3.12-h8b79025_0.json +0 -52
  95. package/jupyterlite-builds/free-private/cockle_wasm_env/conda-meta/history +0 -10
  96. package/jupyterlite-builds/free-private/cockle_wasm_env/conda-meta/less-693-hf259948_0.json +0 -60
  97. package/jupyterlite-builds/free-private/cockle_wasm_env/conda-meta/sed-4.9-h072c4ef_0.json +0 -52
  98. package/scripts/aiohttp-3.13.5-cp314-cp314-pyemscripten_2026_0_wasm32.whl +0 -0
  99. package/scripts/build-gen3sdk-lite_v2.sh +0 -310
  100. package/scripts/build-jupyterlite_v2.sh +0 -111
@@ -1,60 +0,0 @@
1
- {
2
- "arch": "wasm32",
3
- "build": "h27506cd_2",
4
- "build_number": 2,
5
- "build_string": "h27506cd_2",
6
- "channel": "https://repo.prefix.dev/emscripten-forge-4x",
7
- "constrains": [],
8
- "depends": [
9
- "emscripten-abi >=4,<5.0a0"
10
- ],
11
- "extracted_package_dir": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/cockle_fs-0.3.0-h27506cd_2",
12
- "files": [
13
- "bin/fs.d.ts",
14
- "bin/fs.js",
15
- "bin/fs.wasm"
16
- ],
17
- "fn": "cockle_fs-0.3.0-h27506cd_2.tar.bz2",
18
- "license": "BSD-3-Clause",
19
- "link": {
20
- "source": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/cockle_fs-0.3.0-h27506cd_2",
21
- "type": 1
22
- },
23
- "md5": "e4fe36e323a7720be6631b18d6024d24",
24
- "name": "cockle_fs",
25
- "package_tarball_full_path": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/cockle_fs-0.3.0-h27506cd_2.tar.bz2",
26
- "paths_data": {
27
- "paths": [
28
- {
29
- "_path": "bin/fs.d.ts",
30
- "path_type": "hardlink",
31
- "sha256": "edb2179cd1631530f986db7388ca868d8086ba4129995cb6450e3c9f4790dd41",
32
- "sha256_in_prefix": "edb2179cd1631530f986db7388ca868d8086ba4129995cb6450e3c9f4790dd41",
33
- "size_in_bytes": 15066
34
- },
35
- {
36
- "_path": "bin/fs.js",
37
- "path_type": "hardlink",
38
- "sha256": "3328a6991ec5289977691eac82dfc504b9f5203fe58d48159bfcbceb0fb47360",
39
- "sha256_in_prefix": "3328a6991ec5289977691eac82dfc504b9f5203fe58d48159bfcbceb0fb47360",
40
- "size_in_bytes": 104678
41
- },
42
- {
43
- "_path": "bin/fs.wasm",
44
- "path_type": "hardlink",
45
- "sha256": "d7f7def418fd6e87dd85b358b1ef087c0a76fc4b235c8aa2f5512891d67b15b7",
46
- "sha256_in_prefix": "d7f7def418fd6e87dd85b358b1ef087c0a76fc4b235c8aa2f5512891d67b15b7",
47
- "size_in_bytes": 173
48
- }
49
- ],
50
- "paths_version": 1
51
- },
52
- "platform": "emscripten",
53
- "requested_spec": "cockle_fs",
54
- "sha256": "d7f4aeb4299154e981906b1eeed875ff786659ac0f16242cfb4edd749a72b528",
55
- "size": 35103,
56
- "subdir": "emscripten-wasm32",
57
- "timestamp": 1785179242,
58
- "url": "https://repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/cockle_fs-0.3.0-h27506cd_2.tar.bz2",
59
- "version": "0.3.0"
60
- }
@@ -1,52 +0,0 @@
1
- {
2
- "arch": "wasm32",
3
- "build": "h072c4ef_3",
4
- "build_number": 3,
5
- "build_string": "h072c4ef_3",
6
- "channel": "https://repo.prefix.dev/emscripten-forge-4x",
7
- "constrains": [],
8
- "depends": [
9
- "emscripten-abi >=4,<5.0a0"
10
- ],
11
- "extracted_package_dir": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/coreutils-9.10-h072c4ef_3",
12
- "files": [
13
- "bin/coreutils.js",
14
- "bin/coreutils.wasm"
15
- ],
16
- "fn": "coreutils-9.10-h072c4ef_3.tar.bz2",
17
- "license": "GPL-3.0-only",
18
- "link": {
19
- "source": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/coreutils-9.10-h072c4ef_3",
20
- "type": 1
21
- },
22
- "md5": "e596800d9d392c960b28f202a78a9778",
23
- "name": "coreutils",
24
- "package_tarball_full_path": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/coreutils-9.10-h072c4ef_3.tar.bz2",
25
- "paths_data": {
26
- "paths": [
27
- {
28
- "_path": "bin/coreutils.js",
29
- "path_type": "hardlink",
30
- "sha256": "e40c3a8e8673550544c8f6f856063f8e9c40bcd45b5ea8a857100f7d88050705",
31
- "sha256_in_prefix": "e40c3a8e8673550544c8f6f856063f8e9c40bcd45b5ea8a857100f7d88050705",
32
- "size_in_bytes": 168774
33
- },
34
- {
35
- "_path": "bin/coreutils.wasm",
36
- "path_type": "hardlink",
37
- "sha256": "7c5de595f82d6d81759ad87ee9ea77924184905740dc78dd1418145048da43e6",
38
- "sha256_in_prefix": "7c5de595f82d6d81759ad87ee9ea77924184905740dc78dd1418145048da43e6",
39
- "size_in_bytes": 1200495
40
- }
41
- ],
42
- "paths_version": 1
43
- },
44
- "platform": "emscripten",
45
- "requested_spec": "coreutils",
46
- "sha256": "f8cebab6005b1e083899b48abe8904484664521315f5671689ca4c8fa735acf9",
47
- "size": 595703,
48
- "subdir": "emscripten-wasm32",
49
- "timestamp": 1785222124,
50
- "url": "https://repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/coreutils-9.10-h072c4ef_3.tar.bz2",
51
- "version": "9.10"
52
- }
@@ -1,31 +0,0 @@
1
- {
2
- "build": "h267e887_9",
3
- "build_number": 9,
4
- "build_string": "h267e887_9",
5
- "channel": "https://repo.prefix.dev/emscripten-forge-4x",
6
- "constrains": [],
7
- "depends": [],
8
- "extracted_package_dir": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/noarch/emscripten-abi-4.0.9-h267e887_9",
9
- "files": [],
10
- "fn": "emscripten-abi-4.0.9-h267e887_9.tar.bz2",
11
- "license": "MIT",
12
- "link": {
13
- "source": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/noarch/emscripten-abi-4.0.9-h267e887_9",
14
- "type": 1
15
- },
16
- "md5": "25efc842dad2785871310cfa3499ca33",
17
- "name": "emscripten-abi",
18
- "noarch": "generic",
19
- "package_tarball_full_path": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/noarch/emscripten-abi-4.0.9-h267e887_9.tar.bz2",
20
- "paths_data": {
21
- "paths": [],
22
- "paths_version": 1
23
- },
24
- "requested_spec": "",
25
- "sha256": "0dd4620a5b4f2ec7d492b4162afd609eda221ef066bac3e7fe9210ae27a37318",
26
- "size": 13443,
27
- "subdir": "noarch",
28
- "timestamp": 1785158713,
29
- "url": "https://repo.prefix.dev/emscripten-forge-4x/noarch/emscripten-abi-4.0.9-h267e887_9.tar.bz2",
30
- "version": "4.0.9"
31
- }
@@ -1,52 +0,0 @@
1
- {
2
- "arch": "wasm32",
3
- "build": "h8b79025_0",
4
- "build_number": 0,
5
- "build_string": "h8b79025_0",
6
- "channel": "https://repo.prefix.dev/emscripten-forge-4x",
7
- "constrains": [],
8
- "depends": [
9
- "emscripten-abi >=4,<5.0a0"
10
- ],
11
- "extracted_package_dir": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/grep-3.12-h8b79025_0",
12
- "files": [
13
- "bin/grep.js",
14
- "bin/grep.wasm"
15
- ],
16
- "fn": "grep-3.12-h8b79025_0.tar.bz2",
17
- "license": "GPL-3.0-only",
18
- "link": {
19
- "source": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/grep-3.12-h8b79025_0",
20
- "type": 1
21
- },
22
- "md5": "c986cfcd0113c263e7af7f78ee7c6900",
23
- "name": "grep",
24
- "package_tarball_full_path": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/grep-3.12-h8b79025_0.tar.bz2",
25
- "paths_data": {
26
- "paths": [
27
- {
28
- "_path": "bin/grep.js",
29
- "path_type": "hardlink",
30
- "sha256": "8d410527428b2df6ba97c956320cc2e6c4c0b08b4f47556e198e6b732dc0e3d5",
31
- "sha256_in_prefix": "8d410527428b2df6ba97c956320cc2e6c4c0b08b4f47556e198e6b732dc0e3d5",
32
- "size_in_bytes": 119651
33
- },
34
- {
35
- "_path": "bin/grep.wasm",
36
- "path_type": "hardlink",
37
- "sha256": "7aa8a089a79262dcf76ca6da849c275df19faae0c0a6a962569524c95e0f0673",
38
- "sha256_in_prefix": "7aa8a089a79262dcf76ca6da849c275df19faae0c0a6a962569524c95e0f0673",
39
- "size_in_bytes": 232142
40
- }
41
- ],
42
- "paths_version": 1
43
- },
44
- "platform": "emscripten",
45
- "requested_spec": "grep",
46
- "sha256": "8e881fda5c698247d53cf62ebebb644d28ab0b8db5352f4a2b56d1f7b85a5a69",
47
- "size": 137361,
48
- "subdir": "emscripten-wasm32",
49
- "timestamp": 1762793085,
50
- "url": "https://repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/grep-3.12-h8b79025_0.tar.bz2",
51
- "version": "3.12"
52
- }
@@ -1,10 +0,0 @@
1
- ==> 2026-08-26 09:09:47 <==
2
- # cmd: micromamba create -p ./cockle_wasm_env -y cockle_fs coreutils grep less sed --platform=emscripten-wasm32 -c https://repo.prefix.dev/emscripten-forge-4x -c conda-forge
3
- # conda version: 3.8.0
4
- +https://repo.prefix.dev/emscripten-forge-4x/noarch::emscripten-abi-4.0.9-h267e887_9
5
- +https://repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32::less-693-hf259948_0
6
- +https://repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32::grep-3.12-h8b79025_0
7
- +https://repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32::coreutils-9.10-h072c4ef_3
8
- +https://repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32::cockle_fs-0.3.0-h27506cd_2
9
- +https://repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32::sed-4.9-h072c4ef_0
10
- # update specs: ["cockle_fs", "coreutils", "grep", "less", "sed"]
@@ -1,60 +0,0 @@
1
- {
2
- "arch": "wasm32",
3
- "build": "hf259948_0",
4
- "build_number": 0,
5
- "build_string": "hf259948_0",
6
- "channel": "https://repo.prefix.dev/emscripten-forge-4x",
7
- "constrains": [],
8
- "depends": [
9
- "emscripten-abi >=4,<5.0a0"
10
- ],
11
- "extracted_package_dir": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/less-693-hf259948_0",
12
- "files": [
13
- "bin/less.data",
14
- "bin/less.js",
15
- "bin/less.wasm"
16
- ],
17
- "fn": "less-693-hf259948_0.tar.bz2",
18
- "license": "GPL-3.0-only",
19
- "link": {
20
- "source": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/less-693-hf259948_0",
21
- "type": 1
22
- },
23
- "md5": "3a5e102905f01a7fa8522620d51f903c",
24
- "name": "less",
25
- "package_tarball_full_path": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/less-693-hf259948_0.tar.bz2",
26
- "paths_data": {
27
- "paths": [
28
- {
29
- "_path": "bin/less.data",
30
- "path_type": "hardlink",
31
- "sha256": "8e277e436a88e4b45e697fbf58acc665faa0a6dd64746b7c7819ac4c95471431",
32
- "sha256_in_prefix": "8e277e436a88e4b45e697fbf58acc665faa0a6dd64746b7c7819ac4c95471431",
33
- "size_in_bytes": 7106
34
- },
35
- {
36
- "_path": "bin/less.js",
37
- "path_type": "hardlink",
38
- "sha256": "caad962f94775dddaccb6bfeeb05369cce930be35199f4225ba793e5ec42bc5f",
39
- "sha256_in_prefix": "caad962f94775dddaccb6bfeeb05369cce930be35199f4225ba793e5ec42bc5f",
40
- "size_in_bytes": 162151
41
- },
42
- {
43
- "_path": "bin/less.wasm",
44
- "path_type": "hardlink",
45
- "sha256": "421cbac47d1dd1224884afb034d12a7cfc04145bf83e657bd7ed573497805f93",
46
- "sha256_in_prefix": "3b8f4ee6443fbaa30a3d9eb0b8fd61ac2ae51dfe343cb4ca77eda9a3a47bf246",
47
- "size_in_bytes": 591447
48
- }
49
- ],
50
- "paths_version": 1
51
- },
52
- "platform": "emscripten",
53
- "requested_spec": "less",
54
- "sha256": "2c0e881e382690e6005582dc7af91d032656b4ba473f3a1aa19871bf92b00988",
55
- "size": 263073,
56
- "subdir": "emscripten-wasm32",
57
- "timestamp": 1776392086,
58
- "url": "https://repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/less-693-hf259948_0.tar.bz2",
59
- "version": "693"
60
- }
@@ -1,52 +0,0 @@
1
- {
2
- "arch": "wasm32",
3
- "build": "h072c4ef_0",
4
- "build_number": 0,
5
- "build_string": "h072c4ef_0",
6
- "channel": "https://repo.prefix.dev/emscripten-forge-4x",
7
- "constrains": [],
8
- "depends": [
9
- "emscripten-abi >=4,<5.0a0"
10
- ],
11
- "extracted_package_dir": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/sed-4.9-h072c4ef_0",
12
- "files": [
13
- "bin/sed.js",
14
- "bin/sed.wasm"
15
- ],
16
- "fn": "sed-4.9-h072c4ef_0.tar.bz2",
17
- "license": "GPL-3.0-only",
18
- "link": {
19
- "source": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/sed-4.9-h072c4ef_0",
20
- "type": 1
21
- },
22
- "md5": "c5401a4d0cc1ce4ee3661d3a9f706d92",
23
- "name": "sed",
24
- "package_tarball_full_path": "/opt/homebrew/Cellar/micromamba/2.8.1/pkgs/https/repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/sed-4.9-h072c4ef_0.tar.bz2",
25
- "paths_data": {
26
- "paths": [
27
- {
28
- "_path": "bin/sed.js",
29
- "path_type": "hardlink",
30
- "sha256": "24012575c22ec3582f49e94fcfe88d0b6c86d76a2c0c8503c3f32fc6c357d013",
31
- "sha256_in_prefix": "24012575c22ec3582f49e94fcfe88d0b6c86d76a2c0c8503c3f32fc6c357d013",
32
- "size_in_bytes": 119635
33
- },
34
- {
35
- "_path": "bin/sed.wasm",
36
- "path_type": "hardlink",
37
- "sha256": "98724b4372db101dd2cc0a30c7245b65b8d1da81e918096b009b3c1981b2a097",
38
- "sha256_in_prefix": "98724b4372db101dd2cc0a30c7245b65b8d1da81e918096b009b3c1981b2a097",
39
- "size_in_bytes": 147031
40
- }
41
- ],
42
- "paths_version": 1
43
- },
44
- "platform": "emscripten",
45
- "requested_spec": "sed",
46
- "sha256": "46a0817cc57f48656f1729ba57c1a70699be3cc51bb652c16b09be58103303e3",
47
- "size": 112834,
48
- "subdir": "emscripten-wasm32",
49
- "timestamp": 1762865278,
50
- "url": "https://repo.prefix.dev/emscripten-forge-4x/emscripten-wasm32/sed-4.9-h072c4ef_0.tar.bz2",
51
- "version": "4.9"
52
- }
@@ -1,310 +0,0 @@
1
- #!/usr/bin/env bash
2
- # =============================================================================
3
- # build-gen3sdk-lite.sh — Build Gen3 SDK and dependencies as WASM wheels
4
- #
5
- # Prerequisites:
6
- # - uv (https://docs.astral.sh/uv/getting-started/installation/)
7
- # - git
8
- # - cmake, make, and a C compiler (for emsdk bootstrap)
9
- #
10
- # Usage:
11
- # ./build-gen3sdk-lite.sh # full build (setup + all packages)
12
- # ./build-gen3sdk-lite.sh --setup # environment setup only
13
- # ./build-gen3sdk-lite.sh --build # build wheels only (assumes setup done)
14
- # ./build-gen3sdk-lite.sh --clean # remove cloned repos, build artifacts
15
- # =============================================================================
16
- set -euo pipefail
17
-
18
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
19
-
20
- # ── Configuration ────────────────────────────────────────────────────────────
21
- # Repositories to build (order matters — independent packages first)
22
- # Format: "name|git_url|subdir" (subdir is optional)
23
- REPOS=(
24
- "cdislogging|https://github.com/uc-cdis/cdislogging.git"
25
- "python-json-logger|https://github.com/nhairs/python-json-logger.git"
26
- "fastavro|https://github.com/fastavro/fastavro.git"
27
- "drsclient|https://github.com/uc-cdis/drsclient.git"
28
- "indexd|https://github.com/uc-cdis/indexd.git|indexclient"
29
- "dictionaryutils|https://github.com/uc-cdis/dictionaryutils.git"
30
- "pypfb|https://github.com/uc-cdis/pypfb.git"
31
- "gen3sdk-python|https://github.com/uc-cdis/gen3sdk-python.git"
32
- "gen3users|git@github.com:uc-cdis/gen3users.git"
33
- )
34
-
35
- # ── Source shared environment ────────────────────────────────────────────────
36
- # setup-env.sh exports: ROOT_DIR, SRC_DIR, BUILD_DIR, VENV_DIR, WORK_DIR,
37
- # EMSDK_DIR, SOURCES_DIR, OUTPUT_DIR, LOG_DIR and helper functions.
38
- # It also creates + activates the venv and installs core tooling.
39
- source_shared_env() {
40
- # shellcheck disable=SC1091
41
- source "${SCRIPT_DIR}/setup-env.sh"
42
- }
43
-
44
- # ── Emscripten SDK ───────────────────────────────────────────────────────────
45
- setup_emsdk() {
46
- info "Setting up Emscripten SDK …"
47
-
48
- if [[ ! -d "${EMSDK_DIR}" ]]; then
49
- git clone https://github.com/emscripten-core/emsdk.git "${EMSDK_DIR}"
50
- fi
51
-
52
- local em_version
53
- em_version="$(pyodide config get emscripten_version)"
54
- info "Pyodide requires Emscripten ${em_version}"
55
-
56
- pushd "${EMSDK_DIR}" > /dev/null
57
- ./emsdk install "${em_version}"
58
- ./emsdk activate "${em_version}"
59
- # shellcheck disable=SC1091
60
- source emsdk_env.sh
61
- popd > /dev/null
62
-
63
- success "Emscripten $(emcc --version | head -1) activated"
64
- }
65
-
66
- # ── Full environment setup ───────────────────────────────────────────────────
67
- setup_environment() {
68
- source_shared_env
69
- mkdir -p "${WORK_DIR}" "${SOURCES_DIR}" "${OUTPUT_DIR}" "${LOG_DIR}"
70
-
71
- # WASM-specific tooling (on top of the shared base)
72
- info "Installing pyodide-build …"
73
- uv pip install pyodide-build 2>&1 | tail -3
74
- success "pyodide-build $(pyodide --version 2>/dev/null || echo '(installed)')"
75
-
76
- setup_emsdk
77
- }
78
-
79
- # ── Clone / update sources ──────────────────────────────────────────────────
80
- clone_repos() {
81
- info "Cloning / updating repositories …"
82
- for entry in "${REPOS[@]}"; do
83
- IFS='|' read -r name url _subdir <<< "${entry}"
84
- local dest="${SOURCES_DIR}/${name}"
85
- if [[ -d "${dest}/.git" ]]; then
86
- info " ${name}: pulling latest …"
87
- git -C "${dest}" pull --ff-only 2>&1 | tail -1
88
- else
89
- info " ${name}: cloning …"
90
- git clone "${url}" "${dest}" 2>&1 | tail -1
91
- fi
92
- done
93
- success "All repositories ready"
94
- }
95
-
96
- # ── Build WASM wheels ───────────────────────────────────────────────────────
97
- build_wheels() {
98
- # Make sure emsdk env is active in this shell
99
- if [[ -f "${EMSDK_DIR}/emsdk_env.sh" ]]; then
100
- # shellcheck disable=SC1091
101
- source "${EMSDK_DIR}/emsdk_env.sh" 2>/dev/null
102
- fi
103
- # shellcheck disable=SC1091
104
- source "${VENV_DIR}/bin/activate"
105
-
106
- local total=${#REPOS[@]}
107
- local built=0
108
- local failed=0
109
- local failed_names=()
110
-
111
- # ── Source patches ─────────────────────────────────────────────────────
112
-
113
- # gen3users: old poetry.masonry.api → poetry.core.masonry.api
114
- local gen3users_pyproject="${SOURCES_DIR}/gen3users/pyproject.toml"
115
- if [[ -f "${gen3users_pyproject}" ]]; then
116
- sed -i '' 's|build-backend = "poetry.masonry.api"|build-backend = "poetry.core.masonry.api"|' "${gen3users_pyproject}"
117
- info "Patched gen3users: build-backend updated to poetry.core.masonry.api"
118
- fi
119
-
120
- # gen3sdk-python: relax indexclient pin
121
- local gen3sdk_pyproject="${SOURCES_DIR}/gen3sdk-python/pyproject.toml"
122
- if [[ -f "${gen3sdk_pyproject}" ]]; then
123
- sed -i '' 's/indexclient = "\^2\.3\.0"/indexclient = ">=2.3.0"/' "${gen3sdk_pyproject}"
124
- info "Patched gen3sdk-python: indexclient constraint relaxed to >=2.3.0"
125
- fi
126
-
127
- # dictionaryutils: relax jsonschema pin
128
- local dictionaryutils_pyproject="${SOURCES_DIR}/dictionaryutils/pyproject.toml"
129
- if [[ -f "${dictionaryutils_pyproject}" ]]; then
130
- sed -i '' 's/jsonschema = "<=4\.23\.0"/jsonschema = ">=4.0.0"/' "${dictionaryutils_pyproject}"
131
- info "Patched dictionaryutils: jsonschema constraint relaxed to >=4.0.0"
132
- fi
133
-
134
- # psqlgraph: multiple fixes for WASM compatibility
135
- local psqlgraph_pyproject="${SOURCES_DIR}/psqlgraph/pyproject.toml"
136
- if [[ -f "${psqlgraph_pyproject}" ]]; then
137
- sed -i '' 's/"sqlalchemy~=1\.4"/"sqlalchemy>=1.4"/' "${psqlgraph_pyproject}"
138
- sed -i '' 's/, "versionista>=1\.1\.0"//' "${psqlgraph_pyproject}"
139
- sed -i '' 's/local_scheme = "versionista-local-format"/local_scheme = "no-local-version"/' "${psqlgraph_pyproject}"
140
- sed -i '' 's/version_scheme = "versionista-format"/version_scheme = "guess-next-dev"/' "${psqlgraph_pyproject}"
141
- sed -i '' '/"psycopg2"/d' "${psqlgraph_pyproject}"
142
- sed -i '' '/"xlocal"/d' "${psqlgraph_pyproject}"
143
- info "Patched psqlgraph: sqlalchemy >=1.4, removed versionista + psycopg2 + xlocal"
144
-
145
- local psql_py="${SOURCES_DIR}/psqlgraph/src/psqlgraph/psql.py"
146
- if [[ -f "${psql_py}" ]]; then
147
- python3 - "${psql_py}" <<'PYEOF'
148
- import sys, re
149
-
150
- path = sys.argv[1]
151
- text = open(path).read()
152
- stub = '''\
153
- try:
154
- import xlocal
155
- except ImportError:
156
- class _XLocalInst:
157
- class _Ctx:
158
- def __init__(self, parent, **kw):
159
- self._parent, self._kw = parent, kw
160
- def __enter__(self):
161
- for k, v in self._kw.items():
162
- setattr(self._parent, k, v)
163
- return self._parent
164
- def __exit__(self, *a):
165
- for k in self._kw:
166
- self._parent.__dict__.pop(k, None)
167
- def __call__(self, **kw):
168
- return self._Ctx(self, **kw)
169
- class _xlocal_module:
170
- xlocal = _XLocalInst
171
- xlocal = _xlocal_module()'''
172
- text = re.sub(r'^import xlocal$', stub, text, flags=re.MULTILINE)
173
- open(path, 'w').write(text)
174
- PYEOF
175
- info "Patched psqlgraph/psql.py: xlocal import wrapped in try/except stub"
176
- fi
177
- fi
178
-
179
- # ── Build loop ─────────────────────────────────────────────────────────
180
- info "Building ${total} packages …"
181
- echo ""
182
-
183
- for entry in "${REPOS[@]}"; do
184
- IFS='|' read -r name _url subdir <<< "${entry}"
185
- local src="${SOURCES_DIR}/${name}"
186
- local build_dir="${src}"
187
- [[ -n "${subdir}" ]] && build_dir="${src}/${subdir}"
188
- local logfile="${LOG_DIR}/${name}.log"
189
- local start_ts
190
- start_ts=$(date +%s)
191
-
192
- local label="${name}"
193
- [[ -n "${subdir}" ]] && label="${name}/${subdir}"
194
- printf " [%d/%d] %-25s " $((built + failed + 1)) "${total}" "${label}"
195
-
196
- if (cd "${build_dir}" && pyodide build) > "${logfile}" 2>&1; then
197
- local end_ts
198
- end_ts=$(date +%s)
199
- echo -e "${GREEN}OK${NC} ($(elapsed $((end_ts - start_ts))))"
200
- ((built++))
201
- else
202
- local end_ts
203
- end_ts=$(date +%s)
204
- echo -e "${RED}FAILED${NC} ($(elapsed $((end_ts - start_ts)))) — see ${logfile}"
205
- ((failed++))
206
- failed_names+=("${name}")
207
- fi
208
- done
209
-
210
- echo ""
211
-
212
- # ── Collect wheels ─────────────────────────────────────────────────────
213
- info "Collecting .whl files into ${OUTPUT_DIR} …"
214
- local count=0
215
- for entry in "${REPOS[@]}"; do
216
- IFS='|' read -r name _url subdir <<< "${entry}"
217
- local src="${SOURCES_DIR}/${name}"
218
- local build_dir="${src}"
219
- [[ -n "${subdir}" ]] && build_dir="${src}/${subdir}"
220
- if compgen -G "${build_dir}/dist/*.whl" > /dev/null 2>&1; then
221
- cp "${build_dir}"/dist/*.whl "${OUTPUT_DIR}/"
222
- ((count += $(ls -1 "${build_dir}"/dist/*.whl 2>/dev/null | wc -l)))
223
- fi
224
- done
225
-
226
- # ── Normalise platform tags ────────────────────────────────────────────
227
- for whl in "${OUTPUT_DIR}"/*p313-cp313-pyemscripten_2025_0_wasm32.whl; do
228
- [[ -f "${whl}" ]] || continue
229
- new_whl="${whl/p313-cp313-pyemscripten_2025_0_wasm32/py3-none-any}"
230
- mv "${whl}" "${new_whl}"
231
- info "Renamed $(basename "${whl}") → $(basename "${new_whl}")"
232
- done
233
-
234
- # ── Summary ────────────────────────────────────────────────────────────
235
- echo ""
236
- echo "========================================="
237
- echo " Build Summary"
238
- echo "========================================="
239
- echo " Succeeded : ${built}"
240
- echo " Failed : ${failed}"
241
- echo " Wheels : ${count} file(s) in ${OUTPUT_DIR}/"
242
- if (( failed > 0 )); then
243
- echo ""
244
- echo " Failed packages:"
245
- for n in "${failed_names[@]}"; do
246
- echo " - ${n} (log: ${LOG_DIR}/${n}.log)"
247
- done
248
- fi
249
- echo "========================================="
250
- echo ""
251
-
252
- if (( failed > 0 )); then
253
- warn "Some packages failed. Check the logs above."
254
- return 1
255
- fi
256
-
257
- success "All wheels built and collected in ${OUTPUT_DIR}/"
258
- echo ""
259
- ls -lh "${OUTPUT_DIR}"/*.whl
260
- }
261
-
262
- # ── Clean ────────────────────────────────────────────────────────────────────
263
- clean() {
264
- # Need the path variables but don't need the full env setup
265
- ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
266
- SRC_DIR="$ROOT_DIR/free-private"
267
- BUILD_DIR="${2:-$SRC_DIR/build}"
268
- WORK_DIR="$BUILD_DIR/work"
269
- OUTPUT_DIR="$BUILD_DIR/pypi"
270
- LOG_DIR="$BUILD_DIR/logs"
271
-
272
- echo -e '\033[0;36m[INFO]\033[0m Cleaning build artifacts …'
273
- rm -rf "${WORK_DIR}" "${OUTPUT_DIR}" "${LOG_DIR}"
274
- echo -e '\033[0;32m[OK]\033[0m Clean complete'
275
- }
276
-
277
- # ── Main ─────────────────────────────────────────────────────────────────────
278
- main() {
279
- local mode="${1:-all}"
280
-
281
- case "${mode}" in
282
- --setup)
283
- setup_environment
284
- ;;
285
- --build)
286
- source_shared_env
287
- clone_repos
288
- build_wheels
289
- ;;
290
- --clean)
291
- clean
292
- ;;
293
- --help|-h)
294
- echo "Usage: $0 [--setup | --build | --clean | --help]"
295
- echo ""
296
- echo " (no flag) Full run: setup environment, clone repos, build wheels"
297
- echo " --setup Set up Python, venv, pyodide-build, and emsdk"
298
- echo " --build Clone/update repos and build WASM wheels (requires prior --setup)"
299
- echo " --clean Remove work/, dist/, and logs/"
300
- echo " --help Show this message"
301
- ;;
302
- *)
303
- setup_environment
304
- clone_repos
305
- build_wheels
306
- ;;
307
- esac
308
- }
309
-
310
- main "$@"