Project

General

Profile

Actions

Task #3599

closed

Drop build support for Ubuntu 12.04

Added by Junxiao Shi over 8 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Category:
Build
Target version:
Start date:
04/21/2016
Due date:
% Done:

100%

Estimated time:

Description

Per platform policy, Ubuntu 12.04 support should be dropped when Ubuntu 16.04 is released.


Related issues 4 (0 open4 closed)

Related to NFD - Task #3600: Jenkins: Ubuntu 16.04 slaveClosedEric Newberry04/21/201605/05/2016

Actions
Blocked by NFD - Task #3360: Transition to trusty instance of Travis-CIClosedAlex Afanasyev

Actions
Blocked by NFD - Task #3386: Move code coverage check to Ubuntu 14.04ClosedEric Newberry03/21/2016

Actions
Blocks NFD - Task #2513: Optimize multi-threaded logging using lock-free queue and separate threadClosedYumin Xia

Actions
Actions #1

Updated by Junxiao Shi over 8 years ago

  • Blocked by Task #3360: Transition to trusty instance of Travis-CI added
Actions #2

Updated by Junxiao Shi over 8 years ago

  • Blocked by Task #3386: Move code coverage check to Ubuntu 14.04 added
Actions #3

Updated by Junxiao Shi over 8 years ago

  • Blocks Task #2513: Optimize multi-threaded logging using lock-free queue and separate thread added
Actions #4

Updated by Junxiao Shi over 8 years ago

  • Related to Task #3600: Jenkins: Ubuntu 16.04 slave added
Actions #5

Updated by Davide Pesavento over 8 years ago

Does this apply to ndn-cxx as well or just NFD?

Actions #6

Updated by Davide Pesavento over 8 years ago

  • Status changed from New to In Progress
Actions #7

Updated by Junxiao Shi over 8 years ago

Answer to note-5:

ndn-cxx is a platform project so it conforms to the same policy.

Actions #8

Updated by Davide Pesavento over 8 years ago

  • % Done changed from 0 to 70
Actions #9

Updated by Davide Pesavento over 8 years ago

  • Status changed from In Progress to Code review
  • % Done changed from 70 to 100
Actions #10

Updated by Davide Pesavento over 8 years ago

  • Status changed from Code review to Closed

All done.

Actions #11

Updated by Junxiao Shi over 8 years ago

  • Status changed from Closed to Feedback

I notice that .waf-tools/type_traits.py is no longer necessary because our lowest platforms OSX 10.9 and Ubuntu 14.04 both support all checked features.

Some (but not all) features in ./waf-tools/compiler-features.py also becomes unnecessary to condition on.

http://jenkins.named-data.net/job/ndn-cxx/3608/OS=Ubuntu-14.04-32bit/consoleText

Checking for std::is_default_constructible : yes 
Checking for std::is_nothrow_move_constructible : yes 
Checking for std::is_nothrow_move_assignable    : yes 
Checking for friend typename-specifier          : yes 
Checking for std::to_string                     : yes 
Checking for std::vector::insert with const_iterator : no 

http://jenkins.named-data.net/job/NFD/3981/OS=Ubuntu-14.04-32bit/consoleText

Checking for std::is_default_constructible : yes 
Checking for std::is_move_constructible    : yes 

These are deleted in ndn-cxx https://gerrit.named-data.net/2944 and NFD https://gerrit.named-data.net/2945.

Actions #12

Updated by Junxiao Shi over 8 years ago

These checks don't hurt and I don't see the advantage in dropping them. Remember that there are other platforms beyond the supported ones, such as Android or uclibc/musl-based embedded systems, that we should care about. Also, compiler version != standard library capabilities, there are platforms that ship with a recent gcc version but a different standard library that is lagging behind libstdc++.

I partially disagree with this.

The harm of keeping those is: there's no effective way to prevent a developer from using std::is_default_constructible, etc directly without wrapping with a #ifdef, because every platform on Jenkins will successfully build the code.

Actions #13

Updated by Davide Pesavento over 8 years ago

Junxiao Shi wrote:

  • FRIEND_TYPENAME is a compiler features, not standard library capability.

I'd be ok with removing this check. (assuming it's supported by MSVC)

Yeah but some features depend on the C library used, e.g. glibc vs musl vs bionic etc...

Let me remind you that one of the goals of v0.5 is expanding the actively supported platforms to mobile and embedded devices. I'm not against removing unnecessary cruft, but first make sure you're not making it harder to support those platforms down the road.

The harm of keeping those is: there's no effective way to prevent a developer from using std::is_default_constructible, etc directly without wrapping with a #ifdef, because every platform on Jenkins will successfully build the code.

Of course it would be better to have more extensive CI coverage, but keeping the checks doesn't make the situation any worse. Removing them, on the other hand, creates more work in case we need to re-introduce them later when we extend the support to more platforms.

Actions #14

Updated by Junxiao Shi over 8 years ago

  • Status changed from Feedback to Closed
Actions

Also available in: Atom PDF