create unified wrapper class for symmetries

class should be initialized with the name of the network to use and the symmetries to average.

Closed by 8abb1b4.


i want change some config on jenkins ,but how can i ssh into the jenkins server

[vagrant@app2 ~]$ ssh<EMAIL_ADDRESS>The authenticity of host '<IP_ADDRESS> (<IP_ADDRESS>)' can't be established.
ECDSA key fingerprint is SHA256:l0KMAvM9/4cHoXoNAqfvDlfblbnGXOBs+jMadFewU9k.
ECDSA key fingerprint is MD5:f7:b2:c8:2b:60:20:01:e3:cb:3b:5f:8e:b7:09:4b:7f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '<IP_ADDRESS>' (ECDSA) to the list of known hosts.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
[vagrant@app2 ~]$ ssh <IP_ADDRESS>
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
[vagrant@app2 ~]$ su
Password:
[root@app2 vagrant]# ls
[root@app2 vagrant]# ls /etc/ss
ssh/ ssl/
[root@app2 vagrant]# ls /etc/ssh/
moduli              ssh_host_ecdsa_key.pub    ssh_host_rsa_key
ssh_config          ssh_host_ed25519_key      ssh_host_rsa_key.pub
ssh_host_ecdsa_key  ssh_host_ed25519_key.pub  sshd_config
[root@app2 vagrant]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service
[root@app2 vagrant]# ssh<EMAIL_ADDRESS>The authenticity of host '<IP_ADDRESS> (<IP_ADDRESS>)' can't be established.
ECDSA key fingerprint is SHA256:l0KMAvM9/4cHoXoNAqfvDlfblbnGXOBs+jMadFewU9k.
ECDSA key fingerprint is MD5:f7:b2:c8:2b:60:20:01:e3:cb:3b:5f:8e:b7:09:4b:7f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '<IP_ADDRESS>' (ECDSA) to the list of known hosts.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

Hi! Try this in vagrant-alm directory:
vagrant ssh jenkins


response-code is set as INTERNAL_SERVER_ERROR in catch block for all services

In Controller/[filename].js , there is a catch block that catches if there is any exception thrown in any internal flow of the services.
In all services, the catch block is commonly made the response-code as "INTERNAL_SERVER_ERROR" which would give 500 response code irrespective of the error. The error may be because of wrong input or something not supported or internal-server-error.
})
.catch(async function (responseBody) {
responseBodyToDocument = responseBody;
responseCode = responseCodeEnum.code.INTERNAL_SERVER_ERROR;
let responseHeader = await restResponseHeader.createResponseHeader(xCorrelator, startTime, req.url);
restResponseBuilder.buildResponse(res, responseCode, responseBody, responseHeader);
});
proposal:
We need to analyze possible response codes for all services (both in AP and in all individual applications) and update the response block for error condition.

Controller part is resolved in https://github.com/openBackhaul/ApplicationLayerTopology/pull/380
After it is merged then errors from http-errors lib can be thrown from service layer where needed.


Bump rhysd/actionlint

Dependabot

references to Docker container actions using docker:// syntax aren't supported.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>4
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 0.0%

Totals

Change from base Build<PHONE_NUMBER>8:
0.0%

Covered Lines:
0

Relevant Lines:
6

💛  - Coveralls


Update deep-insights.js

Update package version. BTW, there are changes in CartoDB.js, be careful with them.

I did it! And I asked Pablo for them :)

Perfect 🇪🇪 , let's try in staging then man! 💋


dependencies updates

Play
play-ahc-ws
play-cache
play-guice
play-json
play-logback
play-netty-server
play-omnidoc:docs
play-server
play-test
play-test:test
play-ws
twirl-api

Test and Verified
Checked with Install and Upgrade working environments.
Close & Moving to Done


Prepare for v1.4.0 release

Final check of docs, examples, pinout tool and man page.
Docs here: http://gpiozero.readthedocs.io/en/pinout-man/

Codecov Report

Merging #577 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #577   +/-   ##
=======================================
  Coverage   84.75%   84.75%
=======================================
  Files          36       36
  Lines        6683     6683
=======================================
  Hits         5664     5664
  Misses       1019     1019

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 220da28...22fb913. Read the comment docs.

Any thoughts on the new advanced/remote recipes? Any more suggestions to add?

@waveform80 Does Debian's changelog get auto-generated? If not, it'll need this bit adding.

No - I generate it as part of the release. If you look at the "release" target in the Makefile you'll see some dch stuff in there which is what auto-generates the template of the new changelog section (which ensures the timestamp is reasonably accurate and that the maintainer is correct and so on). Hence, when I run make release it fires up an editor at which point I do a little vim magic to copy over the latest chunk of the changelog.rst and strip out the ReST formatting. That in turn then enables the make upload target to accurately build the packages with the right version.

Any thoughts on the new advanced/remote recipes? Any more suggestions to add?

They look great! Can't think of much else to add right now, but I'll see if I can come up with anything today when I'm testing.

Ok cool thanks!

@waveform80 some hard-coded links to docs pages in README link to /latest/ branch. Should they be /stable/?

Oh yeah, they probably should - good point.

It looks like there's a missing dependency in the "Building the docs" section of development docs (how meta): I think it's the sphinx-common package.

Ok - ready for release, besides any small tweaks @waveform80 wants to make.

:ship: ship it


How can I use the cloud service, but I can't find where to match the key

thanks

You probably have to create your own OkHttp client and use interceptors to add headers for the cloud service. I don't know the cloud service. The client does not support it.


IWW Issue #59, July 20th 🔧 2021

This pull request is for gathering links for the July 20th issue of the Immersive Web Weekly newsletter for the W3C Immersive Web Community Group.
If you have a link to a news article, event, artwork, or project that is directly related to the immersive web then we welcome your help!
To submit a link comment below using this template:
title: Example title of link
url: https://example.com/
author: Alice Smith
content: A short description of what is at the link and why it's related to the immersive web

Please keep in mind that comments here and all submitted links are public!
We keep each issue pretty short so we won't immediately use every submission but we keep track of them all and they may appear in a later issue.
Deadline
IWW goes out each Tuesday morning around 10am Pacific time.
Trevor will edit each issue on the Monday before publication so submissions after that will roll over for use in future issues.
If you need editorial support then email @TrevorFSmith<EMAIL_ADDRESS>

title: Wonderland Engine 0.8.6 released
url: https://wonderlandengine.com/news/release-0.8.6/
author: Jonathan Hale
content: Wonderland Engine 0.8.6 brings improved FBX file import and a lot of stability, even more performance and workflow improvements.

Thank you for maintaining the newsletter, Trevor!


RFileScanner's IteratorEnvironment throws UnsupportedOperationException for getConfig() and getServiceEnv()

Describe the bug
When attaching an iterator to an RFileScanner which uses either the iterator environments config or ServiceEnvironment, the iterators will throw UnsupportedOperationExceptions
Versions (OS, Maven, Java, and others, as appropriate):
Accumulo 2.x
To Reproduce
Steps to reproduce the behavior (or a link to an example repository that reproduces the problem):

Create an RFileScanner
Attach an Iterator which in the init method calls env.getConfig() or env.getServiceEnv()

Expected behavior
The config for the RFileScanner should be built from any table properties passed into the builder's withTableProperties() method. These properties can also be returned for any env.getServiceEnv().getConfiguration() or env.getServiceEnv().getConfiguration(TableId) methods.

These methods have both been deprecated (getConfig() since 2.0.0 and getServiceEnv() since 2.1.0) and replaced with getPluginEnv() (since 2.1.0).
The equivalent to
getServiceEnv()
would now be
getPluginEnv()
and the equivalent to
env.getConfig()
would now be
env.getPluginEnv().getConfiguration(env.getTableId())
Hope this helps!

@kevinrr888 are you saying that using the replacement APIs fixes the issue, or are you just adding extra context to whoever works on fixing the bug?

@kevinrr888 using getPluginEnv() under the covers calls getServiceEnv(), leading to the same UnsupportedOperationException. The issue is the RFileScanner uses an IteratorEnvironment implementation which implements none of these methods.

@FineAndDandy
Yes, you are right
I saw that getPluginEnv() just called getServiceEnv() but tested (or so I thought) the RFileScanner and it was working for getPluginEnv() and getServiceEnv(). I assumed the IteratorEnvironment used for RFileScanner had these methods implemented. Upon looking and testing again, I see the same problem as you.
Looking into this and potentially more issues with IteratorEnvironment and its implemenations...
@ctubbsii
I thought this replacement fixed the issue, but now see that this is not the case

