Release of v0.17

Here's the place for discussion related to coding in FreeCAD, C++ or Python. Design, interfaces and structures.
wmayer
Site Admin
Posts: 12773
Joined: Thu Feb 19, 2009 10:32 am

Release of v0.17

Postby wmayer » Thu Jan 04, 2018 12:56 pm

First of all, Happy New Year to everybody!

After working more than 1.5 years on the 0.17 version the time has come to think about making a release in the near future.
As a suggestion for a time schedule I would say that we set the development into feature freeze on around 20th/21st of January which is a bit more than two weeks from now and then only accept bug fixes.

Then if nothing critical will appear that will delay the release we can make the official release somewhere in mid of February.

When looking into the bug tracker and filtering for bugs with a target version of 0.17 you will find around 30 open issues. However, I guess it's not realistic that we will succeed to get them fixed all. So, it's best to concentrate on the real important issues which at the moment are:
  • issue #0003295
    Fortunately this is rather easy to fix and doesn't affect the FreeCAD code base at all. All what needs to be done is fetching the source tarball of Python 2.7.14 and building the release (and debug) version and upgrade the libpacks. None of dependent libraries like boost python, pivy, PySide, ... need to be touched because the new Python dll will be binary compatible.
  • issue #0003279/issue #0003214
It's fine if we can fix some of the other issues but if not it's also fine.

Next, is to check which of the pending PR should be included: https://github.com/FreeCAD/FreeCAD/pulls
868 and 876 is definitely for after 0.17 and must be discussed when working on 0.18.

Then we should also have a look at the compiler warnings we get for the travis builds. Most of them is due to flaws in OpenCascade or Salome which we can ignore for now but there are some warnings we should have a look at:

Code: Select all

/home/travis/build/FreeCAD/FreeCAD/src/Mod/Path/libarea/kurve/kurve.cpp:1039:4: warning: variable 'spanno' is incremented both in the loop header and in the loop body [-Wfor-loop-analysis]
                        spanno++;
                        ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/Path/libarea/kurve/kurve.cpp:1027:50: note: incremented here
                for(int spanno = 1; spanno != (endSpanno + 1); spanno++)
                                                               ^
1 warning generated.

Code: Select all

/home/travis/build/FreeCAD/FreeCAD/src/Mod/Path/App/Area.cpp:1484:12: warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move]
    return std::move(sections);
           ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/Path/App/Area.cpp:1484:12: note: remove std::move call here
    return std::move(sections);
           ^~~~~~~~~~        ~
/home/travis/build/FreeCAD/FreeCAD/src/Mod/Path/App/Area.cpp:2576:16: warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move]
        return std::move(wires);
               ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/Path/App/Area.cpp:2576:16: note: remove std::move call here
        return std::move(wires);
               ^~~~~~~~~~     ~
/home/travis/build/FreeCAD/FreeCAD/src/Mod/Path/App/Area.cpp:2776:16: warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move]
        return std::move(wires);
               ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/Path/App/Area.cpp:2776:16: note: remove std::move call here
        return std::move(wires);
               ^~~~~~~~~~     ~
/home/travis/build/FreeCAD/FreeCAD/src/Mod/Path/App/Area.cpp:2960:12: warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move]
    return std::move(wires);
           ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/Path/App/Area.cpp:2960:12: note: remove std::move call here
    return std::move(wires);
           ^~~~~~~~~~     ~
4 warnings generated.
[ 68%] Building CXX object src/Mod/Path/App/CMakeFiles/Path.dir/FeatureArea.cpp.o
[ 68%] Linking CXX shared library ../../../../Mod/Spreadsheet/SpreadsheetGui.so
/home/travis/build/FreeCAD/FreeCAD/src/Mod/Path/App/FeatureArea.cpp:205:12: warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move]
    return std::move(shapes);
           ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/Path/App/FeatureArea.cpp:205:12: note: remove std::move call here
    return std::move(shapes);
           ^~~~~~~~~~      ~
1 warning generated.

Code: Select all

