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 <[email protected]>

* Added beginnings of package building code

Signed-off-by: Gerard Hickey <[email protected]>

* Now making directories during package build

Signed-off-by: Gerard Hickey <[email protected]>

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

Signed-off-by: Gerard Hickey <[email protected]>

* Fixed testing tag for version number

Signed-off-by: Gerard Hickey <[email protected]>

* Updated GitHub workflow

Signed-off-by: Gerard Hickey <[email protected]>

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

Signed-off-by: Gerard Hickey <[email protected]>

* Storing generated package as an artifact

Signed-off-by: Gerard Hickey <[email protected]>

* Refactored build API workflow

Signed-off-by: Gerard Hickey <[email protected]>

* Added build MeshChat package job

Signed-off-by: Gerard Hickey <[email protected]>

* Removed build file as no longer needed

* Updating version info in meshchatconfig.lua

Signed-off-by: Gerard Hickey <[email protected]>

* More reorganization of files

* Fixed installation of cgi-bin after reorg

Signed-off-by: Gerard Hickey <[email protected]>

* Fixed the installation of web files

Signed-off-by: Gerard Hickey <[email protected]>

* Added branch name and commit ref to testing builds

Signed-off-by: Gerard Hickey <[email protected]>

* Moved MeshChat source to top level

Signed-off-by: Gerard Hickey <[email protected]>

* feat: Set send channel when channel filter changed

Signed-off-by: Gerard Hickey <[email protected]>

* docs: Updated README with history of MeshChat

Signed-off-by: Gerard Hickey <[email protected]>

* chore: Added Bug Report issue template

* chore: Added feature request issue template

* build: Updates to better name packages

Signed-off-by: Gerard Hickey <[email protected]>

* Update Bug Report.yml

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

Signed-off-by: Gerard Hickey <[email protected]>

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

* refactor: add comments to clarify flow

Signed-off-by: Gerard Hickey <[email protected]>

* 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 <[email protected]>

* add more config support

Signed-off-by: Gerard Hickey <[email protected]>

* feat: message ID can be specified in send_message API

Signed-off-by: Gerard Hickey <[email protected]>

* add md5 module to front-end

Signed-off-by: Gerard Hickey <[email protected]>

* integrate message class into front-end code

Signed-off-by: Gerard Hickey <[email protected]>

---------

Signed-off-by: Gerard Hickey <[email protected]>

* add more fields to bug issue template

Signed-off-by: Gerard Hickey <[email protected]>

* chore: remove packages from repo

Signed-off-by: Gerard Hickey <[email protected]>

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

Signed-off-by: Gerard Hickey <[email protected]>

* 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 <[email protected]>
Co-authored-by: Tim Wilkinson <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* chore(ci): update release pipeline

Signed-off-by: Gerard Hickey <[email protected]>

* 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 <[email protected]>

* add LICENSE file

Signed-off-by: Gerard Hickey <[email protected]>

---------

Signed-off-by: Gerard Hickey <[email protected]>
Co-authored-by: Tim Wilkinson <[email protected]>
  • Loading branch information
hickey and aanon4 authored 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 protected]
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 protected]
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
Loading

0 comments on commit 7877aa8

Please sign in to comment.