Small mesh/armature/animation improvements

Includes my fix for #29. I don't know for sure if it is fixed by that, but we need the change I made anyway.
Animation interpolation is set. Rotation always goes the short way round (try AnimatedTriangle for example).
Restrictions about overlapping armatures/skeleton properties being required were lifted.
And most importantly, the user can select a bone rotation! Try CesiumMan with XYZ rotations of 90d/0/0 and the model will actually look fairly good in Blender for once :)

@ksons Something bad happened when you merged the last PR and you lost the git history and people like cinghiale didn't manage to get credited as contributors. It made it really difficult to merge master into this branch and it's also why Github is listing all the commits from the last PR again. This PR has all the history intact so if you can do a normal merge this time that should be fixed :+1:

Reverted as I squashed the history which makes it difficult to merge the subsequent PRs.


Verify the TNT SQL events with the 3.0 version of the IM

Requires updates to the SQL (double check it matches the datamodel) and add payload + shipping-instruction id field to shipment event.

Replaced by https://github.com/dcsaorg/DCSA-Information-Model/issues/45


Logging chart - LogDNA api_key field should be a secret selector and mandatory. Output and ClusterOutput

Rancher version v2.5-head (12/14/2020) _ e3f5264_
According to the banzai cloud documentation for LogDNA ClusterOutput and Output the api_key field is mandatory.
The current UI is using a text input field for this and if we leave it empty the generated YAML result in api_key: ""
I think we should handle this field the same with other Outputs using a secret selector for consistency. See Splunk, Amazon Elasticsearch or Datadog outputs.

rancher/dashboard#1192
rancher/dashboard#1191

@izaac We can make this field required but I don't think we can/should make this a SecretSelector.
The output fields that we used a SecretSelector for are Secret types. Here the api_key is a string. If we wanted to extract the value of the selected secret and key it would still be a string in the yaml.

Rancher v2.5-head (12/22/2020) bd660e1
Reopening, the api_key field is checked now when trying to create the Output/ClusterOutput but the field is missing the required visual indicator in the UI (the red asterisk).
The Name field has the red asterisk but not the api_key input.

I also opened a separate issue for the hostname, which is also required #2133

After I refreshed the browser I was able to see the marker. #2133 however is still a valid issue


CONTRIBUTING.md contains wrong project name

"Contributing to Microq" should be changed to "Contributing to Mongoist"

Thanks for reporting the issue 🎉


View User

This may seem dumb but how do you view a user's account? I see MemberProfileViewer_list.ss and MemberProfileViewer_view.ss but I don't know the URL to call those...

maybe you already figured this out, but for people the people with the same question.
A profile can be viewed by navigating to: urlparam/show/$ID (where urlparam is the urlparam of the page you made with the MemberProfiles page type). In the file MemberProfilePage.php you can find all the allowed actions that are available.

 I want to customize the profile page, how data is rendered, but I have a problem accessing fields by name  in "Sections" loop.

MemberProfileViewer_list plus custom field content, img's ect
is there a simple approach here?

@leclerc - the $Me variable in that context is an instance of "MemberProfileFieldsSection" - this output is rendered using the MemberProfileFieldsSection.ss template, or you should be able to access the $Member.FieldName variables within that <% loop Sections %> block.
@rikisommers  - you can create your own version of the MemberProfileViewer_list.ss template - you'll likely need to add an extension to Member for adding your own fields in place though.

TY nyeholt fot the answer, as usually it goes, shortly after posting the question I've found the solution ;)


AttributeError: 'IPAdapter' object has no attribute 'get_prompt_embeds'

I can't find the attribute named get_prompt_embeds in ip_adapter.py, where is it

You probably need to update comfyui

Found the problem. Because the original ip_adapter package was already installed before, so the IPAdapter class from the original package was imported by default. Thank you for your reply.


trickest-cli: init at 1.7.5

Description of changes
CLI tool to execute Trickest workflows
https://github.com/trickest/trickest-cli
Related to #81418

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x}  Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 307918 run on x86_64-linux 1

1 package built:

trickest-cli


Drift and TSM with Blizzard Merchant Frame

The merchant frame was the only frame Drift seemed to be unable to remember the location of after login/reload.  I finally got fed up and started looking into the code to figure out why that was and discovered the FixTradeSkillMaster function and the bug report that generated it.  While that definitely fixed the issue with the window when using TSM's merchant window, it introduced a new bug when using TSM but Blizzard's default merchant window by zeroing out Drift's saved variables for the merchant window on load.
After some poking around to see what calls were being triggered when TSM's button to swap between their frame and Blizzard's frame, I found that DriftHelpers:resetScaleAndPosition would get called so I injected a call to DriftHelpers:FixTradeSkillMaster in there and updated DriftHelpers:FixTradeSkillMaster as follows.  This preserved the Blizzard's frame's location when swapping to TSM's frame while also hiding the frame when swapping to TSM's frame.
I realize this is probably pretty kludgy since i don't have a ton of WoW Lua experience but I'm hoping you might be able to add something for a future release so the merchant window works if you have TSM but don't use their version.
function DriftHelpers:FixTradeSkillMaster()
	if not IsAddOnLoaded("TradeSkillMaster") then
		return
	end

	if hasFixedTradeSkillMaster and not TradeSkillMasterDB["g@ @vendoringUIContext@showDefault"] then
		return
	end
	if hasFixedTradeSkillMaster and TradeSkillMasterDB["g@ @vendoringUIContext@showDefault"] then
		DriftPoints[MerchantFrame:GetName()] = DriftPoints[MerchantFrame:GetName().."TSM"]
		MerchantFrame:SetClampedToScreen(true)
		hasFixedTradeSkillMaster = false
		return
	end
	if MerchantFrame and not TradeSkillMasterDB["g@ @vendoringUIContext@showDefault"] then
		DriftPoints[MerchantFrame:GetName().."TSM"] = DriftPoints[MerchantFrame:GetName()]
		DriftPoints[MerchantFrame:GetName()] = nil
		MerchantFrame:SetClampedToScreen(false)
		hasFixedTradeSkillMaster = true
	end
end

Thanks for the thorough investigation and fix! I actually did not realize this was an issue, so I really appreciate your hard work. I will investigate this more when I have some time 🙂


Factor out cert handler

This one is mostly just moving stuff around; pulling out the CT/certificate specific stuff from handler.cc and putting it in a subclass, then there's also the changes to support registering these handler subclasses with the Server rather than the server creating the handler instance(s).
I'm not super happy with the current state of the Server interface, but I think that's a job for another day.

This looks related to my WIP in #878.
Martin
On 22 October 2015 at 14:46, Al Cutter<EMAIL_ADDRESS>wrote:

This one is mostly just moving stuff around; pulling out the
CT/certificate specific stuff from handler.cc and putting it in a
subclass, then there's also the changes to support registering these
handler subclasses with the Server rather than the server creating the
handler instance(s).
I'm not super happy with the current state of the Server interface, but I
think that's a job for another day.
You can view, comment on, or merge this pull request online at:
https://github.com/google/certificate-transparency/pull/992
Commit Summary

Factor out certificate_http_handler
Register handler with Server

File Changes

M Makefile.am
https://github.com/google/certificate-transparency/pull/992/files#diff-0
(2)
M cpp/log/logged_entry.h
https://github.com/google/certificate-transparency/pull/992/files#diff-1
(2)
A cpp/server/certificate_handler.cc
https://github.com/google/certificate-transparency/pull/992/files#diff-2
(164)
A cpp/server/certificate_handler.h
https://github.com/google/certificate-transparency/pull/992/files#diff-3
(48)
M cpp/server/ct-mirror.cc
https://github.com/google/certificate-transparency/pull/992/files#diff-4
(17)
M cpp/server/ct-server.cc
https://github.com/google/certificate-transparency/pull/992/files#diff-5
(20)
M cpp/server/handler.cc
https://github.com/google/certificate-transparency/pull/992/files#diff-6
(379)
M cpp/server/handler.h
https://github.com/google/certificate-transparency/pull/992/files#diff-7
(53)
M cpp/server/server.h
https://github.com/google/certificate-transparency/pull/992/files#diff-8
(51)
M cpp/util/libevent_wrapper.cc
https://github.com/google/certificate-transparency/pull/992/files#diff-9
(76)
M cpp/util/libevent_wrapper.h
https://github.com/google/certificate-transparency/pull/992/files#diff-10
(13)

Patch Links:

https://github.com/google/certificate-transparency/pull/992.patch
https://github.com/google/certificate-transparency/pull/992.diff

—
Reply to this email directly or view it on GitHub
https://github.com/google/certificate-transparency/pull/992.

Could you review #995, and rebase on top once I've merged it? :stuck_out_tongue:

Ping

Ping

Review done! I can see!

LGTM


Reduced ops for grpc_chttp2_stream_map_find().

Several asserts in grpc_chttp2_stream_map_find() can be converted to debug
asserts. This PR also templatizes the internal find() method to have it be
strict in the delete case (which saves some branches).
This is a subset of https://github.com/grpc/grpc/pull/19665 for easier review.

Looking at the tests looks like something needs to be fixed

Looking at the tests looks like something needs to be fixed

@yashykt That's the double deletion test that is failing, specifically because this change disallows double deletion. In my view that test should be removed and double deletion should not be supported (since this is not an externally visible generic data structure).


Passing dimensions to data variable attributes

Hi,
I'm currently using XArray as a basis for analyzing precipitation data on a latitude/longitude grid. Initially, the data was stored within a text file; I converted it into a Pandas dataframe and then an XArray dataset. I can create new dimensions for the dataset itself; however, I want to pass these dimensions on to the data variable stored within the dataset.
I'm then using rioxarray to clip the dataset based on certain latitude/longitude values. However, I think the problem lies with passing information from the dataset to the variable. My code is below:
precip = obs_dataset_full.precip.expand_dims(lon = 350, lat = 450)
obs_dataset_full.rio.set_spatial_dims('lon','lat')
cropped = obs_dataset_full.rio.clip(geometries=cropping_geometries, crs=4326)

With the following error resultant:
DimensionError: x dimension (lon) not found. Data variable: precip
I can pass the values to the data array with precip, but not to the variable itself. Output of the data array is as follows:
xarray.DataArray 'precip' lon: 350 lat: 450 dim_0: 350 dim_1: 451
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 nan
Coordinates:
dim_0
(dim_0)
int64
0 1 2 3 4 5 ... 345 346 347 348 349
dim_1
(dim_1)
int64
0 1 2 3 4 5 ... 446 447 448 449 450
Longitude
(lon)
float64
-465.7 -465.7 ... -438.3 -438.3
Latitude
(lat)
float64
35.04 35.08 35.11 ... 51.52 51.56
Attributes: (0)

