Weekly Dev Log - 2022-W15 (Pre-Vacation Edition)
It's been another good (if short) week! You might notice, I'm publishing this on a Friday, not as usual on a Monday. That's because as of now, I'm on vacation! I didn't want to delay the dev log for two weeks, so here we go with an earlier one.
I finally wrapped up splitting the Fornjot app into self-contained libraries (#141), an effort that has gone on for a few weeks now (with interruptions). After that, I initially planned to start preparing for the next release. But it came to my attention that exported 3MF files were not valid, so I decided to focus on that.
I managed to fix 3MF export (#451), as well as a display issue that had the same root cause (#339). I added validation of exported 3MF files in the CI build, making sure issues like this won't creep in again as easily (#54).
Meanwhile, @hendrikmaus has continued his tireless work on release automation (#104), which I'll hopefully get to try out for the first time in a few weeks.
Sponsors
Fornjot is supported by @webtrax-oz, @lthiery, @Yatekii, @martindederer, @hobofan, and my other awesome sponsors. Thank you!
If you're interested in helping to make the project sustainable long-term, please consider supporting me too.
End-user improvements
Improvements to Fornjot and its documentation that are visible to end-users.
Ecosystem improvements
Improvements to the Fornjot ecosystem that are relevant to developers who are building on top of Fornjot components.
fj-host
- Add dedicated type for model parameters (#466)
fj-interop
- Rename
fj-debug
tofj-interop
(#454) - Move
Mesh
tofj-interop
and clean it up a little (#456, #457, #459, #460, #462)
fj-kernel
- Add support for arcs (#483)
fj-math
- Remove
color
field fromfj_math::Triangle
(#458) - Make
Triangle::from_points
more flexible (#461) - Implement
fmt::Display
forScalar
(#464) - Implement
Neg
forVector
(#482)
fj-operations
- Move
ShapeProcessor
tofj-operations
(#467)
Internal Improvements
Improvements that are relevant to developers working on Fornjot itself.
- Update dependencies (#449, #450, #452)
- Clean up triangulation code (#455)
- Add
Tolerance
struct to enforce validity of tolerance values (#465) - Continue automating release process (#468, #469, #470; thanks to @hendrikmaus!)
- Clean up directory structure in repository (#475)
- Validate exported 3MF files in CI build (#476, #480, #481)
Issue of the Week
People make mistakes. I make mistakes. Sometimes I don't notice them, and get bitten by them later. It would be nice to prevent that, by having a robot tell me how dumb I am, and that I need to be more careful.
If that kind of thing is interesting to you, why not take a look at #477 - CI build should fail, if crates are not part of workspace? This is the kind of thing that's not a big task for a newcomer, but can be very helpful going forward. (And if you're looking for more along those lines, there's also #478.)
Outlook
I'll be on vacation for the next two weeks! I might do some work during that time, but that will be completely governed by what I happen to be in the mood for. If that's something noteworthy, I'm going to publish a post-vacation dev log on May 2nd. If not, I'll be back with a regular one on May 9th.
Unless I learn about more critical bugs, my immediate priority after the vacation is going to be the next release. That will require a tiny bit of cleanup (READMEs, crate metadata, etc.), as well as a changelog and release announcement that will probably take days to write (I've waited too long).