@FineAndDandy - The issue with OfflineIteratorEnvironment should be fixed in the latest release - 2.1.3 (which was very recently released). Are you on an earlier version?

https://github.com/apache/accumulo/pull/4283 Related code changes are here.


undo/redo buttons on textarea

When loading examples, it would be nice to be able to go back to the previous input. Two undo/redo buttons that keep track of the stack and allow going back and forth would work.
https://github.com/ArthurClemens/Javascript-Undo-Manager looks fine for that.

This seems overkill for now


I noticed that you have changed the project wiki

I noticed that you have changed the project wiki,could you please show the old project wiki about the data prepare and the options,thank you very much!!

I have put data preparation in https://github.com/xinntao/BasicSR/tree/master/codes/data. OR https://github.com/xinntao/BasicSR/tree/0.4/codes/data for pytorch 0.4.


Added keyvault make recipes

Created the KV secret AZURE_CREDENTIALS and INFRASTRUCTURE for tra-trn-generation-api
Updated the Makefile with azure_key_vault recipes to print, read, create and edit keyvault secret.
Created a bin director to fectch_config.rb to create a secret via make recipe.
Created a terraform directory with workspace_variables to fetch secrets, etc.

I got this error:
% make dev print-keyvault-secret                                                                                make: Nothing to be done for `dev'.
[ ! -f bin/fetch_config.rb ] \
		&& curl -s https://raw.githubusercontent.com/DFE-Digital/bat-platform-building-blocks/master/scripts/fetch_config/fetch_config.rb -o bin/fetch_config.rb \
		&& chmod +x bin/fetch_config.rb \
		|| true
echo "Logging on to s165-teachingqualificationsservice-development"
Logging on to s165-teachingqualificationsservice-development
az account set -s s165-teachingqualificationsservice-development
bin/fetch_config.rb -s azure-key-vault-secret:s165d01-trngen-dv-kv/INFRASTRUCTURE -f yaml
make: bin/fetch_config.rb: No such file or directory
make: *** [print-keyvault-secret] Error 1

 Add secrets to 🔑 vault


Update covalent_to_db to use MontyStore

That way we aren't reuploading frequently to MongoDB given that there is an SQLite file on-disk.

See https://github.com/materialsproject/maggma/issues/796


Add UUIDv1, v4, v6 support

Adding the other supported types incase someone else wants to use them in lieu of the UUIDv8 uProtocol defined type

Not needed lets close this


Visual Studio 17rc C++ issue

please check the VS 17. There is a some problems (with sqrt for example) when building this project. But there are already available C++11|14 constexpr futures. https://www.visualstudio.com/vs/visual-studio-2017-rc/ some functions work. some, like sqrt -- not = (

I'll try to have a look later, but this project was never meant to work with MSVC. I guess that the most recent versions do have a more decent constexpr support than the previous ones, and maybe it wuld be possible to make this library work with them.
That said, unless somebody wants to take the job, I'd have to learn everything about MSVC (never used it), and to set up an AppVeyor for continuous integration (never done that either).

So: I installed the MSVC build tools, the 2015 ones though since the MSVC 2017 build tools aren't available. I hope they'll be available soon because the 2015 compiler support seems way beyond broken with the library, at least for the following things:

Variadic templates (pack expansions sometimes don't work)
constexpr
Lack of alternate keywords of <ciso646> by default (I know that's by design, and this can be easily fixed by including the header)
More than trivial expressions in non-type template parameters
I'm not sure whether I've got expression SFINAE problems or not

Long story short, I won't make an effort for MSVC 2015. I'll see how things have improved with MSVC 2017 when I've got time (it seems that the build tools are not available alone, so installing the whole thing might take some time). I believe that the constexpr support is better, and the variadics may have been partially fixed.

I have started a branch to make the library work with the latest VS 2017. Things mostly work, but I had to disable the support for integral constants (smath::constant) because there were still a few unresolved issues with them.
I need to fix some warnings too, but it seems that most of the functions just work.

I merged the branch with integral constants disabled. I don't work much on this library, so at least we've now got some basic support for the latest Visual Sutio versions.


migration to uv

Type: Refactor
Description
Switching from poetry to uv, exporting reqs.txt and importing to uv
Verification
Testing package installs and setting environment, etc. Checking performance of uv against poetry with time benchmarks.

Bounty went to #32530


[CELEBORN-210][HELM] Add recommended labels in celeborn chart

What changes were proposed in this pull request?
Add recommend labels
Why are the changes needed?
The changes are needed to be compliant with official Kubernetes and Helm recommendations:

https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/
https://helm.sh/docs/chart_best_practices/labels/#standard-labels

Does this PR introduce any user-facing change?
How was this patch tested?
Helm install on Minikube

cc @pan3793 could you please review this pr?

Thanks, merged to main for 0.3.0


Customize the output filename of the main .wasm file

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when I upload a new SSG version of my site to cloudflare but the caching is still getting messed up..
Describe the solution you'd like
is there some way to customize the output filename of the .wasm file
in this case I'd like to just add a randomized guid query param to ensure no caching per version

Describe alternatives you've considered
I tried messing with cloudflare & adding script tags inside my main.rs file, but it just doubles up
Otherwise I get a .wasm mixup in production:

Not a lot of details here about what kind of build process you're using. cargo-leptos supports hashing the file names -- are you using that hash-files option?

you're amazing thank you!
got it working btw after shifting things around from the actix starter like moving the stylesheet to here and using the HashedStylesheet I found after digger deeper instead
ps if there's some way i can help lmk this project is super interesting !


Would you please add licensing information?

thank you!

FYI, beautiful library but without licensing information, we may not use it :/

License added thanks

oh, thank you very much,..


Builds failing on Linux/ppc64le build machines due to disk space being exceeded

e.g. from https://ci.adoptopenjdk.net/job/build-scripts/job/jobs/job/jdk11u/job/jdk11u-linux-ppc64le-openj9/265/console
Running on build-osuosl-centos74-ppc64le-2 in /home/jenkins/workspace/build-scripts/jobs/jdk11u/jdk11u-linux-ppc64le-openj9
[Pipeline] {
[Pipeline] stage
[Pipeline] { (build)
[Pipeline] checkout
No credentials specified
Fetching changes from the remote Git repository
ERROR: Error fetching remote repo 'origin'
hudson.plugins.git.GitException: Failed to fetch from https://github.com/AdoptOpenJDK/openjdk-build.git
	at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:904)
	at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1144)
	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1175)
	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:124)
	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:93)
	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:80)

We might be able to get a big machine on softlayer and chop it up to add some more ppc64le machines.

@gdams Do softlayer have ppc64le?

build-osuosl-centos74-ppc64le-2 upgraded to 400Gb now, -1 will be upgraded hopefully later today

Both at 400Gb - closing.


[CT-2843] Add Partial Parsing tests for Semantic Models

Context
SemanticModels are currently supported by partial parsing. However, we have no tests for this functionality. We do have a file for those tests, test_pp_semantic_models.py, but it's currently empty.
Acceptance Criteria

Tests exists in test_pp_semantic_models.py that reasonably test the partial parsing functionality of SemanticModels

I plan on finishing this off once I get back on 08/14/2023

So when I created this I missed that there were partial parsing tests in tests/functional/semantic_models/tests_semantic_model_parsing.py. In #8310 we added some additional partial parsing tests. Semantic models seem like they're in a pretty good state now 🤞


CVE - css-tools: Improper Input Validation causes Denial of Service via Regular Expression

Bz: https://bugzilla.redhat.com/show_bug.cgi?id=2250367
Ref: https://github.com/testing-library/jest-dom/pull/553

I can run tests, But VScode is giving issues, but it is not affecting the runtime.

/approve
/lgtm

/cherry-pick release-4.17-compatibility


Custom names for enums

Allow enums in meta values to be resolved by custom field instead of names. It could be done, by introducing an interface with one field and inheriting enums from those interfaces.

Probably won't fix. It requires too heavy-weight changes to the API. IT is better to provide a custom delegate for a specific enum subtype, so it would use StringValue instead of EnumValue.


Documentation for Jupyter extension context keys

VS Code documents some of its when clauses https://code.visualstudio.com/api/references/when-clause-contexts#available-contexts
We don't have any of this documented, which makes it challenging for users to customize keybindings, e.g. https://github.com/microsoft/vscode-jupyter/issues/6541#issuecomment-875734852

Hmm, not sure where to put them. Maybe a link in the readme and then on the wiki?


native~/Runtime/generated-Android sometimes is not generated during builds

It's unclear why, but in some clean builds the generated C++ code in native~/Runtime/generated-Android is missing. If I then manually modify some C# code like com.cesium.unity/Runtime/CesiumFeatures.cs, and then return to Unity and again build for Android, the codegen executes for native~/Runtime/generated-Android.

That's a good example of when this can happen, yes. We are exploring ways of integrating Cesium where we can keep the project in a ready-to-open state (without having to build with cmake) while also being able to develop in Cesium code. I think for now we may just commit the native~/Runtime/generated-* code.

Unfortunately we probably can't do anything about that particular scenario. Our code generator runs inside the C# compiler, so if Unity doesn't feel the need to invoke the C# compiler, there's no way for our generator to run. I don't think it should generally be necessary to commit native~/Runtime/generated-* to avoid this, though, unless you are also committing the project's Library directory (which is where the C# compiler output is stored).

@kring,hello
Error packaging Android in Windows,The command executed is  “dotnet run --project Build~”.May I ask how to handle it?
Android SDK/NDK installed through UnityHub,unity version is 2021.3.21f1c1.
[ 87%] Built target jpeg-static
[ 87%] Built target turbojpeg-static
[ 87%] Building C object CMakeFiles/cjpeg-static.dir/cjpeg.c.o
[ 88%] Building C object CMakeFiles/djpeg-static.dir/djpeg.c.o
[ 88%] Building C object CMakeFiles/cjpeg-static.dir/cdjpeg.c.o
[ 88%] Building C object CMakeFiles/djpeg-static.dir/cdjpeg.c.o
[ 89%] Building C object CMakeFiles/cjpeg-static.dir/rdbmp.c.o
[ 89%] Building C object CMakeFiles/djpeg-static.dir/rdcolmap.c.o
[ 90%] Building C object CMakeFiles/cjpeg-static.dir/rdgif.c.o
[ 90%] Building C object CMakeFiles/example-static.dir/example.c.o
[ 91%] Building C object CMakeFiles/djpeg-static.dir/rdswitch.c.o
[ 91%] Building C object CMakeFiles/jpegtran-static.dir/jpegtran.c.o
[ 91%] Building C object CMakeFiles/cjpeg-static.dir/rdppm.c.o
[ 91%] Building C object CMakeFiles/jpegtran-static.dir/cdjpeg.c.o
[ 91%] Building C object CMakeFiles/djpeg-static.dir/wrbmp.c.o
[ 92%] Building C object CMakeFiles/cjpeg-static.dir/rdswitch.c.o
[ 93%] Building C object CMakeFiles/djpeg-static.dir/wrgif.c.o
[ 93%] Building C object CMakeFiles/tjbench-static.dir/tjbench.c.o
[ 94%] Building C object CMakeFiles/jpegtran-static.dir/rdswitch.c.o
[ 94%] Building C object CMakeFiles/cjpeg-static.dir/rdtarga.c.o
[ 94%] Building C object CMakeFiles/djpeg-static.dir/wrppm.c.o
[ 94%] Building C object CMakeFiles/tjunittest-static.dir/tjunittest.c.o
[ 94%] Building C object CMakeFiles/jpegtran-static.dir/transupp.c.o
[ 95%] Building C object CMakeFiles/tjbench-static.dir/tjutil.c.o
[ 96%] Building C object CMakeFiles/tjunittest-static.dir/tjutil.c.o
[ 96%] Building C object CMakeFiles/djpeg-static.dir/wrtarga.c.o
[ 96%] Building C object CMakeFiles/tjunittest-static.dir/md5/md5.c.o
[ 97%] Building C object CMakeFiles/tjunittest-static.dir/md5/md5hl.c.o
[ 97%] Linking C executable example-static
[ 97%] Built target example-static
[ 98%] Linking C executable djpeg-static
[ 99%] Linking C executable cjpeg-static
[ 99%] Built target djpeg-static
[ 99%] Built target cjpeg-static
[ 99%] Linking C executable tjbench-static
[ 99%] Linking C executable tjunittest-static
[ 99%] Built target tjbench-static
[ 99%] Built target tjunittest-static
[100%] Linking C executable jpegtran-static
[100%] Built target jpegtran-static
Install the project...
-- Install configuration: "RelWithDebInfo"
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/lib/libturbojpeg.a
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/bin/tjbench
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/include/turbojpeg.h
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/lib/libjpeg.a
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/bin/cjpeg
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/bin/djpeg
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/bin/jpegtran
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/bin/rdjpgcom
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/bin/wrjpgcom
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/share/doc/libjpeg-turbo/README.ijg
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/share/doc/libjpeg-turbo/README.md
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/share/doc/libjpeg-turbo/example.c
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/share/doc/libjpeg-turbo/tjexample.c
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/share/doc/libjpeg-turbo/libjpeg.txt
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/share/doc/libjpeg-turbo/structure.txt
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/share/doc/libjpeg-turbo/usage.txt
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/share/doc/libjpeg-turbo/wizard.txt
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/share/doc/libjpeg-turbo/LICENSE.md
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/share/man/man1/cjpeg.1
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/share/man/man1/djpeg.1
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/share/man/man1/jpegtran.1
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/share/man/man1/rdjpgcom.1
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/share/man/man1/wrjpgcom.1
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/lib/pkgconfig/libjpeg.pc
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/lib/pkgconfig/libturbojpeg.pc
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/lib/cmake/libjpeg-turbo/libjpeg-turboConfig.cmake
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/lib/cmake/libjpeg-turbo/libjpeg-turboConfigVersion.cmake
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/lib/cmake/libjpeg-turbo/libjpeg-turboTargets.cmake
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/lib/cmake/libjpeg-turbo/libjpeg-turboTargets-relwithdebinfo.cmake
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/include/jconfig.h
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/include/jerror.h
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/include/jmorecfg.h
-- Installing: C:/cesium/CesiumForUnityBuildProject/Packages/com.cesium.unity/native~/build-Android-x86_64/extern/cesium-native/extern/libjpeg-turbo/include/jpeglib.h
[ 30%] No install step for 'libjpeg-turbo'
[ 30%] Completed 'libjpeg-turbo'
[ 30%] Built target libjpeg-turbo
[ 32%] Linking C static library libsqlite3.a
[ 32%] Built target sqlite3
[ 32%] Linking CXX static library libktx_read.a
[ 32%] Built target ktx_read
make.exe: *** [Makefile:156: all] Error 2


RandNumberCommand

Pull request

[x] I have read and agreed to the code of conduct.
[x] I have read and complied with the contributing guidelines.
[x] What I'm implementing was assigned to me or was not being worked on and is a somewhat requested feature. For reference see our GitHub projects.
[x] I have tested all of my changes.

Added/Changed
What did you add and/or change for this.

Added an random command

Feature
If this is a new feature, why should we add it to the bot.

It is on the roadmap!

jenkins approve

All of the requested changes will go through today, thanks for all the advice

Implemented your advice @binaryoverload

All advicing is implemented

Done

Now it is

Done

Implemented

Implemented, and again works


PB-511: Django request context in logs - #minor

Add django request context to logs by filter configuration and middleware. Middleware adds the filter with the current request to the log handlers. Any logs will have the request information also added to the log record.

Could you verify if the filter approach is working in a multithread environment ? As discussed yesterday the logging loggers instance and filters are globals and it might be an issue with mutlithread environement.

I could verify that this approach does not work in a multithreaded environment.
I will close this PR and open a new one with another approach of using thread variables.


port Python::run to Bound API

Part of #3684, split from #3716 and followup to #3806
This converts to the Python::run function to the new API. For easier reviewing this focuses purely on run/run_bound and leaves the PyDict methods for followup PRs.
This also changes the py_run macro in a way, which allows it to consume both (gil-ref and Bound) APIs. So there is no need to introduce a py_run_bound.

Fixed the conflict

I guess this basically makes the rest of #3716 ready to throw away that this point? It's now got substantial diff which will never be merged.

If you prefer to close that one and merge the PyDict changes in a different PR (or multiple if needed) I can continue with that and prepare them.

If you prefer to close that one and merge the PyDict changes in a different PR (or multiple if needed) I can continue with that and prepare them.

👍 let's do that, thank you for taking that one over and doing a much better job of it than I did!


Implement high performance interface

The simple numpy-style interface (#6) will by default hide some of FFTW's features, opting for simplicity and default settings for decent performance. We will also implement a high performance interface to access functions like

Choosing FFTW_MEASURE, FFTW_PATIENT, or FFTW_EXHAUSTIVE planner flags (instead of the default FFTW_ESTIMATE);
Reusing plans and wisdom;
Using fftw_malloc to guarantee optimal memory alignment;
FFTW_PRESERVE_INPUT vs FFTW_DESTROY_INPUT, the latter can sometimes be faster.

When implementing this, keep in mind that many FFTW functions destroy input and/or output arrays! E.g. FFTW_MEASURE destroys both during measurement, c2r functions always destroy input by default (unless for 1D transforms if you pass FFTW_PRESERVE_INPUT, etc. More info: http://www.fftw.org/fftw3_doc/Complex-One_002dDimensional-DFTs.html#Complex-One_002dDimensional-DFTs

@cuber12 yes, in time, for sure. I'm using multithreaded FFTW in barcode. My plan is to migrate that code to xtensor and use xtensor-fftw for FFTW. At that point, I will have to optimize xtensor-fftw. However, in the mean time, if you already need it now, please feel free to make a PR for it. FFTW is not difficult to use in multithreaded mode. I just didn't think about how to integrate that into xtensor-fftw nicely. If you have ideas on that, I'd also love to hear them. Preferably start a separate issue for that.


130 int availability

https://justice.gov.bc.ca/jira/browse/CSBISS-130

@jerryfreshworks I don't but I think OCP is back up so let's see


add [no LineTerminator here]?

Do we need this? I don't think adding a line break inside await operation is good, they should be treated as a union.
await
.
all (expr)

Yes, I do think we need that.

🤔 Or... is it possible/acceptable to specify grammar as \await.all UnaryExpression, which means no space or comments are allowed inside await.all?
await . all
// syntax error
await.all
// ok

Compared to OP's proposed solution, the recent upgrade https://github.com/tc39/proposal-await.ops/commit/ecc9546ac1e552c6df41cbafd2abe8d5529d9334 also added NLTH after await.ops:
await.all [NLTH] UnaryExpression

Is that intentional? Since NLTH is not required after await though. I will expect await-ops expression aligns with the await expression, unless we have distinct ASI issue.

maybe I should remove that to match new.target?

maybe I should remove that to match new.target?

I agree. I think generally we should introduce NLTH only if there is ASI issue involved. If not better just allow it.


Cleaning up config file.

Changes for #5

rouge is an option but for now I'm just going to have this theme stick with the default syntax highlighter.

Okays =D
Just fyi, "Rouge is the default highlighter in Jekyll 3 and above." (http://jekyllrb.com/docs/templates/).

Sorry, I meant the default highlighter recommended for github-pages (https://pages.github.com/versions/).


Security exception

I get the following exception when testing the library:
An exception of type 'System.Security.VerificationException' occurred in Veil.dll but was not handled in user code

The code can be found on the branch [veil_handlebar] (https://github.com/wallymathieu/isop/tree/veil_handlebar)
and a sample failing build on appveyor
   at _DynamicMethod1(TextWriter , MissingArgument )
   at _DynamicMethod1(TextWriter , Object , Object )
   at Veil.VeilEngine.<>c__DisplayClass1.<CompileNonGeneric>b__0(TextWriter w, Object m) in c:\Projects\Veil\Src\Veil\VeilEngine.cs:line 74
   at CallSite.Target(Closure , CallSite , Action`2 , StreamWriter , Object )
   at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid3[T0,T1,T2](CallSite site, T0 arg0, T1 arg1, T2 arg2)
   at Nancy.ViewEngines.Veil.VeilViewEngine.<>c__DisplayClassa.<RenderView>b__9(Stream s) in c:\Projects\Veil\Src\Nancy.ViewEngines.Veil\VeilViewEngine.cs:line 51
   at Nancy.Responses.MaterialisingResponse.PreExecute(NancyContext context)