If anyone has any insight for how to pass the lon/lat dimensions to the data variable, it would be much appreciated!

That error message is confusing.
The dimensions lat and lon exist but the coordinate labels are named Longitude and Latitude, which means that rioxarray cannot find them. Try .rename({"Longitude": "lon", "Latitude": "lat"}) before passing to rioxarray.

precip.rename({'Longitude':'lon','Latitude':'lat'})
I tried the above method and got the exact same error. I don't believe that would've been the problem because an error is being referenced with regards to the dimensions themselves, not the coordinates.

Oh now I see, you've modified precip but are calling obs_dataset_full.rio..
So change the first line to obs_dataset_full["precip"] = ....expand_dims(...)

I believe this fixed the issue. Thank you!


 Real Device?)
Real Device (iPad)
Steps to reproduce the behavior
only run RNIap.getSubscriptions(itemSkus)
The problem is that on the type field on iOS now have the following message, instead of "sub":
type: Do not use this. It returned sub only before

I saw that the iOS code already has this deprecated item type, but it is still used on the JS file:
https://github.com/dooboolab/react-native-iap/blob/master/index.js#L56

@marciobueno1  @JJMoon will be back to you since he committed this changes. Also, I've heard ios doesn't distinguish between 'sub' and 'inapp' like 'android'. You could try to create 'inapp' product too  and test it before he is back.

This is still an issue. When testing a non-consumable subscription, I get type: 'Do not use this. It returned sub only before',

@EricWiener If you are only seeing the message, that is expected.


Re-landing SliverAnimatedList

Description
Original PR (#28834) was reverted due to merge conflicts.
Will follow-up with an animation of the included sample app.
Related Issues
Replace this paragraph with a list of issues related to this PR from our issue database. Indicate, which of these issues are resolved or fixed by this PR.
Tests
Fixes #11339
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] I signed the CLA.
[ ] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] All existing and new tests are passing.
[ ] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[ ] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require Flutter developers to manually update their apps to accommodate your change?

[x] No, this is not a breaking change.

@simolus3 Apologies for the additional ping. Merging from the other branch went badly. 😅

A Googler has manually verified that the CLAs look good.
(Googler, please make sure the reason for overriding the CLA status is clearly documented in these comments.)
ℹ Googlers: Go here for more info.

This is a dupe of https://github.com/flutter/flutter/pull/42452 which received cla consent from all authors.

cc/ @goderbauer 🙂

A Googler has manually verified that the CLAs look good.
(Googler, please make sure the reason for overriding the CLA status is clearly documented in these comments.)
ℹ Googlers: Go here for more info.

See comment above regarding cla, again. :)

@googlebot I consent.

@godebauer This is ready for another look. Sorry for the bot noise. :)

@goderbauer This is ready for another look. Sorry for the bot noise. 🤖


Compiling for ARM (android)

As a big emoji fan I was really disappointed there is no way to compile that awesome language on my android phone, so I decided wrap the compiler with some fancy UI, and create a basic IDE for android.
Since (most) Android devices are running ARM, I had to rebuild the compiler. I managed to build it for x86 the test have passed just fine, However when compiled with arm-linux-gnueabi-gcc it did not work. I set the Makefiles params to

CC ?= arm-linux-gnueabi-gcc
CXX ?= arm-linux-gnueabi-g++

The build failed with the following error, I would appreciate if you could help me debug the build process since I'm not a gcc expert
$ make
mkdir -p builds/Emojicode-0.3-arm-linux-gnueabi
mkdir -p builds/Emojicode-0.3-arm-linux-gnueabi/packages/files; mkdir -p builds/Emojicode-0.3-arm-linux-gnueabi/packages/allegro; mkdir -p builds/Emojicode-0.3-arm-linux-gnueabi/packages/sockets;
g++ EmojicodeCompiler/AbstractParser.o EmojicodeCompiler/Callable.o EmojicodeCompiler/CallableParserAndGenerator.o EmojicodeCompiler/CallableScoper.o EmojicodeCompiler/CallableWriter.o EmojicodeCompiler/Class.o EmojicodeCompiler/CodeGenerator.o EmojicodeCompiler/CommonTypeFinder.o EmojicodeCompiler/CompilerErrorException.o EmojicodeCompiler/DiscardingCallableWriter.o EmojicodeCompiler/Enum.o EmojicodeCompiler/Function.o EmojicodeCompiler/Lexer.o EmojicodeCompiler/main.o EmojicodeCompiler/Package.o EmojicodeCompiler/PackageParser.o EmojicodeCompiler/PackageReporter.o EmojicodeCompiler/Protocol.o EmojicodeCompiler/Scope.o EmojicodeCompiler/StringPool.o EmojicodeCompiler/Token.o EmojicodeCompiler/TokenStream.o EmojicodeCompiler/TypeContext.o EmojicodeCompiler/Type.o EmojicodeCompiler/TypeDefinition.o EmojicodeCompiler/TypeDefinitionFunctional.o EmojicodeCompiler/ValueType.o EmojicodeCompiler/Variable.o EmojicodeCompiler/VariableNotFoundErrorException.o EmojicodeCompiler/VTIProvider.o EmojicodeCompiler/Writer.o EmojicodeReal-TimeEngine/utf8.o -o builds/Emojicode-0.3-arm-linux-gnueabi/emojicodec
arm-linux-gnueabi-gcc EmojicodeReal-TimeEngine/algorithms.o EmojicodeReal-TimeEngine/Class.o EmojicodeReal-TimeEngine/Emojicode.o EmojicodeReal-TimeEngine/EmojicodeDictionary.o EmojicodeReal-TimeEngine/EmojicodeList.o EmojicodeReal-TimeEngine/EmojicodeString.o EmojicodeReal-TimeEngine/JSON.o EmojicodeReal-TimeEngine/Object.o EmojicodeReal-TimeEngine/Reader.o EmojicodeReal-TimeEngine/Stack.o EmojicodeReal-TimeEngine/standard.o EmojicodeReal-TimeEngine/Thread.o EmojicodeReal-TimeEngine/utf8.o -o builds/Emojicode-0.3-arm-linux-gnueabi/emojicode -lm -ldl -lpthread -rdynamic
EmojicodeReal-TimeEngine/algorithms.o: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status

I also tried the 0.2 version build for the raspberry pi but it didn't want to run on my android

I’m not sure why, but the object files were compiled with g++ (4th line in your code snippet). Only naturally, arm-linux-gnueabi-gcc cannot link them.
You should not directly modify the Makefile. Try to set environment variable CC and CXX like so:
CC= arm-linux-gnueabi-gcc CXX= arm-linux-gnueabi-g++ make

(First comment was complete rubbish, I deleted it.)
Something seems not quite right: Why is g++ used on the 4th line? Could probably show the full compile log? (Run make clean and compile again.)
Also, don’t modify the Makefile but use environment variables like so (or export them):
$ CC=arm-linux-gnueabi-gcc CXX=arm-linux-gnueabi-g++ make

I finally managed to compile the code itself, the allegro fails, although it won't that useful in the app, and will require me to port it.
But turns out I had to compile it with the android NDK tools to make it runnable on android :sob:

Nice, you got it to work! Allegro should, at least theoretically, work on Android. But since it’s just an additional package, you can of course also use Emojicode without it.

Managed to compile it and make my phone to finally execute it!! :smile:
However the first thing that is printed to the console is segmentation fault. It seems to be an actual problem, I've yet to manage to dump the log, but compiling another program with the same method does work. I tried running it on android with ARM64V8 and X86 both resulting in the same issue.
Since it won't run on the X86 device I'm pretty sure sure it's problem with my configuration of the build. Do you see anything out of the ordinary?
include $(CLEAR_VARS)
LOCAL_MODULE := emojicodec
FILE_LIST := $(wildcard $(LOCAL_PATH)/[EmojicodeCompiler]/*.cpp)
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
LOCAL_CPPFLAGS := -std=gnu++0x -Wall -fPIE -Ofast -iquote . -iquote EmojicodeCompiler -std=gnu11 -Wall -Wno-unused-result
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog -fPIE    -lm -ldl -rdynamic  -shared
include $(BUILD_EXECUTABLE)

The params for the runtime are identical.
note that I omitted pthread, since android's implementation of threads is imported by default (has the same api)

First of all, which version of Emojicode are you trying to build?
Secondly, the Emojicode Compiler and Engine target at ISO C++14 and, for version 0.3 and earlier, at C11 respectively. You, however, are compiling with -std=gnu++0x and -std=gnu11 (though only the last one will have an effect).
Do you get the segmentation fault for the Engine or the Compiler? Debugging a segmentation fault without knowing the location which caused it is nearly pointless. You’ll need to get a core file or some other kind of log.

Turns out I miss-configued the Android.mk file, if you look at my comment above you can see I forgot to omit the [] around the source folder, it did not generate any warning, instead it tried to compile all referenced libraries into an executable.
(I tried to build both 0.3 and 0.22)
After fixing the configuration to the following:
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := emojicodec

FILE_LIST := $(wildcard $(LOCAL_PATH)/EmojicodeCompiler/*.cpp)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/EmojicodeReal-TimeEngine/ $(LOCAL_PATH)/
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)

LOCAL_CPPFLAGS := -std=c++14 -Wall -fpie -c -fexceptions -frtti -Ofast -iquote . -iquote EmojicodeReal-TimeEngine/ -iquote EmojicodeCompiler/
LOCAL_LDLIBS := -pie -lm -ldl -rdynamic

include $(BUILD_EXECUTABLE)

It actually started to build the project, but there seems to be some problem with the ecCharToCharStack defined in the EmojicodeShared.h. I get an error during the linking for all the lines that uses this macro, I checked the UTF8.h and it seems to compile.
Package.o: In function `Package::loadInto(Package*, unsigned int, Token const&) const':
Package.cpp:117: undefined reference to `u8_wc_toutf8'
...

full log can be seen here

You must also compile and link the utf8.c file into both binaries. Please study the Makefile carefully.

Thanks for you help!
Finally managed to build the whole project
I pull requested the makefile to master since v0.3 has no branch (if you can fix it could be great)
here is a future reference for those who might need the executables:
emojicode_03_android.zip

See #54


horizonclc.txt

Horizon Community Learning Center

This just removes a school name from an existing text file. Closing.


Golint logger package

Required for all non-trivial PRs

[x] Sign CLA (if not already signed)

Golint logger to address issue #4098. Breaking change to exported logger package due to rename of LoggerFromContext  to FromContext.

Breaking change to logger package due to rename of LoggerFromContext  to FromContext. Not sure on the impact of this in terms of how the repo is semantically versioned...

@bvwells if you want to clear up the conflict I'm sure we could look at merging this.

@e-dard - all rebased. Took a while for me to work out the PR was now pointing at 1.8. :-)

Thanks @e-dard!


Right way to send error messages through middleware cycle

Based on this SO question and as mentioned by @dougwilson in this PR, i open an issue to understand how to manage error messages through the middleware cycle (layers stack).
In other frameworks i worked with, as Rails or Symfony, most of the job is done in controllers. This is the place where you call "everything" (authorizations, form validations, fetch datas, render views...). I could do the same with Express : have one middleware by route where i manage calls to helpers and services :
Router.route('/auth')
  .all(isAuthorized()) // return a middleware
  .get(getAuth)
  .post(postAuth);

function postAuth (req, res, next) {
  var validationError = userForm(req);
  if (validationError) {
    /* ... */
   res.render(/* ... */);
  }
  res.render(/* ... */);
}

