Skip to content

Release v0.5.0 #135

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

Merged
merged 41 commits into from
Feb 3, 2022
Merged

Release v0.5.0 #135

merged 41 commits into from
Feb 3, 2022

Conversation

chas-iot
Copy link
Collaborator

@chas-iot chas-iot commented Feb 2, 2022

If you run sqm-autorate via service sqm-autorate enable && service sqm-autorate start then nothing changes, skip to Changes. If you use an alternate method and it fails, then see Starting sqm-autorate

Changes

  • relicense all code to MPLv2
  • reduced the output to /tmp to prevent using up all available space and then crashing
    • reduced the amount of logging
    • new option to stop recording statistics
      • /etc/config/sqm-autorate, section output, option suppress_statistics, set to 1, y, yes or true
  • many, many bugfixes
  • updated the documentation in README.md
  • command line settings
    • depends on the lua argparse module
    • lua sqm-autorate.lua -h for help
    • lua sqm-autorate.lua -s to see the internal settings
  • environment variable settings
  • streamlined the setup script
  • started modularisation of the lua code

Starting sqm-autorate

sqm-autorate is now split into several modules. This requires some changes to the way the program is started so that lua can find and load the modules.

  • If you only use service sqm-autorate start etc. then no change.
  • If you start by typing lua /usr/lib/sqm-autorate/sqm-autorate.lua, then try cd /usr/lib/sqm-autorate/ ; lua sqm-autorate.
  • If you start by typing /usr/lib/sqm-autorate/sqm-autorate.lua then type cd /usr/lib/sqm-autorate/ ; ./sqm-autorate.lua
  • Alternatively, adjust the LUA_PATH to add /usr/lib/sqm-autorate/?.lua

Commits

Fail-Safe

Daniel Lakeland

  • add some lines and text to bandwidth diagram
  • add an example run bw graph for use in readme

Nils Andreas Svee

  • set names on threads for debugging
  • Add more reflectors in APAC region

jeverley

Rich Brown

  • Main lua code: Add csv_logger() function that observes the desired log level (to minimize logging long-term)
    • note: later superseded
  • Update getstats.sh

Chas-IOT

dlakelan and others added 30 commits January 8, 2022 21:46
Closes Missing curl command when running setup #93
Review, re-organise, and re-write the documentation
Co-authored-by: Daniel Lakeland <dlakelan@street-artists.org>

Incorporating review changes and comments from 
- @Lochnair 
- @trippleflux 
- @richb-hanover
add contact details for developers
…torate into develop/main

