Beta branch documentation reference

Need documentation in beta branch; this version of the library is just about ready outside of that and Typescript support (#2 ).

Have at least begun to do this today so that the README matches functionality; since the older version is not worth installation for any users in 2021, the beta is the main version on NPM. Will continue to flesh that out over near future.


Release new version ?

@dblock Would you like to make a new release ?

@dblock Done

https://x.com/grapeframework/status/1802337738911359075


Cannot grab models from HuggingFace or from local GGUF files

Installation Method
Docker Engine on Linux via "sudo ollama serve" followed by "sudo docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
Environment

Open WebUI Version: 0.4.8

Ollama (if applicable): 0.5.1

Operating System: Ubuntu 24.04.1 LTS

Browser (if applicable): Firefox

Expected Behavior:
Based on what I saw in the docs (see here: https://docs.openwebui.com/features/#-model-management ) I should be able to select huggingface models or local GGUF files from going to a "experimental" section in the models tab under the admin settings. Specifically, the documentation says this:
"⬆ GGUF File Model Creation: Effortlessly create Ollama models by uploading GGUF files directly from Open WebUI from the Admin Settings > Settings > Model > Experimental menu. The process has been streamlined with the option to upload from your machine or download GGUF files from Hugging Face."
Actual Behavior:
There is no experimental menu, nor does simply doing something like putting the huggingface model url into the models searchbar to pull the model working. For the model searchbar option, I chose the example: huggingface.co/chaoticneutrals/tensorblock/hathor_respawn-l3-8b-v0.8-gguf:q4_k_m and trying to pull it doesn't work, see screenshot (gives the "download cancelled" error). I do not see any way to grab a local GGUF file.
Logs and Screenshots

Not sure about pulling direct, but for local: Admin Settings > Connections > Manage Ollama Connections (Spanner Icon) > Experimental (Show)
Some of the recent UI changes have been a little confusing for me too. I'd already found the new location for upload before, but it still took me a minute to remember. I think I read that the docs are kind of in progress, so some things are probably outdated.


Consistently use FontWeight as the name

Right now, there are uses of Weight from Fontique, TextWeight from Masonry, and FontWeight from Parley.
We should just use a single name.

This is related to https://github.com/linebender/parley/pull/211


Custom component not showing error until save is clicked

Hi @czosel & others!
I have a form in which I have few custom components (power-select, power-select-multiple, etc.) and validated-form fields.
When I focus on a validated-form's field, and focusout, without value, it shows as a validation error.
But, when I focus on a custom component & focusout without value, it doesn't.
However, if I click on Save, model.validate() is invoked, and thus, the validation error(s) are thrown.
My expectation : Even with custom components, I want to see validation error when I focus out.
Please see this twiddle, for the issue reproduction.
https://ember-twiddle.com/7693dda4ebdebcda2065c0b3087011c5?openFiles=templates.application.hbs%2C
Is it possible to get this done? Please help me with this.

Sorry, some issue with the twiddle. Twiddle not saving my code. Please find the template code.
{{#validated-form
	model=(changeset model UserValidations)
  on-submit    = (action "submit")
  submit-label = 'Save' as |f|}}

  {{f.input label="First name" name="firstName"}}
  {{#f.input label="Last name" name="lastName" as |fi|}}
    {{textarea name="lastName" onupdate=fi.update onhover=fi.setDirty
  {{/f.input}}
  {{f.submit label="Save" disabled=f.model.isInvalid}}

{{/validated-form}}

Hi @g8anusha,
the key to achieving this behaviour is calling fi.setDirty when your component goes out of focus. Getting this right can sometimes be tricky because how the event is triggered depends on the component you're using: onhover is for example just used in our demo app and won't work with textareas. When you're using the ember {{textarea}} you'll have to use input and focusout (see ember docs), with a native <textarea> it would be oninput and onblur.
I created a twiddle with a working demo.
So, to summarize: It really depends on what kind of custom component you're using. Textareas might not be a perfect example since we support them out of the box anyway. For debugging purposes, I'd recomment to bind you event listener to a custom action to see if it actually gets fired before changing it to call fi.update or fi.setDirty.
Hope that helps!
PS: My current workflow with ember twiddle is to name the twiddle, then hit File > save to GitHub Gist, and finally open the current page in a new Tab to see if everything actually has been saved.

Worked like magic! Thanks a lot! :100:


Keep server session after refresh

any idea how to keep the same session if user refresh the page ?

I know this is old - this could be done with a standard old fashioned session cookie.


Add the missing MM_GET_ROUNDING_MODE for sse native aliases.

Add the missing MM_GET_ROUNDING_MODE define for the cases where SIMDE_X86_SSE_ENABLE_NATIVE_ALIASES has been enabled.

Nice catch, thank you!
This does the right thing (which is the hard part) but it's not in the right place; native aliases should immediately follow the SIMDe versions (in this case, SIMDE_MM_GET_ROUNDING_MODE).  It looks like we copied the one for _mm_extract_pi16, but didn't update it to point to use the right function, so the correct location would be sse.h:1817.
I'll go ahead and update the patch; I'm going to need to rebase it anyways (since I need to merge several PRs tonight).

Awesome. Do you still want me to merge or should I close the PR then ?

You don't need to do anything; I'll close the PR when the updated commit hits master (actually, I'll add a line to the commit message that mentions this issue, which will make GitHub automatically close the PR and provide a way to link the commit to the PR request).


How to implement Infinity scroll ?

Hello guys, this framework seems to be cool. I have a few questions.

In the CollectionKitExample there is an example "ArticleExample" can you guys tell me if its possible to add infinite scrolling? if yes how?
Is this framework production ready?

just implement scrollViewDidScroll and observe the contentOffset. if it reaches the end, update your provider's dataSource to include more data.

Checkout the Chat example. It shows you how to do infinite scroll. The example is probably more complicated than what you need since it is loading more data at the top. if you are loading more data at the bottom it is easier.

It is production ready. I have used it in Bitmoji app. which is the most downloaded app last year.


Port SharpKML to .Net 7

Thanks for the PR. Was there a particular issue this solves?
Since .NET 7 isn't a Long Term Support release, I'd prefer not to upgrade to it but don't mind multi-targeting if the .NET Standard version doesn't work for you.
You do raise a point the unit tests need updating to .NET 6 too though


Make Postgres more configurable

I would like to run Postgres as a side car container next to the Rasa-ui docker container. The implementation of adding the connection string to the package.json seems unsafe. This would imply I am storing my credentials in plain text.
Is there anyway to get the connection string to be a runtime variable on the container. Like POSTGRES_CONNECTION_STRING or even break it out POSTGRES_USER, POSTGRES_PASSWORD, etc...

@nac2791 It is already part of an environment variable. All the values available in package.json can be overwritten with environment variables with in a continer. Readme has some info about docker. Below is a sample docker command.
docker run -e "rasanluendpoint=http://youripaddress:5000" -e "rasacoreendpoint=http://youripaddress:5005" -e "postgresserver= postgres://postgres:rasaui@localhost:5432/rasaui" -itd -p 5001:5001 rasa-ui


Implementing proxy like ben hale

Coverage decreased (-3.3%) to 92.971% when pulling a6586487709c30b7d62b85a13b560bf617ba9854 on feature-rest-proxy into 35ba8aa273bc4d920c754c24b82fb337d7791220 on develop.

Coverage decreased (-3.3%) to 92.994% when pulling 44fecb2e57697c742e39a171ca8b06b87531809b on feature-rest-proxy into 35ba8aa273bc4d920c754c24b82fb337d7791220 on develop.


components with router?

Hey,
I was just building a little experiment page, that includes a chat, an editor and and a news component.
The news component

is a standalone component that can be its own page
has some buttons to show and navigate to different news pages
represents the current view state, thus the subpage navigated to, in the browser url

The editor component

is a standalone component that can be its own page.
has some buttons to show and navigate to different news pages
represents the current view state, thus the subpage navigated to, in the browser url

The chat component

is a standalone component that can be its own page.
has some buttons to show and navigate to different news pages
represents the current view state, thus the subpage navigated to, in the browser url

If I combine those components on a new page, that has it's own navigation bar, is there a way to re-use the router information of the standalone components?
I was thinking, that some mechanism would allow me to mount all routes of those 3 components at:

/chat/...
/editor/...
/news/...

The problem I'm seeing is, that no matter which subpage is active in any of the components, there needs to be a way to maintain the current "location.href" of the other components too.

Did you or anyone think of components that have their router baked in?
What do you think in general about this idea?

I hadn't really thought of this for my own use cases, but I think it quite makes sense for more complex widget-like components. sheet-router is a functional data structure, so if you know what you're passing in you get to choose your own method of persisting that data before passing it in so you could do what you described. Does that make sense? Cheers!


Cassandra Support

I have included cassandra support for completions.
Kindly add the support for cql in coc-db as it is not supported yet. Currently using sql as filetype for cassandra. Checkout the pull request for dadbod-ui

Will be merged once https://github.com/tpope/vim-dadbod/pull/148 is completed.


Fix exportCompileCommandsFile scope access.

Fix for the warning in the Extension Host logging:

Accessing a window scoped configuration for a resource is not expected. To associate 'cmake.exportCompileCommandsFile' to a resource, define its scope to 'resource' in configuration contributions in 'package.json'.

It seems the better fix would be to make exportCompileCommandsFile have resource scoping.  It looks like it is missing the property in package.json.  I'm not sure why it wasn't set (and also why the code you're changing reads from the configuration directly instead of using this.config).
        "cmake.exportCompileCommandsFile": {
          "type": "boolean",
          "default": true,
          "description": "%cmake-tools.configuration.cmake.exportCompileCommandsFile.description%"
        },

It seems the better fix would be to make exportCompileCommandsFile have resource scoping. It looks like it is missing the property in package.json. I'm not sure why it wasn't set and also why the code you're changing reads from the configuration directly instead of using this.config. (I imagine it's because the ConfigurationReader is missing these two settings).

It doesn't seems like making it resource scope makes sense. Keeping it workspace scope keeps the current functionality. Giving users the ability to set this variable differently for different workspace folders seems like it would be best to wait for a user asking for it with an example of why it makes sense for their project?
Regarding this.config, I just followed the existing code example. I could do something different.

It doesn't seem like making it resource scope makes sense. Keeping it workspace scope keeps the current functionality.

Allowing resource scoping does not remove the current functionality.  It's the easier change.  Please add the attribute to package.json.

Allowing resource scoping does not remove the current functionality. It's the easier change. Please add the attribute to package.json.

Sure, that seems fine to me.


Remove ambiguity for unsupported official repository input

Officials repositories always have 2 part names with the first part being library and second part being the offical repository name. Names with more than 2 parts should not hit the special case for official repositories since they are not valid official repositories. Add tests for this ambiguity and to ensure that 3 part names are supports for the default repository, as used by the docker store.

Current coverage is 51.12% (diff: 100%)

Merging #2137 into master will decrease coverage by 10.00%

@@             master      #2137   diff @@
==========================================
  Files           125        125
  Lines         11432      11433      +1
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits           6988       5845   -1143
- Misses         3556       4842   +1286
+ Partials        888        746    -142

Powered by Codecov. Last update 69c7f30...24cbdc4

LGTM


Port from Cortex to Mimir

Grafana just announced this and it looks like a big improvement over Cortex.
https://grafana.com/blog/2022/03/30/announcing-grafana-mimir/

DONE


Notification height adjustment

Hi, i have a problem, the notification frame is very tall when there is a line, and if i add like 5 or 6 lines the text frame ocupates the whole screen

Hey, I'm sorry but I don't develop SQF anymore.
I can only hint you to the line which adjusts the height depending on the text height https://github.com/TanKode/a3_notifications/blob/6cf8b2abf6c0e06cb357aa3ab47ce1c3bcd0e36d/fn_notification_system.sqf#L143

Yeah i know thanks, i have asked in a cuple of forums but thanks ;) if they solve it i sed it to u ;)

Hey, I'm sorry but I don't develop SQF anymore.
I can only hint you to the line which adjusts the height depending on the text height
a3_notifications/fn_notification_system.sqf
Line 143 in 6cf8b2a
_adjustedHeight = (ctrlTextHeight _TextCtrl);

and i think u can help me with this, when it appears a notification ferst, the first one puts below the 2nd, and when the 3 appear all at the same time, the one that was below the other notifications, comes down and the second puts below the 3rd, may u see it a sec? thanks.

Hey,
I'm sorry but I don't get what's your question/issue?
To be honest I don't even know which order it was!? 😅
From top to bottom is it 1, 2, 3 or 3, 2, 1? And which one do you want?
Both are useful orders - so it's really a subjective decision.

Hey,
I'm sorry but I don't get what's your question/issue?
To be honest I don't even know which order it was!? 😅
From top to bottom is it 1, 2, 3 or 3, 2, 1? And which one do you want?
Both are useful orders - so it's really a subjective decision.

And abucle, maybe is something in open_notifications > 0 or something like but cant get how to fix, maybe you can understand it better.

Okay, so you want multiple notification to appear from top to bottom in descending order (3, 2, 1).
If I check what happens in the last if (count open_notifications > 0) it is exactly what you want!? All existing notifications are moved down.

Okay, so you want multiple notification to appear from top to bottom in descending order (3, 2, 1).
If I check what happens in the last if (count open_notifications > 0) it is exactly what you want!? All existing notifications are moved down.

Nono, I mean, I don’t want anything, the script is great! Is a bug. Shudnt the notification go down when another one appears? Becaus when the sencond appear, the 1 stays where he is, and when the 3rd appear, the 1st moves but the second stays. And is quite annoying XD. If u can take a look.

Ok,  it seems that the script ignores the added notification.
It could help to move the last line before the if and change the condition from count > 0 to count > 1.
This should fix it - but I haven't tested it.

Alright, will test Monday and tell u, thanks ;)

Alright, will test Monday and tell u, thanks ;)

didnt work... any idea?

ok everything is fixed, but thx!

Cool. Would you mind to send a PR with the fix?

/*
File: fn_notification_system.sqf
Author: TanKode
Author-URI: https://github.com/TanKode
License: MIT
Version: v1.1-dev
Parameter:
0: Text  text to display in the notification
1: Type  type of this notification or the colorname or the color as array/object
2: Speed  time in seconds to show this notification
*/
params [
["_text","",[""]],
["_type","default",["",[],{}]],
["_speed",10,[10]]
];
if (isDedicated || !hasInterface) exitWith {};
if(isNil "open_notifications") then {
open_notifications = [];
};
disableSerialization;
_display = findDisplay 46;
_alpha = 1;
_colorName = "";
_color = [];
if(typeName _type == "ARRAY" || typeName _type == "OBJECT") then {
_color = _type;
} else {
switch (_type) do {
case "error": {
_colorName = "red";
};
case "warning": {
_colorName = "amber";
};
case "success": {
_colorName = "green";
};
case "info": {
_colorName = "blue";
};
default {
_colorName = _type;
};
};
// https://material.io/guidelines/style/color.html
switch (_colorName) do {
case "red": {
_color = [0.957,0.263,0.212,_alpha];
};
case "pink": {
_color = [0.914,0.118,0.388,_alpha];
};
case "purple": {
_color = [0.612,0.153,0.69,_alpha];
};
case "deep-purple": {
_color = [0.404,0.227,0.718,_alpha];
};
case "indigo": {
_color = [0.247,0.318,0.71,_alpha];
};
case "blue": {
_color = [0.129,0.588,0.953,_alpha];
};
case "light-blue": {
_color = [0.012,0.663,0.957,_alpha];
};
case "cyan": {
_color = [0,0.737,0.831,_alpha];
};
case "teal": {
_color = [0,0.588,0.533,_alpha];
};
case "green": {
_color = [0.298,0.686,0.314,_alpha];
};
case "light-green": {
_color = [0.545,0.765,0.29,_alpha];
};
case "lime": {
_color = [0.804,0.863,0.224,_alpha];
};
case "yellow": {
_color = [1,0.922,0.231,_alpha];
};
case "amber": {
_color = [1,0.757,0.027,_alpha];
};
case "orange": {
_color = [1,0.596,0,_alpha];
};
case "deep-orange": {
_color = [1,0.341,0.133,_alpha];
};
case "brown": {
_color = [0.475,0.333,0.282,_alpha];
};
case "grey": {
_color = [0.62,0.62,0.62,_alpha];
};
case "blue-grey": {
_color = [0.376,0.49,0.545,_alpha];
};
default {
_color = [(profileNamespace getvariable ['GUI_BCG_RGB_R',0.3843]),(profileNamespace getvariable ['GUI_BCG_RGB_G',0.7019]),(profileNamespace getvariable ['GUI_BCG_RGB_B',0.8862]),_alpha];
};
};
};
if (_text isEqualType "") then {
_text = parseText _text;
};
playSound "HintExpand";
_margin = 0.01;
_width = 300 * pixelW;
_borderWidth = 10 * pixelW;
_textWidth = _width - _borderWidth;
_height = 0.01;
_posX = 0;
_posY = 0;
_displaySide = "left"; // left or right
if(_displaySide == "left") then {
_posX = _margin + safeZoneX;
} else {
_posX = safeZoneW + safeZoneX - _margin - _width;
};
private _BorderCtrl = _display ctrlCreate ["RscText", -1];
_BorderCtrl ctrlSetBackgroundColor _color;
_BorderCtrl ctrlSetFade 1;
_BorderCtrl ctrlCommit 0;
_BorderCtrl ctrlSetFade 0;
_BorderCtrl ctrlCommit 0.4;
private _TextCtrl = _display ctrlCreate ["RscStructuredText", -1];
_TextCtrl ctrlSetStructuredText _text;
_TextCtrl ctrlSetPosition [(_posX + _borderWidth), _posY, _textWidth, _height];
_TextCtrl ctrlCommit 0;
_adjustedHeight = (ctrlTextHeight _TextCtrl) + 0.035;
_TextCtrl ctrlSetPosition [(_posX + _borderWidth), _posY, _textWidth, _adjustedHeight];
_TextCtrl ctrlCommit 0;
_BorderCtrl ctrlSetPosition [_posX, _posY, _borderWidth, _adjustedHeight];
_BorderCtrl ctrlCommit 0;
_TextCtrl ctrlSetBackgroundColor [0.129,0.129,0.129,_alpha];
_TextCtrl ctrlSetFade 1;
_TextCtrl ctrlCommit 0;
_TextCtrl ctrlSetFade 0;
_TextCtrl ctrlCommit 0.4;
[_TextCtrl,_BorderCtrl,_speed] spawn {
disableSerialization;
uiSleep (_this select 2);
private _TextCtrl = _this select 0;
private _BorderCtrl = _this select 1;
_TextCtrl ctrlSetFade 1;
_TextCtrl ctrlCommit 0.3;
_BorderCtrl ctrlSetFade 1;
_BorderCtrl ctrlCommit 0.3;
uiSleep 0.3;
ctrlDelete _BorderCtrl;
ctrlDelete _TextCtrl;
};
_offsetY = 0;
if (count open_notifications > 0) then {
{
private _ctrlBorder = _x select 0;
private _ctrlText = _x select 1;
_offsetY = (_foreachindex + 1) * (_margin + ((ctrlPosition _ctrlText) select 3));
if (!isNull _ctrlBorder && !isNull _ctrlText) then {
_ctrlBorder ctrlSetPosition [_posX, _posY + _offsetY];
_ctrlText ctrlSetPosition [_posX + _borderWidth, _posY + _offsetY];
_ctrlBorder ctrlCommit 0.25;
_ctrlText ctrlCommit 0.25;
if (_foreachindex > 3) then {
_ctrlText ctrlSetFade 1;
_ctrlText ctrlCommit 0.2;
_ctrlBorder ctrlSetFade 1;
_ctrlBorder ctrlCommit 0.2;
};
};
} forEach open_notifications;
};
open_notifications = ([[_BorderCtrl,_TextCtrl]] + open_notifications) select {!isNull (_x select 0) && !isNull (_x select 1)};

There y go


Hair trait <Long hair, breads> and <Long hair, shaved sides> and change blue background

Hair traits have moved out of place, and is there a functionality to be able to  edit the background blue colours of the avatars.

This should not happen.
I was quite busy with life, but I'll try to take a look this week. Thanks for the notification.


dartanalyzer doesn't report error to ddc on internal library import

The following works right now in DDC:
import "dart:_internal";
main() =>  print(POWERS_OF_TEN);

but should trigger this error:
https://github.com/dart-lang/sdk/blob/master/pkg/analyzer/lib/error/error.dart#L139
This is not in the list of errors given to DDC via the analyzer:
https://github.com/dart-lang/sdk/blob/master/pkg/dev_compiler/lib/src/analyzer/module_compiler.dart#L198
If I run the analyzer normally (dartanalyzer on the snippet above), the error is reported.
I suspect this is an analyzer build mode issue, but not sure.
Low priority, as we hope to deprecate this path soon.

DDC no longer uses analyzer.


[docs] add CI and auto release example

It would be great if there would be an example in the documentation on how to setup the release on a ci system like, travis-ci or others.

Edit by @relekang:
Lets add guides for these:

[x] Travis CI
[ ] Circle CI
[ ] Semaphore CI

I finally got it working with Travis. I will be documenting it sometime as soon as possible, but the key is adding the following to .travis.yml. You will need version 3.4.0 for this to work.
after_success:
- git config --global user.name "semantic-release (via TravisCI)"
- git config --global user.email "semantic-release@travis"
- pip install python-semantic-release
- git checkout master
- semantic-release publish

The plan is to make python-semantic-release handle the branch change if necessary, but it does not do that yet(#39). Furthermore, there is an issue, #40, if solved will remove the need to set git user.
In addition some environment variables needs to be set PYPI_USERNAME, PYPI_PASSWORD, GH_TOKEN. Either use travis encrypt to add it to the travis file or add is as a secret on the settings page of the project on travis. The Github token will need the public_repo or repo scope.

@relekang thank you so much, this is great. I'd like to include it in Django-CC, a project me and a couple of other people are currently working on.
It would be great to add the config to the example files.

Cool, i added guide for travis and more docs about ci

@relekang thank you so much. Hey, I know I'm asking a lot here, but would you be up to creating a release section here using the regular angular parser? That would be amazing!
BTW: Merry Christmas!

Yeah, sure. Probably not today though :christmas_tree:
Happy christmas :sparkles:

@codingjoe Have to find a way to support multi environment builds first. This requires that one has only one environment in the build matrix. Any ideas on how to solve it?

Nope, this is an ongoing issue with travis ci. It s*cks that they don't start the deploy in a separate container after the build failed of succeeded. I really hope they are going to fix that soon.

What about gitlab-ci ?

@bradwood Sure, prs are welcome 😃


Forth: ms delay and multitasking

The "ms" function from the HAL section is very handy, but it doesn't play well with multitasking.
I wrote a multitasking version:
\ delay, yields while ticks < ms value
: ms ( n -- )
  ticks @ +
  begin pause dup ticks @ < until drop ;

The question is where to insert it into your code stream.  It needs to be defined before any functions that use it, of course. Redefining ms in the multitasking file makes some sense, but it's definitely a HAL thing...  I guess if you defined it this way in the HAL file, pause would resolve to a nop and you'd still have a blocking milliseconds anyway.
These "milliseconds" are only milliseconds if you've set 1000 systick-hz, of course, but that's the same issue that your ms function has too.  For everything I do, a wall-clock millisecond is a great thing to have around.  I wouldn't change that.
Anyway, not a bug, but more of a feature request.  Hardly worth a pull request.  Not tested rigorously yet, but works for me.

Great - you beat me to it, but that's what I had in mind for an upcoming excursion into multi-tasking!
Since pause does start out as nop in the core, it should be fine to adjust the ms definition in hal.fs. I also want to investigate further how this could all be combined with low-power sleeping.

Been doing just that!  It looks like sleep, which is used in the Mecrisp multitask lib that you include, enters a wait for interrupt sleep, which means that it'll get woken up by the systick every ms. If this is all the chip is doing, it's not a horrible drain.  But for real low power, you'd want to sleep for longer.
I'm not at all sure how the lowpower-task approach in multitask.fs will work with the way I'm implementing ms though -- I'd bet that I'm accidently keeping a task "running" even though it's continually pausing, which will prevent the lowpower mode from ever kicking in.
So yeah.  More thought needed about how they work together?
Oh, and I noticed that ms is both in the hal and clock files for the STM32F1 series.  Not sure what you're planning with the code architecture there, but my guess is that it could work in either.

I have yet to fully dive in, but lowpower seems to work off the assumption that tasks are suspended most of the time. We could perhaps create some timer words which will do exactly that: suspend a task and set things up so it gets restarted after a number of milliseconds. Then lowpower could kick in, and even query how much time there is to the next wakeup to select a lower-power sleep mode.
Ah yes, clock was split off from hal to reduce the amount of code needed for the USB driver version (there's a minimal hal in the suf/ dir), but it's not been cleaned up or factored out in the rest of the code yet.

I'm looking into the multitasker too and there are some problems IMHO:

The multitasker has currently no way to sleep one task a specific amount of time.
Redefining ms allows tasks to sleep but prevents the lowpower-task from going to sleep.
There is no way to register a word to be called in the future (timer callback).

I really like the idea of a callback-style timer task as it's done on NodeMCU, JavaScript, … but I'm not sure if this will be the best solution for all use-cases. One possible solution could also be to add a new state sleeping into the current multitasker which could allow the low power-task to sleep the microcontroller. But this is probably quite complex to do.
IMO an easier solution should be a timer-task which replaces lowpower&. It will executes words in a given interval or only once in the future. This task knows when something should happen and could enter sleep-mode in between.
Btw… this is the ms I'm using now. It should work even if there is an overflow in millis:
: ms ( ms_delay -- )
  millis swap   ( start ms_delay )
  begin
    pause
    2dup millis rot
  - < until
  2drop
;

I may have just found an easy solution to combine ms and lowpower-sleeping. Basically it introduces a new state into multi.fs.
-1 \ existing: Task running
0  \ existing: Task stopped
 1 \ NEW: Task waiting for interrupt

The new state get's executed in round-robin as normal but it does not count if the lowpower-task is checking if it's the only one running. This works because my (modified) lowpower-task makes sure it passes the cpu to every other running task after every interrupt.
First tests look very promising. Changes inside multi.fs are minimal and it does what it should do. I've pushed my changes to the new branch tht (e409ae194a5f9fe8c9455e76d673641c29d41b35).

Yes, but...
This favours creating tasks, which really is expensive in RAM space use. On the F103, we have 20 KB of RAM, but on the L053's we need to make do with 8 KB. I'm not convinced that we really need to keep stack state around between activations and would still much prefer a timer callback mechanism.
In Mecrisp 2.3.3, Matthias just added a quotations demo, using a nice [: ... ;] notation, so setting up little callbacks can be quite convenient.

@tht: You're totally right about the rollover in ms.  That's a sloppy, and classic, mistake!  If one cares about the rightness of milliseconds, your implementation is better.

Sure… IMHO this is not a replacement for a timer callback mechanism. This is an extension for the existing multitasker which adds a new task-switching ms without breaking sleep capabilities.
This allows a timer task to be implemented without having to worry about sleeping the CPU. I assume this also simplifies the timer task as it is now possible to use ms inside. But following this route needs a running timer task and lowpower task.
So combining the two tasks (timer and lowpower) is probably the way to go to keep memory usage as low as possible in the future. But still… the change I proposed above does not use a single byte of RAM and makes the multitasker easier to use today and for some use-cases in the future, where a timer based approach does not work.

I'm going to hold back on the multi-fs "-1" change, because I think it can also be done with timers (i.e. set up a timer and have it suspend and wake-up the task), but I'll change the ms to be multi-friendly.

Btw - one change I made is that if the arg is ≤0, then no task switch can occur - reasoning being that with "0 ms" you'll probably want to get back control asap. And it's roll-over safe due to - 0< iso <.


contain: outside is not guaranteed on zoom

Subject of the issue
When you zoom programatically for an element that's set to contain: outside, it is not quaranteed that it covers it's parent completely after that.
Your environment

Version of panzoom: current (built from master on September 14th 2019)
Chrome 78 (other browsers are affected as well)

Expected behaviour
After any zoom-operation the element should still cover it's parent completely
Actual behaviour
The element doesn't update it's offset so it might not cover it's complete parent
Steps to reproduce
See this fiddle: https://jsfiddle.net/a8jh79rp/5/
After you click on the button the image will be offset. The button does the following:

scale the image
move it
scale it back

Sometimes it will also be offset after you zoom with the mousewheel

An easy workaround as a user is to add the following code after you call panzoom.zoom():
const { x, y } = panzoom.getPan()
panzoom.pan(x, y)

See https://jsfiddle.net/a8jh79rp/7/

I just pushed a fix to the master branch that will set the minScale and maxScale options based on the contain option, if present. Give that a try and let me know if it works for you.

I can confirm that this fixes the bug with programmatic zoom for me. 👍
But I can still trigger this bug with mouse-events. I created a new fiddle for this: https://jsfiddle.net/qrmst6ky/3/
To trigger the bug you can click on "Show me the other problem".
Btw.: The minification fails for me with the latest version of this git. That's why I inserted the unminified code.

This bug also occurs, if you try to programmatically zoom after the user has zoomed with the mouseweel.
See: https://jsfiddle.net/qrmst6ky/5/
Button 1 demonstrates resetting the zoomlevel programatically after the user has zoomed by wheel
Button 2 demonstrates zooming by wheel and then zooming back

The minification is fixed on master. Working on the other issue.

I see what I did wrong. I trusted my old self and I think my old self was just wrong. :O
Hopefully that fixes it now. I tested your fiddles after pasting the new code in and it seems ok.
Thanks for opening this issue.

I am so sorry, but this issue is not completely fixed. When you zoom in very close and then reset the zoom to 1, this bug still occurs. See https://jsfiddle.net/6vqp8brt/

No need to be sorry. Thanks for testing.

I see it now in the demo. Zoom in -> pan all the way one way -> Zoom out. It has to do with my use of Math.max. If the pan value for an axis is negative, it does not normalize to zero. When the pan value is positive, everything is fine.

Nevermind, it has to do with when the scale is set. Apparently, old self was half right.

Let's give this one more try. The master branch is updated. Thanks for your patience and continuing to test with me. This has been a finicky bug.

Your test case updated seems to work https://jsfiddle.net/fr0y7avw/

I tried this test case as well https://jsfiddle.net/aefb2mq0/
At first, I thought it was bugged again, but in order for me to use getBoundingClientRect and avoid layout thrashing, when you set zoom programmatically, you have to allow for it to paint and update the dimensions before you can pan again and have it properly contain the x/y values.
In other words, I added a setTimeout around the call to pan. https://jsfiddle.net/aefb2mq0/

I did notice an issue with the second example, but I think it again has to do with the scale getting painted before calling zoom. See https://jsfiddle.net/8om096kn/.

I've added a note to the README about the need to paint https://github.com/timmywil/panzoom#a-note-on-the-async-nature-of-panzoom

I know I could work around this by using offsetWidth instead and ignore the transform. That would probably be more consistent, but it would come at the cost of constant layout thrashes and performance issues. I'd like to stick with getBoundingClientRect. Waiting for a paint seems like a worthy trade-off.

The current version of this repository fixes the bug for me :) Thanks for your support!

:tada: This issue has been resolved in version 4.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Weird issue if you create your own autoplaylist

Hi
I have a weird issue when I create my own autoplaylist.txt and replace the default autoplaylist.txt with it, the bot stops playing songs and delete songs from my new autoplaylist after I restart the bot, anyone else has this problem?

Check if the bot is showing any error messages. If it's unable to play a song, it will remove it from the list.

it doesn't like any youtube link in my autoplaylist, I moved back to the default list but now I'm greeted with even more errors and he isn't working at all...
http://pastebin.com/C8dhLa5k

I get the same problem. I spent a few hours creating a my own autoplaylist.
Let it autoplay for a few days, come back and instead of several hundred songs listed, there is only 16.
So it deleted 90% of them. Not sure what to do.

I'm having the same issue most of my playlist is direct from the bands official videos.  It shortened my 80 songs down to about 10.  Most of my songs are official band  youtube video links; the 10 were uploaded by randoms except one from Invocation array.  I corrected the list by reloading the dump file and within 15 mins the list was back to 10.

See #967 for information regarding the bot deleting songs from the autoplaylist.


Introduce tensor support

Adds all RPP framework headers and changes needed for tensor support.
Adds all unit test and performance test support for brightness tensor.

@asalmanp The I8 images now match exactly with the F16/F32/U8 visually. Please let me know if you have any other thoughts too. We could now proceed for the final  testing and merge @paveltc

@r-abishek please take a look at my latest comments and make the necessary changes.

@paveltc please run rali and rpp unit-tests on this PR so we can merge it

@rrawther @asalmanp This PR passes the unit tests.

@rrawther @asalmanp This PR passes the unit tests.

@asalmanp @kiritigowda Could we merge the PR#70 too? The unit tests have been verified.


Optional Traditional Menubar

First of all:
Thank you so much for this great editor.
I was looking for a really fast, secondary editor for quick, everyday editing of any files, not as big as my VSCode that I use for various projects. Ecode is crazy fast, opens in an instant, as fast as Notepad, way faster than Notepad++ (which was my secondary Editor for a long time) , but has as many features as you could ever want! (Well, okay, VSCode can be configured as a full-fledged IDE that can do a few more things...) and looks and feels much better than Notepad ++...
Glad i found it!
So here is  my Feature request:
Please, add an option to have a traditional menu bar instead of the gear menu.
Description:
Currently, the Ecode editor features a menu accessible only through a symbol (a gear icon) in the top right corner. While proficient users can efficiently navigate using hotkeys, beginners or those less familiar with the shortcuts might benefit from a traditional menubar option. It would be much faster to access functions this way than by the gear Icon. With its speed being one of the key features, function selection via the menu should be fast too, even if one does not know the hotkeys (jet).
Feature Request:
I propose adding a switch in the settings to enable a conventional menubar display. This would allow users to access menu items directly from a visible menubar, enhancing accessibility for those who prefer a more visual and straightforward approach to navigation.
Again, thanks for the great work!
Not many people have heared about this Editor, but I wil recomend it to other people from now on!

Thanks for your kind words. I think that it's a good idea to have it optionally and it's doable. I personally don't like missing the vertical space, and basically all design decisions are made to match my personal taste for now, but I'm more than open to provide alternatives to our users. I'd still prefer to keep the current default layout, but we can improve the keyboard bindings discoverability for new comers. I think that I'll add the shortcut to the menu (Ctrl/Cmd + M) in the Welcome screen.

Menu bar has been implemented and it will be released in the next ecode version (0.5.2, coming soon). Some demo here:
https://github.com/SpartanJ/ecode/assets/650416/2301ced3-2292-4544-882f-b7bf69e24db8


Add conversations to individual pickups

This seems relevant because people requested a feature where they can notify their group about spontaneous cancellation of pickups. To fulfill this, the pickup conversations should be readable and writable by all group members, but only pickup collectors should be notified by default about new messages.

Bruno from Solikyl requested this feature:

We have pickups when we need more intense communication and that is unfortunately not available yet on Karrot, for example when we have big pickups and need to coordinate people loading cars in one place and people helping offload in other places, or when we have spontaneous pickups that require quick action. For now it's usually one of us calling around, but I know you have discussed features like conversations for the pickups. That, combined with push notifications, might do the job in the future. I just wanted to bring to your attention that this is a much needed feature at Solikyl and probably in any other foodsaving collective that is growing in size and activity.

Ok, I added a backend implementation. The frontend is a much bigger topic though. It might make sense to built it on top of https://github.com/yunity/karrot-frontend/pull/855. Or maybe not.

So it might be a sidebar thing like the slack thread UI will work well here. On desktop it would sort of sit over the top, and on mobile be a full page.

Here's a quick idea. It's the existing <Conversation> component (reversed) put inside a <QLayoutDrawer> on the right:

... and getting it a bit more refined ...

Done :)


Silencing warnings by changing M_PI to .pi

Xcode 8.3 is displaying warnings about M_PI being deprecated. This silences the warnings by using the suggested static var pi on Double.

Thanks for the PR @z3bi I'll add a note in the changelog to credit you


Fix worker.stop not stopping worker

Fix worker.stop not actually stopping the worker
Changes

Save the asyncio.gather result as a variable and use that to cancel it

API Updates
New Features
none
Deprecations
none
Enhancements
none
Checklist

[x] Unit tests
[x] Documentation

References
Fixes #197

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 9 (11.11%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.9%) to 93.307%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pyzeebe/worker/worker.py
1
9
11.11%

Totals

Change from base Build<PHONE_NUMBER>:
-0.9%

Covered Lines:
697

Relevant Lines:
747

💛  - Coveralls


create_custom_esxi_iso.ps1: Incompatible with VMware ESXi 7.0U3d

Could not create ISO file with drivers integrated.
Affected version: VMware ESXi 7.0U3d.
spec JSON:
{     "base_image":  {                        "version":  [                                        "7.0.3-0.35.19482537",                                        "7.0.3-0.30.19482531"                                    ]                    },     "components":  {                        "Net-Community-Driver":  "<IP_ADDRESS>-1vmw.7<IP_ADDRESS>43807"                    } }

After debugging, the problem is that the value of "version" in a spec JSON file is String rather than set. In other words, using a bundle containing multiple versions such as VMware ESXi 7.0U3d ("7.0.3-0.35.19482537", "7.0.3-0.30.19482531") will encounter an error owing to invalid data type.
Workaround method:

Execute "create_custom_esxi_iso.ps1". It ends with errors.
Modify spec JSON file. Select a version in this file, and make sure the type of "version" is String.
Example:
{  "base_image":  {                     "version": "7.0.3-0.35.19482537"                 },  "components":  {                     "Net-Community-Driver":  "<IP_ADDRESS>-1vmw.7<IP_ADDRESS>43807"                 } }
Comment the following codes in "create_custom_esxi_iso.ps1" to disable spec JSON file auto-generation.

Execute "create_custom_esxi_iso.ps1" again, a custom ISO file will be successfully generated.

I think replacing
$ESXIBaseImageVersion = (Get-DepotBaseImages -Depot $ESXIBaseImagePath).Version
with
$ESXIBaseImageVersion = (Get-DepotBaseImages -Depot $ESXIBaseImagePath).Version | select -first 1
might be sufficient?

Hello everyone,
i used the script and modified the multiple versions error above to be single one as a string under "VMware-ESXi-7.0U3f-20036589-depot.zip" the latest one right now..
but another error message appears:
( New-IsoImage : For "msg" expected type str, but got tuple )

any help guys..
appreciated.

@lamw  @jellybean13 @jthat @frank1119


[stable/sysdig] Upgrade to Sysdig Agent 0.92.2

Signed-off-by: Néstor Salceda<EMAIL_ADDRESS>
Is this a new chart

NOTE: We're experiencing a high volume of PRs to this repo and reviews will be delayed. Please host your own chart repository and submit your repository to the Helm Hub instead of this repo to make them discoverable to the community. Here is how to submit new chart repositories to the Helm Hub.

What this PR does / why we need it:
This PR upgrades Sysdig  Agent to 0.92.2, its latest version.
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/chart])

/assign @bencer

/lgtm


Add version parameters for Kyma Upgrade

Description
Adds version parameters and related logic for Kyma Upgrade.

/retest

@fhivemind why do you need that feature?

This would enable more robust tests for Kyma operations and create a way for customized versioning. This PR is a dependency for a new one that will extend KCP CLI as well to allow consumption of versioning parameter.

/retest

@fhivemind please provide examples from real world about "more robust tests for Kyma operations". We do not want to have customized versioning on production. All SKRs must have same newest version. Please ping me on slack, and we can discuss that PR.


Finalize API shape of SpanExtensionsLab and merge with SpanExtensions

Merge the Span Extensions from corefxlab into corefx:
corefx: https://github.com/dotnet/corefx/blob/master/src/System.Memory/src/System/SpanExtensions.cs
corefxlab: https://github.com/dotnet/corefxlab/blob/master/src/System.Slices/System/SpanExtensions.cs

Also https://github.com/dotnet/corefxlab/blob/master/src/System.Buffers.Experimental/System/Buffers/BufferExtensions.cs

@davidfowl, can you open a separate issue for that? Thanks :)