I don't know if this is the "right way" in real project, but as I understand Express, it is made to be organized in another way (maybe i'm wrong ? maybe there is no "right way"). I separate each feature in middlewares that i put or not in my route layers stack. Example :
Router.route('/auth')
  .all(isAuthorized()) // return a middleware
  .get(getAuth)
  .post(userForm, signUpUser, checkUser, signInUser, getAuth);

Each of these middlewares is reusable in other routes. If i was using only one middleware, as a controller postAuth (as shown above), i could call userForm, signUpUser, checkUser and signInUser in it and manage errors easily. Now, in the way i am using middlewares, i don't know how to manage errors. The fact to have separate middlewares make them independant, without link between them. In case of errors in a middleware, for example userForm, i can't call directly getAuth to display the view with the errors in it because userForm is reusable in other route and is not specific to getAuth. I won't know which view or method to call. What i want to do, in case of errors, is to broken the middleware stack to bypass future middlewares and jump directly to the last middleware which display the view (here getAuth).
There is different worksaround which i think are not very convenient :

Put a condition if (res.locals.err) in each middleware to jump to the next one in case of errors by calling next();.
Call an error-handling middleware with next(err); but it is hard to manage every redirection in one function (this is the solution i use with custom errors).
Use next('route'); with a route duplication each time to manage error (similar as error-handling middleware solution).
Use res.redirect(); and flash messages (session, query string, db, cookie...). If I use this solution, I need to make it stateless (in case of REST). I could do it with query string for example, but this is also not very convenient to me. Furthermore, it doesn't really answer the question directly but more the question of how to pass message between requests in REST API. Here i don't want redirect but stay in the same request.

I would like to know :
How you manage errors in real Express project ?
Should i organize my routing differently ?
I tried to explain my problem in a different way that my stack overflow question, i hope it is clear. Tell me to clarify if necessary. Thank you in advance.

You can create an error middleware:
https://expressjs.com/en/guide/error-handling.html

@pakastin Thank you for your comment.
You're referring at my second possible solution. The problem i encounter with this is that i don't arrive to call the right middleware depending of the error. As mentionned in my issue, the middlewares are independant and reusable. It means that if i have an error in userForm, how could i call getAuth ?
Example :
Router.route('/auth')
  .get(middleware1, middleware2, getAuth)
  .post(userForm, middleware1,/*middleware2, middleware3,*/ getCreate);
Router.route('/users/:id').put(userForm, middleware3,/*middleware4, middleware5,*/ getUser);
Router.route('/admin/users/:id').put(userForm, middleware4,/*middleware5, middleware6,*/ getAdmin);
/* etc */

function create (message, status) {
  var error = new Error(message);
  error.status = status || 200;
  return error;
};

function userForm (req, res, next) {
  /* some errors occured */
  return next(create('error message'));
}

function errorsHandler (err, req, res, next) {
  /* How can i call the right middleware ? */
}

You can chain error handler as last middleware in your route..

@pakastin If i put my error handler as a last middleware it won't work :
Router.route('/auth') .get(middleware1, middleware2, getAuth, errorsHandler);
How could i access my getAuth now ?
I need to put it as the penultimate middleware (as mention in the stack overflow answer) :
Router.route('/auth') .get(middleware1, middleware2, errorsHandler, getAuth);
Here it works but i need to replicate my errorsHandler in every routes...

maybe there is no "right way"

You are correct in that there is no "right way" in Express; folks are free to organize however they like, ultimately :)
Of course, ultimately if there is a "right way" it would indeed be to use the next(err) mechanism to pass error conditions over your middleware ;)
All of the different things listed in work-arounds aren't actually work-arounds: they are just different ways to organize your structure, all of which are supported. Of course, I definately get that you are saying that you don't like any of those listed ways, so perhaps we can discuss a different way to organize them.
One possible example is you could use a Router to hold your list of middleware and use the method to "bail out" of the given router, dropping you back into your route stack again.
Let's take one of the snippets you posted above:
Router.route('/auth')
  .all(isAuthorized()) // return a middleware
  .get(getAuth)
  .post(userForm, signUpUser, checkUser, signInUser, getAuth);

In this snippet, the goal here I believe is that you want to group userForm, signUpUser, checkUser, signInUser together and have to such that if an error is in any of them, it will bail out but still invoke getAuth (please correct me if I'm wrong here). Assuming that each of those will, in an error condition, set res.locals.err and then call next('router'), the following should have the flow you desire using the router construct:
Router.route('/auth')
  .all(isAuthorized()) // return a middleware
  .get(getAuth)
  .post(Router().use(userForm, signUpUser, checkUser, signInUser), getAuth);

That is just one way, of course, but I'm not sure if that has been explored yet. Since the context seems to be that you're exploring different options and then deciding which ones are convenient or not, I wanted to put that out there, as something that may be convenient for me may not for you and I don't really see a definition of what convenient really means to you to understand better.

@BigFax I can see you want to use middleware to send error messages, is the error message for the input form? if it is then u can just use flash messages by installing the express-flash package and using it in ur server, and where u have your route u can do this:
app.get('/', function (req, res) {
req.flash('info', 'Welcome');
res.render('index', {
title: 'Home'
})
});
app.get('/addFlash', function (req, res) {
req.flash('info', 'Flash Message Added');
res.redirect('/');
});

I just came back here after few years and notice I didn't tell what I did.
To quickly summarize, the dougwilson solution was what I used for the project at that time. A moment later, after my level increase on Node.js & express, I finally managed to adopt the next(err) solution with a custom error handler dispatching to the good view, data or redirection. It was really the most convenient to me. (I was just feeling at first that these errors was not "real" errors as they was returning a 200 ok with messages, but then not at all)
I think this issue can be closed as my question was answered ;)


pragma cannot be set when runtime is automatic

pragma cannot be set when runtime is automatic at https://deno.land/x/fresh_youtube@0.2.0/src/view/index.tsx:1:1
cannot use it with fresh v1.1
see: https://deno.com/blog/fresh-1.1#automatic-jsx

thanks.
I understand your problem is

cannot use it with fresh v1.1


I tried to use Nuitka with mutilprocessing application, but when i'm done packing, I clicked exe and there was a bug

I apologize for this intrusion, but this problem bother me for along time. In this case, I've already packed, but clicking on exe didn't worked, then many of the same processes reappear (as I can see in task Manager), they almost overwhelmed my memory. I would like to ask, what are the reasons for this situation, and of course in pyCharm , it worked well. Thanks!!!

No issue template filled out.


Hide resizable height prop controls

Fixes https://github.com/mui/mui-toolpad/issues/1277
Fixes https://github.com/mui/mui-toolpad/issues/1614 too?
Very simple solution, but hiding the control in the properties panel for this type of prop seems to completely fix the issues?
Preview: https://toolpad-pr-1641.onrender.com/

@Janpot Layout props weren't bindable already so I think this should be a good fix for these issues?


How to rollback already applied changeset?

Hi guys,
Could you please advise what is the preferable way to rollback applied changes by some Changeset?
Flyway/Liquibase provide out of the box undo migration mechanism, but what about MongoDB world and Mongock?

Hi @jfenuk , glad you ask that.
Although Mongock doesn't provide anything just now, we are working on several mechanism:

Transactions: For MongoDB 4.0 and higher. We'll start providing all-or-nothing for the entire migration. But the plan is to provide two more levels: per changeSet and changeLog. The last one is the recommended.
We are finishing this feature, in test phase and will be released soon

Recovery: For non-transactional environments, the recovery mechanism will allow you to execute some actions when a changeSet fails to simulate your manual "rollback". It works retrospectively in reverse order, so when a changeSet fails, it will run all the recovery methods associated with the executed changeSets, starting from the most recently executed.
**We haven't started te development. We'll start once transactions are released in an stable version"

Undo: This is not really a rollback mechanism, but it's belong to the "recovery" area. This feature will allow you to "undo" any changeSet you "regret". Let's say in a previous migration you executed a changeSet that now realise should never be added. In this cases is where UNDO operations come handy. You tell Mongock to execute that operation to "repair" the actions of the undesired changeSet. You may wonder , why not add a standard changeSet that do the "undo" job. While this would work, it will force Mongock to always run the undesired changeSet. So it could happen that you provide an UNDO operation for a changeSet you don't want to be executed, but it will, to then later, "fixed". When providing and UNDO operation associated to a changeSet, Mongock will check if the changeSet has been already executed. If that is the case, it will run the UNDO operation, otherwise neither the changeSet nor the UNDO will be ever executed.
**We haven't started te development. We'll start once transactions are released in an stable version"

If there is anything you think we could add or improve in this area, or anything we have missed, you're suggestions are welcome ;)


Update README

Update README with the following elements

[x] What problem will it solve?
[x] What is the scope of the project in terms of fidelity and complexity?
[x] What is considered out of scope for your project?

This should be addressed by my updates, but I'm not sure how to do that thing where it links to the issue.

Edit the description of the pull request to add the words "Fixes #2"


Gui checkbox & global flag not working

Sooo, I won't lie and say I'm a JS expert, but I have a pretty good understanding of what's going on in oncall.js. But for the life of me, I can't get a checkbox I've added to Browse Teams to work. I need the renderTeams function to be able to interrogate the value of a gui checkbox. So I tried adding a checkbox to index.html. I tacked on a change event and it wouldn't fire unless I put it in a window.onload event. But it worked. Then I tried setting a global flag based on the checkbox and I can't get the renderdata function to read it properly.  Sooo I need some help here. What is the recommended way to add a checkbox element onto the browse teams page : and how do I get it's change event to be read.

Can you fork the repo, commit your changes, and link it here? I don't think we're doing anything too out of the ordinary in Javascript land, so standard practices should work just fine.

I can't really - work doesn't allow it. But simply put . .. I'd love to know how to add a checkbox safely to the oncall application, specifically in the browse teams page. I'd like to rerun the browseteam method and interrogate the value of that checkbox. And this seems to elude me .. I'd love to know what a basic framework of getting this accomplished looks like.

