earthcode 0.1.7__tar.gz → 0.1.9__tar.gz

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 (97) hide show
  1. {earthcode-0.1.7 → earthcode-0.1.9}/.github/workflows/ci.yml +8 -8
  2. {earthcode-0.1.7 → earthcode-0.1.9}/.github/workflows/pages.yml +14 -13
  3. {earthcode-0.1.7 → earthcode-0.1.9}/.github/workflows/publish.yml +11 -12
  4. earthcode-0.1.9/.gitignore +23 -0
  5. earthcode-0.1.9/PKG-INFO +118 -0
  6. earthcode-0.1.9/README.md +67 -0
  7. earthcode-0.1.9/_toc.yml +21 -0
  8. earthcode-0.1.9/cli/analyse_fairness.ipynb +417 -0
  9. earthcode-0.1.9/docs/contributing_to_the_osc.md +159 -0
  10. earthcode-0.1.9/docs/fairtool.md +126 -0
  11. earthcode-0.1.9/docs/guides/0.Prerequisites-EarthCODE-Workspaces.ipynb +117 -0
  12. earthcode-0.1.9/docs/guides/0.Prerequisites-local.ipynb +128 -0
  13. earthcode-0.1.9/docs/guides/1.Project.ipynb +202 -0
  14. earthcode-0.1.9/docs/guides/2.0.Product.ipynb +251 -0
  15. earthcode-0.1.9/docs/guides/3.Workflow.ipynb +171 -0
  16. earthcode-0.1.9/docs/guides/4.Experiment.ipynb +177 -0
  17. earthcode-0.1.9/docs/guides/5.Templates.ipynb +198 -0
  18. earthcode-0.1.9/docs/tutorials/cog_file_metadata_creation.ipynb +1103 -0
  19. earthcode-0.1.9/docs/tutorials/create_osc_entry_from_prr.ipynb +551 -0
  20. {earthcode-0.1.7/examples → earthcode-0.1.9/docs/tutorials}/earthcode_data_discovery.ipynb +1 -1
  21. earthcode-0.1.9/docs/tutorials/end_to_end_subglacial_lakes.ipynb +4632 -0
  22. earthcode-0.1.9/docs/tutorials/parquet_file_metadata.ipynb +3978 -0
  23. earthcode-0.1.9/docs/tutorials/zarr_file_metadata.ipynb +6113 -0
  24. earthcode-0.1.9/earthcode/__init__.py +2 -0
  25. earthcode-0.1.9/earthcode/fairtool.py +766 -0
  26. earthcode-0.1.9/earthcode/generators/__init__.py +6 -0
  27. earthcode-0.1.9/earthcode/generators/experiment_generator.py +63 -0
  28. earthcode-0.1.9/earthcode/generators/product_generator.py +81 -0
  29. earthcode-0.1.9/earthcode/generators/stac_generator.py +70 -0
  30. earthcode-0.1.9/earthcode/generators/template_generator.py +78 -0
  31. earthcode-0.1.9/earthcode/generators/templates/experiment.yaml +52 -0
  32. earthcode-0.1.9/earthcode/generators/templates/product.yaml +53 -0
  33. earthcode-0.1.9/earthcode/generators/templates/project.yaml +41 -0
  34. earthcode-0.1.9/earthcode/generators/templates/workflow.yaml +41 -0
  35. earthcode-0.1.9/earthcode/generators/workflow_generator.py +62 -0
  36. {earthcode-0.1.7 → earthcode-0.1.9}/earthcode/git_add.py +4 -1
  37. earthcode-0.1.9/earthcode/prr.py +87 -0
  38. earthcode-0.1.9/earthcode/schemas/catalog.json +627 -0
  39. earthcode-0.1.9/earthcode/schemas/collection.json +159 -0
  40. earthcode-0.1.9/earthcode/schemas/contacts.json +174 -0
  41. earthcode-0.1.9/earthcode/schemas/eo-missions/children.json +11 -0
  42. earthcode-0.1.9/earthcode/schemas/eo-missions/parent.json +11 -0
  43. earthcode-0.1.9/earthcode/schemas/experiments/children.json +30 -0
  44. earthcode-0.1.9/earthcode/schemas/experiments/parent.json +11 -0
  45. earthcode-0.1.9/earthcode/schemas/license.json +576 -0
  46. earthcode-0.1.9/earthcode/schemas/osc.json +80 -0
  47. earthcode-0.1.9/earthcode/schemas/products/children.json +86 -0
  48. earthcode-0.1.9/earthcode/schemas/products/parent.json +11 -0
  49. earthcode-0.1.9/earthcode/schemas/projects/children.json +97 -0
  50. earthcode-0.1.9/earthcode/schemas/projects/parent.json +11 -0
  51. earthcode-0.1.9/earthcode/schemas/records.json +559 -0
  52. earthcode-0.1.9/earthcode/schemas/themes/children.json +11 -0
  53. earthcode-0.1.9/earthcode/schemas/themes/parent.json +11 -0
  54. earthcode-0.1.9/earthcode/schemas/themes.json +107 -0
  55. earthcode-0.1.9/earthcode/schemas/variables/children.json +22 -0
  56. earthcode-0.1.9/earthcode/schemas/variables/parent.json +11 -0
  57. earthcode-0.1.9/earthcode/schemas/workflows/children.json +30 -0
  58. earthcode-0.1.9/earthcode/schemas/workflows/parent.json +11 -0
  59. {earthcode-0.1.7 → earthcode-0.1.9}/earthcode/static.py +80 -2
  60. {earthcode-0.1.7 → earthcode-0.1.9}/earthcode/validator.py +36 -27
  61. {earthcode-0.1.7 → earthcode-0.1.9}/pixi.lock +10292 -9671
  62. {earthcode-0.1.7 → earthcode-0.1.9}/pixi.toml +18 -0
  63. {earthcode-0.1.7 → earthcode-0.1.9}/pyproject.toml +36 -2
  64. {earthcode-0.1.7 → earthcode-0.1.9}/tests/test_creation.py +3 -3
  65. earthcode-0.1.9/tests/test_fairtool.py +282 -0
  66. {earthcode-0.1.7 → earthcode-0.1.9}/tests/test_notebooks.py +16 -59
  67. earthcode-0.1.9/tests/test_valid_generators.py +186 -0
  68. {earthcode-0.1.7 → earthcode-0.1.9}/tests/test_validation.py +3 -3
  69. earthcode-0.1.7/.gitignore +0 -14
  70. earthcode-0.1.7/PKG-INFO +0 -90
  71. earthcode-0.1.7/README.md +0 -41
  72. earthcode-0.1.7/_toc.yml +0 -21
  73. earthcode-0.1.7/earthcode/__init__.py +0 -0
  74. earthcode-0.1.7/earthcode/fairtool.py +0 -577
  75. earthcode-0.1.7/examples/contribute_via_osc_editor.ipynb +0 -2004
  76. earthcode-0.1.7/examples/contribute_via_pr_osc.ipynb +0 -2279
  77. earthcode-0.1.7/guide/0.Prerequisites-EarthCODE-Workspaces.ipynb +0 -96
  78. earthcode-0.1.7/guide/0.Prerequisites-local.ipynb +0 -105
  79. earthcode-0.1.7/guide/1.Project.ipynb +0 -184
  80. earthcode-0.1.7/guide/2.0.Product.ipynb +0 -231
  81. earthcode-0.1.7/guide/2.1.Product_files_PRR.ipynb +0 -144
  82. earthcode-0.1.7/guide/2.1.Product_files_self_hosted.ipynb +0 -163
  83. earthcode-0.1.7/guide/3.Workflow.ipynb +0 -152
  84. earthcode-0.1.7/guide/4.Experiment.ipynb +0 -166
  85. earthcode-0.1.7/tests/test_fairtool.py +0 -95
  86. {earthcode-0.1.7 → earthcode-0.1.9}/.gitattributes +0 -0
  87. {earthcode-0.1.7 → earthcode-0.1.9}/LICENSE +0 -0
  88. {earthcode-0.1.7 → earthcode-0.1.9}/_config.yml +0 -0
  89. {earthcode-0.1.7 → earthcode-0.1.9}/assets/clone-and-branch.gif +0 -0
  90. {earthcode-0.1.7 → earthcode-0.1.9}/assets/commitclip.gif +0 -0
  91. {earthcode-0.1.7 → earthcode-0.1.9}/assets/create-token.gif +0 -0
  92. {earthcode-0.1.7 → earthcode-0.1.9}/assets/pullrequest.gif +0 -0
  93. {earthcode-0.1.7 → earthcode-0.1.9}/cli/generate_embeddings.py +0 -0
  94. {earthcode-0.1.7 → earthcode-0.1.9}/earthcode/gitclerk_add.py +0 -0
  95. {earthcode-0.1.7 → earthcode-0.1.9}/earthcode/metadata_input_definitions.py +0 -0
  96. {earthcode-0.1.7 → earthcode-0.1.9}/earthcode/search.py +0 -0
  97. {earthcode-0.1.7 → earthcode-0.1.9}/tests/test_search.py +0 -0