What would the issue be? Figure out where IndexOfVectorized should live?

I am not sure. I am not familiar with System.Buffers.Experimental or which of the methods implemented there are used/useful. If IndexOfVectorized is the only one relevant to you, that could be the issue.

We should have just one IndexOf that is vectorized and that lives in System.Memory in corefx. The cut-off between non-vectorized and vectorized IndexOf performance is pretty low (IIRC, <10 bytes), and so having just one vectorized IndexOf is the right default choice. If somebody needs IndexOf hyper-optimized for just a few bytes, they can build their local specialized version of it.
What needs to happen for it is to get System.Memory building in corefx with reference to System.Vectors. @benaadams submitted PR for it a while ago, but got lost in the intricacies of the corefx build system. Let me know if you need help moving it forward.

That would be ideal.

I like the default to be vectorized, but I would not remove the optimized one and ask people to implement it on their own. Why don't we rename IndexOfVectorized to IndexOf and then move the the non-vectorized IndexOf back to corfxlab buffers.experimental and call it something liek EarlyIndexOf

Sounds good to me.
I do not plan to work on it, but it should be easy to do because of I have added the build plumbing for using SIMD in System.Memory in the corefx makefiles.

Will add it; had problem before because of the SIMD reference

Added PR for Vector path for IndexOf to corefx https://github.com/dotnet/corefx/pull/17143

