Skip to content

Commit

Permalink
Release 2.11.0 (#45)
Browse files Browse the repository at this point in the history
* fix: fix missing tab for file sharing

* Initial pass at reorganization

Reorginanization of the repository so that it is code focused vs. being
focused on how the packages are built. Packaging will be moved to
GitHub Actions so that every commit will create new packages that can
be used for testing. Releases will be created and produce packages
when a tag is committed to the repository.

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* Added beginnings of package building code

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* Now making directories during package build

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* Minor fixes to populate-meshchat-api-fs.sh

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* Fixed testing tag for version number

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* Updated GitHub workflow

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* Fixed incorrect param order for tar in ipk-build.sh

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* Storing generated package as an artifact

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* Refactored build API workflow

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* Added build MeshChat package job

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* Removed build file as no longer needed

* Updating version info in meshchatconfig.lua

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* More reorganization of files

* Fixed installation of cgi-bin after reorg

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* Fixed the installation of web files

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* Added branch name and commit ref to testing builds

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* Moved MeshChat source to top level

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* feat: Set send channel when channel filter changed

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* docs: Updated README with history of MeshChat

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* chore: Added Bug Report issue template

* chore: Added feature request issue template

* build: Updates to better name packages

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* Update Bug Report.yml

* fix: set epoch in send_message API even if not specified

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* feat: add message class abstracting message handling (#23)

* refactor: add comments to clarify flow

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* feat: add messages class to front end

Update the handling of messages on the front end code to better control
the update of messages and coordinateion with the rest of the UI.

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* add more config support

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* feat: message ID can be specified in send_message API

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* add md5 module to front-end

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* integrate message class into front-end code

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

---------

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* add more fields to bug issue template

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* chore: remove packages from repo

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* chore: add release-it config file for automated releases

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* fix: discover zone name from /etc/config.mesh (#36)

The zone name has traditionally been discovered by interogating
/etc/config/services. The AREDN firmware is removing this file
in favor of /etc/config.mesh/_setup.services.{dmz|nat}. This
fix updates the location where the zone name is discovered.

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>
Co-authored-by: Tim Wilkinson <tim.j.wilkinson@gmail.com>

* Add GitHub Actions workflow to automate releases (#40)

* Added beginnings of package building code
* chore: create release CI job
* chore: add documentation section to changelog
* chore: make build-meshchat-package a reusable workflow
* chore: add build packages to release
* fix: update-version.sh can now be told version to set
* chore(ci): convert meshchat-api build to reusable workflow
* chore(ci): set release to only work on release branch

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* feat: Add documentation  (#44)

* add API docs as comments
* add luadox configuation
* add parameter table to API calls
* create documentation to be published
* add github pages artifact code
* remove unused README
* make publish-docs workflow reusable for releases
* add troubleshooting documentation

---------

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* chore(ci): update release pipeline

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* feat: allow admin to set default channel (#19)

A MeshChat administrator now has the ability to define the default
channel that a newly logged in user is placed into. This requires that
the administrator set the value `default_channel` in the configuration
file. Setting `default_channel` to an empty string ('') will continue
using the legacy setting of 'Everything'.

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

* add LICENSE file

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>

---------

Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>
Co-authored-by: Tim Wilkinson <tim.j.wilkinson@gmail.com>
  • Loading branch information
hickey and aanon4 committed Mar 1, 2024
1 parent 8b6de2a commit 7877aa8
Show file tree
Hide file tree
Showing 51 changed files with 2,559 additions and 481 deletions.
102 changes: 102 additions & 0 deletions .github/ISSUE_TEMPLATE/Bug Report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: Bug Report
description: File a bug for the MeshChat project
title: "[Bug]: "
labels:
- bug
- needs triage
assignees:
- hickey
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to create a bug report. Please
attempt to fill in as much information as you are able to.
- type: input
id: contact
attributes:
label: Contact Details
description: How can we get in touch with you if we need more info?
placeholder: ex. email@example.com
validations:
required: false
- type: dropdown
id: version
attributes:
label: Version
description: Version of MeshChat?
options:
- v1.x
- v2.0 - v2.8
- v2.9
- v2.10
- development build (include version in what happened)
default: 0
validations:
required: true
- type: dropdown
id: system_type
attributes:
label: System Type
description: What type of system is MeshChat installed on?
options:
- AREDN node
- Linux
- Unknown
default: 0
validations:
required: true
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Also tell us, what did you expect to happen?
placeholder: |
Describe to the best of your ability what happened or what you
did to trigger the problem.
validations:
required: true
- type: textarea
id: config
attributes:
label: MeshChat configuration
description: |
If you are the admin of the MeshChat instance, it is asked that
you past your MeshChat configuration file between the back ticks
to aid in troubleshooting.
value: |
```
<Insert config file here>
```
- type: dropdown
id: connection_type
attributes:
label: Connection type
multiple: false
description: |
How is the node that is running the MeshChat instance connected?
If you know the mesh network that the node is connected to please
indicate the name of the mesh network below in the node name field.
options:
- Non-connected mesh network
- Mesh network connected through IP tunnel
- Mesh network connected through a supernode
- I don't know
- type: input
id: node_name
attributes:
label: Node name
description: Please specify the node name where MeshChat runs.
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Firefox
- Chrome
- Safari
- Microsoft Edge
- Brave
- Vivialdi
- Other
46 changes: 46 additions & 0 deletions .github/ISSUE_TEMPLATE/Feature Request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Feature Request
description: Looking to add an enhancement to the MeshChat project
title: "[Feature]: "
labels:
- enhancement
assignees:
- hickey
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to let us know about your idea. Please
attempt to fill in as much information as you are able to.
- type: input
id: contact
attributes:
label: Contact Details
description: How can we get in touch with you if we need more info?
placeholder: ex. email@example.com
validations:
required: false
- type: dropdown
id: enhancement_type
attributes:
label: Enhancement Type
description: What sort of enhancement is this?
options:
- Graphical interface
- Message formatting
- File sharing
- API improvements
- Documentation
- Installation method
- Other
default: 0
validations:
required: true
- type: textarea
id: description
attributes:
label: What is your idea or what can be improved?
description: Please be descriptive so that we can better understand the enhancement.
placeholder: Tell us your idea.
validations:
required: true

36 changes: 36 additions & 0 deletions .github/workflows/build-packages.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Build MeshChat Packages
on: push

jobs:
calculate-version:
runs-on: ubuntu-latest
outputs:
build_version: ${{ steps.build-version-slug.outputs.build_version }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- id: build-version-slug
run: |
date=$(date +%Y%m%d)
branch="${GITHUB_REF_NAME}"
commit=$(git rev-parse --short HEAD)
version="${date}-${branch}-${commit}"
echo "build_version=$version" >> $GITHUB_OUTPUT
build-meshchat-package:
needs: calculate-version
uses:
./.github/workflows/workflow-meshchat-package.yaml
with:
build_version: ${{ needs.calculate-version.outputs.build_version }}
build_dir: package/meshchat-ipkg

build-meshchat-api-package:
needs: calculate-version
uses:
./.github/workflows/workflow-meshchat-api-package.yaml
with:
build_version: ${{ needs.calculate-version.outputs.build_version }}
build_dir: package/meshchat-ipkg
64 changes: 64 additions & 0 deletions .github/workflows/publish-docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Publish MeshChat Documentation
on:
workflow_call:
inputs:
build_version:
required: true
type: string

jobs:
build:
runs-on: ubuntu-latest
container:
image: jtackaberry/luadox:latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: release
- run: luadox -c luadox.conf
- name: Fix permissions
run: |
chmod -c -R +rX "_site/" | while read line; do
echo "::warning title=Invalid file permissions automatically fixed::$line"
done
- name: Update version strings
run: |
find docs -type f --exec sed -i "s/%VERSION%/${{ inputs.build_version }}/" {} \;
run: |
echo ::group::Archive artifact
tar -C "_site" \
-cvf "$RUNNER_TEMP/artifact.tar" \
--exclude=.git \
--exclude=.github \
.
echo ::endgroup::
- name: Upload artifact
id: upload-artifact
uses: actions/upload-artifact@v4
with:
name: github-pages
path: ${{ runner.temp }}/artifact.tar
retention-days: 1
if-no-files-found: error

# Deploy job
deploy:
needs: build

# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source

# Deploy to the github-pages environment
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

# Specify runner + deployment step
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4 # or specific "vX.X.X" version tag for this action
23 changes: 17 additions & 6 deletions .github/workflows/release-meshchat.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
name: Release MeshChat Package
on:
pull_request:
types: [closed]
branches: [release]
on: workflow_dispatch

jobs:
create-release:
Expand All @@ -17,6 +14,7 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: release
- name: git config
run: |
git config user.name "${GITHUB_ACTOR}"
Expand All @@ -32,15 +30,16 @@ jobs:
build-meshchat-package:
needs: create-release
uses:
./.github/workflows/build-meshchat-package.yaml
./.github/workflows/workflow-meshchat-package.yaml
with:
ref: release
build_version: ${{ needs.create-release.outputs.build_version }}
build_dir: package/meshchat-ipkg

build-meshchat-api-package:
needs: create-release
uses:
./.github/workflows/build-meshchat-api-package.yaml
./.github/workflows/workflow-meshchat-api-package.yaml
with:
build_version: ${{ needs.create-release.outputs.build_version }}
build_dir: package/meshchat-ipkg
Expand Down Expand Up @@ -70,3 +69,15 @@ jobs:
done
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_IT_TOKEN }}
update-documentation:
runs-on: ubuntu-latest
needs: create-release
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- uses: ./.github/workflows/publish-docs.yaml
with:
build_version: ${{ needs.create-release.outputs.build_version }}
36 changes: 36 additions & 0 deletions .github/workflows/workflow-meshchat-api-package.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Build MeshChat API Package
on:
workflow_call:
inputs:
build_version:
required: true
type: string
build_dir:
required: true
type: string
ref:
required: false
type: string
default: ${{ github.ref_name }}

jobs:
create-meshchat-api-package:
runs-on: ubuntu-latest
# container:
# image: registry.gitlab.com/wt0f/gitlab-runner-images/shell:latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ inputs.ref }}
- run: echo ${{ inputs.build_version }} > VERSION
- run: package/populate-meshchat-api-fs.sh ${{ inputs.build_dir }}
- run: package/update-version.sh ${{ inputs.build_dir }}
- run: package/ipk-build.sh ${{ inputs.build_dir }}
- id: detect-package-file
run: echo "file=$(ls -1 meshchat-api_*.ipk)" >> $GITHUB_OUTPUT
- run: echo "${{ steps.detect-package-file.outputs.file }}"
- uses: actions/upload-artifact@v4
with:
name: ${{ steps.detect-package-file.outputs.file }}
path: ${{ steps.detect-package-file.outputs.file }}
41 changes: 41 additions & 0 deletions .github/workflows/workflow-meshchat-package.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Build MeshChat Package
on:
workflow_call:
inputs:
build_version:
required: true
type: string
build_dir:
required: true
type: string
ref:
required: false
type: string
default: ${{ github.ref_name }}

jobs:
create-meshchat-package:
runs-on: ubuntu-latest
# container:
# image: registry.gitlab.com/wt0f/gitlab-runner-images/shell:latest
outputs:
package_file: ${{ steps.detect-package-file.outputs.file }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ inputs.ref }}
# - run: info "Populating the filesystem with MeshChat files"
- run: echo ${{ inputs.build_version }} > VERSION
- run: package/populate-meshchat-fs.sh ${{ inputs.build_dir }}
# - run: info "Updating version numbers to "
- run: package/update-version.sh ${{ inputs.build_dir }}
# - run: info "Packing up MeshChat files"
- run: package/ipk-build.sh ${{ inputs.build_dir }}
- id: detect-package-file
run: echo "file=$(ls -1 meshchat_*.ipk)" >> $GITHUB_OUTPUT
- run: echo "${{ steps.detect-package-file.outputs.file }}"
- uses: actions/upload-artifact@v4
with:
name: ${{ steps.detect-package-file.outputs.file }}
path: ${{ steps.detect-package-file.outputs.file }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
docs/.markupserve_index

0 comments on commit 7877aa8

Please sign in to comment.