diff --git a/.github/workflows/issue_to_jira.yml b/.github/workflows/issue_to_jira.yml new file mode 100644 index 0000000000..efedc47662 --- /dev/null +++ b/.github/workflows/issue_to_jira.yml @@ -0,0 +1,36 @@ +# This workflow will create a JIRA issue upon creation of a GitHub issue + +name: Create JIRA issue + +on: + issues: + types: [opened] + +jobs: + new_jira_issue: + runs-on: ubuntu-latest + + steps: + - name: JIRA Login + uses: atlassian/gajira-login@v3.0.1 + env: + JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }} + JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }} + JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }} + - name: Jira Create issue + id: create_jira_issue + uses: atlassian/gajira-create@v3.0.1 + with: + project: GEOPY + issuetype: Story + summary: ${{ github.event.issue.title }} + description: "_from [GitHub issue #${{ github.event.issue.number }}|${{ github.event.issue.html_url }}]_" + # Additional fields in JSON format + fields: '{"components": [{"name": "simpeg"}]}' + - name: Post JIRA link + uses: peter-evans/create-or-update-comment@v3 + with: + # The number of the issue or pull request in which to create a comment. + issue-number: ${{ github.event.issue.number }} + # The comment body. + body: "JIRA issue [${{ steps.create_jira_issue.outputs.issue }}] was created." diff --git a/.github/workflows/pr_add_jira_summary.yml b/.github/workflows/pr_add_jira_summary.yml new file mode 100644 index 0000000000..f0c8a8dda0 --- /dev/null +++ b/.github/workflows/pr_add_jira_summary.yml @@ -0,0 +1,64 @@ +# This workflow will comment the PR with the JIRA issue summary +# if a JIRA issue number is detected in the branch name or title + +name: Add JIRA issue summary + +on: + pull_request_target: + types: [opened] + +jobs: + add_jira_summary: + runs-on: ubuntu-latest + + steps: + - name: Find JIRA issue key + id: find_jira_key + env: + HEAD_REF: ${{ github.head_ref}} + PR_TITLE: ${{ github.event.pull_request.title }} + run: > + echo $HEAD_REF $PR_TITLE + | echo "issue_key=$( + grep -osi "\b\(GA\|GEOPY\|DEVOPS\)[ #-]*[0-9]\+" + | head -n1 + | sed -E "s/([A-Z]+)[-# ]*([0-9]+)/\1-\2/i" + | tr [:lower:] [:upper:] + )" + >> $GITHUB_OUTPUT + - name: Get JIRA summary + id: get_jira_summary + if: ${{ steps.find_jira_key.outputs.issue_key }} + env: + JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }} + JIRA_BASIC_AUTH: ${{ secrets.JIRA_BASIC_AUTH }} + run: > + curl -sS -X GET + -H "Authorization: Basic $JIRA_BASIC_AUTH" + -H "Content-Type: application/json" + "$JIRA_BASE_URL/rest/api/2/issue/${{ steps.find_jira_key.outputs.issue_key }}" + | echo "summary=$(jq -r '.fields.summary // empty')" >> $GITHUB_OUTPUT + - name: Extract PR title + id: get_pr_title + env: + PR_TITLE: ${{ github.event.pull_request.title }} + run: | + echo "text=$(echo $PR_TITLE | sed -E "s/^\s*[?[A-Z]+[-# ]*[0-9]+]?[-: ]*(.*)/\1/i")" >> $GITHUB_OUTPUT + - name: Add comment + if: ${{ steps.find_jira_key.outputs.issue_key }} + env: + ISSUE_SUMMARY: ${{ steps.get_jira_summary.outputs.summary }} + TITLE_TEXT: ${{ steps.get_pr_title.outputs.text }} + PR_BODY: ${{ github.event.pull_request.body }} + run: > + jq + --arg ISSUE_ID "${{ steps.find_jira_key.outputs.issue_key }}" + --arg ISSUE_SUMMARY "$(cat <<< $ISSUE_SUMMARY)" + --arg TITLE_TEXT "$(cat <<< ${TITLE_TEXT:-$ISSUE_SUMMARY})" + --arg PR_BODY "$(cat <<< $PR_BODY)" + -c '{"title": ($ISSUE_ID + ": " + $TITLE_TEXT), "body": ("**" + $ISSUE_ID + " - " + $ISSUE_SUMMARY + "**\n" + $PR_BODY)}' <<< {} + | curl -sS -X POST -d @- + -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" + -H "Content-Type: application/json" + "$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/pulls/${{ github.event.pull_request.number }}" + > /dev/null diff --git a/pyproject.toml b/pyproject.toml index 0617e50d2c..6aad91864c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ #parameter estimation in the context of geophysical applications. [tool.poetry] -name = "Mira-SimPEG" +name = "mira-simpeg" version = "0.21.2.1-alpha.1" license = "MIT" description = "Mira Geoscience fork of SimPEG: Simulation and Parameter Estimation in Geophysics" @@ -37,26 +37,22 @@ packages = [ exclude = ["tests*", "examples*", "tutorials*"] include = [ - "COPYING", - "COPYING.LESSER", - "LICENSE", - "README.rst", - "THIRD_PARTY_SOFTWARE.rst", + { path = "COPYING", format = ["sdist", "wheel"] }, + { path = "COPYING.LESSER", format = ["sdist", "wheel"] }, + { path = "LICENSE", format = ["sdist", "wheel"] }, + { path = "README.rst", format = ["sdist", "wheel"] }, + { path = "THIRD_PARTY_SOFTWARE.rst", format = ["sdist", "wheel"] }, + { path = "docs/**/THIRD_PARTY_SOFTWARE.rst", format = ["sdist", "wheel"] }, ] [tool.poetry.dependencies] -discretize = ">=0.8.0" +python = "^3.10" + +discretize = ">=0.10.0" empymod = ">=2.0.0" -geoana = "*" -geoh5py = {version = "*", allow-prereleases = true} -#geoh5py = {url = "http://localhost:8888/geoh5py.tar.gz#sha256="} +geoana = ">=0.5.0" matplotlib = "*" numpy = ">=1.20" -mkl = "2023.2.0" # from simpeg -pydiso = "~0.0.5" # from simpeg -tbb = "2021.12.0" -tzdata = "2023.4" # through pandas from SimPEG -intel-openmp = "2023.2.0" # from simpeg pandas = "*" pymatsolver = ">=0.2" scikit-learn = ">=1.2" @@ -67,6 +63,13 @@ distributed = {version = "*", optional = true} fsspec = {version = ">=0.3.3", optional = true} zarr = {version = "*", optional = true} +## Pip dependencies from Git repositories +#---------------------------------------- +geoh5py = {version = ">=0.9.1, <0.11", allow-prereleases = true} +#geoh5py = {url = "https://github.com/MiraGeoscience/geoh5py/archive/refs/heads/develop.tar.gz"} +#geoh5py = {git = "https://github.com/MiraGeoscience/geoh5py.git", rev = "develop"} +#geoh5py = {url = "http://localhost:8888/geoh5py.tar.gz"} + [tool.poetry.group.dev.dependencies] black = "*" jupyter = "*" @@ -94,10 +97,6 @@ dask = [ "zarr", ] -[tool.conda-lock] -platforms = ['win-64', 'osx-64', 'linux-64'] -channels = ['conda-forge', 'intel'] - [tool.black] # defaults are just fine