-
Notifications
You must be signed in to change notification settings - Fork 512
Merge 2.x into master #583
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
A previous attempt to fix this was done in 0128b86. However, it was not rigorous. The added offset was dependent on font size and it introduced an error into edit control positioning. Further, it is irrelevant to non-workplanes. After this commit, the workplane drawing code adds a fixed offset instead. Also, the "tab" is enlarged to not overlap with #XY etc.
Also, rename confusing "Show Text Window" menu item.
Before this commit, quitting through menu would bring up the dialog twice when declining to save the file.
Such resizing may well get us past OpenGL's maximum texture size and break rendering.
This commit fixes a bug introduced in commit 0d7aa0a.
Before this commit, controls went wild on zoom ratios other than 1:1, and the rendering wasn't too good either.
Before this commit, any available libpng or libfreetype would be picked, e.g. from Mono.framework. After, homebrew and MacPorts are prioritized.
This is required by e.g. Debian guidelines.
If SolveSpace crashes after the open, or hangs and is forcibly killed, data would be lost. (I lost my data.) Instead, remove autosave only in two cases: right after a successful save, or right after a save is declined. This should be completely safe.
Before this commit, it never highlighted anything at all. It was broken when chord tolerance calculation was overhauled.
Before this commit, no events would actually be received.
The package is now maintained by the Debian Science team at: https://anonscm.debian.org/git/debian-science/packages/solvespace.git
The crash was introduced in e2e9167; I have not noticed that some of the code relies on past-the-size entities in GW.GS being empty.
SolveSpace 2.0 used the height of 'A' (i.e. cap height) to determine the reference height. SolveSpace 2.1 completely broke that during transition to Freetype, and used something more or less random, by using FT_Set_Char_Size with units_per_EM. SolveSpace 2.2 attempted to fix that, but also used something more or less random, by using FT_Request_Size with "unit" values. Turns out that Freetype actually doesn't have a concept of cap height at all. It is possible to extract it from the TT_OS2 table that is present in some TrueType fonts, but it is not present in Microsoft fonts (the msttcorefonts ones), and for those Linux fonts in which it is present it doesn't appear very reliable. So instead, use the height of 'A' instead, like version 2.0 did. This has the advantage that it is quite bulletproof, and also matches exactly what the old files are measured against. One downside is that fonts without an 'A' glyph would not render. We can deal with that when it becomes a problem.
This is the same problem as in a2c97fc.
SSurface::TriangulateInto first populates the mesh with triangles that have no color, and then paints them, which confused the code that detects if a mesh is transparent into thinking that all of them are; and that broke the "draw back faces in red" feature, since it is disabled for transparent meshes.
Before this commit, polylines got flattened but all other entities got exported with the proper Z coordinate. After this commit, all entities are exported with proper Z coordinate. Also, instead of exporting LWPOLYLINE (2d only), POLYLINE (2d/3d) is exported; as a bonus it is more compatible with 3rd party software, since it is older.
This commit follows 99d6f1f, which enabled export of Z coordinate by using POLYLINE instead of LWPOLYLINE. After this commit, only the AcDb2dPolyline/AcDb2dVertex are used when exporting flat views, which may improve compatibility with 2d design packages.
glibc defines a CHAR_WIDTH macro in limits.h since about 6.3.*. This is apparently added as a part of ISO TS 18661-1:2014, which I cannot read because it is not publicly available, and which covers some sort of floating-point extensions. This is one of those changes that should never have been done yet here we are.
|
Please don't do this, for several reasons.
|
To be clear, we can take a look at the workflow improvements you're suggesting in the next release branch (if there will be one). But I would strongly prefer to not touch the existing |
Sounds good, though there are a couple of things I wanted to point out:
|
Thanks for the expanded explanation above, I see your rationale more clearly now. Other than for |
Correct, although it is a prerequisite to switching your |
A downside of the current
Using I don't think that Snapcraft version strings are subject to the same semantics as Debian package version strings, but it's probably good practice to follow something like the Debian version string semantics. |
I understand your motivation for using For context, the I have two concerns about switching to
It seems to me like the disadvantages of using |
You are right that I looked into Snapcraft's version string a bit more and it looks like it's meant for human consumption, not machine consumption (unlike Debian package version strings). So the current version scheme is perfectly fine for Snap.
I don't think that's necessary. Humans understand that hashes aren't ordered, and any package maintainer will know to munge the version string to avoid hash comparisons. Speaking of munging version strings, how much do you care about consistency between Help->About and package versions? Right now a Debian package maintainer would need to generate a version string via
That doesn't solve the Debian comparison problem—it would still try to compare
Note that the output of Also, context matters. If the version string came from Snap or a Linux distribution then it would be clear what the string referred to. If the version string came from someone building their own personal branch then it wouldn't have much meaning, but that's also true with the current version scheme. |
Another thing it doesn't work well with is
That's not an issue. All I want is to be able to look up the hash to conclusively identify which commit in the repository it was built from (or a lack of such commit). If the About dialog text clearly identifies the build as coming from Debian (or at least, modified by a packager), that is all the better.
Yes. Let me rephrase my earlier statement. I think that not having a "number of commits since tag" part at all is better than having one that would be sometimes missing (because of shallow checkouts), sometimes misleading (because of third party builds), and sometimes correct; there's nothing more frustrating than apparently helpful but in reality misleading metadata. If I have to disambiguate it with the commit hash to be sure, why bother having it at all? |
Merging a release branch into master has the following benefits:
git describe
always prints a string that includes the version of the latest release (when master is checked out). This makes it possible to useversion: git
in the Snapcraft config.git tag --contains <ID of bugfix on release branch>
shows all versions that include the bugfix.