@@ -25,25 +25,25 @@ jobs:
25
25
 
26
26
  steps:
27
27
  - name: Checkout earthcode-library
28
- uses: actions/checkout@v6
28
+ uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
29
29
  with:
30
30
  path: earthcode-library
31
+ persist-credentials: false
31
32
 
32
33
  - name: Checkout open-science-catalog-metadata
33
- uses: actions/checkout@v6
34
+ uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
34
35
  with:
35
36
  repository: ESA-EarthCODE/open-science-catalog-metadata
36
37
  path: open-science-catalog-metadata
38
+ persist-credentials: false
37
39
 
38
40
  - name: Set up Pixi
39
- uses: prefix-dev/setup-pixi@v0.9.4
41
+ uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2
40
42
  with:
41
- pixi-version: v0.59.0
42
- manifest-path: earthcode-library/pixi.toml
43
- environments: default
43
+ pixi-version: v0.82.1
44
+ working-directory: earthcode-library
44
45
  locked: true
45
46
  cache: true
46
- cache-write: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
47
47
 
48
48
  - name: Run test suite
49
- run: pixi run -e default pytest
49
+ run: pixi run --locked -e default pytest
@@ -29,8 +29,6 @@ on:
29
29
 
30
30
  permissions:
31
31
  contents: read
