Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BlueOS-devel] document extension creation process #147

Conversation

ES-Alexander
Copy link
Collaborator

@ES-Alexander ES-Alexander commented Jan 26, 2024

Relevant to bluerobotics/BlueOS-docs#8 (closes if all points complete)

@ES-Alexander
Copy link
Collaborator Author

ES-Alexander commented Mar 21, 2024

Current state (updated 13/April):

BlueOS-1.2-extensions-docs.mht.zip

I've exported just the extensions page. It should be openable in Chrome, but note that some of the hyperlinks won't work (because relative links to content that doesn't exist aren't possible).

@ES-Alexander ES-Alexander force-pushed the BlueOS-extensions-creation branch 6 times, most recently from fcd6f4f to e1d7785 Compare April 11, 2024 17:12
@ES-Alexander ES-Alexander marked this pull request as ready for review April 11, 2024 17:15
@ES-Alexander
Copy link
Collaborator Author

Marking this as ready for review, because the remaining points are non-essential and can be left for later PRs - good to make the current docs available ASAP so people can use them.

Copy link
Member

@patrickelectric patrickelectric left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some minor notes.

development/extensions/index.md Outdated Show resolved Hide resolved
development/extensions/index.md Outdated Show resolved Hide resolved
development/extensions/index.md Outdated Show resolved Hide resolved
1. Make improvements
1. Upload a new version
1. Repeat from step 6.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should add bluerobotics/BlueOS#1219 into this ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documentation should never be ahead of the available features.

Once the feature is available then it definitely should be documented though :-)

development/extensions/index.md Show resolved Hide resolved
development/extensions/index.md Show resolved Hide resolved
Comment on lines 511 to 527
#### Iterating

Most programming projects are never fully "complete", so it is expected that Extensions will be modified and improved over time. Extension approval only needs to occur when the Extension is first added to the store, so updated releases should become available within 24 hours from when the new version is uploaded to Docker Hub.

The expected iteration process is:

1. Make improvements
1. Build the updated Docker Images and upload them to Docker Hub
- Should be tagged with a SemVer compliant tag that’s higher than the previous release
- E.g. v1.0.0 → v1.0.1
1. Confirm the new version is available through the BlueOS Extensions Manager
1. Install and test it
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That should be a release cycle and not a development one.
At the moment, I believe that we don't have a friend way of doing such thing. The user would need to run their docker manually from the raspberry and upload custom tags (that are not semver) to test it. The reason behind this is that any semver tag will be available on the store currently, but I believe that is not the case once we move to blueos.cloud / bazaar. @voorloopnul ?

Copy link
Collaborator Author

@ES-Alexander ES-Alexander Apr 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Releases are part of the application development, although I do agree that "Release Cycle" is a good name for this part.

On the "friendly development cycle" side of things, I think that will require a combination of:

  1. Extension manager: allow manually uploading a docker image BlueOS#1614
  2. Custom tag upload and installation through the extensions manager
  3. Locally modifying existing containers, giving them a custom tag, and doing offline registration of the generated image, as Willian and I are working on documenting in 908c4e2 (which is in this PR, but currently not shown in the built docs because the instructions are incomplete)

@ES-Alexander ES-Alexander force-pushed the BlueOS-extensions-creation branch 4 times, most recently from aedf618 to 908c4e2 Compare April 13, 2024 08:11
@ES-Alexander ES-Alexander changed the title development: extensions: document creation process BlueOS: development: extensions: document creation process Apr 15, 2024
}
"HostConfig": {\
"Binds":[\
"/usr/blueos/extensions/data-logger:/app",\
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"/usr/blueos/extensions/data-logger:/app",\
"/usr/blueos/userdata/extensions/data-logger:/app",\

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This suggestion doesn't match the current implementation, which follows the decision we made, and is what I've documented.

If you think the extensions folder should instead be inside userdata then you'll have to raise that as a discussion point, but given extensions can have their own logs and the like then I don't think it really fits.

Copy link
Member

@Williangalvani Williangalvani left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good. we can improve the docker debugging stuff in another pr

"HostConfig": {\
"Privileged": true,\
"Binds":[\
"/usr/blueos/extensions/data-logger:/app",\
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"/usr/blueos/extensions/data-logger:/app",\
"/usr/blueos/userdata/extensions/data-logger:/app",\

development/extensions/index.md Outdated Show resolved Hide resolved
@ES-Alexander ES-Alexander merged commit 943196b into bluerobotics:BlueOS-devel-temp Apr 17, 2024
@ES-Alexander ES-Alexander deleted the BlueOS-extensions-creation branch April 17, 2024 11:44
@ES-Alexander ES-Alexander changed the title BlueOS: development: extensions: document creation process [BlueOS-devel] document extension creation process Apr 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants