[release] policy not to add C++14 libraries
Hi, I'm wondering if C++14 libraries will not be added to the boost release? Oliver
2015-06-21 9:39 GMT+02:00 Michael Caisse
Why would there be a restriction?
Because I try to get coroutine2 (which is C++14-only; replaces deprecated coroutine library) since January into the boost release. Unfortunately my pull-requests were dropped, commits reverted, questions related to adding coroutine2 to the release at the mailing list remain unanswered. Because I've no info why I can't proceed with coroutine2 I guess that some policy must exist that prevents C++14 libraries in the boost release.
Le 21/06/15 10:19, Oliver Kowalke a écrit :
2015-06-21 9:39 GMT+02:00 Michael Caisse
: Why would there be a restriction?
Because I try to get coroutine2 (which is C++14-only; replaces deprecated coroutine library) since January into the boost release. Unfortunately my pull-requests were dropped, commits reverted, questions related to adding coroutine2 to the release at the mailing list remain unanswered. I'm seen now two posts 2015/06/02 - needs coroutine2 a review? 2015/02/03 - add to testing
As me, others should have missed these posts. You should ping the list and the release manager in these cases. I will try to relaunch this threads.
Because I've no info why I can't proceed with coroutine2 I guess that some policy must exist that prevents C++14 libraries in the boost release.
I'm not aware of any policy in Boost that prevents you from adding whatever you want to your library. The simple way is to use the same repository and have multiple version in it. However if you want an additional repository you need to request it to the release managers. Best, Vicente
2015-06-21 10:51 GMT+02:00 Vicente J. Botet Escriba < vicente.botet@wanadoo.fr>: I'm seen now two posts
2015/06/02 - needs coroutine2 a review? 2015/02/03 - add to testing
I tried to contact the release managers directly or via the mailing list: 22.1. adding git submodule 3.2. [coroutine2] add to testing 4.2. boost library part of next release (got the info that I've asked the release managers) 5.2. [release-mgt] missing library 26.5. [branch master] add library to regression tests 29.5. adding boost.coroutine2 to branch master 31.5. [master] adding library to release (or at least master regression test)?
I'm not aware of any policy in Boost that prevents you from adding whatever you want to your library. The simple way is to use the same repository and have multiple version in it. However if you want an additional repository you need to request it to the release managers.
The community decided that coroutine2 should become an additional library beside of boost.coroutine: http://lists.boost.org/Archives/boost/2015/01/219507.php
Le 21/06/15 11:17, Oliver Kowalke a écrit :
2015-06-21 10:51 GMT+02:00 Vicente J. Botet Escriba < vicente.botet@wanadoo.fr>:
I'm seen now two posts
2015/06/02 - needs coroutine2 a review? 2015/02/03 - add to testing
I tried to contact the release managers directly or via the mailing list:
22.1. adding git submodule 3.2. [coroutine2] add to testing 4.2. boost library part of next release (got the info that I've asked the release managers) 5.2. [release-mgt] missing library 26.5. [branch master] add library to regression tests 29.5. adding boost.coroutine2 to branch master 31.5. [master] adding library to release (or at least master regression test)?
I see that it is already on the develop branch regression tests. I suggest you to add a patch for the expected results so that any compiler other than C++14 are disabled.
I'm not aware of any policy in Boost that prevents you from adding whatever you want to your library. The simple way is to use the same repository and have multiple version in it. However if you want an additional repository you need to request it to the release managers.
The community decided that coroutine2 should become an additional library beside of boost.coroutine: http://lists.boost.org/Archives/boost/2015/01/219507.php I can not take this thread as a decision. I could take it as a suggestion or a request.
Decisions are taken with the steering committee, the release managers, review managers, .... Vicente P.S. I don't understand the title of your post if you were already able to create the repository and add it to the regression test. THis already mean that the managers confirm C++14 only libraries are possible in Boost.
Vicente J. Botet Escriba wrote:
I see that it is already on the develop branch regression tests. I suggest you to add a patch for the expected results so that any compiler other than C++14 are disabled.
It's better to use Boost.Config's 'requires' to disable the tests on non-C++14 compilers (actually, on compilers missing the required features - I see msvc-14.0 as passing test_coroutine, but it's not a C++14 compiler.) http://www.boost.org/doc/libs/1_58_0/libs/config/doc/html/boost_config/build...
2015-06-21 13:15 GMT+02:00 Peter Dimov
non-C++14 compilers (actually, on compilers missing the required features - I see msvc-14.0 as passing test_coroutine, but it's not a C++14 compiler.)
only a subset of C++14 (which msvc-14.0 supports) is required
http://www.boost.org/doc/libs/1_58_0/libs/config/doc/html/boost_config/build...
do you have an idea why' compile test_coroutine.cpp : ...' works but run test_coroutine.cpp : [ requires cxx11_constexpr cxx11_decltype cxx11_deleted_functions cxx11_explicit_conversion_operators cxx11_hdr_tuple cxx11_lambdas cxx11_noexcept cxx11_nullptr cxx11_template_aliases cxx11_rvalue_references cxx11_variadic_macros cxx11_variadic_templates cxx14_initialized_lambda_captures ] ; fails with: testing.capture-output ../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.run /bin/sh: 10: Syntax error: "(" unexpected LD_LIBRARY_PATH="/usr/bin:/usr/lib:/usr/lib32:/usr/lib64:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH status=0 if test $status -ne 0 ; then echo Skipping test execution due to testing.execute=off exit 0 fi "../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine" @object(check-target-builds-worker)@2046.check <conditional>@object(check-target-builds-worker)@2047.check <conditional>@object(check-target-builds-worker)@2048.check <conditional>@object(check-target-builds-worker)@2049.check <conditional>@object(check-target-builds-worker)@2050.check <conditional>@object(check-target-builds-worker)@2051.check <conditional>@object(check-target-builds-worker)@2052.check <conditional>@object(check-target-builds-worker)@2053.check <conditional>@object(check-target-builds-worker)@2054.check <conditional>@object(check-target-builds-worker)@2055.check <conditional>@object(check-target-builds-worker)@2056.check <conditional>@object(check-target-builds-worker)@2057.check <conditional>@object(check-target-builds-worker)@2058.check > "../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.output" 2>&1 < /dev/null status=$? echo >> "../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.output" echo EXIT STATUS: $status >> "../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.output" if test $status -eq 0 ; then cp "../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.output" "../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.run" fi verbose=0 if test $status -ne 0 ; then verbose=1 fi if test $verbose -eq 1 ; then echo ====== BEGIN OUTPUT ====== cat "../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.output" echo ====== END OUTPUT ====== fi exit $status ...failed testing.capture-output ../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.run... ...removing outdated ../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.test ...failed updating 1 target... ...skipped 1 target... ...updated 1 target...
Le 21/06/15 14:42, Oliver Kowalke a écrit :
2015-06-21 13:15 GMT+02:00 Peter Dimov
: It's better to use Boost.Config's 'requires' to disable the tests on
non-C++14 compilers (actually, on compilers missing the required features - I see msvc-14.0 as passing test_coroutine, but it's not a C++14 compiler.)
only a subset of C++14 (which msvc-14.0 supports) is required
http://www.boost.org/doc/libs/1_58_0/libs/config/doc/html/boost_config/build...
do you have an idea why' compile test_coroutine.cpp : ...' works
but
run test_coroutine.cpp : [ requires cxx11_constexpr cxx11_decltype cxx11_deleted_functions cxx11_explicit_conversion_operators cxx11_hdr_tuple cxx11_lambdas cxx11_noexcept cxx11_nullptr cxx11_template_aliases cxx11_rvalue_references cxx11_variadic_macros cxx11_variadic_templates cxx14_initialized_lambda_captures ] ;
fails with: Maybe you need some more ::
run test_coroutine.cpp : : : #requirements: [ requires cxx11_constexpr cxx11_decltype cxx11_deleted_functions cxx11_explicit_conversion_operators cxx11_hdr_tuple cxx11_lambdas cxx11_noexcept cxx11_nullptr cxx11_template_aliases cxx11_rvalue_references cxx11_variadic_macros cxx11_variadic_templates cxx14_initialized_lambda_captures ] ; Vicente
testing.capture-output ../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.run /bin/sh: 10: Syntax error: "(" unexpected
LD_LIBRARY_PATH="/usr/bin:/usr/lib:/usr/lib32:/usr/lib64:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH
status=0 if test $status -ne 0 ; then echo Skipping test execution due to testing.execute=off exit 0 fi
"../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine" @object(check-target-builds-worker)@2046.check <conditional>@object(check-target-builds-worker)@2047.check <conditional>@object(check-target-builds-worker)@2048.check <conditional>@object(check-target-builds-worker)@2049.check <conditional>@object(check-target-builds-worker)@2050.check <conditional>@object(check-target-builds-worker)@2051.check <conditional>@object(check-target-builds-worker)@2052.check <conditional>@object(check-target-builds-worker)@2053.check <conditional>@object(check-target-builds-worker)@2054.check <conditional>@object(check-target-builds-worker)@2055.check <conditional>@object(check-target-builds-worker)@2056.check <conditional>@object(check-target-builds-worker)@2057.check <conditional>@object(check-target-builds-worker)@2058.check > "../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.output" 2>&1 < /dev/null status=$? echo >> "../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.output" echo EXIT STATUS: $status >> "../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.output" if test $status -eq 0 ; then cp "../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.output" "../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.run" fi verbose=0 if test $status -ne 0 ; then verbose=1 fi if test $verbose -eq 1 ; then echo ====== BEGIN OUTPUT ====== cat "../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.output" echo ====== END OUTPUT ====== fi exit $status
...failed testing.capture-output ../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.run... ...removing outdated ../../../bin.v2/libs/coroutine2/test/test_coroutine.test/gcc-5.1.1/debug/link-static/threading-multi/test_coroutine.test ...failed updating 1 target... ...skipped 1 target... ...updated 1 target...
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
2015-06-21 16:08 GMT+02:00 Vicente J. Botet Escriba < vicente.botet@wanadoo.fr>: Maybe you need some more ::
thx, that fixed it - the unit-test should now only be executed by C++11/14 compilers (of course the check for compile-time integer sequence are not supported by boost.config yet)
Le 21/06/15 18:33, Oliver Kowalke a écrit :
2015-06-21 16:08 GMT+02:00 Vicente J. Botet Escriba < vicente.botet@wanadoo.fr>:
Maybe you need some more :: thx, that fixed it - the unit-test should now only be executed by C++11/14 compilers (of course the check for compile-time integer sequence are not supported by boost.config yet)
Of course, John will appreciate a PR adding a check for compile time integer sequences ;-) Vicente
2015-06-21 18:59 GMT+02:00 Vicente J. Botet Escriba < vicente.botet@wanadoo.fr>:
Of course, John will appreciate a PR adding a check for compile time integer sequences ;-)
I did (https://github.com/boostorg/config/pull/58) but std-lib features require to include many headers (SD-6 test macros) which is not preferable.
Le 21/06/15 13:15, Peter Dimov a écrit :
Vicente J. Botet Escriba wrote:
I see that it is already on the develop branch regression tests. I suggest you to add a patch for the expected results so that any compiler other than C++14 are disabled.
It's better to use Boost.Config's 'requires' to disable the tests on non-C++14 compilers (actually, on compilers missing the required features - I see msvc-14.0 as passing test_coroutine, but it's not a C++14 compiler.)
http://www.boost.org/doc/libs/1_58_0/libs/config/doc/html/boost_config/build...
You are right, we need to disable the run of the tests. Vicente
2015-06-21 12:53 GMT+02:00 Vicente J. Botet Escriba < vicente.botet@wanadoo.fr>:
P.S. I don't understand the title of your post if you were already able to create the repository and add it to the regression test. THis already mean that the managers confirm C++14 only libraries are possible in Boost.
I was wondering why coroutine2 doesn't make its way into one of the last releases
On 21.06.2015 15:02, Oliver Kowalke wrote:
2015-06-21 12:53 GMT+02:00 Vicente J. Botet Escriba < vicente.botet@wanadoo.fr>:
P.S. I don't understand the title of your post if you were already able to create the repository and add it to the regression test. THis already mean that the managers confirm C++14 only libraries are possible in Boost.
I was wondering why coroutine2 doesn't make its way into one of the last releases
If it was included into Boost master before 1.58 then perhaps there was an error in the release building scripts used by release managers. I guess noone checked the betas and RCs for Boost.Coroutine2.
2015-06-21 17:48 GMT+02:00 Andrey Semashev
If it was included into Boost master before 1.58 then perhaps there was an error in the release building scripts used by release managers. I guess noone checked the betas and RCs for Boost.Coroutine2.
My problem was that I didn't got response to my questions/requests and I don't know what went wrong or which additional steps are required to get it right. boost.coroutine2 is available in branch master and develop - I believe some config files miss the include of coroutine2 to get it added in the release.
On 21.06.2015 19:37, Oliver Kowalke wrote:
2015-06-21 17:48 GMT+02:00 Andrey Semashev
: If it was included into Boost master before 1.58 then perhaps there was an error in the release building scripts used by release managers. I guess noone checked the betas and RCs for Boost.Coroutine2.
My problem was that I didn't got response to my questions/requests and I don't know what went wrong or which additional steps are required to get it right. boost.coroutine2 is available in branch master and develop - I believe some config files miss the include of coroutine2 to get it added in the release.
AFAIK, release archives are built with custom scripts by Marshall Clow. I don't know if those scripts are available publicly (most likely not), but there's probably a list of libraries in them somewhere. The only formal prerequisite for the library to be part of the release is that it is in Boost master, so my guess is that the list in those scripts was simply outdated.
Andrey Semashev
AFAIK, release archives are built with custom scripts by Marshall Clow. I don't know if those scripts are available publicly (most likely not), but there's probably a list of libraries in them somewhere.
Perhaps here? https://github.com/boostorg/release- tools/blob/develop/MakeBoostDistro.py coroutine2 is not in the list of libraries in that script.
On Sun, Jun 21, 2015 at 9:37 AM, Oliver Kowalke wrote:
boost.coroutine2 is available in branch master and develop - I believe some config files miss the include of coroutine2 to get it added in the release.
I thought it is only available in develop; i.e. I see coroutine2 in https://github.com/boostorg/boost/tree/develop/libs - but it isn't available in master yet. Compare that to https://github.com/boostorg/boost/tree/master/libs where coroutine2 is absent. Did you submit a pull request for master containing the change for adding the sub module in /libs ? Glen
2015-06-21 20:07 GMT+02:00 Glen Fernandes
Did you submit a pull request for master containing the change for adding the sub module in /libs ?
No - but in the comment of my other pull-request ( https://github.com/boostorg/boost/pull/52) that I don't have to create pull-requests for branch master ('This needs to be done to develop branch not master. Release managers will merge to master after that when prepping release.') I assume that applies to modifications of other files in branch master too. Again - I don't know what are the required steps (== which files have to be modified for inclusion + regression tests etc.) to get the lib into the release.
Oliver Kowalke wroe:
2015-06-21 20:07 GMT+02:00 Glen Fernandes
: Did you submit a pull request for master containing the change for adding the sub module in /libs ?
No - but in the comment of my other pull-request ( https://github.com/boostorg/boost/pull/52) that I don't have to create pull-requests for branch master ('This needs to be done to develop branch not master. Release managers will merge to master after that when prepping release.')
You can't add the coroutine2 tests to status/Jamfile.v2 if the module doesn't exist. It first needs to be added to master.
participants (7)
-
Andrey Semashev
-
Glen Fernandes
-
Marcel Raad
-
Michael Caisse
-
Oliver Kowalke
-
Peter Dimov
-
Vicente J. Botet Escriba