I need to properly publish my latest changes to Veil. It will be interesting to see if they make a change here. I moved from direct IL generation to using System.Linq.Expressions - so the framework will be handling more edge cases for me.
I'll make some time soon to do that, the code is all done, there was just something odd happening with the build that I did not debug yet.

Looks like a more recent version of Veil solves this problem (a veil fork on myget). Should we close this?

Okay great.
We can close and once I sort out the build issue I am having with the latest version I can publish it.


Video integration bugfixes

Jira

http://vjira2:8080/browse/BDS-1339

Summary
This fixes video issues in IE11 reported by @remydenton while integrating 2.3.1 with Drupal.
IMPORTANT
What branch this will be merged into? It is currently set to master but is branched off of the v2.3.2 tag.
Details
Overview

Cherry-pick Symbol polyfill hotfix
Rework Video component JS to prevent bugs that result from videos initializing multiple times

Comments
@remydenton reported a bug where, in IE11 on a page with multiple instances of the same video with email plugin enabled, only the last video got the email plugin. See a demo.
I couldn't reproduce this in Pattern Lab, and I tried really hard. I could, however, reproduce it in Drupal locally. My best guess is that there's a race condition, surfaced by the environmental differences, that causes it to break in Drupal and not Pattern Lab.
I applied some of the Video implementation changes from the "Convert Video to Web Component" branch, where I faced similar bug, and that fixed the plugin issue for me locally in Drupal.
Implementation details
Brightcove changed their best practices for referencing a video player and for delayed player instantiation around v6.12 - v6.18. Our implementation needed to be updated to adhere to the new standards to avoid the confusing initialization issues mentioned in BC's release notes (see 6.18.3).
Since the code change on Brightcove's side, many of our videos worked fine, but we've been plagued by intermittent bugs, especially around plugins. These updates should fix that.
The key changes are:

