Hello all,

I wanted to give a heads up: a compatibility-breaking change will likely
be made to the `mynewt-core` and `mynewt-nimble` repos soon.  These
repos will no longer be compatible with older versions of newt.  If you
use development versions of these repos, I suggest you upgrade to the
latest development version of newt now.

You can read the details of this change in the following PRs:

Newt: https://github.com/apache/mynewt-newt/pull/230 (merged)
Core: https://github.com/apache/mynewt-core/pull/1486
Nimble: https://github.com/apache/mynewt-nimble/pull/232

I will not merge these PRs until 2018-11-05 (Monday) at the earliest.
If you have any objections or other feedback, please don't hesitate to
share them here or as PR comments.

A summary of the change is reproduced below:

    This change adds four newt commands:

        newt target sysinit show <target>
        newt target sysinit brief <target>
        newt target sysdown show <target>
        newt target sysdown brief <target>

    Both sysinit commands produce a report of all the sysinit entries
    configured for the target. The sysdown commands are similar; they
    show sysdown entries rather than sysinit entries.

    This change attempts to address two problems:

    1. It is difficult to know the exact order of package initialization
    and shutdown. The brief commands allow this information to be
    visualized in a condensed table.

    2. The sysinit or sysdown stages chosen used by third-party packages
    may not be suitable for a particular target. This change allows
    syscfg settings to be used as stage numbers. The expectation is that
    all packages will define syscfg settings for their sysinit and
    sysdown stages. This allows the target to reorder the stages by
    overriding the corresponding syscfg settings.

I wanted to make this change backwards compatible via an injected newt
syscfg setting, e.g.,

    pkg.init.NEWT_FEATURE_SYSCFG_STAGES:
        log_init: 'MYNEWT_VAL(LOG_SYSINIT_STAGE)'

    pkg.init.!NEWT_FEATURE_SYSCFG_STAGES:
        log_init: 100

Unfortunately, this is not possible, as the old newt does not allow
conditionals to be applied to pkg.init.  This is fixed by the merged
newt PR, but that doesn't help us in the short term.

I think it is still worth it to get this change in.  When 1.6.0 is
released, we can make sure to add the appropriate newt version
restriction.

Thanks,
Chris

Reply via email to