This is done.


Specify system JVM as default JVM

scala-cli has the capability-- and the requirement-- of downloading and managing its own JVMs.  I believe we should be able to direct it to use a manually-installed JVM, or indeed whatever JVM is on the PATH and JAVA_HOME.  This should be able to be specified in a config file, environment variables, and as a command-line option.

Hi, as of now Scala CLI will use the JVM that's specified in the JAVA_HOME. However when using Bloop JVM 17 is required and it will be downloaded. To use scalac instead of Bloop supply option server=false on the command line.
Keep in mind that when using the bsp command Bloop is mandatory.

There is a way to do this with --java-home option and using javaHome directive, but no config entry.
E.g: //> using javaHome /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
or --java-home /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
JVM 17 is mandatory when using Bloop and it will be installed if the one provided has  a lower version. You can opt for using scalac instead of Bloop with option server=false. Note that the bsp command always uses Bloop.

My experience is the opposite at https://github.com/VirtusLab/scala-cli/issues/2126 running under my ambient JDK 20 makes it use the wrong -java-output-version; it looks like I figured out to either downgrade my JDK or use --jdk.
I haven't overcome the friction yet to have much experience with the tool, though I am eager to (at some point).
Thanks for the extra pointers.

Another input is that we'd like to use standard directives in tests on scala/scala, to replace // scalac: -Werror style pragmas. It would nice to have a standard way to say // javaVersion: 9+ or on scala 3 // test: -jdk:9 (or similar). That is, use the ambient or system JDK, but if it doesn't satisfy a version requirement, abort nicely. Maybe further convergence of scala-cli test and frameworks is possible.