I'm not sure if I understand what you want, but see the commit linked below: https://github.com/dwang159/oncall/commit/ecc9defd9c82debb8d47e76fc10bb09e118c47ed
This adds a checkbox to the Browse Teams page, with some console logs attached to browse.renderPage and a checkbox on change event.

Hi there ..
Thanks so much .. you've really captured a lot of what I want to do . Without any really gui elements in oncall there's no real example of adding this kind of element. So look I hate asking, but what would you recommend for refreshing that table .. I can figure out how to change the results based on the toggle switch, but refreshing the page (I've tried location.reload and (#div).load ... which should reload a div once)
Any .. advice? And for real I very much appreciate any thoughts.

I'd move the call to browse.events() into init() in the renderPage() function, then just call getData(). That should refresh the content. If you're trying to add more teams in there based on a checkbox, you can probably modify the renderPage() function to add additional teams into dataArr based on the checkbox state. Just remember to move the events() call, otherwise you'll have duplicate event handlers.

Okay so I tried moving the event to both init and renderpage and neither work because the click event's 'this' object is the switch, not the oncall application. Sooo I'm trying to puzzle out how I can get around that.

when browse init is called it's called using self.browse.init. Which passes the self object to the method. When using the event handler I don't have access to that self object .. so any call to render or init or anything fails with .. template not found or the like. Cause there's no 'this' object.

Outside of that function, you can define var self = this to get access to oncall.browse through self. Alternately, you can do a oncall.browse.init() if you're worried about what this is. this is kind of complicated in Javascript; you can do some reading on it here if you're interested, but the self = this things works pretty well to make the parent object available to event handlers.

Dwang -- i went with arrow functions and figured 'this' out.
And for sure I'm in init ... thank you so much for your guidance.


Fix links

Hi.
your code may not be correct.
pls refer to this PR: https://github.com/AI4Finance-Foundation/FinRL/pull/745/files


Editor Interaction not working

Currently there is no interactivity on the editor, like clicking a text and having it instantly on the side to edit it, or inline options.

I tried the Next.js integration and this is what I mean

Hi, @Dav3rs thanks for reaching out. I have some questions to try to understand this one better:

Are you using v-editable in the component you want to edit?
Which version of: Nuxt, Vue and this SDK are you using?
Do you have a reproduction link?

Thanks in advance

I'm using the latest everything, just create a new project with npx @storyblok/create-demo@latest --key XXXXXXXXXXXXXX --region us-east-1 and it doesn't have interactivity, I completed the tutorial entirely without it.

Hi @Dav3rs, let's try to solve this together!
I created a new space on the US servers, created the project with the command, added the certificate locally, removed the comments from the API Region, and added the https://localhost:3000/ with Real Path to '/' in the space. And the interactivity is working as expected.
Can you check if there are multipleuseAsyncStoryblok or useStoryblok in your code being used on the same page? As they include the bridge, they should be used only 1 per route. In addition, what @alvarosabu said will help us to know what it's happening to you (the reproduction link will be so helpful!). Thanks in advance Dave!

Okay, I'm using the "Local Editor", it doesn't work there. I just tried the "Online Editor", interactivity works there fine. So, I think it's related to the local editor only.

And in the Next.js integration that you tried worked locally too? I will ask my team about the "Local Editor" in the meantime.

Yes indeed! The local editor worked for Next.js.

Hi @Dav3rs, the fix was introduced in our demo environment: https://github.com/storyblok/storyblok-create-demo/commit/216d5a761b8950cc014a649626e5f64bb6dd3cdd, the project was lacking the customParent option needed to work locally.
You can add it to your instance or create one with the command again 💜


Github page documentation

User story

As an administrator
I want to have a guide / manual which provides all important information about the app
So that I can understand how the app works

Acceptance criteria

Github page is created
Guide provides information about the initial setup: installing the zip file, setting it up on teams and information about the configuration of the server (reference https://github.com/amosproj/amos2021ws03-teams-to-nextcloud/tree/main/Documentation)

Definition of done

[ ] Code is reviewed and merged to main by RM (or at least a different person from the one, who has implemented it)
[ ] The code builds without errors or if there are any - they are noted down and clearly communicated with the team
[ ] A feature is to be implemented so that it is scalable on different devices and works consistently for the rest of the team
[ ] The code goes successfully through the CI pipeline

GitHub Pages article has been created here. Real size has been communicated with assignees, closing the ticket.


On demand summaries

Fixes #6382 by exposing a new function: summarizeOnDemand all the way from Summarizer to ContainerRuntime.
The RunningSummarizer class (with assistance from a new helper class: SummaryGenerator) actually takes care of the work for generating the on demand summary. So it can only be done from a summarizer client, but we expose it all the way up to the parent client.
Possible call methods
There are two possible ways to call this, pivoting on the clientDetails.type being "summarizer" or not.
Call on interactive parent client (type !== "summarizer")

ContainerRuntime.summarizeOnDemand on parent client
SummaryManager.summarizeOnDemand on parent client

fails if this client is not tracking a spawned summarizer client

Summarizer.summarizeOnDemand on summarizer client

fails if not started yet (via run() call) or if disposed/stopped

RunningSummarizer.summarizeOnDemand on summarizer client

returns a promise to await if a summary is already in progress

Call on non-interactive summarizer client (type === "summarizer")

ContainerRuntime.summarizeOnDemand on summarizer client
Summarizer.summarizeOnDemand on summarizer client

fails if not started yet (via run() call) or if disposed/stopped

RunningSummarizer.summarizeOnDemand on summarizer client

returns a promise to await if a summary is already in progress

So as you can see, it bypasses (2) if you have access directly to the summarizer container. This is intended for testing purposes.
Result type
The summarizeOnDemand function synchronously returns an object with several promises that can be awaited as needed.

If something goes wrong in any of the piping functions, then an error will be thrown with a brief message.
If the innermost function detects that it is already generating a summary, it will return an object with an alreadyRunning property, which is a promise that resolves when the already running summary attempt completes.
If the alreadyRunning property is undefined, then we attempt to generate an on-demand summary, and we get the object containing the following promises:

generateSummary: this promise resolves successfully as soon as the summary tree is generated, uploaded to storage, and the op is submitted. It may still return some information even if one of those steps fails. It will contain the summary tree, handle from storage, and client sequence number of submitted op.
broadcastSummaryOp: this promise resolves successfully as soon as the summarizer client observes its summarize op broadcasted from the server. It will contain the "summarize" op message.
summaryAckNack: this promise resolves when all the summarizing work is complete, indicated by either a summary ack or nack op. It will contain the "summaryAck" or "summaryNack" op message.

Misc.
Some more refactoring of the generate summary data types. Still walking the boundary of balancing strong typing with simple/minimal code.
Broke out the summarize and summarizeCore functions found in RunningSummarizer into a new smaller SummaryGenerator class. I think there's more work that can be done here, possible less entangling the two, but not sure if it's worth the investment right now.
Move a lot of summarizer-related types to a new "summarizerTypes.ts" file. This both reduces circular dependencies within the files (even if they are just type deps), and reduces excess code, particularly in "summarizer.ts".
Future to-dos
Probably should add more unit testing, specifically around the new SummaryGenerator.
Should further clean up the error processing within summarize flow, particularly within Summarizer.
Some other possible actions:

When calling on interactive parent client: could spawn summarizer client on demand call, if not already running
When calling on non-interactive summarizer client: could start running summarizer on demand call, if not already running

Closing this PR in favor of 3 separate PRs. It is mostly the same end result.
I have split it into 3 separate PRs.

#6783

refactor into summarizerTypes.ts

#6788

refactor into summaryGenerator.ts

#6798

add summarizeOnDemand


Recent Sessions component on Home Page

Critical Changes
Changes
 The Recent Sessions component on the home page displays a list of all sessions that are this week

Issues Closed
New Metadata
Deleted Metadata
Definition of Done
Refer to Asteroids DoD document to see any additional details for the items below
- [ ] Place holder data is incorporated (Refer to Case Management Sample Data document)
- [ ] Base axe-core JEST test included for any new LWC (No critical violations)
- [ ] CRUD/FLS is enforced in Apex
- [ ] Permission sets & field sets are updated to account for CRUD/FLS/TABS for new object metadata
- [ ] All modified classes are unit tested (Apex) at 100% coverage

[x] UX approval or UX not necessary
[x] PR contains draft release notes
[x] Attach work item to the pull request with Lurch **Lurch:attach W-000000 or **Lurch:add
[ ] All acceptance criteria have been met

[x] Developer
[ ] Code Reviewer
[ ] QA

[ ] QE story level testing completed

W-8091283


Bug for CommitAt

if len(message) > 0 { 		command = fmt.Sprintf(rpcCommitAtLog, time) 	}
Should not it be :
if len(message) > 0 { 		command = fmt.Sprintf(rpcCommitAtLog, message) 	}

Yup, you are correct! Thanks for catching that! I’ll have it fixed in the morning!
Sent with GitHawk

Should be all set!

Thanks for fixing this. I have some question about why using an array for message, since you are only taking the first array element as commit message, why not just use a string ?
`
func (j *Junos) CommitAt(time string, message ...string) error {
var errs commitResults
command := fmt.Sprintf(rpcCommitAt, time)
if len(message) > 0 {
	command = fmt.Sprintf(rpcCommitAtLog, time, message[0])
}

`

So, this is more so a functionality of Golang and trying to use "optional" parameters in functions. I could just have a static param, and check to see if it's set like:
CommitAt(time string, message string)

...

if len(message) > 0 { do stuff }

But I wanted to make the function easier on the user so that if they forgot to put a message by some chance, it wouldn't error out at them. If the last parameter is a ...string then that means you could have many optional parameters, but they would all be message[0], message[1], ... etc.

Yup, you got it.


Navigation-message decoder

Is your feature request related to a problem? Please describe.
I would like to suggest/contribute a new additional feature. During my time as a working student, I developed a gnss-navigation message parser for the ubx-rxm-sfrbx-message, based on this amazing library.
In detail, the following messages are currently supported:

GPS - C/NAV
GPS - L/NAV
GLON - NAV
GAL - I/NAV
BDS - D1
BDS - D2 (not completely)

The proposed decoder/parser parses the raw binary-navigation message, which is available through the ubx-rxm-sfrbx-message, into a readable format. So one would be able to present/store/visualize the transmitted navigation data like:

Ephemeris
Almancs
Clock-parameters
and some more.

An additional feature might be a nav-rinex exporter
A clear and concise description of what you want to happen.

Would the proposed feature be interesting for pyubx2 (if not interesting: skip 2-4)
One could discuss my existing code and design, if something should be changed or restructured (Feedback and suggestions for improvement would be appreciated)
Develop tests
Add the feature

Would you be willing to assist with testing?
Yes, I would like to help and develop tests to secure a correct decoding of the navigation messages.
Additionally, I would suggest, that it might be useful to add some ublox-recordings in the *.ubx-format and navigation reference data for testing the navigation message decoder.
If the request relates to a specific u-blox device that is not currently supported, would you be
willing to assist with testing e.g. by contributing a test device to the project, providing real data dumps, or writing unittest scripts?
Unfortunately,  I don't have access to an ublox-gnss receiver supporting the ubx-rxm-sfrbx message at the moment. But yes, I would be willing to assist with defining tests.
Best regards

Hi Nerolf05,
I noticed you were working on this! Always happy to receive suggestions for new functionality, but can I just clarify the intention and functionality here? We're presumably talking about the Receiver Management Broadcast Navigation Data Subframe message (RXM-SFRBX), which is currently defined as follows:
    "RXM-SFRBX": {
        "gnssId": U1,
        "svId": U1,
        "reserved0": U1,
        "freqId": U1,
        "numWords": U1,
        "chn": U1,
        "version": U1,
        "reserved1": U1,
        "group": ("numWords", {"dwrd": U4}),  # repeating group * numWords
    },

Do I take it that your proposed utility takes the repeating dwrd group and parses this into readable almanac and ephemera data? If so, a few observations off the top of my head:

How did you envisage incorporating this into the main pyubx2 ubxmessage.py module? I'm thinking the simplest method might be to implement a discrete static method e.g. parse_nav_subframe(msg: UBXMessage) which takes the parsed RXM-SRFBX UBXMessage object as an input parameter and invokes your new routines to output the relevant navigation data in an appropriate format.
I note you're using the @dataclass decorator, which is fine but obviously only supported in Python 3.7+ (which would mean dropping Python 3.6 support. Probably no biggie; I don't imagine many people are still using Python 3.6).
Have you been able to test this against a real u-blox device (ublox 9 protocol 29 or later) at all?

Hi semuadmin,
Yes, I am using the ubx-rxm-sfrbx in ubx_nav_msg_parser.preprocess_ubx(), which calls the corresponding ubx_nav_msg_parser._preprocess_ubx_gnss(), which again uses the dwrd- group and lifts the actual transmitted nav data, according to the payload definitions from the integration manual.

The static-method approach sound promising, but hereby I would suggest an interface like parse_nav_subframe(msg: UBXMessage, nav_msg: GnssNavMsg) as there are some inter-subframe dependencies (for instance msb- and lsb- byte parts or even three parts for BDS-D2 nav-msg), which cannot be resolved by reading one single subframe. So maybe an existing nav-msg object is filled iteration for iteration. Hereby, I have to admit, that these inter-subframe dependencies are a little-bit tricky to consider, and my approach by marking msb or lsb fields is probably improvable.
I would leave the decision to you, although using @dataclass reduces lines of code.
Yes, I tested it with a real u-blox device (ZED-F9P), more precisely with resulting ubx-records. But in the meantime I no longer have access to it.

Hi.
I am interested in obtaining almanac and ephemeris data from ublox.  If necessary I can test code with real ublox f9p.

Hi foxittt,
that would be very helpful. Maybe you can also share ubx-records (tracking a specific gnss-system for the required amount of time to record the whole nav-msg). Those files would be very helpful for developing and testing.
Are there any issues sharing those files  (be aware that you would share your position as well)

Nerolf05, tell me which ubx-records are required. I'll try to record.

Thanks for your efforts. The required messages would be:

ubx-nav-pvt (just to verify that a valid fix was achieved)
ubx-rxm-sfrbx  (containing the actual nav-data)

I would guess it might be nice to have one record for each gnss-system (GPS, GAL, GLO, BDS) - especially for testing -, but one record with all systems at once should be fine as well. Note that you have to enable the respective gnss-systems.
Depending on your location, you might be able to receive BeiDou D2 (geo-stationary sats prn: {1-5})

How long records must be?

Guys,
Very happy to see and support this level of collaboration in relation to the pyubx2 project, but I'd be interested to understand your respective use cases as this might help me better advise where this should sit in relation to the core pyubx2 modules (or whether it's actually a separate Python application which simply uses the pyubx2 library).
What are you actually intending to do with the parsed almanac and ephemeris data once you have it?
Depending on your intended utilisation(s) (I'm guessing this is RTK related), might you not also need ubx-rxm-raw and/or ubx-rxm-rawx message data?
If it helps, I can happily provide PVT, SFRBX and RAWX time series data from GPS, GLONASS, BeiDou-1, Galileo and SBAS at my location using a decent ground plane, but I don't think I can get BeiDou-2. But @Nerolf05 it's obviously going to be easier if you can invest in your own device. As I say, a relatively cheap low-end NEO-M9N devkit is capable of providing the relevant raw data - just depends on whether you need higher-end capabilities like RTK, HNR or ADR out of the box.

How long records must be?

Presumably if you're looking at GPS L1 C/A you would need at least 12.5 minutes of SFRBX data (25 subframes * 30 seconds per subframe).
For Beidou D1 you would need at least 12 minutes of data (24 subframes * 30 seconds per subframe).
For GLONASS P I think it's also 12 minutes.

@Nerolf05 This is just a suggestion, but having considered this a little more I'm wondering if you might actually be better off developing your navigation message parser as a separate application - say, pyubxrtk? - which uses the pyubx2 library, rather than as a fork of pyubx2 itself. That way you're free to work to your own development and deployment methodology, style and release cycle.
Again, I'm not sure what your intended use case is, but if for example you have in mind some kind of RTK application using time-series ephemeris and almanac data (e.g. a Python equivalent of the RTKLIB C library), this is a highly specialised area which probably goes well beyond what pyubx2 was intended for i.e. a simple reader, parser and generator of individual UBX messages. If RTK is an intended use case, you might also need to consider pulling in RXM-RAWX data.
Either way, happy to help in any way I can (e.g. testing, or any simple modifications or enhancements to pyubx2 which might make your life easier), and I'd be more than happy to add a reference and link to the finished navigation message parser from the pyubx2 home page.

@semuadmin the intended use case would be only to monitor the decoded nav-data. At least, I don't plan to use the decoded data for more advanced analysis, like RTK.
@foxittt yes, as already mentioned, round about 15minutes would be required.

@Nerolf05 Send me your e-mail for test data.
I recorded PVT, SFRBX, MEASX and RAWX for gps
My e-mail is<EMAIL_ADDRESS>

What are you actually intending to do with the parsed almanac and ephemeris data once you have it?

I am interested in analyzing data on the location of navigation satellites from different sources: ephemeris, almanac, TLE files, SP3 files.
In geodetic-class navigation receivers, ephemeris and almanac are available decoded in the corresponding messages.
The 9 series ublox receivers are probably the most affordable dual frequency multisystem receivers available.
But the data on ephemeris and almanac are available only in raw form.

@Nerolf05 For what it's worth, I've created a separate branch decode_RXM-SFRBX which is intended to illustrate a possible approach to decoding navigation data in RXM-SFRBX in a manner that is extensible and consistent with current pyubx2 coding conventions. NB: I've only spent a few hours on this so it's very much a work in progress and only partially handles GPS data at the moment, but you'll hopefully see where I'm going with it. Have a look at RELEASE_NOTES.MD and CONTRIBUTING.MD for further information and caveats. I'd welcome your thoughts given the expertise you've already acquired in this area.

Thank you very much for the efforts it looks promising, I will try to implement my code on the weekend.

Here's an example of the sort of thing my provisional code in the decode_RXM_SFRBX branch would output
(obviously early days - bound to be some typos and would need rigorous testing, but you get the drift):
pygpsdata-20211102183339.log

Some remarks/questions on decode_RXM_SFRBX:

Do you intend to include the decode_nav_data functionality directly into the UBXMessage class, so to say on a Message-level -> This approach might lead to some difficulties for intersubframe-dependencies like BDS-D1-subframe 2/3 for toe parameter

Another idea might be to implement a ubx_lift_nav_data - function, such that the actual nav_data_parser could be used for every GnssReceiver supporting raw-nav-data output, and not only ublox-devices, like

The idea, as presented in ubxnavdecode.py would be to decode fields, such that the user can struct/group them as required?

Some remarks/questions on decode_RXM_SFRBX:
* Do you intend to include the decode_nav_data functionality directly into the `UBXMessage` class, so to say on a Message-level -> This approach might lead to some difficulties for intersubframe-dependencies like BDS-D1-subframe 2/3 for `toe` parameter

* The idea, as presented in ubxnavdecode.py would be to decode fields, such that the user can struct/group them as required?

Hi @Nerolf05,
So my position is that I want pyubx2 to remain a single-pass UBX parser - that is, parse each incoming UBX message into a single UBXMessage object. The decode_RXM_SFRBX fork was intended as an illustration of how you might decode raw nav data on this basis. This approach works OK for GPS L1 subframes but - as you say - it wouldn't work if individual attributes are spread across multiple subframes arriving as separate UBX messages, as appears to be the case for the BDS-D1 toe msb/lsb parameters.
I must confess that I haven't studied the other GNSS subframe specifications in detail yet. Do you happen to know if there are similar issues with decoding Galileo, GLONASS or other augmented GNSS subframes, or is BDS-D1 toe the only example of data being split across subframes in this way?
If decoding nav data requires the aggregation of dwrds from multiple incoming UBX messages, then (as I mentioned before) I would see that as a separate application - not part of the core pyubx2 library. It simply adds too much complexity and maintenance overhead to what is currently a fairly lightweight and agile module.
If people think there's value in continuing to develop my ubxnavdecode.py module to accommodate the other GNSS systems, and let the end user sort out some kind of 'fudge' for the BDS-1 toe msb/lsb, then I'm happy to receive contributions in this space.
But I'm inclined to think that the best and most flexible approach is to develop this as a separate application (e.g. pygnssdecode or similar) using the pyubx2 library for basic UBX message parsing. This gives you the flexibility to adopt your own programming style and accommodate some of the additional functionality you've alluded to above, like RINEX conversion or decoding nav data from non-UBX receivers. I'd strongly encourage you to continue the work you've done on this basis, rather than as a fork of  pyubx2. I will more than happily add a link and reference to it from the pyubx2 home page once it's ready.
Hope this helps. Let me know what you think.

@Nerolf05 As an afterthought, you might want to take a look at https://github.com/semuconsulting/PyGPSClient and see if you think there's any mileage in developing your nav data decode functionality as an extension of that instead? It's intended as a more general purpose GNSS utility application.
PyGPSClient already does some fairly simple processing on a 'time-series' basis. For example, it aggregates data from multiple NMEA GSV messages to produce the satellite graph and position charts.
Just a suggestion???

@semuadmin

I must confess that I haven't studied the other GNSS subframe specifications in detail yet. Do you happen to know if there are similar issues with decoding Galileo, GLONASS or other augmented GNSS subframes, or is BDS-D1 toe the only example of data being split across subframes in this way?

If you have a look at the actual payload-definitions, as far as I implemented them, there are several dependencies for the GAL-Almanacs and BeiDou in general, but in especially D2-Nav of geo-sats, which would lead to quite a number of special-cases.
Considering the point, that pyubx2 remains a UBX-parser for single messages, I would  agree that a separate module makes more sense, since decoding aggregated messages is at another processing-level. Moreover, it would make more sense for the intended modularity, as individual receivers could be added quite easy.
I would be very happy if it ended up being used by PyGPSClient.
So I could imagine that, for example, one specific (tracked) satellite can be selected and all transmitted nav-dat {ephemeris, clock-data, health, complete Almanac} is presented. Or a Rinex-Navigation file might be generated,

Ok I think we're in agreement that it probably sits outside pyubx2, in which case I'll close this issue for now (and drop my decode_RXM_SFRBX branch), but I'll flag it up as a possible future enhancement to PyGPSClient.
In the meantime, I recommend you continue to develop as a stand-alone application - say, pygnssdecode or similar - and drop me a line if I can be of any assistance with testing or whatever.
Great work so far!


œ and Œ not displayed correctly in v3

Describe the bug
The œ and Œ characters aren't displayed properly in v3.
To Reproduce
Steps to reproduce the behavior:

Go to an empty scene
Create a new dialogue and type in content that has either the œ or Œ characters
See that œ is shown as a 's' and Œ as a 'r' (both lower case) in the preview
Run the scene
See that œ is shown as a 'S' and Œ as a 'R' (both upper case)

Expected behavior
These 2 characters should be displayed correctly. Other accented characters seem to be OK AFAICT.
I get the same behaviour using variable width fonts.
Screenshots

Platform (please complete the following information):

OS: macOS 11.6
App version current v3-alpha branch, commit 9544dce1

You need to use  for Œ and  for œ. Here is the ASCII table which contains the characters you need to use.

I found an easy workaround using a mapping JSON file named like the font PNG in the fonts folder:
{
  "name": "My font name",
  "mapping": {
    "Œ": 140,
    "œ": 156
  }
}

I found an easy workaround using a mapping JSON file named like the font PNG in the fonts folder:
{
  "name": "My font name",
  "mapping": {
    "Œ": 140,
    "œ": 156
  }
}

Although it's not ASCII, would it be fair to include a font standard for a more diverse lingual set of character mappings? Not to replace ASCII, because many people have tried that, but say a French font to ensure these characters can be used in text. I could just do this in https://github.com/DeerTears/GB-Studio-Community-Assets/ but I wonder if adding multiple mappings to the same ASCII number would help prevent confusion like this for new users.


ideas for part 3

@ArturoTorres @KatharinaBuelow @SusannePfeifer007  @ClaasTeichmann @mcaballeroespejo @amelieschmitt @ChristinaAsmus @BenteTiedje
If you want, please add your ideas and suggestions for the next part!

Can we learn a little bit about project management? Like setting milestones for specific task and assigning tasks to people
Some lessons on python modular programming (environement, packages etc.) would also be nice :-)