Don't include data-account, data-player, or data-video-id attributes on first render of the <video-js> element or videos will auto-initialize. Add them on rendered() just before calling bc(). (code)
Check if video has already initialized before calling bc() to prevent re-initializing the video on re-render when attributes are added. (code)
Don't use data-setup. It's a Video.js prop that will confuse Brightcove. Instead pass those configuration options to the Brightcove function itself. (code)
Use <video-js> not <video>, new best practice from Brightcove to avoid flash of native video controls. (code)
Reference video player with videojs.getPlayer(id) not videojs(id). The latter can cause Video.js to initialize. (code)

How to test
Waiting for built to finish. Links are to master for now.

Review the files changed.
Test all videos in Chrome, IE11 and Edge.
Make sure if the video is supposed to have a plugin, that plugin appears.
Check the social share overlay, especially on:

Custom Share
Default Plugins
Disabled Plugins
Enabled Plugins
External Plugins Script

I noticed that the speed controls aren’t showing up on iOS like they are on master

@sghoweri I'm glad you noticed this. Makes me feel better you are testing so thoroughly!
The good news is: this is a feature added to master in April that is indeed missing from 2.3. So, it's expected.

Overall, looks great!  Just a few questions that I'm planning to follow up with @danielamorse about in a call:

How do we clean up the js that's currently on the Drupal side to take advantage of the better initialization handling from this PR?
On a related note, I see this js on the Drupal side that seems like it would be worth moving to Bolt (not necessarily as part of this PR, but if so we can create a ticket while we're on the subject).

if (videojs.browser.IE_VERSION){
  //get method for selected playback rate value
  function getPlayBackRate(){
    rateEl = pegaPlayer.el_.getElementsByClassName('vjs-playback-rate-value')[0];
    rateValue = rateEl.innerText.substr( 0, rateEl.innerText.length-1 );
    return rateValue;
  }
  //get playback value when paused
  pegaPlayer.on('pause', function(){
    rateValue = getPlayBackRate();
  });
  pegaPlayer.on('ratechange',function(){
    //get new playback rate if the player is paused
    if(pegaPlayer.paused()){
      rateValue = getPlayBackRate();
    }
  })
  //set backuped playback rate when playback starts
  pegaPlayer.on('play', function(){
    pegaPlayer.playbackRate(rateValue);
  });
}

@danielamorse can you take care of the merge conflicts? We should be on track to release this first thing tomorrow!


standardize event tracking

The CA Web properties have some custom event tracking implemented in this file: https://github.com/CA-CODE-Works/CAWeb/blob/920640687036df13f643f0613ff3de78f72ec106/assets/js/caweb/AutoTracker.js
Which records event activity in GA:

Need to consult with @traintestbritt to see if we should mimic this pattern when implementing our event tracking on drought, headless cannabis and on other design system sample sites.

I think it's safe for us to keep building on the approach our team has created. I think our approach to creating a category that captures all kinds of clicks rather than having each kind of click be its own category is a better practice.

Thanks for the guidance @traintestbritt
Reassigning ticket to me for implementation

Discussion about event tracking where @traintestbritt posted a training video showing some of this data https://cadotgov.slack.com/archives/C01N25FCCPN/p1631919854012900
We will have a data schism if we change event attribute patterns on headless.
Also should see if the urls of downloadable files match since they are currently relative in the report based on monolith traffic but aren't yet at the same urls on headless (could manage with redirects or change where files are stored by publishing system)

URLs of downloadable files in headless have been modified to match wordpress locations

I am not sure I completely understand what's going on, but it seems you spotted and opportunity to clean up our data collection and acted on it without being asked. Thank you for doing so Aaron, you're awesome!

Thanks for going over the implications of this change with us @britt-allen!
We will be closing this ticket when we merge the related scroll tracking PR here: https://github.com/cagov/cannabis.ca.gov/pull/393
We can quickly make any event tracking changes requested in separate tickets. We will work on the event logic encapsulation as a reusable component as you recommended. This will be really useful to consolidate code already used on drought, cannabis and covid19 so we can iterate on it in one place: https://github.com/cagov/design-system/issues/108


Can't deal with the Remote files

Just like this issue https://github.com/ekalinin/github-markdown-toc.go/issues/13#issue-223321125,it can't deal with the remote files.
For example,(the sample code in README.md)
$ ./gh-md-toc https://github.com/ekalinin/envirius/blob/master/README.md

Table of Contents
=================

Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc.go)

