TheCGO / fiscalsim-us

FiscalSim US is a microsimulation model of the US federal and state tax and benefit system relating to households and individuals.
https://thecgo.github.io/fiscalsim-us/
GNU Affero General Public License v3.0
9 stars 12 forks source link

Add back Windows GH Action CI tests #49

Closed rickecon closed 9 months ago

rickecon commented 11 months ago

Need to add back Windows tests to the GH Actions OS matrix. PR #48 removed the Windows testing (windows-latest) from the pr.yaml and push.yaml GH Actions. The Windows tests were failing, likely because of an incompatibility between NumPy and MatPlotLib. We can add back the Windows tests after the policyengine-core dependency allows for later versions of NumPy.

cc: @ss7886

rickecon commented 11 months ago

The error that was being caused in the Windows tests was the following:

Run make test
  make test
  shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
  env:
    pythonLocation: C:\hostedtoolcache\windows\Python\3.9.13\x64
    PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.9.13\x64/lib/pkgconfig
    Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.9.13\x64
    Python[2](https://github.com/TheCGO/fiscalsim-us/actions/runs/5717770044/job/15492179215#step:5:2)_ROOT_DIR: C:\hostedtoolcache\windows\Python\[3](https://github.com/TheCGO/fiscalsim-us/actions/runs/5717770044/job/15492179215#step:5:3).9.13\x6[4](https://github.com/TheCGO/fiscalsim-us/actions/runs/5717770044/job/15492179215#step:5:4)
    Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.9.13\x64
coverage run -a --branch -m policyengine_core.scripts.policyengine_command test fiscalsim_us/tests/policy/ -c fiscalsim_us
Matplotlib is building the font cache; this may take a moment.
C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\coverage\control.py:801: CoverageWarning: No data was collected. (no-data-collected)
  self._warn("No data was collected.", slug="no-data-collected")
Traceback (most recent call last):
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\coverage.exe\__main__.py", line 7, in <module>
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\coverage\cmdline.py", line 943, in main
    status = CoverageScript().command_line(argv)
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\coverage\cmdline.py", line 6[5](https://github.com/TheCGO/fiscalsim-us/actions/runs/5717770044/job/15492179215#step:5:5)9, in command_line
    return self.do_run(options, args)
  File "C:\hostedtoolcache\windows\Python\3.9.13\x[6](https://github.com/TheCGO/fiscalsim-us/actions/runs/5717770044/job/15492179215#step:5:6)4\lib\site-packages\coverage\cmdline.py", line 830, in do_run
    runner.run()
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\coverage\execfile.py", line 160, in run
    self._prepare2()
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\coverage\execfile.py", line 124, in _prepare2
    pathname, self.package, self.spec = find_module(self.modulename)
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\coverage\execfile.py", line 43, in find_module
    spec = importlib.util.find_spec(modulename)
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\importlib\util.py", line 94, in find_spec
    parent = __import__(parent_name, fromlist=['__path__'])
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\policyengine_core\__init__.py", line 1, in <module>
    from policyengine_core.simulations import Microsimulation, Simulation
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\policyengine_core\simulations\__init__.py", line 9, in <module>
    from .microsimulation import Microsimulation
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\policyengine_core\simulations\microsimulation.py", line 3, in <module>
    from microdf import MicroDataFrame, MicroSeries
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\microdf\__init__.py", line 3, in <module>
    from .charts import quantile_pct_chg_plot
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\microdf\charts.py", line 4, in <module>
    import seaborn as sns
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\seaborn\__init__.py", line 5, in <module>
    from .relational import *  # noqa: F401,F403
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\seaborn\relational.py", line 1[7](https://github.com/TheCGO/fiscalsim-us/actions/runs/5717770044/job/15492179215#step:5:7), in <module>
    from ._statistics import EstimateAggregator
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\seaborn\_statistics.py", line 31, in <module>
    from scipy.stats import gaussian_kde
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\scipy\stats\__init__.py", line 60[8](https://github.com/TheCGO/fiscalsim-us/actions/runs/5717770044/job/15492179215#step:5:8), in <module>
    from ._stats_py import *
  File "C:\hostedtoolcache\windows\Python\3.[9](https://github.com/TheCGO/fiscalsim-us/actions/runs/5717770044/job/15492179215#step:5:9).13\x64\lib\site-packages\scipy\stats\_stats_py.py", line 39, in <module>
    from scipy.spatial.distance import cdist
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\scipy\spatial\__init__.py", line 1[10](https://github.com/TheCGO/fiscalsim-us/actions/runs/5717770044/job/15492179215#step:5:11), in <module>
    from ._kdtree import *
  File "C:\hostedtoolcache\windows\Python\3.9.[13](https://github.com/TheCGO/fiscalsim-us/actions/runs/5717770044/job/15492179215#step:5:14)\x64\lib\site-packages\scipy\spatial\_kdtree.py", line 4, in <module>
    from ._ckdtree import cKDTree, cKDTreeNode
  File "_ckdtree.pyx", line 1, in init scipy.spatial._ckdtree
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject
mingw[32](https://github.com/TheCGO/fiscalsim-us/actions/runs/5717770044/job/15492179215#step:5:33)-make: *** [makefile:9: test] Error 1
Error: Process completed with exit code 1.
GitHubError2
rickecon commented 10 months ago

@ss7886. I updated the GH Actions in the most recent PR #55. But nothing should change with the environment. As part of that PR, I just tested whether the windows-latest tests in build_and_test.yml still broke. And I confirmed that those tests still break for the Windows tests, but they pass for the Mac and Linux tests.