not sure why this is even necessary
modularisation - part 1
- move utility functions unrelated to SQM and CAKE to another module
- set the correct path to pickup the new modules
modularisation phase 2 - settings
Priority order of settings
- OpenWRT uci /etc/config/sqm-autorate
- command line
- environment variables
several changes were made direct on the testing branch
merge these back into develop/main so that they do not get lost
- further changes were performed direct on the release branch
- merge to prevent further divergence
- uci: output.suppress_statistics
- cli: --suppress-statistics
- env: SQMA_SUPPRESS_STATISTICS
chas-iot and others added 11 commits January 28, 2022 18:50
WAN interface takedown tx/rx stats file handling bug fix (issue #101, 105)
- incorporated most changes by @richb-hanover
- check directly for CAKE being fully installed
- do not abort on unexpected distro name - ask user
- to use a single '-', the option name must only be one character
- align documentation with current code
- resolve issues found during testing
- update default configuration
Fail-Safe
	Fix for GH issue #99 per @jeverley. Closes #99.
	Closes Missing curl command when running setup #93
	Removed bad reflectors.
	Per @jeverley's feedback, there is no need for a pattern match here.
	This appears to only be needed for ingress. Removing egress reference.
	Fixed incorrectly named variable.
	Attempt at br-lan fix.
Daniel Lakeland
	add some lines and text to bandwidth diagram
	add an example run bw graph for use in readme
Nils Andreas Svee
	set names on threads for debugging
	Add more reflectors in APAC region
jeverley
	Incorporate changes discussed in 112 in clean rebase to develop/main
Rich Brown
	Update getstats.sh
Chas-IOT
	fix use of argparse and align documentation (#133)
	re-organise setup script - incorporated most changes by @richb-hanover - check directly for CAKE being fully installed - do not abort on unexpected distro name - ask user
	Fix #131 - crash when environment variable not set (#132)
	documentation updates
	fix formatting
	automate enable_verbose_baseline_output
	quieten statistics with new setting - uci: output.suppress_statistics - cli: --suppress-statistics - env: SQMA_SUPPRESS_STATISTICS
	quieten logging
	make setup and service ready for modularisation
	improved language and layout in julia/datavis.html (#72)
	Modularisation stage 2 - settings (#123)
	Modularisation stage 1 - requires and utilities (#122)
	prevent pollution from windows dev environment (#129)
	relicense all code to MPLv2 add contact details for developers
	edit and re-organise the README (#113)
	edit and re-organise the README (#113)
	Fix download locations for move to new organisation
	revision of the docs to align with settings
Copy link
Collaborator

@Fail-Safe Fail-Safe left a comment

Choose a reason for hiding this comment

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

Running for 13+ hours now without any runtime errors. I vote for "ship it!"

@Fail-Safe Fail-Safe added bug Something isn't working enhancement New feature or request labels Feb 2, 2022
@richb-hanover
Copy link
Collaborator

richb-hanover commented Feb 2, 2022

@chas-iot , @Fail-Safe @Lochnair @jeverley

I'm delighted that it's working for you. But you're one of the developers :-)

In #137, I'm advocating that we use as criteria:

  • Install using the procedure available to a "member of the public"
  • Run for 24 hours without surprises.

This minimizes confusion for forum testers who try out the new version. (It would be really confusing to announce 0.5.0, and then have to release 0.5.1 right away because of a silly typo...)

It's your call.

I promise to install the new branch in the next couple hours and will report tomorrow morning, no matter what. Thanks.

@chas-iot
Copy link
Collaborator Author

chas-iot commented Feb 2, 2022

@richb-hanover we are learning and one of the things that we need to achieve is to document how a 'm.o.p.' can install from one of our testing or development branches so that we can improve our processes. Hence my question to you in the discussion thread.

What I'm worried about for this release is less the functional running of the main sqm-autorate.lua and more the installation and initial startup ( now there's a hostage to fortune 🤣 ).

The initial review with @Fail-Safe led to a significant change to the release notes to cover the various ways that sqm-autorate can run.

@richb-hanover
Copy link
Collaborator

What I'm worried about for this release is less the functional running of the main sqm-autorate.lua and more the installation and initial startup ( now there's a hostage to fortune 🤣 ).

OK. I believe it installs and runs OK. Other comments:

  • I think the install script should include a reminder to configure /etc/config/sqm-autorate (It's in the README, but nobody reads the README)

  • Does the ... remove.sh script both stop the sqm-autorate service and abort the running lua process(es)? That might explain why I had two copies of sqm-autorate.lua running earlier today.

  • Do the default settings avoid a problem with filling up /tmp with messages?

  • I tried it on a router with no SQM installed. The error message was good:

root@FrontRoom-WNDR3800:~# sh setup.sh testing/next

This installation script cannot find an instance of the CAKE SQM running on any
network interface. 'sqm-autorate' currently works only with the CAKE SQM
Please install and configure CAKE before attempting to install sqm-autorate

After CAKE is installed and configured, its presence is detected by the
shell command 'tc qdisc | grep -i cake'

Exiting with no change

@chas-iot
Copy link
Collaborator Author

chas-iot commented Feb 3, 2022

This release has had 24 hours of review, has run on at least 3 different routers, and at least 2 for more than 24 hours. While it is not perfect, I believe that it is an improvement.

@chas-iot chas-iot merged commit 0c1b6bc into testing/lua-threads Feb 3, 2022
@chas-iot chas-iot deleted the testing/next branch February 3, 2022 02:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

6 participants