Hi Lars,
Thanks for all the insight given in parts 1 and 2, great work!!
I may be willing to contribute by presenting GitHub pages for web page creation... perhaps from a simple markdown  presentation or similar...  I am open to discuss further this or other topics :- )
Cheers,
Arturo

Hi Lars, Katharina and Arturo,
thanks for the very nice tutorial and course in the Spitze! :-)
One topic for Part 3 of the course might be to discuss and show what to do in case of conflicts. We could edit a common file and learn how to cooperate via git (including issues, discussions, etc.).
I also like the other ideas for topics!
Best,
Claas :-)


dbt compile runs in 7+ minutes

Describe the bug
A clear and concise description of what the bug is. What command did you run? What happened?
running dbt compile routine takes upwards of 7 minutes and sometimes greater than 10 minutes. Project size listed below by dbt logs.
✗ dbt compile
15:48:46  Running with dbt=1.2.3
15:48:48  Found 537 models, 842 tests, 0 snapshots, 0 analyses, 551 macros, 0 operations, 42 seed files, 672 sources, 0 exposures, 0 metrics
15:48:48
15:54:40  Concurrency: 8 threads (target='dev')
15:54:40
15:55:14  Done.

Steps To Reproduce
In as much detail as possible, please provide steps to reproduce the issue. Sample data that triggers the issue, example model code, etc is all very helpful here.
The project is open sourced here. The issue can be reproduced by cloning the repo and running dbt compile after installing the pipenv included in the repo.
Expected behavior
A clear and concise description of what you expected to happen.
I would expect compiling to run closed to 30 seconds based on what I've seen for other dbt projects.
Screenshots and log output
If applicable, add screenshots or log output to help explain your problem.
System information
The output of dbt --version:
Core:
  - installed: 1.2.3
  - latest:    1.3.1 - Update available!

  Your version of dbt-core is out of date!
  You can find instructions for upgrading here:
  https://docs.getdbt.com/docs/installation