Joint effort for plugins/platforms compatibility matrix

Hi,
I'm not using TACO atm (as I already have a complex legacy Cordova project) but I think the "Kit" idea is nice.
Wouldn't it be better to make a community project just around those kits and separate it from TACO?
I think many people struggle with compatibility of platforms/plugins, and yes, upgrading is really painful (I'm trying to upgrade to ios platform 4.x and it's complicated...)
I don't know which form it can take exactly but it would be nice that every cordova developer can benefit from your experience of building these kits. For example, I'll probably take the versions of your latest kits for my next release, and I'll probably revert to ios 3.9.2, as it seems you did not make any kit with 4.x. I wouldn't be aware of those kits if I didn't take a better look at TACO documentation.
Also it would be nice to be able to discuss compatibility versions of non-official plugins (for example I would be interested by push/intercom plugins as well)
I've seen this Cordova matrix but it does not really talk about versions
https://cordova.apache.org/docs/en/latest/guide/support/
There's also this effort from Telerik to verify plugins:
http://plugins.telerik.com/cordova
So I don't really know what is actionnable about this issue, but I think releasing compatibility matrix documentation would be really helpful to the community, and you seem to have build some foundations for that.
I've seen Microsoft investing more and more in Cordova community with TACO, CodePush or Ace.
But it's a huge work to review all versions of all plugins (even for Microsoft) so it should probably be crowdsourced with some system with ratings/comments/kit proposal.
What do you think? Could Microsoft take the lead on such a project and ask other strong community actors to join?