My environment:
$ git --version
git version 2.21.0.windows.1

$ ./gh-md-toc --version
1.0.0

Hey,
Thanks for the report.
I have the same issue. As a workaround please, try this command (raw md, not html):
➜ ./gh-md-toc https://raw.githubusercontent.com/ekalinin/envirius/master/README.md
...

Thanks, it works.
Maybe it's a good idea to add this way to the README.


There should be "motors" that are actually lmfit Models

Transposing a one-sided gchat conversation with @tacaswell that he probably hasn't actually seen yet:
There should be set-able, readable objects that wrap lmfit Models. On 'set' they can be passed x and y data; on 'read' they can return a dict of best-fit values. The scan can use these values to decide which x points to sample next.
Center already does this in its way. But by putting Model in a motor-like object, you can easy integration with subscriptions. Like so:
def scan(motor, det, model)
    model = ModelObject(model)  # ModelObject can read and set
    Msg('subscribe', None, LiveModelPlot(x='motor', y='det', model=model)
    ret_mot = Msg('read', motor)
    ret_det = Msg('read', det)
    x = ret_mot['motor']['values']
    y = ret_det['det']['values']
    Msg('set', model, {'x': x, 'y': y})
    best_fit = Msg('read', model)
    Msg('set', motor, best_fit['center'])

When an Event is generated, LiveModelPlot can update the x and y data points and redraw a smooth best-fit curve, sampled more densely in x than the data itself.
Since the Model and its best fit results are driving the scan, best_fit is Level 0 data that belongs in metadatastore. If that sounds like a stretch, consider that some Models and fitting procedures incorporate randomness that would be impossible to replicate after the scan unless output from the fitting were captured as data.

What I described above can be done more cleanly with subscriptions or by directly putting lmfit code in the plan. No need to route computations through a pseudomotor. Closing.


A default example async websocket server with compression enabled seems to leak memory

Version: 300 with boost 1.74
Compiler: GCC 9.3.0 on ubuntu
Running environment: 5.8.14-zen1-1-zen, arch
I modified the sample code, adding
boost::beast::websocket::permessage_deflate opt;
opt.server_enable = true;

ws_.set_option(opt);

A full paste is available here: https://pastebin.com/ETWZ6kdN
Then I spawn <30k simultaneous connections to the server using a driver program, which also has compression enabled, and uses binary mode. Each connection writes one message of ~200 bytes, and gracefully handles whatever response it gets. Connections are then forcefully terminated en masse (aka i just exit the program while its still running)
The observed behaviour is that the memory usage of the server climbs without bound, well past 4GB. When the connections are cancelled, this memory is not recovered, although sometimes some portion of it is (eg 3GB might drop to 1.5GB).  When compression is disabled, this doesn't happen
I'm also not able to reproduce this issue on windows 10 in any form, which correctly seems to recover all the available memory. I'm also not unconvinced that this issue doesn't reproduce when compression is not enabled, but the memory allocation in that case would simply be minimal making it hard to notice
Valgrind reports that all memory is still reachable
==26494== LEAK SUMMARY:
==26494==    definitely lost: 0 bytes in 0 blocks
==26494==    indirectly lost: 0 bytes in 0 blocks
==26494==      possibly lost: 441 bytes in 3 blocks
==26494==    still reachable: 1,349,394 bytes in 6,609 blocks
==26494==         suppressed: 0 bytes in 0 blocks
==26494==
==26494== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
Thanks!

Is this with a debug build or release?

The valgrind log was without optimisations, but this issue is present both in debug and release (-O2) builds. I should probably also note that the windows version which doesn't leak is compiled with GCC 10.2

Interesting. We have almost no platform-specific code in Beast. Most os the platform specific stuff is in Asio.
@chriskohlhoff any immediate thoughts before I investigate?

I am very skeptical.... there are no leaks in Beast.

I can understand that, I spent all two days chasing down potential memory leaks in my application before I was able to consistently reproduce this with the sample code + compression being enabled. If you want any more information or investigating power I'm happy to help - I'd be pretty happy if it turned out that I simply messed something up - but I've ruled out everything I can think of on my end (triple checked the library version at runtime) except for some sort of system misconfiguration (or asio itself). The only unusual thing on the system is that its running the zen kernel, and it has a relatively old cpu (i5 750), but other than that I'm completely out of ideas on why the memory isn't being released

do you have the test client available? I'd like to see if I can reproduce.

The test client is a giant mess, so I've knocked together a simple client that can reproduce this
https://pastebin.com/grHmqHZX

I did some further investigating: The leak does not occur if connections occur sequentially (start -> write -> shutdown; start -> write -> shutdown), no matter how they're shut down (abort vs graceful shutdown). The leak only occurs if there are a large number of active connections simultaneously, and then it does not matter how they are shut down. I'm also in the cpplang slack if you're investigating and want to share notes!

I'm in the #beast channel whenever I'm at my desk - which is most of the day in most time zones

So: Long story short, this looks essentially like some kind of measurement error with top reporting incorrect memory usage, compared to valgrind and massif's output. Some way to flush the write buffer of a socket to reduce memory usage while there are a large number of concurrent connections when compression is enabled would be helpful, but this looks like a non bug essentially


Feature request: minimal priorization framework

Thanks a lot for this plugin, it is very useful and visually appealing!
What about sorting tasks based on some sort of scoring? There are a lot of task-management scores, but something very minimal and domain-agnostic would be a game changer.
You could use two elements: tags (already implemented), and the estimated time to complete a task (not implemented).
I personally use something very easy. With two tags, urgent (u), important (i), and time to completion (t) in hours, the score s is defined as:
s = 1/t(2u+4i)

This is basically the Eisenhower matrix, weighted by time. It translates as: do what is the fastest to do first (eat the frog), and do what's important+urgent, then important, then urgent, first.
u and i being 0 or 1 based on the presence or not of the tag.
Examples:

Task A: Important (3/4h) -> s = 4/3(0+4) = 5.333...
Task B: Neither important nor urgent (1h) -> 1*0 = 0
Task C: Important and Urgent (1/2h) = 2(2+4) = 12
Task D: Important and Urgent (1h) = 1(2+4) = 6

Ranking: C > D > A > B
What do you think about this simple sorting algorithm?

hello @clementpoiret
thanks for your contribution, I really appreciate that!
the todo priorization is in my backlog, but I confess that I still thinking about the visual representation.
I think that an good approach is, when a todo is created, an select window pops up with four options, like Eisenhower matrix.
I would like to leave this part of the prioritization as agnostic as possible, as it can change a lot the way each person applies it, so I think about using only the four options from the Eisenhower matrix divided by color and icon.
https://github.com/user-attachments/assets/8824f654-1ae9-4156-ac26-fc2b33c2b6a9
here is an sneak peak. I really need opinions about that

Good to know it is in your backlog :)
It's actually a better UI than what I imagined, only w/ tags! What about making them checkboxes to simplify everything? You'd only have to check important and/or urgent.
I agree on the agnostic part. What's great about checkboxes+sorting is that you can — I think — make everything fully customizable by the user.
You'd have the Einsenhower Matrix by default, as you already have here, where it allows sorting tasks such as important+urgent > important > urgent > none:
return {
    "atiladefreitas/dooing",
    config = function()
        require("dooing").setup({
            categories = {  -- I had no idea for the name :)
                important = 4,
                urgent = 2,
            },
        })
    end,
}