Plugins:
  - databricks: 1.2.3 - Update available!
  - spark:      1.2.0 - Update available!

  At least one plugin is out of date or incompatible with dbt-core.
  You can find instructions for upgrading here:
  https://docs.getdbt.com/docs/installation

The operating system you're using:
Mac Big Sur version 11.5.2, M1 chip
The output of python --version:
Python 3.9.15
Additional context
Add any other context about the problem here.

Hi @dot2dotseurat, thanks for the report.
I tried the project in my local and it took like 4 mins even without any tables created, and I guess it will be even worse with tables created.
It's spending long time to retrieve metadata from more than 200 schemas.
I guess this is not an adapter issue, but how dbt-core creates metadata which needs to run queries for each schema, IIUC.
cc @jtcohen6

Hi @ueshin,
Thank you so much for the quick reply.
As I understand it, dbt compile doesn't require a database connection to run. I just did a quick check and dbt compile runs in the expected couple of seconds if I remove the database credentials from my profile.yml (replacing host, token etc with placeholders). After replacing all of the credentials, the project again compiles in 7+ minutes.
So I think you are right that it's something about querying metadata but it's odd that dbt compile apparently can run successfully without running those queries.
Anyway, I am happy to open an issue with dbt-core if @jtcohen6 agrees that's the better place for this inquiry.
Thanks again for the quick response.

Thanks for tagging me in @ueshin - sorry for the delay.
@dot2dotseurat This isn't quite right:

As I understand it, dbt compile doesn't require a database connection to run.