32
- pages: write
33
- id-token: write
34
32
 
35
33
  concurrency:
36
34
  group: pages
@@ -43,22 +41,22 @@ jobs:
43
41
 
44
42
  steps:
45
43
  - name: Checkout repository
46
- uses: actions/checkout@v6
47
-
48
- - name: Set up Python
49
- uses: actions/setup-python@v5
44
+ uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
50
45
  with:
51
- python-version: "3.12"
52
- cache: pip
46
+ persist-credentials: false
53
47
 
54
- - name: Install Jupyter Book
55
- run: python -m pip install --upgrade "jupyter-book>=1.0.4,<2"
48
+ - name: Set up Pixi
49
+ uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2
50
+ with:
51
+ pixi-version: v0.82.1
52
+ locked: true
53
+ cache: true
56
54
 
57
55
  - name: Build site
58
- run: jupyter-book build .
56
+ run: pixi run --locked docs
59
57
 
60
58
  - name: Upload Pages artifact
61
- uses: actions/upload-pages-artifact@v3
59
+ uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3
62
60
  with:
63
61
  path: _build/html
64
62
 
@@ -67,6 +65,9 @@ jobs:
67
65
  if: github.event_name == 'push' && github.ref == 'refs/heads/main'
68
66
  needs: build
69
67
  runs-on: ubuntu-latest
68
+ permissions:
69
+ pages: write
70
+ id-token: write
70
71
  environment:
71
72
  name: github-pages
72
73
  url: ${{ steps.deployment.outputs.page_url }}
@@ -74,4 +75,4 @@ jobs:
74
75
  steps:
75
76
  - name: Deploy to GitHub Pages
76
77
  id: deployment
77
- uses: actions/deploy-pages@v4
78
+ uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
@@ -20,26 +20,25 @@ jobs:
20
20
 
21
21
  steps:
22
22
  - name: Checkout repository
23
- uses: actions/checkout@v6
23
+ uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
24
24
  with:
25
25
  persist-credentials: false
26
26
 
27
- - name: Set up Python
28
- uses: actions/setup-python@v6
27
+ - name: Set up Pixi
28
+ uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2
29
29
  with:
30
- python-version: "3.12"
31
-
32
- - name: Install build tools
33
- run: python -m pip install --upgrade build twine
30
+ pixi-version: v0.82.1
31
+ locked: true
32
+ cache: true
34
33
 
35
34
  - name: Build distribution artifacts
36
- run: python -m build
35
+ run: pixi run --locked python -m build --no-isolation
37
36
 
38
37
  - name: Check distribution metadata
