Release of 0.18

Here's the place for discussion related to coding in FreeCAD, C++ or Python. Design, interfaces and structures.
User avatar
fosselius
Posts: 334
Joined: Sat Apr 23, 2016 10:03 am

Release of 0.18

Postby fosselius » Thu Aug 16, 2018 6:34 am

As its 137 days left until 2019.01.01, it might be time for this thread if we want to release this year?

Tracker for 0.18 release:
https://www.freecadweb.org/tracker/road ... oject_id=4

Outdated? pages:
https://www.freecadweb.org/wiki/Develop ... e_schedule
https://www.freecadweb.org/wiki/Release_process

There is several discussions going on in many threads right now about what should be included into 0.18, lets try to get an overview of everything.
Is there any "goals", DoD (definition of done) or plan for 0.18?

What is the "core" changes /improvements for 0.18? python 3 and increased stability?

I will update this list as this thread builds up:
Heading for 0.18:
Python3

Unknown Status: (from: https://forum.freecadweb.org/viewtopic.php?f=8&t=26962)
Prompting Items
18 All Kunda1 Address TODO/FIXME in code base
34 All galou_breizh Include workbench version numbers in FCStd file
47 All efyx Double click scroll wheel = zoom all (models, sketch and TD)
53 All GeneFC Full support for non-metric units in the GUI
3 Draft damian parse a set of lines, wires, and symbols, and create a linear diagram with nodes
33 Export? plgarcia Adding the capability to export the model as a script.
28 FEM bernd upgrade SMESH (also Mesh,PartMesh?)
63 FEM Matael include topolgy optimization tool
17 Part efyx Model section view
36 Part Joyas "reset coordinates" tool, allows to make two rotations without mixing them
38 Part Joyas mirror and fuse tool
39 Part Joyas skew transform tool
42 Part GlouGlou Improve texture mapping for every faces and every parts.
2 Part Design chrisb more comfortable way of selecting and deselecting edges etc. for sweeps and the like.
57 Part Design Matael Allow mirror of mirror
59 Part Design Matael allow PD sketches to be offset (as in Sketcher)
60 Part Design Matael allow new sketch at angle to existing sketch
10 Sketcher Mark Szlazak Speed up the geometric constraints solvers with better feedback about issues if possible.
13 Sketcher ArminF line joining/splitting, line knots for editing
16 Sketcher efyx offset, section plane, snapping to parts, constrains under right click, “are you sure” on ESC
48 Sketcher Matael show portions of sketch as fully constained, even if entire sketch is not
49 Sketcher Matael allow constrain arcs by diameter as well as radius
55 Sketcher reox spcify inner/outer angle for Angle Constraint
58 Sketcher Matael polyline – keep subtool active (line, arc,perpendicular,...)
70 Sketcher DeepSOIC add parameter value constraint (point on curve)
71 Sketcher DeepSOIC add continuity constraints: Coincident (G0)->Tangent (G1)-> matched curvature (G2)->G3 and so on.
72 Sketcher DeepSOIC add multisegment length constraints
73 Sketcher DeepSOIC expression powered constraint (e.g. a constraint that ties values of two blue constraints).
75 Sketcher Joel_graff Sketcher should have a slope constraint for line segments.
30 Start yorik New start WB (maybe not based on HTML/webkit/webengine)
37 Surface Joyas More surface tools. join various surfaces in a single one. Convert to solid.
1 TechDraw wandererfan Find a solution for creating page templates that doesn't require the author to be a whiz at inkscape and hand editing svg.
4 Third Party Kunda1 FreeCAD gitproject versioning via git

Postponed to 0.19: (or later)
LinkStage3 / asm3
Last edited by fosselius on Thu Aug 16, 2018 7:21 am, edited 1 time in total.
User avatar
kkremitzki
Posts: 1583
Joined: Thu Mar 03, 2016 9:52 pm
Location: Texas

Re: Release of 0.18

Postby kkremitzki » Thu Aug 16, 2018 7:00 am

fosselius wrote:
Thu Aug 16, 2018 6:34 am
As its 137 days left until 2019.01.01, it might be time for this thread if we want to release this year?
503 days until Python 2 is EOL, too, for reference: https://pythonclock.org/
The "core" changes /improvements for 0.18 would be python 3 and increased stability?
Sketcher improvements: https://forum.freecadweb.org/viewtopic.php?f=10&t=28370
There is several discussions going on in many threads right now about what should be included into 0.18, lets try to get an overview of everything.
Is there any "goals", DoD (definition of done) or plan for 0.18?
I think the first thing to mention is where we fall in release cycles currently. The Ubuntu 18.10 Debian import freeze is in a few days, so we'll have to handle packaging for that version by PPA. However, the soft-freeze for Debian 10 is upcoming (February 12, 2019), and since this will be the basis for things like the next wave of Raspberry Pi's and other long-term devices like school computers, I think we should try to aim for an early, before end-of-year release.

So, this will be the first, and last, FreeCAD release with Python 2 & 3. The Python 2 requirements are basically the same as for 0.17, so we're good there. The Python 3 requirements revolve around PySide 2 & Pivy packaging, and having a period of more intensive Python 3 testing and fixing.

I don't think Ubuntu 14.04 will be able to use the PPA since its version of Qt 5 is so old. Ubuntu 16.04 is on the fence, but the problems with building the PySide 2 package from the Debian recipe seemed tractable. For Ubuntu 18.04, I've built the PySide 2 package, and Pivy, but there are still problems.

I see we already have Qt5/Py3 Appimages so I'd consider Ubuntu 14.04 taken care of if the Appimages work. That means that once the 16.04+PySide 2 question is answered and the major bugs are taken care of on 18.04, we'd have a Python 3 FreeCAD available for easy mass testing. After we've had a satisfactorily long period of testing and bug removal in Python 3, I'd say we'd be ready for a release.

Estimating very roughly I'd imagine we could take care of the aforementioned 16.04/18.04 problems within a month, and the testing period could be less than 2 months; Python 3 builds have been out for some time, so there isn't that much that needs to be done, at least in core FreeCAD. (Extensions, etc., are another story.)

Regarding Windows releases, I'd say those are mostly taken care of with looo's work on Conda, and for Mac, I can't say...
Like my FreeCAD work? I'd appreciate any level of support via Patreon, Liberapay, or PayPal! Read more about what I do at my blog.
User avatar
HarryGeier
Posts: 1112
Joined: Mon Jul 10, 2017 12:36 pm
Location: Hof Germany

Re: Release of 0.18

Postby HarryGeier » Thu Aug 16, 2018 10:13 am

If i see it like one of my work software projects, i would say :

Define a feature freeze asap. This should include pull request already done that can be included easily in few days.. This should be done by the core team .

Define what needs to be done to get all platforms ready for release . Concentrate on that.

Other contributors outside of the core team should get Wiki and Translations up to .18 level in parallel.

Release when all is commited and each platform is ready as well as english doc´s are at 0.18 level..

I also see an early release as important, so the core team can start to concentrate on getting realthunders branch into 0.19 before starting anything new in 0.19 as this a massive but worthwhile effort for the future.

just my thoughts...
Kaum macht man´s richtig , gehts´s
My Video Tutorials on Youtube: https://www.youtube.com/channel/UCoe3B ... p8Q/videos
My FreeCAD Stuff on Hidrive: https://my.hidrive.com/share/qr3l1yddy6#$/
User avatar
sgrogan
Posts: 5133
Joined: Wed Oct 22, 2014 5:02 pm

Re: Release of 0.18

Postby sgrogan » Thu Aug 16, 2018 9:49 pm

I think @kkremitzki is pretty much spot on.

I don't think we are ready for a feature freeze yet. I also don't know of any blocking bugs that would prevent a release.

In my mind we need PY3/QT5 builds that are stable enough for a release, and time to test them.

My opinions:
Ubuntu 14.04: Too much effort to port. Release will support PY2/QT4, it's EOL next April anyway (I'm a 14.04 user, so I'm not just blowing it off)
Ubuntu 16.04: I'll defer to Kurt's expertise whether PY3/QT5 is feasible. It would be good to get netgen working with OCCT 7.3.
Ubuntu 18.04: PY3/QT5 +OCCT7.3 w/ netgen should be the primary goal. I'm personally less concerned with PY2/QT4 here. If we can provide both, great.

Winx64: PY3/QT5 w/ VS2015+ seams possible. We need to work out OCCT7.3 w/netgen support. The packages are available already available on Conda, we need to make them build-able/portable suitable for a release. We will be able to provide a VS2013 based PY2/QT4 version OCCT w/netgen TBD.
Winx32: TBD

OSX: Supports QT5 for some time, still using PY2. I'll leave it to a OSX guru to quantify the effort.

TLDR;
PY3/QT5 support should be the gating factor for a release. When we can reliably produce these test builds, we can then think of a feature freeze.

Everyone keep in mind, the PY3/QT5 port is going to break many add-on WB's and macros.

And we need our hero's to update the wiki and translations. Maybe we could start here: https://www.freecadweb.org/wiki/Release_notes_0.18

BIG thanks to everyone in advance. This always takes more time and effort than we think.
triplus
Posts: 8364
Joined: Mon Dec 12, 2011 4:45 pm

Re: Release of 0.18

Postby triplus » Sat Aug 18, 2018 10:58 am

FreeCAD 0.18 will likely get released at the end of this year or for the development cycle to be extended in Q1 2019. Depending on the challenges involved. Ongoing efforts therefore should decide on its own merits what makes the most sense for them. To do something before or after.

As for Py3 effort. Strategy that was selected in the past was to support both Py2 and Py3. We managed to provide Py3 builds option on Win/Linux and therefore what is missing now is for the end users to start using such builds and to start reporting issues they are experiencing. As what is happening now is end users are not bothered with that and just rather use more matured Py2 option. This needs to change and end users need to start doing their part of the job. On how to achieve that. Likely a task left for FreeCAD 0.19 development cycle. Unpopular approaches like stop providing FreeCAD 0.19 Py2 daily builds are one option. But hopefully such drastic steps won't be needed.
User avatar
sgrogan
Posts: 5133
Joined: Wed Oct 22, 2014 5:02 pm

Re: Release of 0.18

Postby sgrogan » Sat Aug 18, 2018 5:19 pm

triplus wrote:
Sat Aug 18, 2018 10:58 am
Unpopular approaches like stop providing FreeCAD 0.18 Py2 daily builds are one option. But hopefully such drastic steps won't be needed.
As tempting as this may be... ;)
flim
Posts: 56
Joined: Mon May 07, 2018 8:51 am

Re: Release of 0.18

Postby flim » Sat Sep 15, 2018 10:52 am

I am interest to use Py3 build but how to get start?
User avatar
sgrogan
Posts: 5133
Joined: Wed Oct 22, 2014 5:02 pm

Re: Release of 0.18

Postby sgrogan » Sat Sep 15, 2018 11:51 am

flim wrote:
Sat Sep 15, 2018 10:52 am
I am interest to use Py3 build but how to get start?
What is your OS/Distro?
flim
Posts: 56
Joined: Mon May 07, 2018 8:51 am

Re: Release of 0.18

Postby flim » Sat Sep 15, 2018 1:46 pm

Windows 10 64-bit
User avatar
sgrogan
Posts: 5133
Joined: Wed Oct 22, 2014 5:02 pm

Re: Release of 0.18

Postby sgrogan » Sat Sep 15, 2018 1:55 pm

flim wrote:
Sat Sep 15, 2018 1:46 pm
Windows 10 64-bit
The easiest :)
Download the pre-compiled ...7_Conda_Py3QT5-WinVS2015_x64.7z style binaries from here:https://github.com/FreeCAD/FreeCAD/rele ... g/0.18_pre
They are updated regularly. The work just like, and can live side-by-side with, the regular daily builds.