I believe that the idea of kits has moved over to cordova itself, where plugins can specify what version of cordova / platforms they work with.


Metrics properties aren't in the properties section of the docs

Contributions

[ ] I have read the contribution docs, and understand what's expected of me.

Link to the page on docs.getdbt.com requiring updates
The table at https://docs.getdbt.com/docs/building-a-dbt-project/metrics#available-properties should instead live at https://docs.getdbt.com/reference/configs-and-properties
What part(s) of the page would you like to see updated?
Right now the documentation isn't in the same place as for all other nodes.
Additional information
No response

closing this as metrics are going to be deprecated - let me know if i got this wrong @joellabes !


[Feature Request]Tail Split Required for Dynamic Symbolic

Title:
Tail Split Required for Dynamic Symbolic Application in Last Dynamic to Avoid Vector Load Blockage, Leading to Significant Performance Drop
Description:
Ref to PR #191  In the current implementation, when applying dynamic symbolic values into the last dynamic iteration, there is no tail split. This omission leads to vector load blockage, which significantly drops performance.
Problem:

The lack of tail splitting when processing the last dynamic iteration causes vector loads to be blocked.
This directly impacts the kernel’s performance, resulting in considerable performance degradation.

Affected Code:
The following snippet demonstrates where the issue arises, specifically in the loading of data into shared memory and processing:
if (0 < k) {
    // Vector load blocked here due to lack of tail split
    ...
}

Suggested Solution:
To resolve this issue, a tail split should be applied when handling the last dynamic iteration. This will ensure that vector loads are not blocked, improving performance.
Impact:
Without the tail split, the performance of the kernel is severely impacted, particularly for cases where dynamic symbolic values are used. Implementing this solution will help maintain optimal performance, especially for vector loads.

@tzj-fxz would be great if you have time to take a look.

@tzj-fxz would be great if you have time to take a look.

Thank you for your trust and guidance. I'll start from the frontend conditionally vectorized tail split, and then move forward to possible backend pass modification.

Thanks for this awesome solution, closed as resolved. :)


How can I stub an instance function of a model

I asked this question on stack overflow, but haven't got much response as of yet.
http://stackoverflow.com/questions/33265552/sails-waterline-how-can-i-stub-an-instance-function-of-a-model
We've got some instance functions on our models, and we can test those just fine. But when trying to test a different function that loads a waterline instance and then calls the instance function, we'd like to stub that call to the instance function.
For example, the function we're trying to unit test might look like this:
testFunction: function (id, cb) {
  Model.findOne(id, function (err, model) {
    model.instanceFunction();
    cb(null, model);
  });
}

I want to stub model.instanceFunction, but can't figure out how to do it. Model.prototype doesn't seem to exist at all. I can stub Model._instanceMethods, but the instance function isn't actually the function on the instance of the model, so that doesn't work.
Any ideas how to do this?

I don't have the ability to test this right now, but these code snippets should give you an idea:
https://github.com/balderdashy/waterline/blob/abd20f792d095a80655ce944839dfe7686d08c91/lib/waterline/model/index.js#L128-L133
https://github.com/balderdashy/waterline/blob/abd20f792d095a80655ce944839dfe7686d08c91/lib/waterline/model/lib/model.js#L20-L22
https://github.com/balderdashy/waterline/blob/abd20f792d095a80655ce944839dfe7686d08c91/lib/waterline/core/index.js#L67
Basically, I think you need to stub CollectionName._model.prototype.

@tobalsgithub please feel free to continue the conversation despite @sailsbot closing the issue.


qdrant_migrator: assisted migration

Description
Move each action in their own function. Introduce migrate command that will automatically run the full migration for you with confirmation at each important step.
Runbook updated: https://www.notion.so/dust-tt/Runbook-QDrant-3c06dbbb1cb44466a807010aa96b2499?pvs=4
Risk
N/A there is no critical logic in migrate.
Deploy Plan

deploy core

PMRW


Fix doc "bit width" to "byte width"

Which issue does this PR close?

Closes #.
Rationale for this change
The docstring for primitive_width says it's a bit width, but it's a byte width.
What changes are included in this PR?
Documentation changes only.
Are there any user-facing changes?
Documentation changes only. No breaking changes.

I think the CI error is because of https://github.com/apache/arrow-rs/issues/6436

Thanks @kylebarron  and @kylebarron and @mbrobbel


body max height conflict with sticky footer

recently i installed ng2-tour to my project but i counting on wierd behavior which my stick footer stucks in bottom of the view port.
after few research i saw weird style rule in this library code:
styles: ['body { max-height: 100vh; }']

tour-step-template.component.ts

i made plunker of bootstrap-4-sticky-footer with body { max-height: 100vh; } and more content (for scrolling) to demonstrate the problem:

Thanks for that information I will try to find proper sollution and update
the PR
On Wed, 17 May 2017 at 16:19 isaacplmann<EMAIL_ADDRESS>wrote:

I just tried manually removing that style on the demo and it appears to be
necessary for the scroll-into-view-if-needed functionality. Without that
style there, the page doesn't automatically scroll to the next tour step.
If you don't need automatic scrolling, I'd recommend manually overriding
that css rule in your own styles. i.e.
html > body {
max-height: auto;
}
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/isaacplmann/ng2-tour/issues/21#issuecomment-302087632,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFTvSkPg8-b3Xwm6_MUZMW2m_YMm3ra5ks5r6vP4gaJpZM4Ndur5
.

Fixed in<EMAIL_ADDRESS>


Add .editorconfig file

This config matches the one used in probot/probot and probot/settings

Thanks for the PR @BPScott! While I appreciate the sentiment behind this, I'm not sure we want to include this level of editor configuration for users when they install the template. I think editor configuration is something we'd like to remain un-opinionated about. Additionally, I'd like this scaffolding to be as lightweight as possible, so I'm gonna close this out, but I do appreciate your work on this!


Argument value is missing --p1

Hello,
I'm trying to run the tool using the example, starting from a fresh install. I have the other dependencies already installed (k8 + Minimap2). My java is also up to date:
java -version
java version "1.8.0_71"
Java(TM) SE Runtime Environment (build 1.8.0_71-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.71-b15, mixed mode)

Here is the error:
./pipeline_Minimap.sh -g genomes.txt -o output -d 20 -n 16 Number of lines in file genomes.txt : 23 Genome size gb : 0 available memory 975.016 gb /path/to/CoreDetector/MFbio.jarargument value is missing --p1
Please let me know how to address this. Thanks!
Sam

Hi Sam,
Apologies for not getting to this sooner. I managed to reproduce your error in my testing VM here by messing around with the example/genomes.txt file and making it point to empty genome files, so that would probably be the first place to look (and it would explain why it thinks the given genome size is 0gb in the error message). Have you checked that the genome files listed in your genomes.txt point to the files that you expect?

Hello,
Yes I checked the genomes.txt file, and double checked with my own fasta files, confirming that the fasta files were indeed present. Seems to have something to do with the jar file.
Number of lines in file My_Genomes.txt : 5
Genome size gb : 0
available memory 974.317 gb
Error: Unable to access jarfile MFbio.jar
I gave it read/write permissions so it should be executable...
Thanks for your help,
Sam

Hi @SamCT and @KyleMondron,
Mario, Paula and I have updated the 'Quick start' section of the readme instructions with an example genome set to test that everything works (and to augment that, I've included a Dockerfile that spins up a container with CoreDetector installed and configured for an immediate out-of-the-box setup).
Are you both able to check to see if the new instructions work for you and that CoreDetector successfully runs for you on the example genomes? Let me know if there are any issues (and we welcome feedback you have about the instructions too).


Icon-font not up to date

Looks to me like the icon-font used in Wagtail 2.5.1 is not represented by the wagtail.woff that comes with the plugin. Specifically icons for subscript and superscript of the Draftail-Editor are missing.

Fixed by c040db0395a0356b51d2303ddb8b376f1ac14877.
Will be released in a new version later today!


Add matching queue

This pull request introduces the implementation of the matching queue functionality in the backend service. It includes the setup of necessary connections, initialization of services, and handling of match requests.

Need the matching service backend to test out compatibity in the frontend side of things, will make the expected changes in my PR


Fix xref build warnings

Something went screwy on my end .. I looked right at it and didn't see it on the branch that I was working with. Thanks for the fix.


Can't remove cookie if parent path has the same name

$.cookie('CookieTest','local')
"CookieTest=local"
$.cookie('CookieTest','root',{path:'/'})
"CookieTest=root; path=/"
$.removeCookie('CookieTest')
false
If you accidentally have 2 cookies with the same name, you can't remove the local cookie without removing the same cookie name saved in the parent path.
So in this above example, you have to:
$.removeCookie('CookieTest',{path:'/'})
true
then
$.removeCookie('CookieTest',{path:'/'})
true

Hi, this project is frozen, new issues should be opened at https://github.com/js-cookie/js-cookie/issues as stated in the README.

This is the desired behavior, check this discussion:

If you accidentally have 2 cookies with the same name, you can't remove the local cookie without removing the same cookie name saved in the parent path.

It's correct. That's a browser behavior that cannot be changed. Each developer is responsible for consistently create the cookie and manipulate it using the same path, secure and domain options. We do not recommend creating 2 cookies with the same name and different options to prevent this kind of problem.
@carhartl
I believe this is also worth pointing out in a FAQ. I have added in https://github.com/js-cookie/js-cookie/issues/37. What you think?


HGDP+1KG numbers dont add up

Hi,
I am noticing a small discrepancy in numbers from the data reported in the main paper: N=4096 and unrelated N =3378,
but in the meta data file N=4097 and unrelated N = 3380 ? Could you let me know if this is correct? here is my code:
import pandas as pd
import json as js
import numpy as np
df = pd.read_csv("gnomad.genomes.v3.1.2.hgdp_1kg_subset_sample_meta.tsv",sep='\t')
df.drop(index=0,inplace=True) #deleting the QC sample CHMI_CHMI3_WGS2
df = df[df.high_quality].copy() #Drop all samples failing quality filter
df['related'] = df.relatedness_inference.apply(lambda x: js.loads(x)['related'])
df.reset_index(drop=True,inplace=True)
print(np.sum(~df.related))

I also noticed the the Table S3 in SI also has a discrepancy:
Unrelated individuals 807 2,507 3,378
807 + 2507 is 3314

Hi,
Thanks for reaching out to us. Questions about the HGDP/1KG paper should be directed to the corresponding author, Alicia Martin (armartin@broadinstitute.org).
In general, questions or feedback about the gnomAD dataset should be directed to<EMAIL_ADDRESS>GitHub issues should be limited to code-related questions or feedback.


PDF version lacks font icons

Example: page 39 of the docs PDF

This looks like a GitBook issue. I guess the only thing we could do would be to change it to other unicode characters.

We can replace them with images, which show up nicely in all versions.

I tried using the advanced-emoji plugin, but the output still doesn't show some of the emoji characters, so I removed it.

No luck for PDFs & eBooks.  Gitbook doesn't support putting emoji in tables, which defeats our purpose. Closing.

I think the plan was to move "vs articles" to the blog. Should we keep the comparison table at all?

I think is something that people would expect on the site or would look for and always ask about so putting it on Medium may not be the best idea. Better to keep it front and center? Or maybe just add some items to the FAQ around that

Yeah.  Just the comparison matrix ought to stay, imo.

The problem in the docs is keeping the comparisons up to date . On the blog it would still show up on searches and we can link to it but I think it would be more acceptable if the information is out of date.


[FEAT] Add comparison (level) library functions for Regular Expressions

Is your proposal related to a problem?

Regular expressions are a key tool for manipulating strings (subsetting, etc). It feels like this would be a good, general capability to have as a function in the comparison level library.
Users can currently define a comparison-level dictionary with SQL expressions, but the syntax of regex functions varies across backends. E.g. (courtesy of Chat GPT)
DuckDB:
DuckDB supports the use of regular expressions in queries through the built-in SQLite-compatible functions REGEXP , REGEXP_LIKE, and REGEXP_REPLACE.
Spark SQL:
Spark SQL provides a range of built-in functions to work with regular expressions. These include functions like regexp_extract, regexp_replace, regexp_replace_all, regexp_substr, regexp_split, and rlike.
Athena SQL:
Athena SQL supports the use of regular expressions in queries through the built-in RLIKE operator.
SQLite:
SQLite has a built-in regex library that can be used through the REGEXP and REGEXP_LIKE functions.
This would be useful for users to create their own comparison levels, but also for the likes of #215 where we are creating a wrapper function to compare different sections of a postcode that needs to be compatible with multiple backends.
Describe the solution you'd like

The following would return a comparison level matching the area (e.g. SW1A 2AA gives area SW) - or something similar
cll.regexp_extract_level("postcode", "^[A-Z]{1,2}")

equivalent to regexp_extract
{
    "sql_condition": "regexp_extract(postcode, '^[A-Z]{1,2}') = regex_extract(postcode, '^[A-Z]{1,2}')",
    "label_for_charts": "Regex match on '^[A-Z]{1,2}'",
}

This could also be wrapped up into an comparison library function to generate multiple levels for different thresholds of regex match. For example:
cl.regexp_extract_at_thresholds("postcode", ["^[A-Z]{1,2}", "[0-9][A-Z]{2}$"]

equivalent to
{'output_column_name': 'postcode',
 'comparison_levels': [{'sql_condition': '"postcode_l" IS NULL OR "postcode_r" IS NULL',
   'label_for_charts': 'Null',
   'is_null_level': True},
  {'sql_condition': '"postcode_l" = "postcode_r"',
   'label_for_charts': 'Exact match'},
  {"sql_condition": "regexp_extract(postcode, '^[A-Z]{1,2}') = regex_extract(postcode, '^[A-Z]{1,2}')",
    "label_for_charts": "Regex match on '^[A-Z]{1,2}'",}
  {"sql_condition": "regexp_extract(postcode, '[0-9][A-Z]{2}$') = regex_extract(postcode, '[0-9][A-Z]{2}$')",
    "label_for_charts": "Regex match on '[0-9][A-Z]{2}$'",}
  {'sql_condition': 'ELSE', 'label_for_charts': 'All other comparisons'}],
 'comparison_description': 'Exact match vs. regex at thresholds ^[A-Z]{1,2}, [0-9][A-Z]{2}$ vs. anything else'}

Describe alternatives you've considered

The only alternative considered was to do this step in preprocessing (e.g. create multiple columns for the different parts of a postcode). Unless @zslade and I are missing something obvious, we think it is more performant to perform the regex functions at the comparison stage as it will only run on pairwise comparisons that have:

Passed the blocking rules
Not been captured by preceding comparison levels

However, this has be be traded off with the fact that generating these features in preprocessing means they only need to be created once vs every time you run the model.
One other consideration for doing during preprocessing is that it would allow you to perform term frequency adjustments on the sections of your string (eg postcode area). I can't think of how these would be applied when only defining the sections of a string within a comparison level.
Additional context

More info on Regex performance - https://www.loggly.com/blog/regexes-the-bad-better-best/

Also consider adding a regex parameter within string comparison level functions to perform on subsets of columns values.
In which case you could have
cll.exact_match_level("postcode", regex="^[A-Z]{1,2}")

instead of the regexp_extract_level function above.

Closed by #1203


Add introductory paragraphs to Concepts

Per a suggestion from Luke, add introductory paragraphs here rather than in the Programming Model document.

I'll close this PR, make new edits, and have opened a new PR.


Rules: Refactor concurrency controller interface

Even though the main purpose of this refactor is to modify the interface of the concurrency controller to accept a Context. I did two drive-by modifications that I think are sensible:

I have moved the check for dependencies on rules to the controller itself. This aligns with how the controller should behave, as it is a deciding factor in whether we should run concurrently or not.
I cleaned up some unused methods from the days of the old interface before #13527 changed it.

This doesn't change any functionality and is just a simple refactor - I'm going to merge for now but please do let me know if this there's something that I missed.

Not sure how widespread RuleConcurrencyController interface

It's only used on an experimental feature and as far as I know not used yet by any downstream projects as it is relatively new.


Try pick_ik

I have read in the issues the pick ik is less optimized and currently 10x slower in most benchmarks, which is unfortunate. We should wait a bit and see if it improves.


Corrected the key name used for SkipPlan in state migration from "to_skip_plan" to "skip_plan".

In README.md, key name used for SkipPlan in state migration is "skip_plan".
But in tfmigrate/state_migrator.go, key name used for SkipPlan in state migration is "to_skip_plan".
I followed README.md and got an error "Unsupported argument; An argument named ‘skip_plan’ is not expected here".
When I changed the key name to "to_skip_plan" from "skip_plan", no error occurred.

@SuperHiroki Good catch!
This feature was introduced in the multi_state migration and then implemented in the single-state migration, so it appears to be a bug from then.
I agree that the bug should be fixed. Still, I'm concerned that the fix will introduce an incompatible change to the syntax of the HCL file, so I will try to see if we can maintain backward compatibility before cutting the next release. Thanks!

Fixed in v0.4.1 🚀

@minamijoyo
Thank you for merging the PR!!
And Thank you for developing "tfmigrate"!! I love this tool.


How to use GraphClient to retrieve groups for the logged in user?

I am creating a custom extension and for one of my requirements, i need to check if the user is part of a specific group or not and then enable or disable some content for the user.
For this i was trying to use the GraphClient. In that i do see some functions that i can use like checkMembershipExistence, but it requires subject descriptor and container descriptor. When i checked on that i could see that getDescriptor can be used to retrieve the descriptor, but then it requires storageKey and to retrieve storageKey we can use getStorageKey, but that requires subjectDescriptor.
So, can you please provide an example of how the GraphClient can be used in a custom extension?
I am trying to achieve something like this (retrieve all the groups for the currently logged in user):
https://docs.microsoft.com/en-us/rest/api/azure/devops/graph/memberships/list?view=azure-devops-rest-5.0#all_groups_for_a_use

I found the solution for this.
This is what i did:
Retrieved the user id: SDK.getUser().id
Used the id to get the user descriptor:
const client = getClient(GraphRestClient);
const userDescriptor = await client.getDescriptor(userId);

Finally fetched all the memberships:
const userMemberships = await client.listMemberships(userDescriptor.value);
Now, i have to filter the results.


[FLINK-33704][BP 1.18][Filesytems] Update GCS filesystems to latest available versions

Unchanged backport of https://github.com/apache/flink/pull/2383
Verified locally with mvn clean package -DskipTests -Pfast -Pskip-webui-build -U -T4, changing flink-conf.yaml to include:
state.backend.type: rocksdb
state.checkpoints.dir: gs://mvisser-flink-gcs-test/flink-snapshots
state.backend.incremental: true

And then run a job on this cluster

Unchanged backport of https://github.com/apache/flink/pull/2383

is this a really correct link?
for me it shows something from 2016...

Shall be https://github.com/apache/flink/pull/23837

Shall be #23837

Indeed, thanks for that!


No indicator whether cell is running in Interactive window

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: Insiders
OS Version: Mac

Steps to Reproduce:

Create a Pythno file with the following code:

# %%
import time
time.sleep(10000)

Run the above cell
I can see the interacgive window started & ther'es a collapsed cell with the line import time
That's it.
I thought it was stuck , but after expanding the cell I found the code is still running.
Note: I"m not running time.sleep, but have some other complex code (for me it stuck on the imports for some larger packages like scikitlearn, pandas, etc)
& then when running some otehr cells noticed the same thing.

I'm assuming users too would run into the same issue, issue of not knowing what's going on as there's no UI to indicate that cells are running.
@rebornix @joyceerhl /cc

Duplicate of https://github.com/microsoft/vscode-jupyter/issues/6473


Improve the visibility of mnemonic in generate-mnemonic command

Documentation changes for https://github.com/api3dao/airnode/issues/1192

Blocked by https://github.com/api3dao/api3-docs/issues/824


Update gopsutil to v3.21.3

I'm getting the following warning when building a package depending on lightstep-tracer-go:
../../pkg/mod/github.com/shirou/gopsutil/v3@v3.21.2/cpu/cpu_darwin_cgo.go:13:5: warning: 'TARGET_OS_MAC' is not defined, evaluates to 0 [-Wundef-prefix=TARGET_OS_]
We can fix this by upgrading gopsutil, see https://github.com/shirou/gopsutil/pull/1042

@codeboten - mind triggering CI for this branch? Looks like I don't have permissions

@codeboten friendly bump on this PR!

re-opening to trigger circle ci. not sure why the status didnt report here.

Looks like that did it - thanks! Is there anything I can do to get this merged in?

Could I get your review on this PR @codeboten?


Roadmap 2020 and beyond

🚀 Feature Request
Description
This is a running list to collect CLI features requests from the EdgeX community that would make it a compelling component. Prioritising and finding folks who can work on them is a separate issue.
If you have never played with the CLI, here are some links.
https://www.youtube.com/watch?v=Cclr4VdkzXY
https://blogs.vmware.com/opensource/2020/02/11/cli-edgex-foundry/
Describe the solution you'd like
 If you have a solution in mind, please describe it.
Describe alternatives you've considered
 Have you considered any alternative solutions or workarounds?

@jpwhitemn for visibility.
This Feature Request running list could be propagated during the SMA/TSC meetings if we got talk/conversations about CLI

Add registry support

Make CLI  support both Secure and Insecure EdgeXFoundry instances (issue)

Show EdgeX microservice specific metrics

Show EdgeX microservice configuration

Show/Manage CLI configuration

App Services and Device Services

Integrate CLI within SNAP

Since we have a roadmap document for the client, does it make sense to keep this issue open?


Adding SPDX Authors headers using Apache 2.0.

Signed-off-by: Scott Nichols<EMAIL_ADDRESS>

cc @grantr


tiny bug fix

translate provider sanitize strategy
ngCloak styles in header, and proper setup

Thank you!

Don't mention it :-)


#load relative path does not work for first trial only

Describe the bug**
Selection of a "#load ./test.fsx" statement followed by alt+enter opens fsi, but errors with:
stdin(1,1): error FS0078: Unable to find the file './test.fsx' in any
of
second alt+enter works fine. test.fsx is located in a subdirectory of rootdir.
Machine info

OS: Windows
.NET SDK version: 5.0.201
Ionide version: 5.7.3
VScode (1.62 insiders)

Additional context
It seems to me that on opening fsi information about SOURCE_DIRECTORY is not yet available. Second alt+enter that is clearly the case.
(I am a backer)

Hi @dgrimmin, this is a known issue that ionide currently does not properly send the first line of a script with alt+enter correctly. See the comment here: https://github.com/ionide/ionide-vscode-fsharp/issues/1562#issuecomment-894546776
It appears that the main developer has a fix in process, but in the meantime you can follow the suggestions in the comment that I linked to. If you start each session by sending a blank line with alt+enter, thereafter it should work as expected.

Also, for the backer label on issues you need to add your github name to your open collective profile. The open collective bot seems to be case sensitive https://github.com/opencollective/opencollective/issues/4006, so make sure it is exactly "dgrimmin" in your opencollective profile.

Thank you!

I'll close this one as duplicate of #1562


⚠ Minecraft has degraded performance

In 8e9d1ad, Minecraft (https://www.minecraft.net) experienced degraded performance:

HTTP code: 200
Response time: 1090 ms

Resolved: Minecraft performance has improved in 2e3ce29.


Fix link style in Safari

The shorthand does not quite work in Safari. Therefore, we need to define the different components individually.
Thanks to @PaarthAgarwal for the pointer!
Before

After

Close #155

The shorthand does not quite work in Safari. Therefore, we need to define the different components individually.
Thanks to @PaarthAgarwal for the pointer!
Before
After
Close #155

Thank you for the mention 😄


Ability to load en_core_web_sm from elsewhere

I want to be able to load a different spacy model and/or load en_core_web_sm from a different location.
Error in py_run_file_impl(file, local, convert) :
OSError: [E050] Can't find model 'en_core_web_sm'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.

This is erroring out. Need to put spacy_nlp_model object in place of "encorewebsm" on besceaLoadData.py.  Also on besceaLoadData.R need to add "if it is an argument then assign it here, otherwise ignore it."


Unable login using CKU_CONTEXT_SPECIFIC, Always getting CKR_USER_TYPE_INVALID

I'm trying to connect to a Thales DPOD HSM using Pkcs11Interop library (using C# .net Core 2.1)
I'm able to login using CKU_USER or CKU_SO with their corresponding pin codes,
but when trying to login using CKU_CONTEXT_SPECIFIC i always get an error

"Method C_Login returned CKR_USER_TYPE_INVALID"

I'm able to login normally using a provided CLI client:

where the assumed mapping should be:
Partition SO -> CKU_SO,
Crypto Officer -> CKU_USER,
Crypto User -> CKU_CONTEXT_SPECIFIC
I was not able to find any code samples/tests that using CKU_CONTEXT_SPECIFIC user logins
here is the code that I'm using:
public static ISession ConnectToHSM(out ISlot slot, SessionType sessionType = SessionType.ReadOnly)
        {
            try
            {
                // Create factories used by Pkcs11Interop library
                Pkcs11InteropFactories factories = new Pkcs11InteropFactories();

                // Load unmanaged PKCS#11 library
                IPkcs11Library pkcs11Library = factories.Pkcs11LibraryFactory.LoadPkcs11Library(factories, Options.PKCS11LibraryPath(), AppType.SingleThreaded);

                // Find first slot with token present
                slot = pkcs11Library.GetSlotList(SlotsType.WithTokenPresent)[0];

                // Open RW session
                ISession session = slot.OpenSession(sessionType);

                // Login as normal user -> Does not work in case of CKU_CONTEXT_SPECIFIC
                session.Login(CKU.CKU_CONTEXT_SPECIFIC,Options.Pin_CU());
                //session.Login(CKU.CKU_USER, Options.Pin_CO()); -> This one works
                //session.Login(CKU.CKU_SO, Options.Pin_SO()); -> This one works
                return session;
            }
            catch (Exception ex)
            {
                throw new Exception("Failed to Connect to HSM, with the following details '" + ex.Message + "'", ex);
            }
        }

Not sure if i missed something or it is an issue that needs to be solved in the library itself.
Please Advise!

As far as I understand the pkcs#11 spec the context specific user type can only be used after a C_SignInit, C_VerifyInit, C_EncryptInit or C_DecryptInit have been called and before those operations have been concluded. The intent is for it to be used to login again for token keys that require an additional PIN verification each time they are used. As the above mentioned functions can only typically be called after C_Login it usually follows that you must also already be logged in as USER or SO.

Thanks @qpernil for your comment,
I've tried what you already mentioned with LowLevelAPI41,
but unfortunately,
Same results

"Method C_Login returned CKR_USER_TYPE_INVALID"

I also cannot find useful examples online for a sample code that was able to login using CKU_CONTEXT_SPECIFIC.
Please Advise!

@alimerdan you are assuming that Crypto User maps to CKU_CONTEXT_SPECIFIC but CKR_USER_TYPE_INVALID error might indicate that your assumption is not correct. You should contact Thales support and ask them whether your assumption is correct.

So with ykcs11 you could do this :
C_OpenSession(..)
C_Login(CKU_USER, ...)
...
Something else that accesses the device...
...
C_SignInit(...)
C_Login(CKU_CONTEXT_SPECIFIC, ...)
C_SIgnUpdate(... )
C_SignFinal(...)
That last C_Login would be needed to verify the PIN if they key used requires PIN to be verified just before the Sign operation, every time, and something has 'used up' the first PIN verification (including an earlier sign operation)
Since Pkcs11Interop's high level API combines the SignInit, SignUpdate, SignFinal operations (I think) you can't do this sequence using that API.
BR
Per

In fact I would wish that the separated functions existed in the high level API to enable this use case without resorting to the low-level api. I might be missing something, please let me know if that's the case.

@alimerdan my point was that C_Login(CKU_CONTEXT_SPECIFIC,... ) should not work as used in your example according to how I understand the spec. I don't know how your particular pkcs#11 library actually works of course.

In fact I would wish that the separated functions existed in the high level API to enable this use case without resorting to the low-level api. I might be missing something, please let me know if that's the case.

@qpernil two new overloads Session::Sign(IMechanism mechanism, IObjectHandle keyHandle, byte[] keyPin, byte[] data) and Session::Sign(IMechanism mechanism, IObjectHandle keyHandle, string keyPin, byte[] data) were introduced into HighLevelAPI in Pkcs11Interop 5.0 as a part of https://github.com/Pkcs11Interop/Pkcs11Interop/issues/71 to handle the scenario you described 😉
Anyway I still believe @alimerdan is looking for some vendor defined CKU constant and needs to contact Thales support to get its value. Or maybe it can be found in their documentation. 🤷♂

@jariq Excellent ! I had missed that :-)

Thank you all lot for your support and ideas,
as @jariq said, the assumption that CKU_CONTEXT_SPECIFIC is mapped to the Crypto User role was not correct,
I've found that the Crypto User ID for Thales cryptoki.dll is<PHONE_NUMBER> - while requesting to Initialize Pin using ckdemo.exe

Accordingly I've changed my login function to:
session.Login((CKU)2147483649, Options.Pin_CU());
and It worked successfully 🥇


Unable to List or Extract Files from Some InstallShield 15 Cabinets

I have tried using unshield on the following cabinet set from InstallShield 15 installers with no luck.
sp71906.zip

Works fine for me on Linux. Could you please provide some output from unshield?

Here is the -D 3 output from unshield.

..\unshield.exe -D 3 l data1.cab
[unshield_read_headers:226] Reading header from .hdr file 1.
[unshield_read_headers:262] Failed to read from header file 1. Expected = 82137, read = 1364
[unshield_open_force_version:363] Failed to read header files
Failed to open data1.cab as an InstallShield Cabinet File

Thanks! Could you please try to edit the fopen() call  around line 72 in helper.c and change "r" to "rb", recompile and see if unshield works better?

sure

Great!


Remove user from /magic_auth/send response

Description
Removes user struct from /magic_auth/send return type since the API response is empty.
Documentation
Does this require changes to the WorkOS Docs? E.g. the API Reference or code snippets need updates.
[X] Yes

If yes, link a related docs PR and add a docs maintainer as a reviewer. Their approval is required.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (b83b201) 97.13% compared to head (b5dddbe) 97.13%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #245   +/-   ##
=======================================
  Coverage   97.13%   97.13%
=======================================
  Files          52       52
  Lines        1220     1220
=======================================
  Hits         1185     1185
  Misses         35       35

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Fix for bug 98: Object doesn't support property or method 'substring'

Looks like there is no difference between substr and substring, so I am going to leave it

:shipit:


Decouple model traits from measure traits?

Presently there are some measure traits which are overloaded model traits. Specifically these are:
name, target_scitype, supports_weights, prediction_type, and docstring. To this list, this PR would require us to add supports_sample_weights (currently a measure trait but needs to be a model trait as well).
edit Another method that is used by both models and traits is info
The problem with this state of affairs is that model traits are defined in MLJModelInterface, but we plan to have StatisticalMeasures as a separate packages (see #416). Although MLJModelInterface is very lightweight, to have it as a dependency of StatisticalMeausures.jl is like to jeopardise the latter's adoption as a general use package, independent of the MLJ stack.
Here are two possible resolutions:

Introduce a tiny ultra-lightweight package MachineLearningMethodStubs.jl (or whatever) to contain only stubs for traits used throughout the MLJ stack. It becomes a common dependency of MLJModelInterface and the eventual StatisticalMeasures.jl package.

We move the current measures code into a module (or make it a package already) and keep its traits private. That is, their use will need to be qualified in, say, MLJBase and elsewhere.

Probably option 1 is the least disruptive; we could do this and still postpone the creation of StatisticalMeasures, which I expect to be a little painful.
Thoughts or other ideas anyone?
cc @DilumAluthge @ven-k @tlienart

How about, we define functions privately and overload only when it is already available for non-measure functions and keep this issue open to track these traits that need to be cleaned up? (; as we will have a lot of measure-code moved this might not be a hassle). I will close this. And once the brainstorming for StatisticalMeasures is done we go ahead with 2 in your comment.
This might be messy for a while though.
However if there are more use-cases for MLMethodsStub (like ease for MLJ development when StatisticalMeasures are involved), it sounds good.

Okay, after some discussion on slack and at this thread, I propose we create our own StatisticalTraits.jl package to contain fallback definitions of model traits and measures traits.
To do:

[ ] Create and register new StatisticalTraits.jl package with default trait definitions, and a stub for info.

[ ] Update MLJModelInterface to import traits from above

[ ] Update MLJScientificTypes to import info from above

[ ] Check if MLJBase needs any changes

I will roll out the changes only after testing all repos locally.
Self-assigning.

Okay, after some discussion on slack and at this thread, I propose we create our own StatisticalTraits.jl package to contain fallback definitions of model traits and measures traits.
To do:

[ ] Create and register new StatisticalTraits.jl package with default trait definitions, and a stub for info.

[ ] Update MLJModelInterface to import traits from above

[ ] Update MLJScientificTypes to import info from above

[ ] Check if MLJBase needs any changes

I will roll out the changes only after testing all repos locally.
Self-assigning.


Usage: does Dynaconf have to run on import?

Hello!
All of the examples show a module level variable called settings that is populated on import. Is there any reason that the settings couldn't be loaded inside a load_settings function or similar that's called in a __main__ or inside a constructor somewhere?
In our project we try and avoid executing logic or side-effecting code at import (especially when it comes to reading files etc), but I just wanted to make sure there wasn't a good reason that was the way all of the examples were structured. Was it just demonstrating how Dynaconf can replace a settings.py of constants?
If there are gotchas it might be worth documenting them somewhere (apologies if that's already been done).
Thanks!

Starting on 3.0.0 you have to create your dynaconf instance
from dynaconf import Dynaconf
settings = Dynaconf(...)

The settings object above is lazy loaded, so it is going to be reading files only when first value is accessed e.g print(settings.KEY)
You can if you need, create a factory for your settings (I guess this is only needed for tests)
from dynaconf import Dynaconf

def create_settings():
	return Dynaconf(...)

if __name__ == "__main__":
    settings = create_settings()

Most of the examples in /example folder is using old style (pre 3.0) where you could import a pre-instantiated object called dynaconf.settings

Ok cool, it was the factory approach I was looking at. Our reasoning being that we wanted to run a bit of logic to customise the loading, e.g. take CLI arguments or check for the presence of various files etc.
I also think in general it's a bit naughty to execute too much logic during import. E.g. you've reminded me that the filesystem wont' be touched until first access, but it's still a bit of a singleton with those downsides. For loading in a library this makes things a bit awkward, but the factory solution works for us.
Thanks again for your rapid reply

This is going to be kept open to be added to the docs.


Add Azure Batch and Google Batch Executors to RTD Index

Currently, the Azure Batch and Google Batch executor instructions aren't listed in the Plugins index, meaning that most users probably don't know about it. This should fix it.
There are a few additional fixes to be done in a separate PR, as noted in #1633.

Feel free to merge whenever you like.

Closed because this was a bit premature to make public. See #1633.


Cache-Control “private” and “no cache” are mutually exclusive

A client noticed a few AJAX caching issues after upgrading a site to 3.7 - HTTP responses for admin/pages/updatetreenodes?ids=123 after re-ordering pages were cached, so pages kept “popping” back to their old sort order after dragging & dropping.
The cache headers that were being set were:
Cache-Control: must-revalidate, private
Cache-Control: max-age=2592000

Maybe the max-age is the root cause of my client’s issue (their cPanel installation was adding that), and I resolved the issue by setting HTTP.cache_ajax_requests: false, but it struck me as odd that no-cache and no-store are removed inside the CMS.

After a bit more investigating, I found:

Default Cache-Control header is no-cache, no-store, must-revalidate
When a session cookie is present, that changes to must-revalidate, private

While adding private makes sense when a session cookie is present, I don’t see any reason for removing no-cache and no-store? HTTPCacheControl::privateCache() explicitly removes those two directives, and HTTPCacheControl::disableCache() will remove all existing directives, making it impossible to have both “private” and “no cache”.
HTTP caching is hard, as evidenced by the amount of discussion on the PR to implement this, so maybe there’s a good reason for this behaviour that I’m not aware of.
I’ve tested 4.2.0, but the Cache-Control headers don’t seem to change at all when a session cookie is present... If I can confirm that’s not just a problem on my end, I’ll open a separate issue

Yes, this is a critical bug that needs fixing in 3.7

Do you think this is related to the errors I have seen in my 3.7.1 logs as mentioned in this post:

Note that looks expected. You can't move down in priority without using the force option

Can confirm we are seeing weird caching issues in the admin on multiple 3.7.x sites.
Typically the user is trying to edit a page or create a new one, and keeps getting sent to a previously visited page instead.

Just been looking to recreate this and thought it’s worth mentioning for anyone else trying to recreate it - your environment type may be important. I can only recreate the issue in live mode.

I think my original issue description may be wrong. While privateCache() and disableCache() may appear mutually exclusive, disableCache() takes priority so subsequent calls to privateCache() won’t actually have any effect.
The issue I was experiencing is specifically because the framework now caches AJAX requests by default. It appears that we used to attempt to do that, but actually had the inverse effect:

https://github.com/silverstripe/silverstripe-framework/blob/3.6.6/control/HTTP.php#L345-L351 - If cache_ajax_requests is switched ON (the default), set $cacheAge = 0;
https://github.com/silverstripe/silverstripe-framework/blob/3.6.6/control/HTTP.php#L353-L397 - unless $cacheAge is greater than 0, set no-cache

Given the above, I would suggest we switch the default value for HTTP.cache_ajax_requests to false to restore the pre-3.7 behaviour.

Are we seeing AJAX requests respond with 304s even when the content should be different? that's not so good :(

@dhensby In my case the server is responding with a 200 status code, but the browser is still using the cached response:

The full response headers are:
Accept-Ranges: none
Cache-Control: max-age=2592000
Cache-Control: must-revalidate, private
Content-Type: text/json;charset=UTF-8
Date: Fri, 10 Aug 2018 14:02:34 GMT
Expires: Sun, 09 Sep 2018 14:02:34 GMT
Last-Modified: Fri, 10 Aug 2018 14:02:34 GMT
Vary: X-Requested-With
X-Controller: CMSPagesController
X-Frame-Options: SAMEORIGIN
X-Include-CSS: <a bunch of CSS>
X-Title: SilverStripe+-+Pages
X-UA-Compatible: IE=Edge,chrome=1

Right, so I didn’t spot at first that the Expires: date above is Sep - i.e. +1 month. Turns out that comes from my .htaccess, even though I have the following directive:
ExpiresDefault                                      "access plus 1 month"
...
ExpiresByType application/json                      "access plus 0 seconds"

The above is having no effect because we’re using the wrong content type (text/json):

https://github.com/silverstripe/silverstripe-framework/blob/3.7.1/admin/code/LeftAndMain.php#L1035
https://github.com/silverstripe/silverstripe-framework/blob/3.7.1/control/PjaxResponseNegotiator.php#L96

So I think that’s the root cause (for me anyway). It just never happened before now because we always forced AJAX request caching off 😕

OK - so I think this issue is going to be exacerbated by people running the default H5BP .htaccess file, particularly the removal of etags.
It should not be possible to get a cached response loaded by the browser because our responses all come with etags computed from the body of the response, so getting different responses on the same URL will be stored as separate cache entries.
@bcairns please can you provide some more indepth steps to reproduce the issues; I cannot reproduce any caching issues when adding pages. Are you using htlm 5 boilerplate .htaccess rules?

Forward ported to 4.x via https://github.com/silverstripe/silverstripe-admin/pull/629 and https://github.com/silverstripe/silverstripe-framework/pull/8360

All PRs merged, feel free to reopen the issue if there's something that hasn't been resolved. @dhensby's original PR at #8318 has "fixes #8289", so in combination with that and @chillu's forward porting to 4.2 I'm happy to close


Refactor webhook utils and add tests

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
We now refactor some utility functions into a dedicated utils package and add unit tests to them.
We also use a sync.Map for the container map in the bindings webhook.
More unit tests will follow later on.
Which issue(s) this PR fixes:

None
Does this PR have test?
Yep

Special notes for your reviewer:
None
Does this PR introduce a user-facing change?

None

/lgtm


Drop old Rubies and update RuboCop

Fix (and disable) new offenses.
Ruby 2.3 EOL was 31 months ago. We even don't test with them.

I don't understand why actions are cancelled again…

can you please rebase this PR?

@coorasse sorry, I've overlooked a notification about your request. I see you've already done a lot of changes like these and I'm glad to see them. I'll publish a new (fresh) PR if something will be wrong.