But if someone doesn't care about important / urgent, he can override everything to have his personal classification such as:
return {
    "atiladefreitas/dooing",
    config = function()
        require("dooing").setup({
            categories = {
                work = 3,
                personal = 2,
                misc = 1,
            },
        })
    end,
}

What do you think about this?

I think that is perfect! I'm gonna release an alpha, so you can try it, what you think?

@clementpoiret please take a look on the latest release

hey @clementpoiret ... Thinking about the possibility to update the :Dooing, by when I set #1 for example, the todo e set with related priority... make sense?

That's a really good starting point! :)
Few feedbacks:

If I create tasks with a given config (e.g. the default one), then update my config (to define only two priorities for example), I get ui.lua:385: attempt to index a nil value when rendering the tasks. When a priority is not found, maybe it should fallback to default values?
With the following test config, I have an empty priority level selection:

  {
    "atiladefreitas/dooing",
    event = "VeryLazy",
    lazy = true,
    tag = "v1.6.0-alpha",
    config = function()
      require("dooing").setup {
        save_path = vim.fn.expand "$HOME/Sync/Notes/dooing_todos.json",

        prioritization = true,
        priorities = {
          name = "Work",
          color = "DooingPriorityUrgentImportant",
          icon = "",
          hl_group = "DiagnosticError",
        },
        {
          name = "Personal",
          color = "DooingPriorityImportant",
          icon = "",
          hl_group = "DiagnosticWarn",
        },
      }
    end,
  },

I have troubles understanding the differences between color and hl_group? What is the meaning of DooingPriorityImportant for example?
The priority level is not straight-forward to understand. I see priorityIndex, so I believe it is set in the order of the configuration?

Otw yes it makes sense to be able to edit the priority too :)

I think I made it too complex, completely straying from the concept...

When a priority is not found, maybe it should fallback to default values?

You're absolutely right about the nil value error. When a priority is not found, it should fallback.

With the following test config, I have an empty priority level selection

The configuration format in your example has a syntax error
should looks like:
priorities = {
        {  -- Note the extra { here
            name = "Work",
            color = "DooingPriorityUrgentImportant",
            icon = "🔥",
            hl_group = "DiagnosticError",
        },
        {
            name = "Personal",
            color = "DooingPriorityImportant",
            icon = "⭐",
            hl_group = "DiagnosticWarn",
        }
    }

differences between color and hl_group? What is the meaning of DooingPriorityImportant for example?

color is the name of the highlight group that will be created for this priority level
hl_group is the existing Neovim highlight group that the color will link to

For example, DooingPriorityImportant is a custom highlight group we create that links to DiagnosticWarn
We could simplify this by just using hl_group directly, as having both is a bit redundant...

The priority level is not straight-forward to understand. I see priorityIndex, so I believe it is set in the order of the configuration?

Yes, the priority index is based on the order in the configuration. The first priority (index 1) is considered highest priority, and so on.

I'm gonna take a step back and siplify the concept

Oops, you are right, sorry for this syntax mistake.
May I try to make you a proposition of what I have in mind about the UX, something like a draft/proof of concept? I may not have the time to do this today, but tomorrow may be okay

I would love it! Do not worry about time, this is an kinda complex feature

Okay, I made a PoC. I changed some things: https://github.com/clementpoiret/dooing/tree/feature/priority
Preview:
Main buffer:

Adding a task asks for a priority (if enabled in config):

Changes I made:

Instead of storing the priority index, I store the name of the priority. I believe this adds clarity, and allows the user to define his config in any order. This saves tasks like this in the final json: {"done": false, "priority": ["important", "urgent"], "created_at":<PHONE_NUMBER>, "text": "Important AND Urgent", "category": ""}

The config looks like this: https://github.com/clementpoiret/dooing/blob/16c5007cf6ab6b4bcea6a2e80b099965f8955f09/lua/dooing/config.lua#L21

This is where most changes took place. You define weights for each priority (this replaces the index logic). It also decouples the coloring / icons, from the actual priority thing. Why ?

If two categories are selected, which icon or color should you choose? One can't really know,
It allows to build complex logics based on the amount of selected categories (e.g. here, the default config fully replicates the Eisenhower matrix),
It will facilitate maintainability/make score computation future proof. For example, let's say that (as you have in your backlog), you have project-related tasks. You can imagine having projects more important than others (e.g. an important task from a high-stake job, may have a higher score than the urgent and important task related to your GTK theme :smile:). Or, if you decide to add time components to the scoring function (e.g. through optional estimated completion time, or creation date), it allows the user to say, for example, that an urgent task created two weeks ago, should be higher than an urgent and important task created today.

As you saw in the screenshot, choices are checkboxes. You can select as many categories as you want. To do so, you simply add the weights of the selected priorities: https://github.com/clementpoiret/dooing/blob/16c5007cf6ab6b4bcea6a2e80b099965f8955f09/lua/dooing/state.lua#L88

I also changed the color and hl_group behavior in the config. Now, color can be a user-defined hex color, but the user can still choose to set color = nil but define hl_group to use colors from the theme, the current behavior you implemented. What do you think about all this ?
PS: The fact that I changed the way priorities are saved is a breaking change if you have tasks with priorities saved as indices :/

Man... first thing, you did a really really really great job!

Instead of storing the priority index, I store the name of the priority.

perfect

The config looks like this...

I think that is very clean, love it!

About the icons, I can't figure out right now how to do this...
About the project-related tasks, I was thinking in create an .json for each project, but I didn't decide yet, thinking in ask for community opinion

Thanks a lot! :)
Maybe that icons aren't very useful as-is anyway? Right now, they convey the same information as the color... Maybe icons should not be related to priority, but for other features like time management or project? (e.g. 1 icon for project-specific tasks and 1 icon for global tasks?)
For project-related tasks, it's difficult to say right now, asking for opinion can be useful. But, if you do a .json for for each, you loose the possibility to have a global overview of all tasks across projects. Having a global overview would allow cool stuff to happen, e.g. pressing  on a project task, to open a Neovim tab in the project's directory where you have defined the task.

Two questions:

Do you want me to clean up a bit what I've done and open a PR here?
May I propose you my time management feature (in a second PR)?

Sorry for slowness in response, today I'm quite busy

Yes, now thinking, It's better to remove icons, colors do the job well. Icons will add overcomplexity layer, although I like them a lot haha. Let's keep only with colors.
icons will be more useful and simple to implement in project-related tasks.
please, wrap it and open a PR, will be a great addition, I'm so hyped.
and about the time management feature I really like your approach and we can work on it.
and please check the latest release before opening a PR.
excited for what's to come.

will be great a integration in CMD... something like :Dooing new task goes here #tag @project 2... we can think about this later.

hey ami @clementpoiret
check this out, I found interesting
https://github.com/atiladefreitas/dooing/pull/11

Interesting! I'm not sure about what would be the best UI to select a valid date however

👀
https://github.com/user-attachments/assets/1f0dea12-b844-4ca5-bd3c-e77fddec807e

Awesome, I tried to solve the conflicts, there were quite a lot, but it should be good: https://github.com/atiladefreitas/dooing/pull/13/ :)

closing issue due new release on [v2.0.0](https://github.com/atiladefreitas/dooing/releases/tag/v2.0.0)


11239 option to disable slow dashboard things

Remaining hound issues are due to legacy code. I fixed a bunch of them.
Note also that some of the JS that you'll see in new files is copied from older ones. I didn't clean up all of it. So if you see things not matching our conventions or looking wonky that's probably why.

Tangential to this PR, and unsure if we have much control over it: the map should zoom in when map is fullscreened otherwise it's fairly pointless to enlarge it. Can I file on redmine?
(this behavior was not modified by your changes here)

Yes please do file the map thingy on Redmine and notify Mariam :)


Result._plot_point_scalars: Use argument return_cpos in any case and fix screenshot function on Windows OS