/home/travis/build/FreeCAD/FreeCAD/src/Mod/PartDesign/Gui/Command.cpp:994:20: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
    auto worker = [this, cmd](Part::Feature* profile, std::string FeatName) {
                   ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/PartDesign/Gui/Command.cpp:1045:20: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
    auto worker = [this, cmd](Part::Feature* sketch, std::string FeatName) {
                   ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/PartDesign/Gui/Command.cpp:1092:20: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
    auto worker = [this, cmd](Part::Feature* sketch, std::string FeatName) {
                   ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/PartDesign/Gui/Command.cpp:1138:20: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
    auto worker = [this, cmd, &pcActiveBody](Part::Feature* sketch, std::string FeatName) {
                   ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/PartDesign/Gui/Command.cpp:1198:20: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
    auto worker = [this, cmd, &pcActiveBody](Part::Feature* sketch, std::string FeatName) {
                   ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/PartDesign/Gui/Command.cpp:1266:20: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
    auto worker = [this, cmd](Part::Feature* sketch, std::string FeatName) {
                   ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/PartDesign/Gui/Command.cpp:1316:20: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
    auto worker = [this, cmd](Part::Feature* sketch, std::string FeatName) {
                   ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/PartDesign/Gui/Command.cpp:1366:20: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
    auto worker = [this, cmd](Part::Feature* sketch, std::string FeatName) {
                   ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/PartDesign/Gui/Command.cpp:1416:20: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
    auto worker = [this, cmd](Part::Feature* sketch, std::string FeatName) {
                   ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/PartDesign/Gui/Command.cpp:1841:20: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
    auto worker = [this, cmd](std::string FeatName, std::vector<App::DocumentObject*> features) {
                   ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/PartDesign/Gui/Command.cpp:1905:20: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
    auto worker = [this, cmd](std::string FeatName, std::vector<App::DocumentObject*> features) {
                   ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/PartDesign/Gui/Command.cpp:1971:20: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
    auto worker = [this, cmd](std::string FeatName, std::vector<App::DocumentObject*> features) {
                   ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/PartDesign/Gui/Command.cpp:2028:20: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
    auto worker = [this, cmd](std::string FeatName, std::vector<App::DocumentObject*> features) {
                   ^
/home/travis/build/FreeCAD/FreeCAD/src/Mod/PartDesign/Gui/Command.cpp:2133:24: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
        auto worker = [this, cmd, pcActiveBody](std::string FeatName, std::vector<App::DocumentObject*> features) {
                       ^
14 warnings generated.
And if time allows we can additionally look at code flaws discovered by Scan Coverity at https://scan.coverity.com/projects/saso ... ew_defects

Any opinions or suggestions of what else should be fixed?

Kind Regards,
Werner
User avatar
Kunda1
Posts: 2474
Joined: Thu Jan 05, 2017 9:03 pm

Re: Release of v0.17

Postby Kunda1 » Thu Jan 04, 2018 3:21 pm

0.17-issues-to-work-on.png
Major, crash, and block tickets that can be solved for 0.17
0.17-issues-to-work-on.png (26 KiB) Viewed 15030 times
I'm not sure anyone has gone through all the Major, Crash and Blocker labelled bugs but it makes sense to before the release.

Also it's a good moment to focus on:
Documentation:
issue #2017 List of important but empty wiki pages that need contents
issue #3016 TechDraw - Wiki documentation
issue #3052 FEM - List of important but empty wiki pages that need content
issue #3053 PART - List of important but empty wiki pages that need contents
issue #3054 Sketcher - List of important but empty wiki pages that need contents

Translations should also be resynced. Many strings have been fixed/clarified that will need translator attention.
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features
User avatar
hammax
Posts: 481
Joined: Thu Jan 19, 2017 5:03 pm
Location: Ammersee

Re: Release of v0.17

Postby hammax » Thu Jan 04, 2018 3:24 pm

...what about scipy?
User avatar
sgrogan
Posts: 4190
Joined: Wed Oct 22, 2014 5:02 pm

Re: Release of v0.17

Postby sgrogan » Thu Jan 04, 2018 3:49 pm

hammax wrote:
Thu Jan 04, 2018 3:24 pm
...what about scipy?
On Win no chance. We need to transition to VC14/PY3. On linux it should be supported now. Not sure on OSX. On Win this is high priority for me for 0.18.
If your on Win search the forum about Conda, looo's doing big work on this.
wmayer
Site Admin
Posts: 12773
Joined: Thu Feb 19, 2009 10:32 am

Re: Release of v0.17

Postby wmayer » Thu Jan 04, 2018 3:58 pm

Three of the blocking issues are targeted to 0.17. One of the remaining two is due limitation in Python 2 (thus not fixable for 0.17) and the other one is anyway for after 0.17.
The crashing issues are either caused by bugs in occ or a packaging flaw of pivy on a certain platform. None of them fall into responsibility of FreeCAD devs.
The most relevant of the major issues are already targeted to 0.17. Many of the remaining issues are explicitly targeted to 0.18 and/or are related to topo naming which will be worked on for 0.18.
User avatar
Kunda1
Posts: 2474
Joined: Thu Jan 05, 2017 9:03 pm

Re: Release of v0.17

Postby Kunda1 » Thu Jan 04, 2018 4:14 pm

wmayer wrote:
Thu Jan 04, 2018 3:58 pm
Three of the blocking issues are targeted to 0.17. One of the remaining two is due limitation in Python 2 (thus not fixable for 0.17) and the other one is anyway for after 0.17.
The crashing issues are either caused by bugs in occ or a packaging flaw of pivy on a certain platform. None of them fall into responsibility of FreeCAD devs.
The most relevant of the major issues are already targeted to 0.17. Many of the remaining issues are explicitly targeted to 0.18 and/or are related to topo naming which will be worked on for 0.18.
Sweet! Thanks for being awesome!
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features
User avatar
sgrogan
Posts: 4190
Joined: Wed Oct 22, 2014 5:02 pm

Re: Release of v0.17

Postby sgrogan » Thu Jan 04, 2018 4:25 pm

Kunda1 wrote:
Thu Jan 04, 2018 4:14 pm
Sweet! Thanks for being awesome!
:D That definitely sums it up :D when describing wmayer
User avatar
NormandC
Posts: 15921
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Release of v0.17

Postby NormandC » Thu Jan 04, 2018 5:07 pm

Thanks Werner,

I would like nothing better than a 0.17 release soon! With a February release, 0.17 will have been 22 months in development, for PartDesignNext work even longer.

But what about the trouble of "Links go out of scope"? If this is not addressed somehow, it will create a lot of incomprehension for newcomers, and a lot of frustration among existing users.

wmayer wrote:
Thu Jan 04, 2018 12:56 pm
Any opinions or suggestions of what else should be fixed?
I may have found an issue with PartDesignNext that I believe should be addressed for the 0.17 release, because it's a regression.

When deleting a feature in the middle of a sequence of features, in 0.16 it was possible to repair the model by first deleting external geometry in sketches, then remapping the sketches. Now in 0.17, once a feature in the middle of a Body tree is deleted, I haven't found a way to repair the following features. But I need to do further testing and create reproducible steps, then report it on the tracker.
abdullah
Posts: 2423
Joined: Sun May 04, 2014 3:16 pm

Re: Release of v0.17

Postby abdullah » Thu Jan 04, 2018 7:04 pm

wmayer wrote:
Thu Jan 04, 2018 12:56 pm
So, it's best to concentrate on the real important issues which at the moment are:
For a week I will be absent from bug-fixing. Then I plan to help bug fixing until release.
wmayer wrote:
Thu Jan 04, 2018 12:56 pm
Next, is to check which of the pending PR should be included: https://github.com/FreeCAD/FreeCAD/pulls
#1195 should be merged. It is straightforward and fixes an annoying sketcher reporting on deletion

#1188 is a good complement for B-Spline design in the sketcher. It enables to achieve fully constraint sketches featuring B-splines in a painless and clean way. This will facilitate help forum support as there is a general recommendation to work with fully constrained sketches. For this reason, I think it makes a lot of sense in 0.17.

#1167 has been repeatedly requested (aka hiding constraints). Users would be happy to have it, but they have lived without for a long time. Most of the users actively requesting it are probably daily build users, so if it gets merged into 0.18 in February they would be equally happy :lol:

In case of merging #1188 and/or #1167 into 0.17, I would ask it to be done as early as possible, so that if any issue is discovered it gets fixed before final release. For these I commit time starting from around 11 January in order to fix any bug that is found within a couple of days.
wmayer wrote:
Thu Jan 04, 2018 12:56 pm
Then we should also have a look at the compiler warnings we get for the travis builds.
I can help here too next week.
User avatar
NormandC
Posts: 15921
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Release of v0.17

Postby NormandC » Thu Jan 04, 2018 8:08 pm

NormandC wrote:
Thu Jan 04, 2018 5:07 pm
Now in 0.17, once a feature in the middle of a Body tree is deleted, I haven't found a way to repair the following features. But I need to do further testing and create reproducible steps, then report it on the tracker.
I think I found a way to repair the Body tree. I was remapping the sketches of the failed features, but my sketches were already mapped to the Body's standard planes, not to faces, and it didn't do anything; I was still getting an error "No sketch support and no base shape: Please tell me where to remove material of the pocket!". I thought of right-clicking on the failed feature and selecting "Move object after other object" then selecting the feature right before the previously deleted one. This works on a simple Body with only 3 features, will test on a more complex Body.