While dbt doesn't require a database connection to parse your project, or list the resources from it, dbt compile does require a database connection because some Jinja-SQL models may depend on introspective queries (implicitly or explicitly) in order to template out SQL. If you have any models containing macros like (e.g.) {{ is_incremental() }}, {{ run_query(...) }}, {{ dbt_utils.get_columns_values(...) }} — all of those require running queries first, or accessing the relation cache to understand which objects do or don't exist in the database, before dbt can produce the compiled SQL for that model. That remains true, even though dbt is not actually running that model / its compiled SQL.
At the same time, I understand that cache population is a time-consuming step, especially on Spark/Databricks today. The good news is that https://github.com/databricks/dbt-databricks/pull/231 should (hopefully) speed up cache population significantly; I'm guessing that change will be landing in the next release of dbt-databricks (v1.4).
I also just opened a dbt-core issue, proposing an optional config to skip cache population entirely (https://github.com/dbt-labs/dbt-core/issues/6526), which may be faster or slower depending on the command, environment, and selection criteria.

@jtcohen6 Thanks for the reply.

The good news is that https://github.com/databricks/dbt-databricks/pull/231 should (hopefully) speed up cache population significantly

Unfortunately, #231 won't help this case. When creating the cache, dbt-core asks adapters to run list_relations_without_caching for each schema. If there are too many schemas defined in the project, the method will be called many times anyway now.
I guess it's the same with dbt-snowflake, dbt-bigquery, or other adapters?

When creating the cache, dbt-core asks adapters to run list_relations_without_caching for each schema. If there are too many schemas defined in the project, the method will be called many times anyway now.

This is true, the overall mechanism remains the same. The important difference is speed. In our testing several months ago, in the issues & draft PRs that eventually led to #231, we found that show tables in [schema] + show views in [schema] is significantly faster than show table extended in [schema] like '*'. Also, dbt will parallelize the queries for different schemas, up to the configured number of --threads.

I guess it's the same with dbt-snowflake, dbt-bigquery, or other adapters?

Correct, it's the same. On other adapters, the biggest difference is that the metadata queries powering cache population are quite fast. On dbt-bigquery, we skip running a query entirely, and just make an API call.
Even then, we do run into performance issues at serious scale (e.g. https://github.com/dbt-labs/dbt-snowflake/issues/83, https://github.com/dbt-labs/dbt-bigquery/issues/205). Hence the interest in allowing users to either do partial caching (supported as an experimental config), or skip cache population entirely (new issue/proposal I linked above).

@dot2dotseurat Is it possible to upgrade dbt to 1.3?
If possible, could you try dbt-databricks 1.3.3rc1 that contains #231 to see how much it can improve?

@ueshin I gave it a shot and I didn't see an improvement. :/


KAFKA-7904: Add AtMinIsr partition metric and TopicCommand option (KIP-427)

Add AtMinIsrPartitionCount metric to ReplicaManager
Add AtMinIsr metric to Partition
Add --at-min-isr-partitions describe TopicCommand option

https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=103089398
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

retest please

retest this please

Hi @harshach @vahidhashemian @lindong28 , can I get a review for this?

Bumping this as it has been a couple weeks. Can I get a review? @harshach @vahidhashemian @lindong28 @gwenshap

retest this please

Hi @gwenshap , thanks for the review. I have refactored the options code to use an allReplicationReportOpts Set.

Thank you. Looks good and tests pass. Merging.


[material-ui][Menu] Body is scrollable when menu is opened and browser address bar is hidden on iOS Safari

Steps to reproduce
Link to live example: https://mui.com/material-ui/react-menu/#basic-menu
Steps:

Open the MUI menu doc in iOS Safari
Scroll up, such that the browser address bar is hidden
Open the menu
Attempt to scroll the page body and observe that the page is scrollable

Current behavior
The page body is scrollable under certain conditions when the menu is opened.

Expected behavior
The page shouldn't be scrollable in any cases when the menu is opened.
Context
Might related to https://bugs.webkit.org/show_bug.cgi?id=153852
Your environment
No response
Search keywords: safari menu scroll

Duplicate of #5750. Also related to #29020.


Invalid h- prefix causes no matches

I was trying to parse my h-entry blog posts and I couldn't get any data. Only when I just copied the part of the article, it would work.
This meant the problem was somewhere else in the code. Long story short I'm using h-100 a class from Bootstrap and this is causing none of the other microformats to get parsed.
The problem is similar to #249 but the fix (#250) doesn't touch h-  entries.
I have removed the h-100 classes from my code, doesn't actually seem to affect my layout at the moment. As such I'm not sure this is an urgent bug, but it is difficult to debug.

Thanks for reporting! Can you include a snippet of the HTML markup that caused this, or a link to a post with it?
Generally, the parser should not try to parse mf2 if the class name contains numbers (spec), so there might be a regression.
Here's a minimal example:

testing

{
    "items": [
        {
            "type": [
                "h-entry"
            ],
            "properties": {
                "name": [
                    "testing"
                ]
            }
        }
    ],
    "rels": {},
    "rel-urls": {},
    "debug": {
        "package": "https://packagist.org/packages/mf2/mf2",
        "source": "https://github.com/indieweb/php-mf2",
        "version": "v0.5.0",
        "note": [
            "This output was generated from the php-mf2 library available at https://github.com/indieweb/php-mf2",
            "Please file any issues with the parser at https://github.com/indieweb/php-mf2/issues",
            "Using the Masterminds HTML5 parser"
        ]
    }
}

It's when the enclosing parent has the value.
See this example where  h-100 is a CSS class for height: 100%

Thoughts on IndieWeb

Content goes..

Result
{
    "items": [],
    "rels": {},
    "rel-urls": {},
    "debug": {
        "package": "https://packagist.org/packages/mf2/mf2",
        "source": "https://github.com/indieweb/php-mf2",
        "version": "v0.5.0",
        "note": [
            "This output was generated from the php-mf2 library available at https://github.com/indieweb/php-mf2",
            "Please file any issues with the parser at https://github.com/indieweb/php-mf2/issues",
            "Using the Masterminds HTML5 parser"
        ]
    }
}


An error dialog pops up when clicking the icon 'New Folder' on the toolbar of one ADLS Gen1 account

Storage Explorer Version: 1.16.0-dev
Build:  20201010.6
Branch: main
Platform/OS: Windows 10/ Fedora release 29/ MacOS Catalina
Architecture: ia32/x64
Regression From: Previous release (1.15.1)
Steps to reproduce:

Expand 'Data Lake Storage Gen1(Preview)' node -> Open one account.
Click 'New Folder' on the toolbar -> Check the result.

Expect Experience:
The 'Create New Directory' dialog pops up.

Actual Experience:
An error dialog pops up.

Verified this issue on build 20201014.3. Fixed.


feat: add click event

#632  👈 (View in Graphite)
main

This stack of pull requests is managed by Graphite. Learn more about stacking.


Add .dockerignore file and put node_modules in it

Add .dockerignore file
Put node_modules in it

Hey I created a PR for this issue (#56)


Make special fields work with wise-types

Support ip.src/ip.dst and other special fields with wise types

I suspect this would be for outerip.src/outerip.dst also?

outerip.src/outerip.dst are normal fields.


DroidTask benchmark suite availability

repo https://github.com/MobileLLM/DroidTask not found for me , is it a private closed source asset ?

repo https://github.com/MobileLLM/DroidTask not found for me , is it a private closed source asset ?

Yes, we set it private due to some issues, we will release soon.


Publish button ignoring ACLs + no correct info message shown

When selected a dictionary or label, the publish button is always available and do not take ACLs into account
You get always a successful message (Label/Dictionary published), despite it not being published if you do not have the correct permissions.
( in the Logs it is visible it was not published:
*ERROR* [[0:0:0:0:0:0:0:1] [1709119475475] POST /apps/aem-dictionary-translator/content/granite/dialog/dictionary/publish/items/properties/items/columns/items/column/items/form HTTP/1.1] be.orbinson.aem.dictionarytranslator.servlets.action.ReplicateDictionaryServlet ReplicationException occurred when trying to replicate dictionary in ReplicateDictionaryServlet
)
Also when you dont have the rights to create a label or update a label, you always get the info message Label saved while the operation was not successful

Issue was solved by linked pull request, error is shown in the interface now


Wrong type of MPS.get_SL

Traceback (most recent call last):
  ...
  File ".../main.py", line 134, in run_dmrg
    psi.canonical_form()
  File ".../tenpy/networks/mps.py", line 2814, in canonical_form
    return self.canonical_form_infinite(**kwargs)
  File ".../tenpy/networks/mps.py", line 2991, in canonical_form_infinite
    Gl = npc.tensordot(Kr.scale_axis(self.get_SL(i1)**2, 1), Kl, axes=['vR', 'vL'])
TypeError: unsupported operand type(s) for ** or pow(): 'Array' and 'int'

Installed from pip, mps is a no-thrills solution provided by infinite two-site DMRG.

I cant replicate this.
Also, at least since #326 the DMRG engine run can not return without calling mixer_cleanup,
so this should not happen anymore.
https://github.com/tenpy/tenpy/blob/0c5802ff10c9a10deabf64d5497bb7c66187d21f/tenpy/algorithms/mps_common.py#L737-L751


v3.7.0 release tracker

Pre-Release PR Reviews
@cognifloyd reviewed all PRs across all st2 repos involved in the release and merged everything I could. I moved others from the 3.7 project+milestone to 3.8.
st2chatops release prep
We needed to get https://github.com/StackStorm/hubot-stackstorm/pull/214 included in st2chatops which involved release hubot-stackstorm.
@cognifloyd released hubot-stackstorm v0.12.0:

created release+tag in github ui v0.12.0
ran npm login on cli and logged in as myself
ran npm publish in my clone of the hubot-stackstorm repo (checked out on master at tag v0.12.0)
verified that it was published: https://www.npmjs.com/package/hubot-stackstorm/v/0.12.0

Added that to st2chatops in https://github.com/StackStorm/st2chatops/pull/175

@cognifloyd: I have never made a release on NPM. It would have been simpler to just log in as storminstanley on the command line, and then get the OTP from a senior maintainer. But I didn't know that so, I logged in first on the website. Then, no senior maintainers were available to get me another OTP to login on CLI which is required to publish a release. That's why I created my own account and added myself to hubot-stackstorm so I could make the release.

aside: the st2chatops mess will become much better with the transition from JS based hubot to Python based OpsDroid. I'll be working more on that later this year.
Testing Before Release
volunteers welcome - @cognifloyd will not volun-tell anyone to do this as I cannot know others' time constraints.

[x] bionic -- @cognifloyd (in vagrant)

[x] bash installer succeeded
[x] st2-self-check succeeded
[x] manual st2web testing

[x] chrome (brave Version 1.35.103 Chromium: 98.0.4758.102 (Official Build) unknown (64-bit)) on linux
[x] firefox 97.0.1 (64-bit) on linux

[x] focal -- @cognifloyd (in vagrant)

[x] bash installer succeeded
[x] st2-self-check succeeded
[x] manual st2web testing

[x] chrome (brave Version 1.35.103 Chromium: 98.0.4758.102 (Official Build) unknown (64-bit)) on linux
[x] firefox 97.0.1 (64-bit) on linux

[ ] centos7 -- @nzlosh (in vm)

[x] bash installer succeeded
[ ] st2-self-check succeeded
[ ] manual st2web testing

[x] rocky8 -- @cognifloyd (in vagrant)

[x] bash installer succeeded
[x] st2-self-check succeeded
[x] manual st2web testing

[x] chrome (brave Version 1.35.103 Chromium: 98.0.4758.102 (Official Build) unknown (64-bit)) on linux
[x] firefox 97.0.1 (64-bit) on linux

Notes from Testing Before Release:
bionic
bash installer in vagrant box:

configured repo
while installing st2, had an error:  st2bionic: 20220502T165953+0000 Failed to start st2chatops.service: Unit st2chatops.service not found.
  st2bionic: 20220502T165953+0000 ##### st2 components status #####
  ...
  st2bionic: 20220502T165954+0000 st2chatops is not running.

just after creating datastore key but before creating token, an st2 command seems to have failed:  st2bionic: 20220502T170025+0000 Key written to /etc/st2/keys/datastore_key.json. Secure the permissions so only StackStorm API process and StackStorm admin access the file.
  st2bionic: 20220502T170040+0000 st2 3.7dev (abb694b85), on Python 3.6.9
  st2bionic: 20220502T170041+0000 usage: st2 [-h] [--version] [--url BASE_URL] [--auth-url AUTH_URL]
  ...
  st2bionic: 20220502T170042+0000 +----------+----------------------------------+
  st2bionic: 20220502T170042+0000 | Property | Value                            |
  st2bionic: 20220502T170042+0000 +----------+----------------------------------+
  st2bionic: 20220502T170042+0000 | user     | st2admin                         |

subsequent st2 calls seem to have succeeded, but the logs are not clear on what calls are being made (ie why is it running these things?)
nodejs and st2chatops get installed later, so the earlier st2chatops error is probably not an error.
bash installer says it succeeded

CentOS7
st2-self-check failed on the enquiry chain test.  The response schema expects a string, but an integer is given.
Attempting Test tests.test_inquiry_chain...ERROR! (38s)
Test output: ..................
id: 62705b6b7483bb205ae6b875
action.ref: tests.test_inquiry_chain
parameters:
  protocol: http
  token: 0521454b412b4c829e2ce14c5272c3ef
status: failed
result_task: valid_response
result:
  failed: true
  return_code: 1
  stderr: ''
  stdout: 'ERROR: 500 Server Error: Internal Server Error
    MESSAGE: Unable to resume liveaction "6270558d7483bb205ae6b7a6" because it is in "pausing" state and not in "paused" state. for url: http://12
<IP_ADDRESS>:9101/inquiries/6270558e93aa732b28abc467
    '
  succeeded: false

  cmd: 'sleep 3 ; st2 inquiry respond -r ''{"secondfactor": 123}'' 6270558e93aa732b28abc467'
  env:
    ST2_API_URL: http://<IP_ADDRESS>:9101
    ST2_AUTH_TOKEN: 0521454b412b4c829e2ce14c5272c3ef
    ST2_AUTH_URL: http://<IP_ADDRESS>:9100
    ST2_BASE_URL: http://<IP_ADDRESS>
status: failed (4s elapsed)
start_timestamp: Mon, 02 May 2022 22:30:19 UTC
end_timestamp: Mon, 02 May 2022 22:30:23 UTC
log:
  - status: requested
    timestamp: '2022-05-02T22:30:19.253000Z'
  - status: scheduled
    timestamp: '2022-05-02T22:30:19.517000Z'
  - status: running
    timestamp: '2022-05-02T22:30:19.735000Z'
  - status: failed
    timestamp: '2022-05-02T22:30:24.015000Z'
result:
  failed: true
  return_code: 1
  stderr: ''
  stdout: "ERROR: 400 Client Error: Bad Request
MESSAGE: Response for inquiry "6270558e93aa732b28abc467" did not pass schema validation. 123 is not of type 'string'

Failed validating 'type' in schema['properties']['secondfactor']:
    {'description': 'Please enter second factor for authenticating to '
                    '"foo" service',
     'required': True,
     'type': 'string'}

@cognifloyd Re web testing:

typing anything in magnifying glass / search field does not do anything (no filtering of results).

Is it the problem reported here: https://github.com/StackStorm/st2web/issues/925? (follow comments and I found the pull-down filters were ok, but not the edit search bit).

for actions and rules env arg does not accept key1=val1,key2=val2 format anymore. It has to be a full JSON object, {"key1":"val2","key2":"val2"}.

Interesting. Perhaps we should add that to release notes, or to the upgrade notes in st2docs?
clone/delete action modal dialogs do not account for window size correctly
clone dialog has an empty drop down list for destination pack, and I can't type a different pack name.
Why does the Flow UI still show "mistral-v2" as an option in the Runner Type drop down (under action meta)?

Why can't I type a new pack name in the packs drop down of Flow?

Do you mean when you create a new action in workflow composer?

when creating a new action if I select something other than default, then I default is removed from the list (prob because nothing is in the default pack).

I can confirmed that if you did have something, then you could choose it. Just now bringing up a clean old one to verify this is existing behaviour.

typing anything in magnifying glass / search field does not do anything (no filtering of results).
Amanda: Is it the problem reported here: https://github.com/StackStorm/st2web/issues/925? (follow comments and I found the pull-down filters were ok, but not the edit search bit).

Yes, that's it. And I get the same behavior in installs of 3.4.1 and 3.6.0 so this is an old bug.

these two are interrelated:

Why can't I type a new pack name in the packs drop down of Flow?
Amanda: Do you mean when you create a new action in workflow composer? And is this so you can also create a new pack? Or just you can't type in to filter list.

and

when creating a new action if I select something other than default, then I default is removed from the list (prob because nothing is in the default pack).
Amanda: I can confirmed that if you did have actions in defaults, then you can still go back and choose it. Verified this is same behaviour as in ST2 3.6. Also you can select default, by the oddity of selecting the blank entry - if you choose the blank entry in the pull-down, it then populates the field with "default".

When I create or edit a workflow, changing the pack doesn't allow me to type in the pack field. If there are no actions/rules etc in the default pack, then you can't select the default pack. When I create rules in the UI (vs saving in a git repo) I like to use __webui__ as the pack name (or if it's an adhoc thing not created in the webui, I would use some other dunder name) -- that's my personal convention to remember that this resource is only in the database, not preserved in git. The workflow composer would create a file, but that file would still not be committed in git or pushed to the git server, so I would still like to use something like __adhoc__ when creating new actions in the UI.
Then again, I don't really use Flow much, and this is probably a new behavioral request, so it's not a blocker.

for actions and rules env arg does not accept key1=val1,key2=val2 format anymore. It has to be a full JSON object, {"key1":"val2","key2":"val2"}.
Amanda: Interesting. Perhaps we should add that to release notes, or to the upgrade notes in st2docs?

Amanda: verified this is same behaviour in ST2 3.6. So not new. Though we should raise an issue to at least change the help for this as the help says to add key=val1

The help text is still valid for CLI usage. We should probably add support for converting this key=val syntax to json in the webui.
Since it's not a regression in this release, it is definitely not a blocker.

Dangit. We have a blocker for RockyLinux 8
$ /opt/stackstorm/st2/bin/python --version
Python 3.8.8
$ /opt/stackstorm/virtualenvs/st2/bin/python --version
Python 3.6.8

It's building virtualenvs with the wrong python. That means that the dependencies in /opt/stackstorm/st2 cannot be inherited by /opt/stackstorm/virtualenvs/* which cause a ModeuleNotFoundError: No module named 'orjson'
I'm going to try to duplicate this in the st2vagrant box.

Basically, this workflow does not follow the migration guide for RockyLinux8:
https://github.com/StackStorm/st2ci/blob/master/actions/workflows/st2_pkg_upgrade_e2e_test.yaml
https://docs.stackstorm.com/3.7/install/upgrades.html#version-specific-changes-migration-scripts
It does not run:
sudo st2ctl reload --register-recreate-virtualenvs

Hmm. And the migration guide is wrong, it shows: --register-setup-recreate-virtualenvs instead of --register-recreate-virtualenvs.
So, I manually ran the rebuild command and re-triggered the e2e tests. Everything passed. So, it's not a blocker; we just need a minor docs update.

That's a good catch before shipping it to prod! :+1:

Basically, this workflow does not follow the migration guide for RockyLinux8: https://github.com/StackStorm/st2ci/blob/master/actions/workflows/st2_pkg_upgrade_e2e_test.yaml https://docs.stackstorm.com/3.7/install/upgrades.html#version-specific-changes-migration-scripts
It does not run:
sudo st2ctl reload --register-recreate-virtualenvs

Hmm. And the migration guide is wrong, it shows: --register-setup-recreate-virtualenvs instead of --register-recreate-virtualenvs.
So, I manually ran the rebuild command and re-triggered the e2e tests. Everything passed. So, it's not a blocker; we just need a minor docs update.
Also, we need to update https://github.com/StackStorm/st2cd/blob/master/actions/setup_e2e_tests.sh to use python3.8 on EL8

Possibly should have had the st2ctl command in:
"st2ci/actions/st2_pkg_upgrade_deps_el8.sh"
Those files are to do version specific things on upgrade. Though I guess we'll never run it again to do an upgrade...

OK. Release announcement blog has been published: https://stackstorm.com/2022/05/10/stackstorm-3-7-0-released/
The only thing we didn't do was fix the packer-st2 build (see https://github.com/StackStorm/community/issues/101#tagged-releases). I'm closing this as complete.


Add documentation comments

Coverage remained the same at 100.0% when pulling f6fe35a85b0204c3035e8068635d84c6eacf23da on documentation into 5e7064e3f8895bd4e8c021a722de3a0ad560f523 on master.


samples: bluetooth: Enable PM on rd_rw612_bga

Enable power management by default for rd_rw612_bga on peripheral_ht and central_ht samples

Why on these specific samples?

Why on these specific samples?

Those are the samples we run on the CI
We want to have some BLE samples with power management enabled as a demonstration

Thank you,

Why on these specific samples?

1. Those are the samples we run on the CI

2. We want to have some BLE samples with power management enabled as a demonstration

Thank you,

Thanks.
Could you add that to the commit message? It's nice to have that sort of information in our git history :)

@jhedberg can you provide your review


Sending to Mailing List

What version of the module is the issue happening on? Does the issue happen on latest version?

0.7.11

What platform and Node.js version? (For example Node.js 0.12 on Mac OS X)

Node.js 4.4.4 on CentOS Linux 7.2.1511

Sample source code or steps to reproduce

Not really sure if this is an issue. It's more likely to be me just missing something obvious. I'm using the following to send an email to a mailing list. The mailing list has over 2,000 members.

var api_key = 'MyAPIKey';
var domain = 'domain.com';
var mailgun = require('mailgun-js')({apiKey: api_key, domain: domain});
var htmlToText = require('html-to-text');
var html = '
My message.
';
var mailOptions = {
'from': 'Me<EMAIL_ADDRESS>'to'<EMAIL_ADDRESS>'subject': 'Super Message',
'text': htmlToText.fromString(html,{ingnoreHref:true,ignoreImage:true}),
'html': html,
'o:tracking-opens':trackopens,
'o:tracking-clicks':trackclicks
};
mailgun.messages().send(mailOptions, function (sendError, body) {
if (sendError) {return console.log(sendError);}
return console.log(body);
});

I'm getting an error: "Error: Too many recipients, max is 1000" from mailgun-js 'request.js' at line 309.
This makes it seem that I'm trying to send a batch email? But I'm not. Or - more likely - I thought I wasn't. The 'to' field is a mailing list that is on Mailgun. Yes, this mailing list contains more than 1000 addresses, but surely that's the point of the mailing list.
This is confusing me. Is there some mistake I'm making trying to send to a mailing list?
Do you know where I'm going wrong?

Hello,
This is weird. Can you please check and see if you get the same error by doing a curl command to the Maingun API? Thanks.

Hi,
I used:

curl -s --user 'api:MyAPIKey' https://api.mailgun.net/v3/domain.com/messages -F from='Me<EMAIL_ADDRESS>-F<EMAIL_ADDRESS>-F subject='Test' --form-string html='
Test Message
' -F text='Test Message' -F o:tracking-opens='true' -F o:tracking-clicks='true' -F o:testmode='true'

I had to use test mode to avoid blasting the mailing list members with unwanted test messages. This returned the message "Queued. Thank you." in the response JSON and I can see in the Mailgun logs all the test messages have been delivered.
I'm pretty sure that everything is being sent, I was just surprised to see that error popping up in my Node app log file the other day. I can't see anything in the Mailgun logs to indicate that there have been any delivery refusals or rejections to do with recipient numbers.
Regards.

hi,
can anyone answer for the following queries please?
1.snippet for sending mails to mail list with node.js, html front end?
2. how to show existing mail list from mailgun into html page.?
kindly do response. i'l share my snippet what i did so far..!!!
Thank you guys


chore(build): fixing circleci cache for lock files and node_modules

Codecov Report

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

@@          Coverage Diff          @@
##           master    #55   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          16     16
  Lines         160    160
  Branches       19     19
=====================================
  Hits          160    160

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 941c636...0d14113. Read the comment docs.

Codecov Report

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

@@          Coverage Diff          @@
##           master    #55   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          16     16
  Lines         160    160
  Branches       19     19
=====================================
  Hits          160    160

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 941c636...0d14113. Read the comment docs.

@camacho one this PR is merged, I'll rebase the other PR and should resolve the hanging step for update-lockfile.


Issue downloading containers from Kitematic UI

Expected behavior
Download Kitematic Images when click on Link UI
Actual behavior
Download starts and proceeds as usual until around 80% and then the following error is thrown:
(HTTP code 404) no such image - no such image: mariadb:latest: No such image: mariadb:latest

I've tried this with multiple containers without luck

Information about the Issue
Steps to reproduce the behavior

Open Kitematic
Select Container, in this case Mariadb:latest (official)
Fails

+1