Use argument return_cpos in any case: before, it was used only, when if animate. Now, it used in any case of the call plotter.show. I tested the changes of 56f38f1 on Windows 10.
Fix screenshot function on Windows OS: pyvista\plotting\plotting.py:4882: On Windows OS "in the event that the user hits the exit-button on the GUI then it must be finalized and deleted as accessing it will kill the kernel... proper screenshots cannot be saved if this happens". Therefore, when you used _plot_point_scalars(..., screenshot=...), you got at ansys\mapdl\reader\rst.py:2830: RuntimeError: This plotter is closed and unable to save a screenshot.
The only solution is, to pass the ´screenshot´ argument to plotter.show as done in the commit d5ad42d.
Future-safe pyvista version check: the old version check would break with version 1.0.0, commit 1c00879.

Was this issue fixed finally ? I am having the same problem that python crashes once i close the plot. I work on Mac (macOS Sonoma 14.4.1 ) . Thank you

@cecidip Yes, this issue was fixed finally. It was merged to the main branch with commit 827437a. This fix was released with v0.53.0.
But, I tested this fix just under Windows 10 not under macOS.


Changing from LTR to RTL

Hi there,
Thanks for your awesome library!
Am using two languages in my app Arabic and English, does the SMSwipeableTabView supports RTL language?
Also, how can i change the first selected tab? can i change the index of first view?
Thanks in advance.

Hello,
Any idea about how to make it RTL?


Specify project version and fix unknown option warning

Meson gives the warning WARNING: Unknown options: "c++_std". This is fixed by instead defining cpp_std=c++11 in default options. Meson also reports Project version: undefined which is easily fixed by specifying the current project version.

Merged. Thank you for your contribution.


Support For CreateExtension action

Hi @Zvirja,
If any support could be for CreateExtension action it would be great.
Example scenario:

When we hit Alt + Enter, ReSharperHelpers could suggest us to create an extension for ApplyLifeStyleFor method which creates new ".cs" file for this extension based on type that pointed with dot (e.g) in here Castle's ComponentRegistration<T>. So our class name would be "ComponentRegistrationExtensions.cs"
So our extension is:
ComponentRegistrationExtension.cs :
public static class ComponentRegistrationExtensions
{
    public static ComponentRegistration<T> ApplyLifeStyleFor<T>(this ComponentRegistration<T> registration, DependencyLifeStyle lifeStyle) where T : class
    {
        switch (lifeStyle)
        {
            case DependencyLifeStyle.Singleton:
                return registration.LifestyleSingleton();
            case DependencyLifeStyle.Transient:
                return registration.LifestyleTransient();
            default:
                return registration;
        }
    }
}

what do you think:)
Thanks.

Sorry for a bit belated reply. I've tried to think about your idea and specification for its implementation.
Basically, I see too many uncertainty here. Consider the following:

If "current object" implements a set of interfaces or derives from other classes, which exact type should be used for the this argument?
Where should the newly created class be located? I don't like an idea to create a file near the current file. That behavior is not very flexible and might not cover all the needs. Instead, I more like idea to put it near the current class within the same file. But if that appears that class is nested or partial, it isn't clear where exactly we should create the extension container class.
Finally, what should be the name of this container class? If we don't know which type to use as a base, we cannot guess the container name. Also, what should we do if class with the same name already exists?

Even if that it's quite easy to implement wish from the technical perspective, I cannot find a shape for this to make it convenient for each potential user :(

I see your concerns and you are right. But let's expand the way we thought;

If "current object" implements a set of interfaces or derives from other classes, which exact type should be used for the this argument?

We can provide implemented interfaces and base types to user to select one of them if possible ?.

Where should the newly created class be located?

This is a problem yes. But generally extensions are located in a different folder same csproj or Common/Core csproj. I think user can change its directory afterward. If we consider your partial case, then you are right we can't locate to destination. IMHO, different ".cs" file seems a proper way.

Finally, what should be the name of this container class

This should be based on user's selection which i stated first clause.

Thinking even more about this I still feel a lot of uncertainty here. R# breaks their API each release, so it will costs to support it in each new release. The need in extension creation is very rare for me, so I'll label this feature as Won't fix  and will close it.
If you need it, you can send a PR and re-open this issue. If we find it doesn't require too much code - we could potentially include it in the plugin.. Also you can always create your own plugin - it isn't too hard 😉


ORTools::SatIntVar can't be coerced into Integer (TypeError)

