# Fatiando Development Calls 2025
📱 **Join the video call:** https://meet.jit.si/fatiando-a-terra
📅 **Shared calendar:** https://www.fatiando.org/calendar
> **IMPORTANT**: Everyone is required to follow our
> [Code of Conduct](https://github.com/fatiando/community/blob/main/CODE_OF_CONDUCT.md)
> when participating in the Fatiando community. Please review it carefully.
Development calls are **open to everyone**! Here we discuss project development, socialize, and do some live coding from time to time.
**Everyone is encouraged to participate and edit the notes below.**
--------------------------------------------------------------
### Parking lot for next meeting
N/A
## 2025-12-03
**Time:** 17:00 UTC
### Participants
* Santi
* Neyberson
* Arthur
### Notes
:rocket: :tada: Welcome Matt Tankersley as maintainer of Harmonica!! :tada: :rocket:
(Probably) last meeting of the year!
Harmonica:
* Refactoring ellipsoids to a single `Ellipsoid` class.
* Accepts semiaxes in any order.
* The forward modelling functions take care of extra rotations to align the x, y, z local coordinate system so `a >= b >= c` for every ellipsoid.
* Like the interface better.
* Planning to change the `external_field` argument in `ellipsoid_magnetic` so it takes the vector instead of magnitude, inclination and declination.
* Maybe rename it to `inducing_field`
* Neyberson interested in the project and how it works
* Arthur wants to be more involved and start contributing more next year!
## 2025-11-19
**Time:** 17:00 UTC
### Participants
* Santi
* Neyberson
* Matt T
### Notes
Harmonica:
* Santi's updates:
* Merged Kelly's PR on forward modelling of ellipsoids
* Working on follow up PRs to apply some changes to that code:
* Physical properties as part of the ellipsoid classes
* Add a Sphere class
* Optimizations to the forward, especially to the mag
* WIP: add a `create_ellipsoid` function that takes semiaxes lenghts and return the desired ellipsoid
* Dropped the `macos-13` runner in GitHub Actions since it has been deprecated. Using `macos-15-intel` with `oldest` dependencies in the matrix.
* Matt has been working on exporting tesseroids to VTK using PyVista, through the `SolidSphere` class.
Verde:
* Adding a `percentile` argument to `maxabs` by Matt T.
* Maybe try to see if `np.percentile` accepts an iterator with arrays, so we don't have to concatenate all arrays to compute the percentiles.
* Matt's idea to include a `minmax` function to Verde, with support for minimum and maximum percentiles (e.g. get the min and max without values lower than the 2 percentile and higher than the 98 percentile)
## 2025-10-22
**Time:** 17:00 UTC
### Participants
* Santi
* Leo
### Notes
Santi:
* Codecov: Fixed codecov uploads. Apparently, we now need to checkout the repo in the same job, so the `codecov-upload` GitHub Action can identify source files before uploading the xml coverage report files. Applied the fix to several packages in the project.
* Inversion framework draft in SimPEG:
* Leo: try to use xxhash for cache validation. Optional dependency maybe.
Leo:
* Working on the FFT filters and adding the padding by default.
* Going to use the IGRF calculation in a class tomorrow. Hoping all goes well!
* Looking to make a new batch of stickers. Mine from 2014 finally ran out.
## 2025-10-08
**Time:** 17:00 UTC
### Participants
* Dom
* Santi
* Leo
### Notes
I (Dominic Kempf, [@dokempf](https://github.com/dokempf/)) will join the meeting on October 8th to talk about DOI resolution support in pooch and potential avenues to make it more modular.
Pooch:
* Dom presented an impressive PDF with ideas for a plugin system for DOIs
* Try to avoid composite names that don't use the dash
* Registry population from doi should be optional. In case we want to manually set the hash and make sure that the file doesn't changed in a future run.
* Ideas we've been having for Pooch v2.0.0 and making it more modular
* Removing bits that are rarely used and hard to test
* Ideas for other type of plugins. We can use entry points to discover installed downloaders.
* Plan ahead:
* Start working on it, we can start deprecating stuff in Pooch as soon as we have something working on the new DOI system
## 2025-09-24
**Time:** 17:00 UTC
### Participants
* Santi
* Leo
### Notes
Boule:
* Leo went over some Issues and PRs
* https://github.com/fatiando/boule/issues/191
* Including homogeneous ellipsoid
* Plan for a 1.0 release and paper
* Let's pin Boule to <0.6 in Harmonica, because we are going to introduce backward incompatible changes.
#### Updates from previous meetings:
Harmonica:
* Fixed (yet another) issue with PyVista and VTK in CI
* Opened a PR to replace black, flake8 and isort for Ruff: https://github.com/fatiando/harmonica/pull/572
* Love how Ruff can make automatic fixes of style suggestions (not just format). In most cases it's not necessary to apply changes manually. And no LLM is involved!
* Just need to run `ruff check --fix <PATH>`
Pooch:
* PR to provide more descriptive error messages on request code >= 400 < 600: https://github.com/fatiando/pooch/pull/477
* Some issues with tests in CI. I think figshare is limiting requests coming from GitHub... I can run tests locally without any issue, but the last ones that are run in Actions usually fail.
* Option to limit figshare tests in Actions. Maybe with a `pytest.mark`...
## 2025-08-19
**Time:** 17:00 UTC
### Participants
* Santi
### Notes
Pooch:
* Started working on CI failure due to Figshare failed requests: https://github.com/fatiando/pooch/pull/480
## 2025-08-05
**Time:** 17:00 UTC
### Participants
* Santi
* Luiz
* Leo
### Notes
Pooch status:
* Several PRs without reply
* Ppl asking for a release that include patches: https://github.com/fatiando/pooch/pull/458
* Leo will try to make a release tomorrow
* Santi can work on the failing CI today (https://github.com/fatiando/pooch/actions/runs/15302039960)
* Should we find an extra maintainer? https://github.com/fatiando/pooch/issues/474
* Objetive is to keep pooch within the current scope and not expand too much.
* Leo and/or Santi should chat with candidates.
* Would be good to assign some tasks first and see what happens.
* We should state the scope of the project in the README.md
* Keep it small
* Don't add extra dependencies, even optional
* Schedule a Santi-Leo time to work on Pooch in the following weeks?
* Yes, please! It would be good to have some time set aside for this.
## 2025-05-27
**Time:** 17:00 UTC
### Participants
* Santi
* Leo
### Notes
Trying out coverage report support in Numba.
* Not being able to make it work in Choclo.
* Tried also with a simple script, and it didn't work either.
* Numba version I tried with: 0.6.2
Pooch:
* A few issues and PRs that are waiting for replies.
Bordado:
* Released v0.3.0 with all functions from Verde ported and some extra ones (profiles on the sphere).
* Open issue for profiles on a geodesic: https://github.com/fatiando/bordado/issues/55
## 2025-05-13
**Time:** 17:00 UTC
### Participants
* Santi
* Leo
### Notes
Bordado:
* Leo has been making progress on moving stuff from Verde to Bordado
Verde:
* Docs for the 2.0 development version https://www.fatiando.org/verde/dev2.0
Harmonica:
* Eros opened a set of PRs to add more filtering functions: https://github.com/fatiando/harmonica/issues/559
* We probably should pin Verde<2.0.0
Pooch:
* Some opened PRs and Issues that are requiring some attention.
Some updates from EGU25:
* I've heard from people in Plymouth, UK, that they use the legacy fatiando package for seed inversions. We could plan to move that code to Harmonica in a near future.
* Something to leave for the geosprint?
* Gabriel (Leo's student) is updating this.
* Ppl in Leibniz institute using Fatiando and SimPEG
Geosprint:
* Deadline for one of the fundings is coming close. Updates on that?
* We probably need to push the geosprint to next year.
## 2025-04-01
**Time:** 17:00 UTC
### Participants
* Leo
* Yago
* Santi
### Notes
Harmonica:
* Segmentation fault in GitHub Actions when plotting in 3D with pyvista
* It is working now?
* Seems so!
* Coverage is marked at 0% by codecov, not sure why
Bordado:
* [v0.1 released](https://www.fatiando.org/bordado/latest/changes.html#version-0-1-0) and on conda-forge.
* Has most coordinate generation functions from Verde and `block_split` and `rolling_window`.
* All functions are now better tested, have better argument checks, better argument names, and are n-dimensional (4D grid coordinates anyone?).
* Can start to be used in other projects.
* Ideas:
* Rename `rng` argument in `random_coordinates` to `random_seed`
* No need to check if `rng` is `int` or `Generator`, we can just pass the `random_seed` to `Generator(seed=random_seed)`.
Conversation about Github and Codeberg & Forgejo
* OrganicMaps (privacy-oriented open-source Android app for maps) moved to their own Fogejo instance after their GitHub org got blocked. One more case that would make us consider having a backup plan to GitHub.
* Easiest solution: just push the whole repo.
* Codeberg allows to migrate repos, with issues and pull requests. Nice to do that once, not to do it daily (as a mirror).
* Codeberg doesn't provide runners for CI, we would have to maintain our own runners.
Magali:
* Got the source detection working
* Build a benchmark test for the detection based on Gelson's paper
* Idea to build a challenge model for the source detection
Sprints at USP!
* Planning one jointly with SimPEG on first week of September:https://hackmd.io/@leouieda/geosprint2025
* Leo and Yago are planning a small one at USP (just 1 day) this semester still.
* Idea of having a "coding hour" every week at the lab where we code on Fatiando.
## 2025-03-18
**Time:** 17:00 UTC
### Participants
* Gelson
* India
* Santi
* Leo
### Notes
Harmonica:
* Gelson's work on Takahasi's method implementation
* We can replace the FFT-based method for the dot product with our own Numba functions inside a scipy's LinearOperator.
* Default value for the `damping` in equivalent sources is not the best choice
* It triggers a non-regularized inversion problem, that might take too long to converge
* It might be better to set teh default value to a small number (1e-5 for example)
* Would be nice to add some Notes explaining what happens when you don't set damping.
* Planning v0.8.0 release
* We can check the milestones to see what we would like to include in this release
* Is the IGRF issue seeing advances?
* Changing the default value for the damping would be a good thing to have there.
Pooch:
* Too many requests to doi.org when downloading multiple files from a DOI repository
Revisiting ideas for a non-convoluted inversion framework:
* The old inversion framework in `fatiando`: https://github.com/fatiando/fatiando/tree/master/fatiando/inversion
* Would be nice to have something like that to avoid relying on sklearn for solving least squares problems both in Verde and in Harmonica.
## 2025-03-04
**Time:** 17:00 UTC
### Participants
* Gelson
* Santi
### Notes
Harmonica:
* Still fighting with the pyvista issue in the docs: https://github.com/fatiando/harmonica/pull/551
* Tried to pin all package versions to the same ones used the last time that docs built correctly, but no luck...
* [Pinned packages](https://github.com/fatiando/harmonica/pull/551/files/45918e7374af3d258b1590bb061f77b8b3932b4f)
* Exploring Vedo in the meantime. Vedo has a specific class to build prisms: [`Box`](https://vedo.embl.es/docs/vedo/shapes.html#Box)
* Gelson brought back the idea of implementing Takahashi's equivalent sources (Toeplitz matrices + FFTs)
* Plan to discuss this further next week.
* Gelson will bring some code so we can take a look at it.
## 2025-02-20
**Time:** 17:00 UTC
### Participants
* Yago
* Santi
* India
* Leo
### Notes
Choclo v0.3.2 is out! :rocket:
* Changelog: https://www.fatiando.org/choclo/latest/changes.html#version-0-3-2
* Includes bugfix for third-order kernels for prisms. The previous implementation was suffering from numerical instabilities (in specific cases) that in particular scenarios could lead to undesired division by zero errors.
* Replace flake8, black, isort for ruff.
* Use zizmor to lint github actions.
* Minor fix to docs deployment: use [`set -e`](https://github.com/fatiando/choclo/blob/4d40d32e4e3ecbfbbd5c91a2b56164ecb02895c4/.github/workflows/docs.yml#L156-L157) so the deployment script doesn't fail silently.
* TODO: `set -e` on docs deployments everywhere. Check if we can set it globally. Seems like we can on the command line.
Pooch:
* Reviewing PR on adding type hints to it.
Harmonica:
* Docs are not building due to segmentation fault coming from pyvista.
* Might worth try this instead: https://vedo.embl.es/
* `magnetic_angles_to_vec` doesn't work with lists. Might be worth adding a conversion in the function. Need to open an issue.
Maintenance:
* TODO: `set -e` on docs deployments everywhere. Check if we can set it globally. Seems like we can on the command line.
* Stop DDOSing Zenodo. Set ENSAIO_DATA_FROM_GITHUB in CI builds to avoid downloading from Zenodo and get it from the GitHub releases instead.
Magali:
* Data in magali has always vertical axis pointing down. This makes it annoying to work with Harmonica's API (also easting and northing doesn't make sense in Magali). The best solution would be to create wrappers fro Harmonica functions that make the correct sign corrections and rename the arguments accordingly.
Verde:
* Thinking again about splitting the package. There is a new function Leo's written for rotating coordinates (useful for defining diagonal dikes). Might be worth having that function elsewhere.
Backing up Fatiando repositories:
* We currently have all Fatiando repos in GitHub. We are keen on considering other git providers where we can back them up (in case something goes bad with GitHub and our organization, considering current situation in the US).
* [Codeberg](https://codeberg.org/) is a good candidate. Non-profit, community-led, commitment with open-source.
* They use [Forgejo](https://forgejo.org/), which is also open-source (anyone can host their own Forgejo instance).
* We might want to do some research on how to automate backing up our repos:
* Codeberg has a import feature that allows to bring repos from other services like GitHub.
* https://codeberg.org/wl/GithubCodebergMirror
## 2025-02-04
**Time:** 17:00 UTC
### Participants
* Santi
* Leo
**Notes**
* Started working on replacing pylint, flake8, isort and black with ruff:
* Pooch: [#453](https://github.com/fatiando/pooch/pull/453)
* Choclo: [#112](https://github.com/fatiando/choclo/pull/112)
* Started using zizmor in some packages:
* Choclo: [#114](https://github.com/fatiando/choclo/pull/114)
* Harmonica: [#544](https://github.com/fatiando/harmonica/pull/544)
* Pooch:
* Maintenance work
* Drop support for Python 3.7 and 3.8 (due to EOL)
* Extended support for Python 3.13 (testing on Py 3.13 on Actions)
* Reviewing some PRs and issues:
* Add mypy to CI job and type hints for one class [#404](https://github.com/fatiando/pooch/pull/404)
* More informative error message when resolving DOI URLs [#456](https://github.com/fatiando/pooch/issues/456)
* Order of extracted members [#457](https://github.com/fatiando/pooch/issues/457)
* Simpler solution: we could loop over `members` instead of using os.walk and then transform the files to paths, so we keep the same order
* We might encounter issues with the separator for Windows.
https://biashara.co.ke/author/alex-eubanks/
https://maiotaku.com/p/switchromz
https://joinentre.com/feed/63013bb5-8b49-d000-0be0-4ddf4ad12880
https://issuu.com/imalexa/docs/top_rated_nintendo_switch_games_of_2025
https://www.scribd.com/document/838053138/Top-Rated-Nintendo-Switch-Games-of-2025