39
- run: python -m twine check dist/*
38
+ run: pixi run --locked python -m twine check dist/*
40
39
 
41
40
  - name: Upload distribution artifacts
42
- uses: actions/upload-artifact@v5
41
+ uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
43
42
  with:
44
43
  name: python-package-distributions
45
44
  path: dist/
@@ -59,10 +58,10 @@ jobs:
59
58
 
60
59
  steps:
61
60
  - name: Download distribution artifacts
62
- uses: actions/download-artifact@v6
61
+ uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
63
62
  with:
64
63
  name: python-package-distributions
65
64
  path: dist/
66
65
 
67
66
  - name: Publish to PyPI
68
- uses: pypa/gh-action-pypi-publish@release/v1
67
+ uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # v1.14.3
@@ -0,0 +1,23 @@
1
+
2
+ # pixi environments
3
+ .pixi
4
+ .idea
5
+ *.egg-info
6
+ *__pycache__*
7
+ *.json
8
+ test*.ipynb
9
+ open-science-catalog-metadata
10
+ htmlcov/
11
+ *.coverage
12
+ _build/
13
+ dist/
14
+ dev.ipynb
15
+ earthcode/models
16
+ guide/project.yaml
17
+ guide/.ipynb_checkpoints/
18
+ guide/product.yaml
19
+ earthcode/generators/project_generator.py
20
+ guide/workflow.yaml
21
+ guide/experiment.yaml
22
+ docs/examples/downloaded_data/
23
+ *.ipynb_checkpoints/
@@ -0,0 +1,118 @@
1
+ Metadata-Version: 2.5
2
+ Name: earthcode
3
+ Version: 0.1.9
4
+ Summary: Tools for creating, validating, and searching EarthCODE Open Science Catalog metadata.
5
+ Project-URL: Homepage, https://github.com/ESA-EarthCODE/earthcode-library
6
+ Project-URL: Repository, https://github.com/ESA-EarthCODE/earthcode-library
7
+ Project-URL: Issues, https://github.com/ESA-EarthCODE/earthcode-library/issues
8
+ Project-URL: Documentation, https://esa-earthcode.github.io/earthcode-library/
9
+ Author-email: Krasen Samardzhiev <krasensam@gmail.com>, Deyan Samardzhiev <dean@lampata.co.uk>, Claudio Candelori <claudio.candelori@cgi.com>
10
+ License-Expression: MIT
11
+ License-File: LICENSE
12
+ Keywords: earth observation,earthcode,geospatial
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Topic :: Scientific/Engineering
19
+ Requires-Python: >=3.12
20
+ Requires-Dist: bottleneck<2,>=1.6.0
21
+ Requires-Dist: certifi>=2026.10.19
22
+ Requires-Dist: dask<2026,>=2025.12.0
23
+ Requires-Dist: fsspec<2026,>=2025.10.0
24
+ Requires-Dist: geopandas<2,>=1.1.2
25
+ Requires-Dist: jsonschema<5,>=4.25.1
26
+ Requires-Dist: netcdf4<2,>=1.7.3
27
+ Requires-Dist: numpy<3,>=2.4.1
28
+ Requires-Dist: onnxruntime<2,>=1.23.2
29
+ Requires-Dist: pandas<4,>=3.0.0
30
+ Requires-Dist: pillow<12,>=10.3
31
+ Requires-Dist: platformdirs<5,>=4.5.0
32
+ Requires-Dist: pyarrow<24,>=23.0.0
33
+ Requires-Dist: pydantic<3,>=2.12.5
34
+ Requires-Dist: pylance<3,>=2.0.1
35
+ Requires-Dist: pystac<2,>=1.14.1
36
+ Requires-Dist: pyyaml<7,>=6.0.3
37
+ Requires-Dist: requests<3,>=2.32.5
38
+ Requires-Dist: rioxarray<0.21,>=0.20.0
39
+ Requires-Dist: shapely<3,>=2.1.2
40
+ Requires-Dist: tokenizers<1,>=0.22.2
41
+ Requires-Dist: xarray<2026,>=2025.12.0
42
+ Requires-Dist: xstac<2,>=1.2.0
43
+ Requires-Dist: zarr<4,>=3.1.5
44
+ Provides-Extra: dev
45
+ Requires-Dist: jupyter-book<2,>=1.0.4; extra == 'dev'
46
+ Requires-Dist: jupyterlab<5,>=4.5.0; extra == 'dev'
47
+ Requires-Dist: papermill<3,>=2.7.0; extra == 'dev'
48
+ Requires-Dist: pytest-cov<8,>=7.0.0; extra == 'dev'
49
+ Requires-Dist: pytest<10,>=9.0.2; extra == 'dev'
50
+ Description-Content-Type: text/markdown
51
+
52
+ # Introduction
53
+ The EarthCODE Library is a Python package developed to support the creation, validation, and search of Open Science Catalog metadata within the EarthCODE publishing workflow. It provides a shared implementation layer for catalog-related operations, reducing the need for project teams and platforms to maintain separate, ad hoc approaches for generating and checking metadata. This repository includes the core package, a command-line interface, usage examples, publication guides, and a test suite,
54
+ This repository provides Python tools for creating, validating, and searching EarthCODE [Open Science Catalog metadata](https://opensciencedata.esa.int/).
55
+
56
+ Documentation on usage and guides is maintained at: https://esa-earthcode.github.io/earthcode-library/README.html
57
+
58
+ ## 1. Installation
59
+ ```bash
60
+ pip install earthcode
61
+ ```
62
+ ### Requirements
63
+ The *minimum* required Python version if you would like to install the library locally is 3.12
64
+
65
+
66
+ ## 2. Quick start
67
+ ```bash
68
+ # 1. Import the library
69
+ import earthcode
70
+
71
+ # 2. Search through the catalog
72
+ from earthcode.search import search
73
+
74
+ # 3. Search through semantix text
75
+ # Here we take as an example the search done by semantix text and search the catalog via the collection.id which is known
76
+ search(collection_ids="seasfire-cube")[0]
77
+
78
+ # 4. Filter the products in the catalog
79
+ search("global chlorophyll dataset", variable=chlorophyll.id, type="products", mission="sentinel-3")
80
+ ```
81
+
82
+ ## 3. How to contribute to Open Science Catalogue? 
83
+ With `earthcode` library creating new entries in the catalogue is semi-automatic. Please find step by step instructions in the `docs/` folder.
84
+ Start by going through the `docs/contributing_to_the_osc` document.
85
+
86
+ ## 4. Search through Open Science Catalogue
87
+ In the `examples/` folder you can find notebooks that show:
88
+ - How to use the library to semantically search the Open Science Catalog - `examples/earthcode_data_discovery.ipynb`
89
+
90
+ # Looking for support?
91
+ We are ready to assist you in case you have any questions/found a bug or mistake, please use GitHub Issues to open a ticket!
92
+ Alternatively contact the team via e-mail: earthcode@esa.int
93
+
94
+ If you would like to request a specific feature, or any question to the community of Earthcode and library developers, please use the [EarthCODE discourse Technical Support channel](https://discourse-earthcode.eox.at/c/technical-support/8)
95
+
96
+ ## Development
97
+
98
+ If you want to contribute a feature to the library you are welcome to contribute via pull request.
99
+ First, fork this repository; then make your suggested change and open a PR against this repo. Make sure to add tests for any new functionality.
100
+
101
+ ### Local install
102
+ 1. `git clone https://github.com/ESA-EarthCODE/earthcode-library.git`
103
+ 2. Install pixi - https://pixi.sh/dev/installation/
104
+ 3. `cd earthcode-library`
105
+ 4. `pixi install`
106
+ 5. `pixi run jupyter lab`
107
+
108
+ You can run tests through `pixi run pytest`. If running on Windows use ` pixi run pytest --basetemp=C:\t` to avoid long path errors, since some of the project names are >260 chars.
109
+
110
+ ## To publish a realease
111
+ Edit pyproject.toml to 1.1.4 and run
112
+
113
+ - `pixi lock`
114
+ - `git add pyproject.toml pixi.toml pixi.lock`
115
+ - `git commit -m "Release v1.1.4"`
116
+ - `git push origin main`
117
+ - `git tag -a v1.1.4 -m "Release v1.1.4"`
118
+ - `git push origin v1.1.4`
@@ -0,0 +1,67 @@
1
+ # Introduction
2
+ The EarthCODE Library is a Python package developed to support the creation, validation, and search of Open Science Catalog metadata within the EarthCODE publishing workflow. It provides a shared implementation layer for catalog-related operations, reducing the need for project teams and platforms to maintain separate, ad hoc approaches for generating and checking metadata. This repository includes the core package, a command-line interface, usage examples, publication guides, and a test suite,
3
+ This repository provides Python tools for creating, validating, and searching EarthCODE [Open Science Catalog metadata](https://opensciencedata.esa.int/).
4
+
5
+ Documentation on usage and guides is maintained at: https://esa-earthcode.github.io/earthcode-library/README.html
6
+
7
+ ## 1. Installation
8
+ ```bash
9
+ pip install earthcode
10
+ ```
11
+ ### Requirements
12
+ The *minimum* required Python version if you would like to install the library locally is 3.12
13
+
14
+
15
+ ## 2. Quick start
16
+ ```bash
17
+ # 1. Import the library
18
+ import earthcode
19
+
20
+ # 2. Search through the catalog
21
+ from earthcode.search import search
22
+
23
+ # 3. Search through semantix text
24
+ # Here we take as an example the search done by semantix text and search the catalog via the collection.id which is known
25
+ search(collection_ids="seasfire-cube")[0]
26
+
27
+ # 4. Filter the products in the catalog
28
+ search("global chlorophyll dataset", variable=chlorophyll.id, type="products", mission="sentinel-3")
29
+ ```
30
+
31
+ ## 3. How to contribute to Open Science Catalogue? 
32
+ With `earthcode` library creating new entries in the catalogue is semi-automatic. Please find step by step instructions in the `docs/` folder.
33
+ Start by going through the `docs/contributing_to_the_osc` document.
34
+
35
+ ## 4. Search through Open Science Catalogue
36
+ In the `examples/` folder you can find notebooks that show:
37
+ - How to use the library to semantically search the Open Science Catalog - `examples/earthcode_data_discovery.ipynb`
38
+
39
+ # Looking for support?
40
+ We are ready to assist you in case you have any questions/found a bug or mistake, please use GitHub Issues to open a ticket!
41
+ Alternatively contact the team via e-mail: earthcode@esa.int
42
+
43
+ If you would like to request a specific feature, or any question to the community of Earthcode and library developers, please use the [EarthCODE discourse Technical Support channel](https://discourse-earthcode.eox.at/c/technical-support/8)
44
+
45
+ ## Development
46
+
47
+ If you want to contribute a feature to the library you are welcome to contribute via pull request.
48
+ First, fork this repository; then make your suggested change and open a PR against this repo. Make sure to add tests for any new functionality.
49
+
50
+ ### Local install
51
+ 1. `git clone https://github.com/ESA-EarthCODE/earthcode-library.git`
52
+ 2. Install pixi - https://pixi.sh/dev/installation/
53
+ 3. `cd earthcode-library`
54
+ 4. `pixi install`
55
+ 5. `pixi run jupyter lab`
56
+
57
+ You can run tests through `pixi run pytest`. If running on Windows use ` pixi run pytest --basetemp=C:\t` to avoid long path errors, since some of the project names are >260 chars.
58
+
59
+ ## To publish a realease
60
+ Edit pyproject.toml to 1.1.4 and run
61
+
62
+ - `pixi lock`
63
+ - `git add pyproject.toml pixi.toml pixi.lock`
64
+ - `git commit -m "Release v1.1.4"`
65
+ - `git push origin main`
66
+ - `git tag -a v1.1.4 -m "Release v1.1.4"`
67
+ - `git push origin v1.1.4`
@@ -0,0 +1,21 @@
1
+ format: jb-book
2
+ root: docs/contributing_to_the_osc.md
3
+ parts:
4
+ - caption: Tutorials
5
+ chapters:
6
+ - file: docs/tutorials/earthcode_data_discovery
7
+ - file: docs/tutorials/end_to_end_subglacial_lakes
8
+ - file: docs/tutorials/create_osc_entry_from_prr
9
+ - file: docs/tutorials/cog_file_metadata_creation
10
+ - file: docs/tutorials/zarr_file_metadata
11
+ - file: docs/tutorials/parquet_file_metadata
12
+ - caption: Guides
13
+ chapters:
14
+ - file: docs/guides/0.Prerequisites-EarthCODE-Workspaces
15
+ - file: docs/guides/0.Prerequisites-local
16
+ - file: docs/guides/1.Project
17
+ - file: docs/guides/2.0.Product
18
+ - file: docs/guides/3.Workflow
19
+ - file: docs/guides/4.Experiment
20
+ - file: docs/guides/5.Templates
21
+ - file: docs/fairtool