Hi there,
I'm working on trying to port one Python example to Ruby and I've hit a roadblock. (I'll prefix that by saying this was reasonably smooth up until now). I am not going to pretend I understand how this works but my assumption is everytime you do something like
model.add(->> this is something that is evaluated later <<-)
In my port of a Staff Scheduling solution
https://github.com/braindeaf/staff_scheduling
I am now stuck.
namely, how I would do something like..

    cost_variables = []
    cost_coefficients = []
    sum_var = model.NewIntVar(hard_min, hard_max, '')
    # This adds the hard constraints on the sum.
    model.Add(sum_var == sum(works))

    # Penalize sums below the soft_min target.
    if soft_min > hard_min and min_cost > 0:
        delta = model.NewIntVar(-len(works), len(works), '')
        model.Add(delta == soft_min - sum_var) # this line right here.

model.add(delta == soft_min - sum_var)

causes
staff_scheduling_sat.rb:286:in `-': ORTools::SatIntVar can't be coerced into Integer (TypeError)
I know that soft_min is an Integer, so it's evaluating now and doesn't make sense. Is there a method for doing that subtraction in a way that is evaluated later?)
Many many thanks in advance :)
RobL

Hey @braindeaf, try rewriting the expression to:
model.add(delta + sum_var == soft_min)

One difference between in the Ruby library is ORTools variables must appear on the left side of the expression.
x + 1 # uses ORTools::SatIntVar + method (works)
1 + x # uses Integer + method (doesn't work)

Another way that would ideally work is:
model.add(delta == -sum_var + soft_min)

But it looks like the - method isn't implemented for ORTools::SatIntVar yet.

dang! I tried the latter first and it didn't work earlier. If I'd only thought about moving the sum_var to the opposite side of the equation :S
I'll certainly try it out w/the change anyway.
That then revealed
staff_scheduling_sat.rb:286:in add_soft_sum_constraint': undefined method delta' for #ORTools::CpModel:0x00007fc554100c68 (NoMethodError)
So I guess 'delta' isn't supported yet. Is it possible to add that too?
Many thanks Andrew.

I'm being a spanner, there is no delta method :)

Last one, I promise....
  delta = model.new_int_var(-7, 7, '')
  model.add(delta + soft_max == sum_var)
  excess = model.new_int_var(0, 7, prefix + ': over_sum')
  model.add_max_equality(excess, [delta, 0])

staff_scheduling_sat.rb:289:in `add_max_equality': Unable to convert Integer to operations_research::sat::IntVar (ArgumentError)

Ha, no worries, this is really useful for the library, so keep them coming. I don't see an immediate for fix this one, but you should be able to convert the constant to an int var manually for now.
model.add_max_equality(excess, [delta, model.add_int_var(0, 0, "zero")])

(I think you can just remove if it's zero though)

This is looking great so far. I'm sure I've managed to mess up and I need to go back and debug, as it's taking three times as long as python and the solution is giving me differences in the debug output. I can't install latest version yet for some reason (battle for another day). I noticed that it's not possible to access the ObjectiveSolutionPrinter class as yet. Is it possible to add that?
Many thanks.

Looks like my example is ported across as much as I can. However, there is a distinct discrepancy I'm struggling with.
The python example stops after 10 seconds, with a FEASIBLE result, presumably some built in default solve time. Upping the max time doesn't seem to get to OPTIMAL, re-running at 5 and now 10 mins....
Solution 31, time = 160.86 s, objective = 52
Solution 32, time = 160.90 s, objective = 49
It seems to stall here.
My Ruby example finishes in 110 seconds with an OPTIMAL result which makes me more than suspicious. Would we expect Ruby to be this performant compared to Python or are strange things afoot?

Just added ObjectiveSolutionPrinter as well as a better inspect method for CpModel. I haven't noticed a difference in runtime between the libraries (most of the work should be in C++ for both).
I'd see if the output matches between the new model.inspect and Python's print(model). Also, make sure you're comparing with version 8.1 of the Python library.

fwiw, I just tried to run it and get the same results between Ruby and Python with master. Here they are after manually stopping after 5 seconds or so.
Python
Solution 0, time = 0.20 s, objective = 248
Solution 1, time = 0.24 s, objective = 226
Solution 2, time = 3.07 s, objective = 213
Solution 3, time = 3.13 s, objective = 204
Solution 4, time = 3.18 s, objective = 195
Solution 5, time = 3.22 s, objective = 191
Solution 6, time = 3.28 s, objective = 182
Solution 7, time = 3.33 s, objective = 164
Solution 8, time = 3.37 s, objective = 162
Solution 9, time = 3.44 s, objective = 157
Solution 10, time = 3.48 s, objective = 156
Solution 11, time = 3.53 s, objective = 153
Solution 12, time = 3.57 s, objective = 152
Solution 13, time = 3.62 s, objective = 149
^C^C pressed 1 times. Interrupting the solver. Press 3 times to force termination.

           Interrupting the solver. Press 3 times to force termination.
           It might be because I was flipping between 0.3.0 and now 0.4.0. However, now I'm the same as you when I set the timeout to 15 seconds for both. I'll take what I have and make a PR with these examples in tomorrow :)
Thank you again, this is great progress for us here.


[release-1.9] oci: avoid race on container stop

Signed-off-by: Antonio Murdaca<EMAIL_ADDRESS>@sboeuf @mrunalp PTAL

- What I did
- How I did it
- How to verify it
- Description for the changelog

/test integration_rhel

@rhatdan @mrunalp this is green

LGTM

LGTM


Feature request: Clang-format > Language > C#

Clang-format claims it can format c# code, I would much rather use it than omnisharp. Omnisharp is missing a fundamental code formatting feature which makes it useless to me.

Seems to be working, just had to restart.

This is awesome! Would it be possible to do a new release to the Marketplace to pick up this change?

This is awesome! Would it be possible to do a new release to the Marketplace to pick up this change?

Just double checking on this, would love to be able to use this with my C# code.

Yeah push to marketplace please :pray:

Just notice the almighty Clang-format does not support C# in VScode. One more language for me to  create chaos.

Shouldn't this just be adding C# to the list of supported languages?

@xaverh I see that you merged the support for c# long ago. Please push the new version to the marketplace?


Create LICENSE

MIT License
Copyright (c) 2024 Rishi Jha, Piyush Pawan Pradhan, Akurathi Lasya Mithra Suresh, Mohith Tadi
Permission is with this granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


[link-metrics] support at least one series per child

Thread Conformance document requires a Link Metrics Subject to
support at least one Link Metrics series (forward or enhanced ACK)
per connected SED.
Make sure this is the default configuration.

@Irving-cl do you think it could be doable to move from a LinkMetricsDataInfoPool to a new otLinkMetrics variable in the Child class? This would even save some memory since we'd remove duplication of some variables (mShortAddress, mExtAddress...).
I believe supporting a single series per child should prioritized over supporting multiple series from the same child.

@edmont
Actually it is for this reason (to support multipe series from the same child) that I use a pool to hold all the series instead of putting them into each child. With current implementation, it's more flexible. For example, we can configure any number of series. Otherwise it has to be 64, 128, 192...which seems to give rise to the memory usage. And it should be a very rare case that all series are used simultaneously. I mean, most of the memory we pre-allocated are idle in most of the time, which is a waste.
I think your preference makes sense. Honestly I don't have a strong opinion on this. But actually I'm curious why it's specified that multiple series should be supported for one child. If one child can only have one series, then I think I will put it into the neighbour with no hesitation.

There is no hard requirement to support multiple series from a single neighbor at a time. There is also no hard requirement to support series from non-children neighbors. OpenThread implementation could choose to implement a single simultaneous series at a time for each child.

By the moment I believe we should make the change in this PR, but as you mentioned this doesn't guarantee to comply with the conformance document, so there should be a better fix in the future.


Update ansible K8s roles to perform upgrade of OpenEBS via helm

Is this a BUG REPORT or FEATURE REQUEST?
Choose one: BUG REPORT or FEATURE REQUEST

What happened:
Update ansible K8s roles to perform upgrade of OpenEBS via helm
What you expected to happen:
OpenEBS must install successfully when installed using helm charts.
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:

PR: https://github.com/openebs/openebs/pull/1547


[4.0] TBD including all files from a full build.

https://github.com/apple/swift/pull/10861 , https://github.com/apple/swift/pull/10724 , and https://github.com/apple/swift/pull/11142 .
Explanation: TBDGen now includes all the exported symbols encountered while building the standard library and test suite.
Scope: Future users of TBD files, as there's no functionality change outside of it.
Radar: rdar://problem/32252869 and its subtasks.
Risk: Low: the only changes outside of TBDGen are tightening the linkage of some symbols, which people shouldn't be relying on.
Testing: CI and local testing with TBD validation turned on by default (which this PR doesn't include, as that could break user's build).

@swift-ci Please test.

@swift-ci Please test.
@slavapestov could you review this for 4.0? (It includes the proper materializeForSet closure change.)

@swift-ci Please test.

Build failed
Jenkins build - Swift Test OS X Platform
Git Commit - 1d04bc96951bec54fe796ba45dcf95f72fcaef98
Test requested by - @huonw

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 1d04bc96951bec54fe796ba45dcf95f72fcaef98
Test requested by - @huonw

LGTM


pubsub: consumer receives many grpc errors

No special config / setup. Unbounded queue.

@jadekler I believe this is the same issue covered in grpc/grpc#14853. We can work around the unhandled errors raised by GRPC, but we cannot prevent them.
/cc @apolcyn @jonparrott

Ah! Super, you're already on it. I'll close out this issue in that case.


Matching URL seems to not be working with curl requests

I noticed that my cassettes were being recorded, but the recorder couldn't resolve cassettes (even ones that were just created). I tracked it down to the matchUrl method in the RequestMatcher class:
public static function matchUrl(Request $first, Request $second)
{
    if (null !== $first->getPath()) {
        $path = str_replace('#', '\\#', $first->getPath());

        if (!preg_match('#'.$path.'#', rawurldecode($second->getPath()))) {
            return false;
        }
    }

    return true;
}

Here are the contents of the cassette:

-
    request:
        method: GET
        url: 'https://api.balancedpayments.com/marketplaces%3Flimit%3D2%26offset%3D0'
        headers:
            Host: api.balancedpayments.com
            Content-Type: ''
            User-Agent: balanced-php/1.1.2
            Accept: 'application/vnd.balancedpayments+json; version=1.1, application/vnd.api+json'
            Content-Length: '0'
    response:
        status: 200
        headers:
            Content-Type: application/json
            Date: 'Sun, 27 Jul 2014 02:23:01 GMT'
            Server: ngx_openresty/<IP_ADDRESS>
            Content-Length: '1487'
            Connection: keep-alive
        body: "{removed for privacy}"

Now the problem seems to be in how it's comparing the URLs. The value of the $path variable is:
string(38) "/marketplaces%3Flimit%3D2%26offset%3D0"

And the result of $second->getPath() is:
string(38) "/marketplaces%3Flimit%3D2%26offset%3D0"

But when you run rawurldecode on it, it becomes:
string(30) "/marketplaces?limit=2&offset=0"

So then the preg_match is:
preg_match('#/marketplaces%3Flimit%3D2%26offset%3D0#', '/marketplaces?limit=2&offset=0')

Which doesn't seem to want to match. When I replace it with:
if ($second->getPath() != $first->getPath()) {

...all is then well in the universe. I suspect there's a reason why you do it this way, though, so I'm curious what you think of this.

Removed pattern matching in favor of an equality check in https://github.com/php-vcr/php-vcr/commit/394737a317f79abe1c7bdbe15621fe45700e24b7


Docs are out of date

Is there any up-to-date documentation? The documentation in the repo is three years old!

Apologies, the folder only has an image in.


Absolute minimum requirement for running?

Hey there,
I know that the .Net SDK is listed as a prereq, but I was wondering if the full fat sdk is necessary for running dotnet-script? I would definitely like utilize some scripts in my work environment. I was lucky to get Pwsh 7.x, but getting approval from my security team for the full .Net SDK for only script functionality is going to be tough. If I can whittle it down to only minimum necessary components to run the scripts, I might actually have a chance.
I was going to begin looking into it / experimenting, but figured it was worth posing the question, just in case there was any insight that could help point me in the right direction.
Thanks,
-MH

Yes the full SDK is needed because dotnet-script effectively runs the normal dotnet restore to assemble a manifest of compile-time and runtime dependencies.
If you want an SDK-free experience, you can precompile a script to an executable on a machine with an SDK installed, at which point it can be deployed and run without any extra dependencies, but you won't be able to modify it.


Add Technic Control+ hub support

Add a new class for the Control+ hub as well as device ids for the new motors and internal devices
Fixes #4

Thanks, I will merge this in and push a new release to pypi!