Skip to content
This repository has been archived by the owner on Nov 27, 2024. It is now read-only.

Update ci: resolve incompatible environments for damask and fenics #262

Merged
merged 26 commits into from
Apr 10, 2024

Conversation

mbruns91
Copy link
Contributor

@mbruns91 mbruns91 commented Mar 21, 2024

As described in this PR, dependencies of packages fenics and damask are incompatible right now.
With my changes here, we can at least support exclusively the one or the other packages, but not both simultaneously in the same environment, unfortunately.

Running all test for both packages independently is maybe not an elegant solution, but a pragmatic one. Reverting them, once the dependencies are compatible is super easy and straightforward.

Dropping fenics-support at all would be kind of a last resort to solve this...

@mbruns91
Copy link
Contributor Author

mbruns91 commented Mar 21, 2024

With damask=3.0.0b, the notebooktests throw

Input Notebook:  ./damask_tutorial.ipynb
Output Notebook: ./damask_tutorial-out.ipynb

Executing:   0%|          | 0/38 [00:00<?, ?cell/s]Executing notebook with kernel: python3

Executing:   3%|▎         | 1/38 [00:00<00:30,  1.23cell/s]
Executing:   8%|▊         | 3/38 [00:02<00:34,  1.03cell/s]
Executing:  2[9](https://github.com/pyiron/pyiron_continuum/actions/runs/8372733366/job/22924289111?pr=262#step:5:10)%|██▉       | 11/38 [00:02<00:05,  5.09cell/s]
Executing:  58%|█████▊    | 22/38 [00:03<00:01, [10](https://github.com/pyiron/pyiron_continuum/actions/runs/8372733366/job/22924289111?pr=262#step:5:11).66cell/s]
Executing:  58%|█████▊    | 22/38 [00:03<00:02,  5.77cell/s]
Traceback (most recent call last):
  File "/usr/share/miniconda3/envs/test/bin/papermill", line 10, in <module>
    sys.exit(papermill())
             ^^^^^^^^^^^
  File "/usr/share/miniconda3/envs/test/lib/python3.[11](https://github.com/pyiron/pyiron_continuum/actions/runs/8372733366/job/22924289111?pr=262#step:5:12)/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/papermill/cli.py", line 254, in papermill
    execute_notebook(
  File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/papermill/execute.py", line 134, in execute_notebook
    raise_for_execution_errors(nb, output_path)
  File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/papermill/execute.py", line 241, in raise_for_execution_errors
    raise error
papermill.exceptions.PapermillExecutionError: 
---------------------------------------------------------------------------
Exception encountered at "In [[12](https://github.com/pyiron/pyiron_continuum/actions/runs/8372733366/job/22924289111?pr=262#step:5:13)]":
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[12], line 1
----> 1 material = pr.continuum.damask.Material([rotation],['Aluminum'],phase,homogenization)

File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_continuum/toolkit.py:87, in DAMASK.Material(rotation, elements, phase, homogenization)
     77 @staticmethod
     78 def Material(rotation, elements, phase, homogenization):
     79     """
     80     creates the damask material
     81     Args:
   (...)
     85         homogenization(dict): a dictionary describing the damask homogenization
     86     """
---> 87     return DAMASKCreator.material(rotation,elements,phase,homogenization)

File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_continuum/damask/factory.py:164, in Create.material(rotation, elements, phase, homogenization)
    [15](https://github.com/pyiron/pyiron_continuum/actions/runs/8372733366/job/22924289111?pr=262#step:5:16)4 @staticmethod
    155 def material(rotation, elements, phase, homogenization):
    156     """
    157     Creates a damask material.
    158     Args:
   (...)
    [16](https://github.com/pyiron/pyiron_continuum/actions/runs/8372733366/job/22924289111?pr=262#step:5:17)2         homogenization(dict): a dictionary describing the damask homogenization
    163     """
--> 164     return MaterialFactory.config(rotation,elements,phase,homogenization)

File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_continuum/damask/factory.py:36, in MaterialFactory.config(rotation, elements, phase, homogenization)
     [34](https://github.com/pyiron/pyiron_continuum/actions/runs/8372733366/job/22924289111?pr=262#step:5:35) @staticmethod
     [35](https://github.com/pyiron/pyiron_continuum/actions/runs/8372733366/job/22924289111?pr=262#step:5:36) def config(rotation, elements, phase, homogenization):
---> [36](https://github.com/pyiron/pyiron_continuum/actions/runs/8372733366/job/22924289111?pr=262#step:5:37)     _config = ConfigMaterial({'material': [], 'phase': phase, 'homogenization': homogenization})
     [37](https://github.com/pyiron/pyiron_continuum/actions/runs/8372733366/job/22924289111?pr=262#step:5:38)     for r, e in zip(rotation, elements):
     [38](https://github.com/pyiron/pyiron_continuum/actions/runs/8372733366/job/22924289111?pr=262#step:5:39)         _config = _config.material_add(O=r, phase=e, homogenization=list(homogenization.keys())[0])

NameError: name 'ConfigMaterial' is not defined

I found on a local env on my client, that an ad-hoc solution for this is to go from damask=3.0.0b to damask=3.0.0a8 (and accordingly for the other damask related packages listed in environment-notebooks-damask.yml).

Also, this will be solved via #256.

@mbruns91
Copy link
Contributor Author

With damask=3.0.0a8, the notebooktests throw

Input Notebook:  ./damask_tutorial.ipynb
Output Notebook: ./damask_tutorial-out.ipynb

Executing:   0%|          | 0/38 [00:00<?, ?cell/s]Executing notebook with kernel: python3

Executing:   3%|▎         | 1/38 [00:00<00:30,  1.20cell/s]
Executing:   8%|▊         | 3/38 [00:02<00:26,  1.33cell/s]
Executing:  34%|███▍      | 13/38 [00:02<00:03,  7.81cell/s]
Executing:  66%|██████▌   | 25/38 [00:02<00:00, 17.2[9](https://github.com/pyiron/pyiron_continuum/actions/runs/8373498724/job/22926676885?pr=262#step:5:10)cell/s]
Executing:  84%|████████▍ | 32/38 [00:03<00:00,  8.82cell/s]
Traceback (most recent call last):
  File "/usr/share/miniconda3/envs/test/bin/papermill", line [10](https://github.com/pyiron/pyiron_continuum/actions/runs/8373498724/job/22926676885?pr=262#step:5:11), in <module>
    sys.exit(papermill())
             ^^^^^^^^^^^
  File "/usr/share/miniconda3/envs/test/lib/python3.[11](https://github.com/pyiron/pyiron_continuum/actions/runs/8373498724/job/22926676885?pr=262#step:5:12)/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/papermill/cli.py", line 254, in papermill
    execute_notebook(
  File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/papermill/execute.py", line 134, in execute_notebook
    raise_for_execution_errors(nb, output_path)
  File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/papermill/execute.py", line 241, in raise_for_execution_errors
    raise error
papermill.exceptions.PapermillExecutionError: 
---------------------------------------------------------------------------
Exception encountered at "In [19]":
---------------------------------------------------------------------------
CalledProcessError                        Traceback (most recent call last)
File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_base/jobs/job/runfunction.py:643, in execute_job_with_external_executable(job)
    642 try:
--> 643     out = subprocess.run(
    644 executable,
    645 cwd=job.project_hdf5.working_directory,
    646 shell=shell,
    647 stdout=subprocess.PIPE,
    648 stderr=subprocess.STDOUT,
    649 universal_newlines=True,
    650 check=True,
    651 env=os.environ.copy(),
    652 ).stdout
    653 except (subprocess.CalledProcessError, FileNotFoundError) as e:

File /usr/share/miniconda3/envs/test/lib/python3.11/subprocess.py:571, in run(input, capture_output, timeout, check, *popenargs, **kwargs)
    570     if check and retcode:
--> 571         raise CalledProcessError(retcode, process.args,
    572                                  output=stdout, stderr=stderr)
    573 return CompletedProcess(process.args, retcode, stdout, stderr)

CalledProcessError: Command '/usr/share/miniconda3/envs/test/share/pyiron/damask/bin/run_damask_3.0.0.sh' returned non-zero exit status [12](https://github.com/pyiron/pyiron_continuum/actions/runs/8373498724/job/22926676885?pr=262#step:5:13)7.

During handling of the above exception, another exception occurred:

RuntimeError                              Traceback (most recent call last)
Cell In[19], line 1
----> 1 job.run()

File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_base/utils/deprecate.py:171, in Deprecator.__deprecate_argument.<locals>.decorated(*args, **kwargs)
    161     if kw in self.arguments:
    162         warnings.warn(
    163             message_format.format(
    164                 "{}.{}({}={})".format(
   (...)
    169             stacklevel=2,
    170         )
--> 171 return function(*args,**kwargs)

File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_base/jobs/job/generic.py:763, in GenericJob.run(self, delete_existing_job, repair, debug, run_mode, run_again)
    761     self._run_if_repair()
    762 elif status == "initialized":
--> 763     self._run_if_new(debug=debug)
    764 elif status == "created":
    765     self._run_if_created()

File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_base/jobs/job/generic.py:1281, in GenericJob._run_if_new(self, debug)
   1273 def _run_if_new(self, debug=False):
   1274     """
   1275     Internal helper function the run if new function is called when the job status is 'initialized'. It prepares
   1276     the hdf5 file and the corresponding directory structure.
   (...)
   1279         debug (bool): Debug Mode
   1280     """
-> 1281     run_job_with_status_initialized(job=self,debug=debug)

File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_base/jobs/job/runfunction.py:92, in run_job_with_status_initialized(job, debug)
     90 else:
     91     job.save()
---> 92     job.run()

File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_base/utils/deprecate.py:171, in Deprecator.__deprecate_argument.<locals>.decorated(*args, **kwargs)
    161     if kw in self.arguments:
    162         warnings.warn(
    163             message_format.format(
    164                 "{}.{}({}={})".format(
   (...)
    169             stacklevel=2,
    170         )
--> 171 return function(*args,**kwargs)

File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_base/jobs/job/generic.py:765, in GenericJob.run(self, delete_existing_job, repair, debug, run_mode, run_again)
    763     self._run_if_new(debug=debug)
    764 elif status == "created":
--> 765     self._run_if_created()
    766 elif status == "submitted":
    767     run_job_with_status_submitted(job=self)

File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_base/jobs/job/generic.py:1292, in GenericJob._run_if_created(self)
   1283 def _run_if_created(self):
   1284     """
   1285     Internal helper function the run if created function is called when the job status is 'created'. It executes
   1286     the simulation, either in modal mode, meaning waiting for the simulation to finish, manually, or submits the
   (...)
   1290         int: Queue ID - if the job was send to the queue
   1291     """
-> 1292     return run_job_with_status_created(job=self)

File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_base/jobs/job/runfunction.py:115, in run_job_with_status_created(job)
    1[13](https://github.com/pyiron/pyiron_continuum/actions/runs/8373498724/job/22926676885?pr=262#step:5:14)     run_job_with_runmode_manually(job=job, _manually_print=True)
    1[14](https://github.com/pyiron/pyiron_continuum/actions/runs/8373498724/job/22926676885?pr=262#step:5:15) elif job.server.run_mode.modal:
--> 1[15](https://github.com/pyiron/pyiron_continuum/actions/runs/8373498724/job/22926676885?pr=262#step:5:16)     job.run_static()
    1[16](https://github.com/pyiron/pyiron_continuum/actions/runs/8373498724/job/22926676885?pr=262#step:5:17) elif job.server.run_mode.srun:
    1[17](https://github.com/pyiron/pyiron_continuum/actions/runs/8373498724/job/22926676885?pr=262#step:5:18)     run_job_with_runmode_srun(job=job)

File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_base/jobs/job/generic.py:799, in GenericJob.run_static(self)
    795 def run_static(self):
    796     """
    797     The run static function is called by run to execute the simulation.
    798     """
--> 799     execute_job_with_external_executable(job=self)

File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_base/jobs/job/runfunction.py:610, in run_time_decorator.<locals>.wrapper(job)
    608 if not state.database.database_is_disabled and job.job_id is not None:
    609     job.project.db.item_update({"timestart": datetime.now()}, job.job_id)
--> 610     func(job)
    611     job.project.db.item_update(job._runtime(), job.job_id)
    612 else:

File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_base/jobs/job/runfunction.py:654, in execute_job_with_external_executable(job)
    643         out = subprocess.run(
    644             executable,
    645             cwd=job.project_hdf5.working_directory,
   (...)
    651             env=os.environ.copy(),
    652         ).stdout
    653     except (subprocess.CalledProcessError, FileNotFoundError) as e:
--> 654         out, job_crashed = handle_failed_job(job=job,error=e)
    655 else:
    656     import conda_subprocess

File /usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pyiron_base/jobs/job/runfunction.py:732, in handle_failed_job(job, error)
    7[30](https://github.com/pyiron/pyiron_continuum/actions/runs/8373498724/job/22926676885?pr=262#step:5:31)     if job.server.run_mode.non_modal:
    7[31](https://github.com/pyiron/pyiron_continuum/actions/runs/8373498724/job/22926676885?pr=262#step:5:32)         state.database.close_connection()
--> 7[32](https://github.com/pyiron/pyiron_continuum/actions/runs/8373498724/job/22926676885?pr=262#step:5:33)     raise RuntimeError("Job aborted")
    7[33](https://github.com/pyiron/pyiron_continuum/actions/runs/8373498724/job/22926676885?pr=262#step:5:34) else:
    7[34](https://github.com/pyiron/pyiron_continuum/actions/runs/8373498724/job/22926676885?pr=262#step:5:35)     return True, out

RuntimeError: Job aborted

On a local client, I get the error ValueError: No executable set! when calling job.run() for a damask-job, maybe that's related.

@mbruns91 mbruns91 requested a review from liamhuber March 25, 2024 15:02
Copy link
Member

@liamhuber liamhuber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since exclude_X excludes "Not X, but the other thing", let's rename them exclude_for_X. Otherwise lgtm. I added a number of suggestions for shortening action calls, and extracting common environment elements to a shared file then merging this to reduce maintenance headache, but these are merely suggestions and I can live without them -- file names are the only sticking point for me.

.ci_support/build_notebooks_damask.sh Outdated Show resolved Hide resolved
Comment on lines +11 to +21
- matplotlib =3.8.0
- numpy =1.26.3
- pyiron =0.5.0
- pyiron-data =0.0.26
- python-damask =3.0.0a8
- pyvista =0.42.3
- scipy =1.11.4
- seaborn =0.13.1
- scikit-image =0.22.0
- papermill
- jupyter
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since most of the damask and fenics envs are shared, I would suggest showing this explicitly with environment-notebooks-shared/damask/fenics.yml files, and then merge shared+damask and shared+fenics. This will reduce the overhead of keeping all the shared versions sync'd. Some of this might even move into the core (non-notebook) env, such that the tests use merges of core+shared+damask, core+shared+fenics

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Check this centralized action for a tool to throw in the CI scripts for merging envs like this

.github/workflows/notebooks.yml Show resolved Hide resolved
@@ -26,7 +45,7 @@ jobs:
shell: bash -l {0}
run: |
pip install --no-deps .
mamba env update --name test --file .ci_support/environment-notebooks.yml
mamba env update --name test --file .ci_support/environment-notebooks-fenics.yml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And similar for shortening the fenics job

@samwaseda
Copy link
Member

Now I'm confused (at 11pm after two glasses of wine): Following @liamhuber's suggestion I made this commit, which erased the conda environment creation for damask, and for fenics there's just an 'update'. By specifying the environment file it creates a conda environment? I don't quite understand how GitHub knows how to handle the environment.

@jan-janssen
Copy link
Member

Was there a decision how we want to handle this issue in the case of https://github.com/pyiron/docker-stacks ? So far we had one Docker container for pyiron_continuum, does this mean we are going to have two in future?

@samwaseda
Copy link
Member

Was there a decision how we want to handle this issue in the case of https://github.com/pyiron/docker-stacks ? So far we had one Docker container for pyiron_continuum, does this mean we are going to have two in future?

That's a good point. I don't have a good idea right now, but yeah why not have two

@mbruns91
Copy link
Contributor Author

mbruns91 commented Mar 27, 2024

Was there a decision how we want to handle this issue in the case of https://github.com/pyiron/docker-stacks ? So far we had one Docker container for pyiron_continuum, does this mean we are going to have two in future?

I opened an issue in docker-stacks for this.

@mbruns91
Copy link
Contributor Author

mbruns91 commented Mar 27, 2024

@liamhuber: If you are fine with that, I'd suggest to first just make the ci here somehow running again. Your requested changes are super legit and @samwaseda was so kind to integrate them. But because there are all the time new errors popping up, I don't want to do too many things at once in this PR.

For anything related to using stuff from our centralized actions and making other optimizations (like improved environment creation), I opened another issue to keep track of this.

Copy link
Member

@liamhuber liamhuber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@samwaseda

Now I'm confused (at 11pm after two glasses of wine): Following @liamhuber's suggestion I made this commit, which erased the conda environment creation for damask, and for fenics there's just an 'update'. By specifying the environment file it creates a conda environment?

I think I see what you're saying -- after the commit in question the notebooks jobs don't even run. I peeked at the action log, and it claims You have an error in your yaml syntax on line 9, which is just the jobs: line. If you look at the remaining file though, in the build_damask: job, my suggestion starting with - uses: pyiron/actions/cached-mamba@main has inconsistent indentation! I think this is what's causing the error. I suggest just trying again with the damned thing formatted correctly 😂

I don't quite understand how GitHub knows how to handle the environment.

Each jobs: item runs independently on its own runner, which means its own filesystem and its own environment. So, the cached-mamba action from pyiron/actions is just cloning in the repo, merging two (or more, or one) env files into a new file on that job's filesystem, and then using that new env file to make a conda env. The damask and fenics jobs can do this independently on their own runners just fine as long as they're in separate jobs (which they are!)

I'm not 100% sure I've understood your misunderstanding, so just ping me if I'm not being clear 😝

@mbruns91

liamhuber: If you are fine with that, I'd suggest to first just make the ci here somehow running again. Your requested changes are super legit and samwaseda was so kind to integrate them. But because there are all the time new errors popping up, I don't want to do too many things at once in this PR.

For anything related to using stuff from our centralized actions and making other optimizations (like improved environment creation), I opened another issue to keep track of this.

The file names are fixed, so I'm switching this to "approved". However, I do still strongly suggest you implement my other suggestions right here in this PR. My reasoning is: the remaining suggestions -- using the centralized CI to set up the envs, and extracting commonalities in env files to turn two envs files into three -- do not modify existing code in the repo, but rather new code being added in this PR. In particular, my suggestions shorten the amount of lines added and avoid code duplication.

I like the new issue! pyiron/actions is set up so that the re-usable workflows make some assumptions about repo structure, but the individual actions are (or should be!) agnostic and usable everywhere. I.e. there's no need to make a total conversion in a single shot. Slipping in a -uses: pyiron/actions/cached-mamba@actions-1.1.0b in this PR is not fundamentally any different than - uses: actions/checkout@v2.

(Note: my suggestion was bad, we should target a locked-in version actions-1.1.0b and not just main)

@mbruns91
Copy link
Contributor Author

mbruns91 commented Apr 8, 2024

The ci throws an error when running the notebook tests, I think the relevant part is:

TypeError                                 Traceback (most recent call last)
Cell In[14], line 1
----> 1 grid = pr.continuum.damask.Grid.via_voronoi_tessellation(box_size=1.0e-5,grid_dim=grids,num_grains=grains)

TypeError: GridFactory.via_voronoi_tessellation() got an unexpected keyword argument 'grid_dim'

However, I don't really understand why, because when looking at pyiron_continuum/factory.py, via_voronoi_tessellation() takes arguments grid_dim, num_grains, box_size.

I tried to reproduce the error like so:

  • create an empty conda env
  • install python=3.11 (the version used in the failing test-run)
  • install all packages from .ci_support/enronment.yml and .ci_support/environment-notebooks-damask.yml.
  • clone pyiron_contiuum to some/dir/pyiron_continuum
  • checkout the branch update_ci
  • run mamba install conda-build and then conda develop some/dir/pyiron_continuum

Then, I start a jupyter session and open the notebook damask-tutorial.ipynb and all cells execute successfully, similarly for when I run papermill damask_tutorial.ipynb damask_tutorial-out.ipynb -k python3, which is basically the command running in the build_notebooks_damask.sh script called by the .github/workflows/notebooks.yml action.

Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@mbruns91 mbruns91 merged commit 93aa06e into main Apr 10, 2024
10 of 11 checks passed
@mbruns91 mbruns91 deleted the update_ci branch April 10, 2024 10:22
@mbruns91
Copy link
Contributor Author

mbruns91 commented Apr 10, 2024

The failing tests were a result of som inconsitencies originating from a previously merged PR. Fixing the notebooks accordingly did the trick.

I merged this now because @usaikia is in urgent need. I'm working right away on relying more heavily on centraliced actions in #263 .

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants