Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

🐣 incubating Bifravst as an official Nordic Semiconductor project 🎉 #56

Closed
5 of 6 tasks
coderbyheart opened this issue Aug 21, 2020 · 6 comments
Closed
5 of 6 tasks
Assignees
Labels
epic Epics summarize high level goals
Projects

Comments

@coderbyheart
Copy link
Member

coderbyheart commented Aug 21, 2020

I am happy to share that we plan to lift Bifravst into the state of an official
Nordic project! 🎉

Big Cat Running

This means that in the coming weeks we will establish the best path to provide
this project through nRF Connect SDK,
Nordic Semiconductor Info center and
potentially other established channels.

It will lead to some form of rebranding (the Bifravst term is not a crowd
favorite 😿) and reorganizing of repositories and documentation,
but overall this means more resources and attention for this project and the
move to a first public release under the nRF Connect SDK release scheme.

I'll update this issue with more information as soon as it crystallizes.

Tasks

(more to come)

Considerations for moving the project

  1. All changes must be considered from a user point of view: how will the change
    affect their ability to clone and update the project (source code and
    documentation) for their needs and also contribute back
  2. The project itself must not lose abilities it has today, like frequent
    releases (including firmware builds), continuous integration and deployment

NCS

https://github.com/nrfconnect/sdk-nrf

  • Need way to publish prebuilt hex files for our own environment

The guide for building applications with NCS links to the official Zephyr documentation on Application Development which asks the user to Create an application folder outside of the Zephyr base directory.

Feedback from engineers

  • Out of tree is easier to use and what customers prefer
  • In tree is there to force us to keep an application working with every release, but in past we have seen that applications are not tested fully and issues are discovered after a release, and then stay broken until the next major release (which is months away)
  • Keeping the application out of tree allows to release fixes once they are discovered and unblock customers

InfoCenter

https://infocenter.nordicsemi.com/

  • What's a good example?
  • Source code is not public:
    • users can't fork / export / modify it and host it themselves with
      modifications
    • changes / feedback trough email

Feedback from Tech Writers

  • they favor the current way because it keeps the documentation close to the source code and it can be kept up to date by the developers
  • the project discovery should happen through DevZone in the form of blog posts, possibly also through marketing effort
  • the hardware specification should however be put in InfoCenter as a Reference Design

Considerations for renaming the project

Nordic Semiconductor has
a naming scheme for its development tools
nRF Connect for <Platform> or nRF <Project> and for its
Prototyping platforms
Nordic Thingy:XX.

Keep in mind that this project is not

  • a multi-cloud solutions, rather it offers concrete example for specific cloud
    vendors and right now only one: Amazon Web Services (AWS)
  • a generic solution, rather it contains specific design decision for a
    ultra-low-power feather-weight (formfactor and physical weight) asset tracker

It is also not a pure SDK because it also includes hardware specifically
designed to the use case.

So the name should ideally reflect that.

A possible scheme cloud be
Nordic Cat Tracker <Component> [for <Cloud Vendor> [<Sub-Component>]]:

These projects are support tools and libraries which have no Cat Tracker
specific behaviour so they could keep their original names:

The GitHub project could be renamed to nordic-cat-tracker.

@coderbyheart coderbyheart added the epic Epics summarize high level goals label Aug 21, 2020
@coderbyheart coderbyheart self-assigned this Aug 21, 2020
@coderbyheart coderbyheart added this to Doing in Development Aug 21, 2020
@coderbyheart
Copy link
Member Author

I talked with the tech writers @umapraseeda and Oisin F. on how to proceed with the documentation:

  • they favor the current way because it keeps the documentation close to the source code and it can be kept up to date by the developers
  • the project discovery should happen through DevZone in the form of blog posts, possibly also through marketing effort
  • the hardware specification should however be put in InfoCenter as a Reference Design

Development automation moved this from Doing to Done Sep 18, 2020
@coderbyheart coderbyheart reopened this Sep 18, 2020
Development automation moved this from Done to Ideas Sep 18, 2020
@coderbyheart
Copy link
Member Author

Internally we agreed to:

A decision on the name has not yet been made.

@coderbyheart
Copy link
Member Author

Provide backlink from https://github.com/nrfconnect/sdk-nrf/tree/master/applications/asset_tracker for people who directly look into SDK source on github. It will be included in the NCS folder structure when people download NCS.

This can be achieved through west.

In this repo the west.yaml would look like:

manifest:
  remotes:
    - name: nordic
      url-base: https://github.com/nrfconnect
  projects:
    - name: sdk-nrf
      path: nrf
      remote: nordic
      revision: vX.Y.Z
      import:
        # avoid importing ourselves
        name-denylist:
          - bifravst
  self:
    path: firmware

and then our users could do:

west init -m https://github.com/bifravst/firmware

and they would get Bifravst + NCS.

But at the same time, the manifest in nrfconnect/sdk-nrf would have:

    - name: bifravst
      path: applications/bifravst
      revision: <SHA>
      url: https://github.com/bifravst/firmware

So when our users do:

west init -m https://github.com/nrfconnect/sdk-nrf

they also get Bifravst.

@coderbyheart
Copy link
Member Author

Notes from the Bifravst Q&A today with the tech writers:

@coderbyheart
Copy link
Member Author

Documentation has been converted to Sphinx/Read The Docs style: https://bifravst.github.io/bifravst/

@coderbyheart
Copy link
Member Author

We have drafted a proposal for the new names today:


Written name

The overall name for the project is:

Asset Tracker Cloud Example

When individual flavors are considered, the name is

  • Asset Tracker AWS Example
  • Asset Tracker Azure Example
  • ...

Slug

Main projects

The project slugs use the following naming rules for the main project
repositories that implement the Asset Tracker Cloud Example or contain otherwise
source code specific to the Asset Tracker Cloud Example.

  • use asset-tracker-cloud-[vendor] as a prefix to denote that it contains
    "cloud example code"
  • append -[vendor] to the prefix if the project relates to a specific cloud
    vendor
  • for the firmware repo use asset-tracker-firmware
  • do not use example as part of the slug
bifravst NordicSemiconductor Purpose
bifravst asset-tracker-cloud-docs Documentation
aws asset-tracker-cloud-aws AWS
azure asset-tracker-cloud-azure Azure
app asset-tracker-cloud-app Web App
firmware asset-tracker-firmware Firmware
device-ui asset-tracker-cloud-device-ui Device Simulator Web App
device-ui-server asset-tracker-cloud-device-ui-server Device Simulator Server used by the Device Simulator Web App
code-style asset-tracker-cloud-code-style Code style for all Asset Tracker Cloud Example projects
eslint-config-typescript asset-tracker-cloud-eslint-config-typescript TypeScript code style for all Asset Tracker Cloud Example projects

Helper projects

The project slugs use the following naming rules for helper repositories:

use cloud-[vendor]- as a prefix for projects that have cloud vendor specific
code, but are not specific to the asset tracker application, e.g. helper
libraries for a specific AWS service:

bifravst NordicSemiconductor Purpose
cloudformation-cleaner cloud-aws-cloudformation-cleaner cleans up left-over stacks from CI runs
cloudformation-helpers cloud-aws-cloudformation-helpers simplifies working with AWS CloudFormation stacks.
package-layered-lambdas cloud-aws-package-layered-lambdas packages lambdas with Webpack for deploying to AWS
timestream-helpers cloud-aws-timestream-helpers simplifies working with AWS Timestream
firmware-ci-aws cloud-aws-firmware-ci Firmware CI runner for AWS

use cloud- as a prefix for prjects that are used with a cloud but are
vendor-agnostic:

bifravst NordicSemiconductor Purpose
firmware-ci cloud-firmware-ci Contains helper functions for interacting with the nRF9160 used during end-to-end tests
e2e-bdd-test-runner cloud-e2e-bdd-test-runner Implementation of a test-runner for end-to-end tests of cloud-native applications using Gherkin features.
e2e-bdd-test-runner-example cloud-e2e-bdd-test-runner-example Demonstrates e2e-bdd-test-runner

use -[language] as a suffix for projects that provide libraries for a
specific programming environment:

bifravst NordicSemiconductor Purpose
cell-geolocation-helpers cell-geolocation-helpers-js Helper functions for the cell geolocation feature.
object-to-env object-to-env-js Convert an object to environment variable definitions
random-words random-words-js Returns random 8-letter words from the Webster's Unabridged Dictionary.
rsrp-bar rsrp-bar-react React component to render an RSRP bar or a failover icon in case the reported value is not valid.

keep standalone projects as is:

bifravst NordicSemiconductor Purpose
at_client at_client Compile the AT client sample for 9160DK and Thingy:91 and publish it regularly.

coderbyheart added a commit that referenced this issue Jan 7, 2021
BREAKING CHANGE: this affects some resource names used in scripts

See #56
coderbyheart added a commit that referenced this issue Jan 11, 2021
BREAKING CHANGE: this affects some resource names used in scripts

See #56
coderbyheart added a commit that referenced this issue Jan 22, 2021
BREAKING CHANGE: this affects some resource names used in scripts

See #56
coderbyheart added a commit to NordicSemiconductor/random-words-js that referenced this issue Jan 27, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/random-words-js that referenced this issue Jan 27, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/random-words-js that referenced this issue Jan 27, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to bifravst/random-words that referenced this issue Jan 27, 2021
See bifravst/bifravst#56

Archiving the repository now.
coderbyheart added a commit to NordicSemiconductor/asset-tracker-cloud-code-style-js that referenced this issue Jan 27, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to bifravst/eslint-config-typescript that referenced this issue Jan 27, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/asset-tracker-cloud-code-style-js that referenced this issue Jan 27, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/object-to-env-js that referenced this issue Jan 29, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to bifravst/object-to-env that referenced this issue Jan 29, 2021
coderbyheart added a commit to NordicSemiconductor/cloud-aws-cloudformation-helpers-js that referenced this issue Jan 29, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/cloud-aws-cloudformation-cleaner-js that referenced this issue Feb 1, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/at_host-hex that referenced this issue Feb 1, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/cloud-get-next-version-action that referenced this issue Feb 1, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/cloud-aws-timestream-helpers-js that referenced this issue Feb 2, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/rsrp-bar-js that referenced this issue Feb 2, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/cell-geolocation-helpers-js that referenced this issue Feb 2, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/asset-tracker-cloud-app-js that referenced this issue Feb 2, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/asset-tracker-cloud-app-js that referenced this issue Feb 2, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/asset-tracker-cloud-app-js that referenced this issue Feb 2, 2021
coderbyheart added a commit to NordicSemiconductor/cloud-e2e-bdd-test-runner-js that referenced this issue Feb 2, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/cloud-e2e-bdd-test-runner-example-js that referenced this issue Feb 2, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/cloud-aws-package-layered-lambdas-js that referenced this issue Feb 2, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/asset-tracker-cloud-device-ui-server-js that referenced this issue Feb 2, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/asset-tracker-cloud-device-ui-js that referenced this issue Feb 2, 2021
coderbyheart added a commit to NordicSemiconductor/cloud-device-helpers-js that referenced this issue Feb 2, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/cloud-device-helpers-js that referenced this issue Feb 2, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/asset-tracker-cloud-aws-js that referenced this issue Feb 2, 2021
BREAKING CHANGE: this renames the package

See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/cloud-aws-firmware-ci-runner-js that referenced this issue Feb 4, 2021
BREAKING CHANGE: this renames the package
See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/cloud-aws-firmware-ci-feature-runner-action that referenced this issue Feb 4, 2021
BREAKING CHANGE: this renames the package
See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/cloud-aws-firmware-ci-device-action that referenced this issue Feb 4, 2021
BREAKING CHANGE: this renames the package
See bifravst/bifravst#56
coderbyheart added a commit to NordicSemiconductor/asset-tracker-cloud-docs that referenced this issue Feb 4, 2021
BREAKING CHANGE: this renames the package
See bifravst/bifravst#56
Development automation moved this from Doing to Done Feb 11, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
epic Epics summarize high level goals
Projects
No open projects
Development
  
Done
Development

No branches or pull requests

1 participant