FLIP-style animations

Discussed briefly in https://github.com/drcmda/react-spring/issues/5#issuecomment-378661614, but it would be nice if react-spring could calculate the to/from states if not explicitly provided, similar to react-flip-move which uses the FLIP technique (ultimately getBoundingClientRect)
For example, in react-move you can do this (just by changing the class/styles on the items, they "react")
<FlipMove className="items"
  duration={350}
  staggerDurationBy={20}
  staggerDelayBy={20}
>
  {items.map(item => (
    <div
      className={item.key === selected ? "item selected" : "item"}
      onClick={() => this.selectItem(item.key)}
      key={item.key}>{item.key}</div>
  ))}
</FlipMove>

https://codepen.io/techniq/pen/qNrYYb
https://codepen.io/techniq/pen/WxaxaR

Here is the discussion I had with the author of react-flip-move while creating this - https://github.com/joshwcomeau/react-flip-move/issues/69
A similar thing could probably be done like react-morph which is useful to morph shared elements between route states (like Android does a good bit with it's material design
Maybe if you do not provide a from/to to <Transition> it calculates the top/left/width/height automatically (or just diffs the styles and lets the spring transitions them).  With flip you apply them, capture the styles, then invert them.
Anyways, I don't have any specific need right now, but thought it was worth having a conversation.  Thanks again for the awesome library.

@techniq i fixed some serious flaws today in the old transition implementation so that it allows for endless elements to fade out even if elements with the same key come in again. And when that worked it had me thinking, isn't transition actually all we need for morph/flip? I mean at the lowest level.
For instance this demo: https://codesandbox.io/s/n8797r26l
Of course it would need a primitive around this that makes it easier to define a "screen", mark elements that bear a relation and distribute values between them so that they can move towards one another. Have to think a little bit how an api would look like - i've seen react-morph but there must be an easier, more intuitive way ...

@drcmda this would be very interesting. Your demo went down. Shouldn't we keep the ticket open though given it's a valid concern? I'd love this feature.

Moving conversation on FLIP from #642 to here.

Message from @ShanonJackson on December 14:
@dbismut @aleclarson
Yeah i do know about react-use-gesture we use it heavily at the moment to create multi column drag-and-drop. Love the library.
This is going to be a long detailed post just around spit balling ideas i have a lot of these but these are just a few.
Feature: Layout Animation
Framer Motion has positionTransition which is a prop they've added to their own animated.div style component, with it you can do animation between layout states without "math"; By math based layouts i mean https://codesandbox.io/s/20yw31pyxj?from-embed where each sibling is position with translate3d + absolute, the problem with positioning elements this way is that you essentially have to write all the code yourself in the parent to do css's job for it without access to everything css has access to. I.E Try doing a math based layout where each item has a dynamic height.
This previously would be very very hard to achieve with react but now with useLayoutEffect it becomes a lot easier in-fact you can implement it with react-spring in very little code here's a terrible demo i threw together for you https://codesandbox.io/s/drag-and-drop-spring-j2r9j
Problems with this implementation (Framer Motion shares this problem):

State is stored in the component with the last position why this isn't a good idea is it makes multi-column transitions impossible because elements will always remount when they move from a sibling of 1 element to a sibling of another. (Currently react keys are used in the demo to allow sibling layout animation)

How to fix it:
Create  a component that controls transitions between single and multi layouts, it renders nothing but its children wrapped in a context in which they store their state to persist it between remounts.
How it works:

Each component's position and last position is animated to and from relative to the BODY and not relative to its container.

Each components position is stored by a unique id (key or otherwise) that gets registered in the context to store state of the last position this key is controlled in the parent by people using layout so that they can decide what key system they want to use.

**Why is this useful **

Drag-And-Drop (obviously, single and multi column)
List reordering animations (see react-spring's own examples)
List item deleting animations (where you want items around the deleted one to slide nicely into their new position)
Any other use case where you want an element to move nicely between two DOM positions without having to calculate the math yourself in the parent.
No other animation library i know about can currently do multi column layout animations this easily which i believe will put react-spring way ahead of the game.

Feature: animate auto width and auto height with hooks
Currently, there's some issue floating around somewhere where the react-spring says that because hooks don't control the render phase animations to "auto" couldn't be implemented and will remain solely as a feature of the render props API.
This is true, however work arounds are possible i'll leave it up to peoples imagination as to what the API should actually look like but just an idea of how this can be achieved is something like this...
const AnimateAuto = () => {
        const auto = useSpring({width: 0,  to: {width: "auto"}});
        return auto((styles) => {
                <animated.div style={styles}>
                </animated.div>
         })
}

(where auto is implemented as wrapping the children in a fragment, and injecting into that fragment that fixAuto stuff)
Obvious issues: useSpring currently doesn't return a function, i'm just merely using it as a hypothetical of how it could be achieved with hooks.
Why?

We should move away from the render props API now that hooks exist; Correct me if i'm wrong but everything in the render props API can be achieved with the hooks API except "auto" animations meaning we could potentially remove the render props API after this is released
importing Spring from RenderProps just for "auto" animations adds to bundle size because people now have to use both useSpring + Spring as apposed to just useSpring. (hope that makes sense)
"React-Resize-Aware" and Resize observer polyfil are incredibly buggy where-as react-springs implementation (fixAuto) is more reliable and should be brought into the hooks api.

I have a lot more ideas and would love to share our actual internal code to show you where our pain points are at the moment with react-spring. I absolutely adore the library i just want to reiterate on that fact as i know my earlier post could be seen as an attack but really i just want this library to flourish.
Here is a snapshot of our component library from 1 year ago, we're about to open source an incredibly polished version in January, just posting it here to give you guys an idea of how we use react-spring.
http://qrious-storybook.s3-website-ap-southeast-2.amazonaws.com/

SpawnModal (which grows/shrinks modal from a location) uses react-spring, useTransition to animate in/out of DOM and for width/height animations.
DatatableEdit (Drag-And-Drop multi-column uses react-spring + react-use-gesture + virtualization for performance written from scratch)
Checkbox animates tick with react-spring
Modal useTransition to animate in/out of DOM and for width/height animations
DataTable when you click a row it chains animations to show/hide that content.

Wish i had a deployment floating around of our Component Library today to show how heavily we use it now as apposed to 1 year ago. DatatableEdit would shrink its source code by about 70% if we didn't have to calculate all that position math for drag and drop.

Another message from @ShanonJackson after I mention react-flip-toolkit:
I have used the old "auto" animation stuff in react-spring and based on my experience trying a lot of other methods out there react-spring is the most reliable (by other methods i mean  resize observer polyfill and react-resize-aware).
Now after you've linked that i understand what you mean by the FLIP technique; No i haven't tried that library it looks interesting from a sense that their using transform: matrix instead of translate3d i'm assuming its because matrix performs better. However they're also storing state on the DOM elements themselves with data- properties which is extremely dirty. Also after a quick skim read of the source they're also not leveraging useLayoutEffect which makes layout stuff alot more trivial.
Would be great if this was built into react-spring as i feel like layout animations are an extremely common use case of this library.

it looks interesting from a sense that their using transform: matrix instead of translate3d i'm assuming its because matrix performs better

@ShanonJackson I'm no expert but FLIP is not only used to move objects, but also to efficiently scale objects. matrix allows to pass all transforms in one line.
As I was saying in the other thread, we are going to investigate this, but it's going to take some time as it's a tricky issue if we want to make it work in complex use cases without automagic.

Definitely investigate, like i mentioned though a solution in which "lastPosition" isn't stored in state but rather in context in a higher parent will allow multi-column transitions (by animating fixed relative to the body or absolute relative to the body and in a portal to avoid position: relative parents). In combination with useLayoutEffect.
The simple sandbox i posted above shows how it can already be possible in react-spring but is still abit buggy.
I don't know if anyone is actually asking for scale objects, i definitely don't need this as part of my use case and in my mind it makes the entire solution more complicated because then you have to apply inverse scale to children to offset the scaled parent which is extremely dirty. (Not to mention all the other edge cases that come with transform: scale like the fact the box model will remain as the unscaled box model unless you calculate negative margins to normalize the box model to the scaled value).

@satvikpendem Hey. Yes we are aware of framer motion and yes this lib does things with a different API approach. The talk you’ve linked to is over a year old and before framer motion even came out. I believe framer motion is indeed the answer to what Matt is saying.
As you hinted, React use gesture exists in the react spring family precisely for that purpose: simplifying how to handle events using hooks. What you’re describing can easily be achieved with useHover.
React-spring doesn’t deal with human interactions and I don’t think it will ever do.
All in all framer motion is a fantastic lib. It is definitely simpler to grasp than the react spring ecosystem because it binds interaction and animation internally.
React spring gives you more control over your logic.

My apologies David, I think my comment comes across as more flippant and careless than I had intended it to. I am sure of course you all know about the framer motion library, didn't mean to imply you didn't, just wanted to put it out there. I also just now saw the useHover hook, I should read the docs more thoroughly. Is there a separate website for the docs or is it all in the README for now?

It’s just a Readme for now but I’m actively working on a separate documentation website for v7. I should be able to release it shortly in a beta state (within 24h).

Definitely off-topic but yes iv'e seen how framer motion handles this and like i said they handle it through internal state by storing the last position in memory; They then leverage keys to make sure the component is not remounted and therefore last position is not lost.
The problem with this strategy as mentioned above are that your element can not change parents otherwise it will disregard the key and remount and therefore not animate.
I'm proposing if we do this feature in react-spring we do it with a overall wrapping context say <Layout> and that it's only purpose is to store positions of layout animated children.
When a child moves, it triggers useLayoutEffect in which it asks its useContext(LayoutContext) for its last position and uses getBoundingClientRect for its new position. It then animates relative to the BODY from its old to its new position.
This strategy allows for multi-column, multi-layout transitions. Or in short transition from 1 position in the DOM to any other position in the DOM.
I put together a simple sandbox in which i showed how this is possible in react-spring but it only stores lastPosition in state and not in context.
https://codesandbox.io/s/drag-and-drop-spring-j2r9j

@ShanonJackson  this is now definitely on topic, since we are precisely discussing FLIP. I’d be curious to see where framer motion uses useLayoutEffect? As far as I know it uses getSnapshotBeforeUpdate which makes sure you get the latest position of your component (right before the render cycle).
The problem with storing the last position with useLayoutEffect is that it might change as a side effect resulting in the stored position being unsynced.
Anyway there is this lib that you might know that uses some of the principles you mentioned: https://github.com/jlkiri/react-easy-flip

Mmmm good point iv'e migrated so deep into hooks iv'e forgotten about getSnapshotBeforeUpdate; You're actually very right i only skim read react-motion's source code and found that useLayoutEffect in "use-layout-sync.ts" and didn't track it any further assuming  that's how they were doing it. However on further study of the source they do indeed use getSnapshotBeforeUpdate.
getSnapshotBeforeUpdate will definitely be easier to implement because of side-effect control as you mentioned its very easy to end up in an infinite loop or a closure with useLayoutEffect which can be avoided using useRef. getSnapshotBeforeUpdate wont have these issues.
react-easy-flip looks good, they do it in 850B (minified and gzipped) which is really impressive. However they're using standard css physics (css transitions), and dirty manual DOM manipulation (appending styles dynamically to the dom reference). Didn't check for support for multi-column position transitions but i'm going to assume they can't because they're checking for children of the ref''ed node.
We can definitely do better with getSnapshotBeforeUpdate + store positions in context for multi-column + spring physics; would also be nice to add the standard spring API stuff in like "immediate" etc because there's going to be solid use-cases where people don't want layout animation in certain cases.

There's been more discussion of the possible API over here:
https://gist.github.com/aholachek/32d0aef7fce6a5523dec238714e0d23b
No estimate on when any code will be written, though.

react-easy-flip author here. Since 4.0 (which is WIP at the moment) instead of dirty DOM manipulations (= setting transforms directly) the library will use WAAPI. The refs are not used anymore and data-flip-id is used instead. Multi-column (shared layout) transitions are possible because the useFlip hook queries the data-flip-id, so even if an element with a certain data-flip-id is unmounted from one position but mounted at some other position, it can be animated.

I ran into issues with the other contenders react-easy-flip and react-flip-toolkit (such as FLIP animations inside components with perspective 3d transforms). We went with this solution: https://github.com/stackshirts/react-spring-flip. It's really not a lot of code and you could copy/fork it to do something custom. Or make an enhancement request - we're waiting for feature requests. If you're already using react-flip this library is tiny.


shell: add select command

Added select command similar to one available in the legacy shell.
In order for the command to be selected, it must meet the criteria:

It is a static command.
It is not preceded by a dynamic command.
It has at least one subcommand

It means you can select either root command or its subcommands as long as above criteria are met.
If you type select you can still use the tab button to prompt and autocomplete all available commands.
To unselect the command one must press ctrl + s.
You can only select a command if no other command is selected. This prevents ambiguity as to what action should be performed.
Fixes #10769
Signed-off-by: Jakub Rzeszutko<EMAIL_ADDRESS>

Codecov Report

Merging #13425 into master will decrease coverage by 0.03%.
The diff coverage is 9.87%.

@@            Coverage Diff             @@
##           master   #13425      +/-   ##
==========================================
- Coverage   48.56%   48.53%   -0.04%
==========================================
  Files         319      319
  Lines       46567    46601      +34
  Branches    10761    10768       +7
==========================================
  Hits        22616    22616
- Misses      19360    19394      +34
  Partials     4591     4591

Impacted Files
Coverage Δ

subsys/shell/shell_utils.h
57.14% <0%> (-22.86%)
:arrow_down:

subsys/shell/shell_cmds.c
41.08% <0%> (-3.46%)
:arrow_down:

subsys/shell/shell_help.c
74.39% <100%> (ø)
:arrow_up:

subsys/shell/shell_utils.c
36.91% <12.82%> (-7.05%)
:arrow_down:

subsys/shell/shell.c
22.45% <3.57%> (+0.38%)
:arrow_up:

arch/posix/core/posix_core.c
91.91% <0%> (+1.01%)
:arrow_up:

Continue to review full report at Codecov.

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

I do not see much point in this select command in new shell. We have tab completion nowadays and it is working well so no need to type much stuff anyway. This code just means more memory consumption without much benefit.

@jukkar : In my opinion it is also not "must be" feature. @pfalcon suggested that the lack of such a command could be a regression compared to the previous solution.

@jukkar : In my opinion it is also not "must be" feature. @pfalcon suggested that the lack of such a command could be a regression compared to the previous solution.

We have been removing lot of code and APIs from 1.14. We also had the "select" command removed by accident in new shell so I see no harm not introducing it back. My main point is that it adds more memory requirement to shell which is quite large already.

ok, I do not mind closing it.


Recommended-CI preset does not remove log spam in CI

I tried using the new config preset in CI, but the log is still spammed by processing messages:
| Linting...
/ Linting...
- Linting...
\ Linting...
| Linting...
/ Linting...
- Linting...
\ Linting...
| Linting...
/ Linting...
- Linting...
\ Linting...
| Linting...

The presets removes the file from the message, but not the message itself.
In the current state, it doesn't feel like an improvement over the normal recommended preset.
Here are some logs for comparison:

CI-Preset: https://github.com/faker-js/faker/actions/runs/11712439536/job/32623113396?pr=3252#step:6:11
Normal-Preset: https://github.com/faker-js/faker/actions/runs/11712327435/job/32622732784?pr=3252#step:6:11

Maybe the following preset definition solve the issue?
  'recommended-ci': {
    name: 'progress/recommended-ci',
    plugins: {
      progress: plugin
    },
    rules: {
      "progress/activate": process.env.CI === 'true' ? 0 : 2
    },
  }

Found in:

https://github.com/faker-js/faker/pull/3252

Should be fixed in v3.0.1.


METRON-1749: Update Angular to latest release in Management UI

Contributor Comments
Link to ASF JIRA ticket: https://issues.apache.org/jira/browse/METRON-1749
This Pull Request contains work which updates the Management UI's version of Angular from version 2.0.0 to version 6.1.8. A few benefits we get from this:

We gain new Angular features, such as Ahead-of-Time compiling, the new HttpClient library, ng update and Http Interceptors.
All npm dependencies now pass an npm vulnerability audit.
We are able to use rxjs version 6, which includes easier import paths and pipe method chaining.

Changes Included

Update to Angular 6.1.8 and related dependencies.
Change angular-cli.json to angular.json and update file schema.
Update karma.conf.js schema.
Update scripts to use the Ahead-of-Time flag.
Update name of scss file containing fonts to _fonts.scss.
Switch from HttpModule and the Http service to HttpClientModule and the HttpClient service.
Replace the deprecated OpaqueToken with InjectionToken.
Replace the Observable emit method with next.
Update Observables to use the pipe() method for operators.
Update rxjs operator names, import statements and usage.
Remove lines in templates accessing service properties.
Remove passing event payloads if event handler method does not accept parameters.
Remove .compileComponents() since it is no longer needed because webpack inlines templates and css before tests are run.
Remove assertions testing Angular libraries.
Update unit tests to use the HttpClientTestingModule and HttpTestingController to mock responses.
Move default headers to an HttpInterceptor.
Format changed files to comply with rules set in tslint.config and make it easier to find errors while upgrading.

Testing
To test with unit tests, please follow the instructions listed in the Testing section of the Management UI README.
To test manually, please follow the instructions listed in the Development section of the Management UI README and visit http://localhost:4200.
Other Considerations

We have a handful of nested Observable subscriptions in the Management UI. We would be better off using an operator like switchMap instead.
I updated the font paths to use absolute paths because of this issue. We should watch this issue in hopes that Angular's compiler gives us an option in the future to change the default path it applies.
The dialog box is currently implemented as a class without a template that utilizes jQuery to manipulate element class attributes. This is slightly confusing because it does not adhere to Angular best practices, and I see no advantage to the way it's currently implemented. I think this class would be much better off as an Angular component using either the class binding shorthand syntax or NgClass instead of jQuery to handle class additions/removals.

Pull Request Checklist
Thank you for submitting a contribution to Apache Metron.
Please refer to our Development Guidelines for the complete guide to follow for contributions.
Please refer also to our Build Verification Guidelines for complete smoke testing guides.
In order to streamline the review of the contribution we ask you follow these guidelines and ask you to double check the following:
For all changes:

[x] Is there a JIRA ticket associated with this PR? If not one needs to be created at Metron Jira.
[x] Does your PR title start with METRON-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.
[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

For code changes:

[ ] Have you included steps to reproduce the behavior or problem that is being changed or addressed? Not applicable

[x] Have you included steps or a guide to how the change may be verified and tested manually?

[ ] Have you ensured that the full suite of tests and checks have been executed in the root metron folder via:
mvn -q clean integration-test install && dev-utilities/build-utils/verify_licenses.sh

[x] Have you written or updated unit tests and or integration tests to verify your changes?

[x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

[x] Have you verified the basic functionality of the build by building and running locally with Vagrant full-dev environment or the equivalent?

For documentation related changes:

[x] Have you ensured that format looks appropriate for the output in which it is rendered by building and verifying the site-book? If not then run the following commands and the verify changes via site-book/target/site/index.html:
cd site-book
mvn site

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.
It is also recommended that travis-ci is set up for your personal repository such that your branches are built there before submitting a pull request.

@sardell Thanks for the contribution and write-up! Can you update your description and reference the discuss thread on this?
First Q looking through the change list in the description - most of this doesn't mean much to me as I'm not intimately familiar with Angular. But I'm assuming all of those changes are things that were either deprecated or changed in syntax and/or api with the new version of Angular?

@mmiklavc Thanks for starting to take a look at this PR!
You're correct that all these changes are related to the upgrade. This means removing deprecated items, updating syntax, utilizing updated or new features where we should and accommodating for much stricter type checking and compiling.

@mmiklavc I was unable to find a discuss thread. I understand this is standard for a change like this and I would be more than happy to start one if the community desires, otherwise I'm hoping we can have that discussion here. There is now a brief explanation in the Contributor Comments for why we should upgrade the Management UI like we did the Alerts UI.

Just wanted to let everyone know about a small fix I just pushed to here. It turns out that Angular's HttpParams class is immutable. As a result, I needed to set new parameters when instantiating the class rather than assigning the instance to a variable and setting params through the variable.
For further reading, here's the official documentation.

I tried to spin up full dev and needed to make a couple changes to metron.spec to get the management-ui RPM to properly build.
That section ends up being.
%package        config
Summary:        Metron Management UI
Group:          Applications/Internet
Provides:       config = %{version}

%description    config
This package installs the Metron Management UI %{metron_home}

%files          config
%defattr(-,root,root,755)
%dir %{metron_root}
%dir %{metron_home}
%dir %{metron_home}/bin
%dir %{metron_home}/web
%dir %{metron_home}/web/expressjs
%dir %{metron_home}/web/expressjs/node_modules
%dir %{metron_home}/web/expressjs/node_modules/.bin
%dir %{metron_home}/web/management-ui
%dir %{metron_home}/web/management-ui/assets
%dir %{metron_home}/web/management-ui/assets/ace
%dir %{metron_home}/web/management-ui/assets/ace/snippets
%dir %{metron_home}/web/management-ui/assets/fonts
%dir %{metron_home}/web/management-ui/assets/fonts/Roboto
%dir %{metron_home}/web/management-ui/assets/images
%dir %{metron_home}/web/management-ui/license
%{metron_home}/bin/metron-management-ui
/etc/init.d/metron-management-ui
%attr(0755,root,root) %{metron_home}/web/expressjs/node_modules/*
%attr(0755,root,root) %{metron_home}/web/expressjs/node_modules/.bin/*
%attr(0755,root,root) %{metron_home}/web/expressjs/server.js
%attr(0644,root,root) %{metron_home}/web/expressjs/package.json
%attr(0644,root,root) %{metron_home}/web/management-ui/styles.*.css
%attr(0644,root,root) %{metron_home}/web/management-ui/favicon.ico
%attr(0644,root,root) %{metron_home}/web/management-ui/index.html
%attr(0644,root,root) %{metron_home}/web/management-ui/*.js
%attr(0644,root,root) %{metron_home}/web/management-ui/*.ttf
%attr(0644,root,root) %{metron_home}/web/management-ui/*.svg
%attr(0644,root,root) %{metron_home}/web/management-ui/*.eot
%attr(0644,root,root) %{metron_home}/web/management-ui/*.woff
%attr(0644,root,root) %{metron_home}/web/management-ui/*.woff2
%attr(0644,root,root) %{metron_home}/web/management-ui/3rdpartylicenses.txt
%attr(0644,root,root) %{metron_home}/web/management-ui/assets/ace/*.js
%attr(0644,root,root) %{metron_home}/web/management-ui/assets/ace/LICENSE
%attr(0644,root,root) %{metron_home}/web/management-ui/assets/ace/snippets/*.js
%attr(0644,root,root) %{metron_home}/web/management-ui/assets/fonts/Roboto/LICENSE.txt
%attr(0644,root,root) %{metron_home}/web/management-ui/assets/fonts/Roboto/*.ttf
%attr(0644,root,root) %{metron_home}/web/management-ui/assets/images/*
%attr(0644,root,root) %{metron_home}/web/management-ui/license/*

The changelog should also be updated with something similar to
%changelog
* Wed Obt 31 2018 Apache Metron<EMAIL_ADDRESS>- 0.6.1
- Update files in Management UI from Angular upgrade

@justinleet Thanks for catching that! I updated metron.spec accordingly.

While admitting some ignorance of proper formatting and unfortunately even best practices, I'm pretty good with the changes, particularly with @tiborm's +1.
I know there's the checkbox, but I did want to double check that all the dependencies hit the license reqs. In particular, that nothing that had to be upgraded changed licenses to something incompatible.  Given the large version leap, I think it bears calling out specifically.
@sardell Did you run through that exercise?

Thanks, @justinleet for reminding! We made a license evaluation with a tool named license-check.
It reported the followings:
├─ MIT: 20
├─ Apache-2.0: 2
├─ BSD*: 1
├─ (OFL-1.1 AND MIT): 1
└─ UNLICENSED: 1
The one unlicensed dependency is<EMAIL_ADDRESS>which is actually BSD licensed.
metron-config also reported as unlicensed, however for me, it seems we properly used Apache-2.0. These seem reported wrong.
OFL-1.1 AND MIT are used by font-awsome. OFL-1.1 is aka. Open Font License so I think we're fine with that.

@tiborm Great, thanks for running through that effort. We should definitely get that automated as part of the build.
@sardell +1, it's great to see this stuff getting properly updated

@justinleet Thanks! Fully agree. Created a followup ticket to track Travis integration of license checking. https://issues.apache.org/jira/browse/METRON-1863


Does this work with .Net Maui 8.0.82/8.0.100?

I'm new to .Net Maui so maybe I'm missing something. I can't get this to work with the current version of .Net Maui.
I'm running on Motorola moto g power (2022) (Android 12.0 API 31).
The sample code compiles and runs. isSupported = true, isMonitoring = true, but OnSensorChanged never fires.
I do have a 3rd party pedometer that works fine - so it doesn't appear to be the phone. Any advice appreciated!
Thanks - Jon

Sorry I didn't get to this sooner. Did you ever get this to work?


Added check_tls_replication for checking replicas encrypted connection

Issue
As described here encrypted connection between replicas should be exists when TLS enabled
Description
Updated TLS test, added check for replicas encrypted connection
Imported from VM

Thanks @TakoB222!


Update to stable null safe version

As in the last comments of https://github.com/leisim/auto_size_text/issues/83

bump

Bump :)

Any news from the dev?

@leisim any news?


Fix issue with dotnet format not running same format styles on linux and windows

Reproduce:

Run "dotnet format" locally on Windows
Make PR to trigger "Housekeeping"-action which fails when running on latest-ubuntu

Expected result:
Housekeeping action should run dotnet format without any changes and pass the test

Temporarily fixed by switching to windows-latest instead of unbuntu-latest


Earlymanga  images not loading on majority of manga chapters

Source information
EarlyManga 1.4.26
Source language
English
Steps to reproduce
Click on manga e.g. Beginning of the end
Select chapter e.g. 175.2
Images doesn't load

Expected behavior
Click on manga e.g. Magic emperor
Select chapter
Images load

Actual behavior
Images don't load for majority of the mangas and their chapters
Webview is fine for everything as seen in image of beginning of the end 175.2
Screenshot_20240314_022507_TachiyomiJ2K
Mihon/Tachiyomi version
Mihon 0.16.4 , tachij2k 1.7.4
Android version
13
Other details
Images don't load for majority of the manga and chapters beside a few ive found like magic emperor which doesn't seem affected. But large majority have either 1 or 2 chapters that work or none at all.
Webview works fine for everything and tried another user agent but didn't work, uninstall and reinstall extension and clearing of data cache etc. Didn't work either along with trying another device had same issues.
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I have updated the app to version 0.15.3.
[X] I have updated all installed extensions.
[X] I have tried the troubleshooting guide.
[ ] I have admitted that I am a clown by having checked this box, as I have not read these acknowledgements.
[X] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I will fill out all of the requested information in this form.

I have same issue with the comick extension

though would post incase makes a fix any easier managed to find a source for an older  earlymanga version. that being 1.4.21 so though would test it and that version seems to work fine without issue. only change i can see (as not sure how to open up the code for it) is its using one of the sites mirrors that being earlycomic.com but all the mangas and their chapters work in the app only caveat i can find with it is the search is very narrow on this old version ie; if search "demon" shows like 12 results whereas current one shows like 40.


[Issue] config sync pls

@Test-Account666 add config sync to make sure everyone will correctly affect

Hello!
I decided against config syncing, as people usually share their modpack via code anyway.
Which means all configs should already be synced. If not, someone probably tried to cheat or didn't download the modpack properly.
Also, adding the networking required for this is quite the pain


Updated Query for Kubernetes blog

Proposed changes

Unreleased product version (optional)

Related issues (optional)

@spara The three comments I left above seem to have been resolved but not incorporated into the PR - was that on purpose?

I missed that when I resolved the conflict changing the the authors.


wormhole-server needs a hyphen

Current coverage is 85.82% (diff: 100%)

Merging #70 into master will increase coverage by 0.11%

@@             master        #70   diff @@
==========================================
  Files            19         19
  Lines          2717       2717
  Methods           0          0
  Messages          0          0
  Branches        379        379
==========================================
+ Hits           2329       2332     +3
+ Misses          290        289     -1
+ Partials         98         96     -2

Powered by Codecov. Last update 5f76885...eb46656

good catch.. thanks!


Multiple hosts per service

We should allow multiple hosts to map to a single service. For example:
kamal-proxy deploy myapp --target=app.example.com,api.example.com

This needs to be supported for the routing, and for the auto-TLS support. For the former, we can restructure the service map into two collections: the "main" service map, mapping name->service, and a "routing" map, mapping hostname->service.
For the latter, we'll include all the hostnames in the certificate management for that service.

Not sure if we can yet do the following. Maybe with multiple instances of kaml-proxy pointing to the same service?
Preferably, each host would be able to acquire an ssl cert for it's domain (and not just wildcard certs for subdomains). For example:
kamal-proxy deploy myapp --target=web-1:3000 --hosts="example.com,foo.com" --tls

example.com should route to web-1:3000 with a valid example.com cert.
foo.com should route to web-1:3000 with a valid foo.com cert.

@nickpoorman That's what this feature will allow, yes! (Sorry, I see now my example command in the description was wrong before, which made this quite confusing! Fixed now. Thanks for drawing attention to that.)
This will still be using a single instance of kamal-proxy, but it gives it the ability to associate multiple hosts (and their certs) with a single service & target, exactly as you've described there.
This feature is still in progress, but I should have something ready to try soon.


API changes

@n8fr8 I just made some changes to the API. Beginning with https://github.com/vanitasvitae/smack-omemo/commit/14013a74aae6c21c4e2ada12ab2f74323dcf3790 one OmemoService can handle multiple OmemoManagers/Devices. That enables you to have multiple devices active on the same XMPPConnection (useful for eg. testing).
This results in a slightly different setup. First, the client has to take care of the deviceId, since the OmemoStore doesn't do that any longer (store it eg. in androids shared preferences). Second, OmemoManagers.getInstanceFor() now takes two arguments, first the Connection and second the id of either an existing device, or null if you want to create a new device.
In short, you should have the following composition now:

One OmemoService object per used OMEMO implementation (typically one SignalOmemoService).
One OmemoManager per device (now you can use multiple devices per account).
One OmemoStore per OmemoManager.
Each OmemoManager has a reference to the used OmemoService (in theory you could in the future have eg. 2 OmemoManagers, one using a SignalOmemoService, and one using a Olm/XYZOmemoService at the same time!)

I hope, I did not miss anything important. I also updated the documentation. If you have any questions, don't hesitate to ask :)
Since the API is likely undergoing some more changes until it is merged, I'll leave this one open for now to document the development :)

Thanks for the pro-active update. We are working on some other critical fixes right now, so I am keeping my omemo commit pin back a few to something that is working between ChatSecure iOS and us. Once they switch to the new format OMEMO, we can start keeping up with your latest again!

@n8fr8 I pushed the branch omemo-legacy which is up to date and supports reading the legacy key format. I hope that comes in handy for you until your clients are updated ;)

Again there has been a major change in the API.
The OmemoStore implementations are now Singletons, so there is only one instance of them.
The changes are documented in the omemo.md, so thats a good starting point ;)

Thanks for the update. I'll be getting back to an OMEMO focus late next week.

The OmemoStoreConnector has been removed again. There is still a single OmemoStore instance though :)

The FIleBasedOmemoStore has been reimplemented and will be incompatible with older saved keys.

I just changed the OmemoManager.encrypt() method to expect a String instead of a Message object. This should prevent accidental information loss etc.

There are some more convenience methods in the OmemoManager and fingerprints are now no longer Strings, but won CharSequence subclasses.

smack-omemo is now merged into Smack master, so there will be no more API changes.


Transaction class instances retain old attributes

Current behavior
This issue was first discovered by @lock9 and then further investigated by @jseagrave21 and @ixje.
Whenever an instance of a transaction is created the creator defines attributes in this manner:
def __init__(self, inputs=[], outputs=[], attributes=[], scripts=[]):

From @ixje "The problem with this is that you should not put mutable objects (e.g. a list) as the default values. because they are created only once and then reused for all instances ever created."
This caused the issue discovered by @lock9. When creating new instances of RawTransaction, the previous attributes were retained and the new ones appended until the max (16) was reached.
Expected behavior
A new transaction class should not retain old attributes.
How to reproduce
Create a new transaction and append an attribute in a loop.
Your environment
neo-python v0.8.4
Also references https://github.com/CityOfZion/neo-python/blob/9588aed21a58cf8f9e862679fd8a8cfa778fac5e/neo/Core/TX/RawTransaction.py

The fix provided by @ixje fixes the problem:
def __init__(self, inputs=None, outputs=None, attributes=None, scripts=None):
        """
        Create an instance.
        Args:
            inputs (list): of neo.Core.CoinReference.CoinReference.
            outputs (list): of neo.Core.TX.Transaction.TransactionOutput items.
            attributes (list): of neo.Core.TX.TransactionAttribute.
            scripts:
        """
        super(Transaction, self).__init__()
        self.inputs = [] if inputs is None else inputs
        self.outputs = [] if outputs is None else outputs
        self.Attributes = [] if attributes is None else attributes
        self.scripts = [] if scripts is None else scripts
        self.InventoryType = 0x01  # InventoryType TX 0x01
        self.__references = None```

Thank you for the very quick fix!

Actually, it fixed the previous error, but now my transaction doesn't seem to be valid anymore.
http://chain.simpli.com.br:4000/transaction/6f998031dad23856580cb883801f9a2f3a22057ece8581c6fe1cb3a216fe7e68
And it supposed to be:
scriptBuilder.EmitAppCallWithOperation(address_to_scripthash("Ad83tfsuWxxexhefPzXVpn5vv6oCbLKFEx"), "name")


Error processing layerSource of named map for Static Maps API

When loading a layerSource object on the Image class there's an error even before calling the API.
Example code and jsfiddle
var vizjson_url = 'https://documentation.cartodb.com/api/v2/viz/008b3ec6-02c3-11e4-b687-0edbca4b5057/viz.json';

var basemap = {
    type: "http",
    options: {
        urlTemplate: "https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png",
        subdomains: ["a", "b", "c"]
    }
};

// params are optional, the template has default values
var layerSource = {
    user_name: 'solutions',
    type: 'namedmap',
    named_map: {
        name: "named_map_test",
        layers : [],
        params: {
            "filter" : "aa",
            "color"  : "red"
        }
    }
};

// this works
cartodb.Image(vizjson_url)
  .size(600, 400)
  .getUrl(function(err, url) {
      console.log('from vizjson: ',url);
  });

// this works
cartodb.Image(vizjson_url,{basemap:basemap})
  .size(600, 400)
  .getUrl(function(err, url) {
      console.log('from vizjson with basemap: ',url);
  });

// this doesn't work
cartodb.Image(layerSource)
  .size(600, 400)
  .getUrl(function(err, url) {
      console.log('from layersource',url);
});

I've tried removing the layers and params keys of the layer source object but it fails at the same place.

There has been no activity on this issue for several months and that's why we are closing it (automatically). If you think this still needs to be addressed please reopen it. The good news is that we are now working on the next version of CARTO.js, stay tuned.


✨[Feature] Create Decorator for Python functions Incompatible with Legacy Torch Versions

Context
Some functions in the code base are incompatible with certain versions of Torch such as 1.13.1. Adding a general-purpose utility decorator which detects whether the Torch version is incompatible with certain key functions could be helpful in notifying the user when such mismatches occur.
Desired Solution
A decorator of the form:
@req_torch_version(2)
def f(...):

This decorator would throw a clear error when the detected Torch version differs from that required to use the decorated function.
Temporary Alternative
A temporary alternative, which is already in use in PR #1731, is to add logic to each function with compatibility issues, raising an error if any versioning issues are detected. While this is a functional solution, it is difficult to scale and can lead to repetitive code.
Additional Context
Certain imports are also not compatible across Torch versions (as in import torchdynamo in Torch 1.13 versus import torch._dynamo in 2.0). To resolve this issue, the imports can be moved inside the functions using them so as to encapsulate all version-specific code within one area.

@gs-olive I was thinking about this, probably something to bring up with @ncomly-nvidia but spanning 1.13 and 2.0 makes dependencies complicated for dyanmo.
Also we could add some functionality to the @tensorrt_converter decorators similar to what is already there for TRT.

Just to record the discussion. We decided not to support dynamo workflows in the 1.13 compatibility mode.


Revert "Implement Server Backward Compatibility"

Reverts grpc/grpc#10849
The change broke Bazel, which prevents us from triggering a new import.

OK I did not know we activated Bazel test... Sorry and will fix


Don't rely on RSpec monkey patching for feature method

The default spec_helper's suggested config sets disable_monkey_patching!.
This causes specs generated by Clearance to fail out of the box. This change
should be backwards compatible with older versions of RSpec as well.
This PR added the
disable_monkey_patching! config as a suggested default.

Thanks!


https://github.com/MicrosoftDocs/windows-driver-docs-ddi/issues/1067

Addresses feedback in #1067

Thanks @aadriance for the review


mkcert.org down?

It seems https://mkcert.org/ is down since yesterday (connection refused).
Any idea when it will be up and running again?

Good catch, thanks. It’s back up now.


chore(autoware_behavior_path_avoidance_by_lane_change_module): add prefix autoware_

Description
rename package to autoware_behavior_path_avoidance_by_lane_change_module from behavior_path_avoidance_by_lane_change_module.
Part of:

https://github.com/autowarefoundation/autoware/issues/4569

Tests performed

Not applicable.
Effects on system behavior

Not applicable.
Interface changes

Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@satoshi-ota please coordinate with @xmfcx and me when doing these refactorings to avoid duplicates. Also, the PRs you're submitting are missing the namespace rename (code must live in autoware::). Thanks

@satoshi-ota please coordinate with @xmfcx and me when doing these refactorings to avoid duplicates.

HI @esteve . Thanks for your comment. I missed your PR. Can your PR merge soon?

Also, the PRs you're submitting are missing the namespace rename (code must live in autoware::). Thanks

I known but I'm going to add autoware:: after all bpp packge name modified in order to keep build passing and prevent conflict.


lib create does not work as expected

asgard:~/stdlib-workspace$ lib create foo
? Default Function Name foo
Error: Bad Request

apparently it was because I was not logged in.


Fix the meshmodel docs as suggested by reviewers.

Notes for Reviewers
This PR fixes #
Signed commits

[x] Yes, I signed my commits.

🚀 Preview for commit 48d2127ac442a8f3dc5d18ebc03bcee9f14315f2 at: https://64fb4587ecfe8316e8586b8d--meshery-docs-preview.netlify.app

🚀 Preview for commit 48d2127ac442a8f3dc5d18ebc03bcee9f14315f2 at: https://64fb6059d0af9f3e726bc482--meshery-docs-preview.netlify.app

@parth721 is this same as PR #8656?? 👀

I see same changes there as well

Oh sorry I will close it now... My mistake


The IP doesn't change on Linux

Hi, I hope u all do well. I am using SoftEther VPN client on my private and own server, on  both  window and Linux, as u know windows has a GUI and it's easy to connect to my own server with it , but the problem is raised while I am using Linux, on Linux as the server logs shows it connects at first but after a few seconds it's disconnect and terminates the connection however on windows there is no problem for connecting using the same username and password .Here is the server log :
Client OS name: "Linux", Client OS version: "Unknown Linux Version", Client product ID: "--", Client host name: "khaleq-VirtualBox", Client IP address: "<IP_ADDRESS>", Client port number: 34278, Server host name: "<IP_ADDRESS>", Server IP address: "<IP_ADDRESS>", Server port number: 443, Proxy host name: "", Proxy IP address: "<IP_ADDRESS>", Proxy port number: 0, Virtual Hub name: "vpn", Client unique ID: "2BA44D5C538C8863B6A1B9B262F6F26C")
2018-01-22 05:29:39.037 On the TCP Listener (Port 443), a Client (IP address <IP_ADDRESS>, Host name "<IP_ADDRESS>", Port number 60595) has connected.
2018-01-22 05:29:39.037 For the client (IP address: <IP_ADDRESS>, host name: "<IP_ADDRESS>", port number: 60595), connection "CID-68" has been created.
2018-01-22 05:29:39.413 SSL communication for connection "CID-68" has been started. The encryption algorithm name is "RC4-MD5".
2018-01-22 05:29:42.175 Connection "CID-68" has been terminated.
something that  is amazing for me is after the first time it's connected to the server it's always saying connected  however server logs shows that the connection is terminated .as the screenshots show

and the next problem is it never changes the IP address and the location when using Linux, however, it says it's connected to the server while as I said before it actually changes the IP and location when I use SoftEther VPN client manager on windows.

SoftEther client on Linux do nothing to routing table or interface IP. You have to set manually or configure it for static or dhcp network interface.
auto tap_hub1
iface tap_hub1 inet static
address <IP_ADDRESS>
netmask <IP_ADDRESS>
auto tap_hub2
iface tap_hub2 inet dhcp

I think that did not explain clearly enough what is the working setup.
we modify the Softether VPN local bridge to use a TAP device instead of the real NIC (here it is eth0 on my server).
Then, under Linux, I modified the network settings for the system by using a Linux bridge linking eth0 to the new TAP device in order for both devices to see the external world.
I provide here the content of /etc/network/interfaces on my server (the settings are the same on the other server at the opposite side of the VPN link):
The loopback network interface
auto lo
iface lo inet loopback
The primary network interface
auto eth0
iface eth0 inet static
address <IP_ADDRESS>
The VPN TAP network interface
auto tap_vpn
iface tap_vpn inet static
pre-up tunctl -t tap_vpn
address <IP_ADDRESS>
hwaddress ether XX:XX:XX:XX:XX:XX
The bridge network interface
auto br0
iface br0 inet static
bridge_ports eth0 tap_vpn
address <IP_ADDRESS>
netmask <IP_ADDRESS>
network <IP_ADDRESS>
broadcast <IP_ADDRESS>
gateway <IP_ADDRESS>
For the TAP MAC address, use eth0's MAC address as the bridge will use either eth0's one or the TAP's one depending on which comes up last during the bridge creation. So using eth0's MAC address for the TAP device ensure that the bridge will use a real MAC address for communications with the outside...
The TAP device is created by Linux instead of softether VPN in order for it to be included in the Linux bridge at boot time as network interfaces are supposed to be up before any VPN can be created.
The trick is to ensure that the TAP device in Linux has the "tap_" prefix prepended to the TAP device name used in softether VPN (and also the same MAC address).
Here is an extract of Softether VPN configuration file for the corresponding local bridge:
declare LocalBridgeList
{
bool DoNotDisableOffloading false
declare LocalBridge0
{
string DeviceName vpn
string HubName BRIDGE
bool LimitBroadcast false
bool MonitorMode false
bool NoPromiscuousMode false
string TapMacAddress XX-XX-XX-XX-XX-XX
bool TapMode true
}
}
I hope I have been a little clearer with the settings of the servers... but I did never used the client which's setting can be different

SoftEther works great with creating tap device and debian/ubuntu network interface config works too. Try this:
auto lo
iface lo inet loopback

allow-br0 eth0
iface eth0 inet manual

allow-br0 tap_vpn
iface tap_vpn inet manual
    up brctl addif br0 $IFACE
    pre-down brctl delif br0 $IFACE

auto br0
iface br0 inet static
    bridge_ports eth0
    address <IP_ADDRESS>
    netmask <IP_ADDRESS>
    network <IP_ADDRESS>
    broadcast <IP_ADDRESS>
    gateway <IP_ADDRESS>

If you will use openvswitch:
allow-vmbr0 eth0
iface eth0 inet manual
	ovs_type OVSPort
	ovs_bridge vmbr0

auto vmbr0
iface vmbr0 inet static
	address <IP_ADDRESS>
	netmask <IP_ADDRESS>
	ovs_type OVSBridge
	ovs_ports eth0

that means a TAP device alone is not enough and you need to change the /etc/network/interfaces file

I set up /etc/network/interfaces to automatically do something with SoftEther device on creating/destroying.
I guess creating TAP with tunctl may cause SoftEther error on creating TAP device because it already exist.

@Khsed4 I don't know if this is still relevant for you, but on Linux you will have to setup routing manually sadly.
What you want to do after connecting is run a DHCP client on the VPN link, and provide a static route to the VPN server.
An example using iptools2 and dhcpcd:

Connect to the VPN.
vpncmd localhost -client -cmd AccountConnect YourAccount

Request IPs from the DHCP server running on the VPN server.
I'm assuming your adapter is called vpn_sevpn.
Setting the metric to 1 makes sure the routes are inserted before your current routes.
sudo dhcpcd --metric 1 -n vpn_sevpn

Finally add a static route to the VPN server over your actual physical LAN.
Let's assume <IP_ADDRESS> is the IP of your server, and that <IP_ADDRESS> is your local gateway
sudo ip route add <IP_ADDRESS> via <IP_ADDRESS>
If your IP address overlaps with what you get from the VPN's DHCP server, make sure you add the device by adding "dev eth0" add the end of your command
sudo ip route add <IP_ADDRESS> via <IP_ADDRESS> dev eth0

dup https://github.com/SoftEtherVPN/SoftEtherVPN/issues/431


Add Social Shop to showcase

[x] Create post page
[x] Add screenshot
[x] Optimised screenshot

Outdated. Bye


Bump post-deploy task timeout from 15s to 60s

The last 2 deploy attempts failed because the publish tasks took 23
seconds (from 2022-02-24T11:36:47Z until 2022-02-24T11:37:10Z) and 24
seconds (from 2022-02-24T12:07:19Z until 2022-02-24T12:07:43Z)
respectively.

🚨⚠ This will be deployed automatically all the way to production when you click merge ⚠🚨
See docs/deploying.md for notes and caveats about this app.

Am I correct in thinking that if we sent an alert in production, then gov.uk/alerts should have that alert appear still very quickly (say under 10 seconds) because it doesn't use cf-run-task-publish (it would use celery to kick off the republish) and so it doesn't matter that this task is taking over 15 seconds?


Flight Overhead

Description
I created a new Tidbyt app that uses AirLabs Real-Time Flight Data API to find the flight overhead your location.
Copilot

🤖 Generated by Copilot at dfb9e45
Summary
✈🌎📡

This pull request adds a new applet called Flight Overhead, which shows the nearest aircraft above the user's location. It includes the applet code in flight_overhead.star and the manifest file in manifest.yaml.

Flight Overhead app
Shows the nearest plane in sky
Autumn leaves falling

Walkthrough

Create and register the Flight Overhead applet, which shows the nearest aircraft above the user's location (link, link)

Add the code for the applet in flight_overhead.star, which uses the AirLabs API to fetch and display the flight information (link)
Define the main function, which takes a config object with the API key and the bounding box parameters, and returns a render.Root object with the flight details (link)
Define the get_schema function, which returns a schema.Schema object with the fields for the applet configuration (link)
Import the http, render, and schema modules from the star library (link)
Add the manifest file for the applet in manifest.yaml, which specifies the applet metadata, such as the id, name, summary, description, author, file name, and package name (link)

I have read the CLA Document and I hereby sign the CLA

Looks like you may have accidentally added.gitignore and scripts/ to the PR?


Add Accessible Namespaces

Describe the bug
Currently i always get the "Add Accessible Namespaces" notification. Because i have a configuration where the service account do not have the permission to get all namespaces, which is intended.
To Reproduce
Steps to reproduce the behavior:

Go to 'Settings'
Click on 'Namespaces'
Add acccessible namespaces.
Save
Use app
'Add Acessible Namespacces' Info appears

Expected behavior
As i defined acessible namespaces, the app will not remind me, or i get more details why this error ocurr.
Screenshots

Environment (please complete the following information):

Lens Version: 5.2.5-latest.202111001.2
OS: Windows 11
Installation method (e.g. snap or AppImage in Linux): Installer via Website

Kubeconfig:
Quite often the problems are caused by malformed kubeconfig which the application tries to load. Please share your kubeconfig, remember to remove any secret and sensitive information.
apiVersion: v1
kind: Config
clusters:
  - name: "example-app-production"
    cluster:
      server: "server url"

users:
  - name: "example-app-production-user"
    user:
      token: "add user token here"

contexts:
  - name: "example-app-production"
    context:
      user: "example-app-production-user"
      cluster: "example-app-production"

current-context: "example-app-production"

I cannot actually reproduce this, if I add an accessible namespace to my cluster I no longer get that notification. If you run Lens from the terminal do you see a [CLUSTER]: listing namespaces is forbidden, broadcasting log line?


IDE sync from IntelliJ IDEA incorrectly tagged as Android Studio

Build Scans are incorrectly tagged as coming from Android Studio when running an IDE sync from IntelliJ IDEA.
See the following build scan run from IntelliJ IDEA as an example: https://scans.gradle.com/s/eh22ik7skmtge
I verified running a task from IntelliJ IDEA is tagged correctly: https://scans.gradle.com/s/5clegna2kwvfi
Additional information:

Using com.gradle.common-custom-user-data-gradle-plugin version 1.8.1
Using com.gradle.enterprise version 3.11.1
Using IntelliJ IDEA 2022.2.2 (Ultimate Edition)

https://github.com/gradle/common-custom-user-data-gradle-plugin/pull/91


Show only calendar without check-in/out, for modal

How to show only calendar? Always open calendar without check in/out?
It will be open by click button (to show modal and calendar in it)

how you did in demo https://t-datepicker.getqwerty.com/demos.html
always opened?

use this method on button click $(".t-datepicker").tDatePicker("show")


Generate conversions with/without fieldmap correction

From (#658)

generating conversions with (when available) and without fieldmap correction

This seems doable and reasonable. We'll need to figure out a naming scheme to indicate fieldmap correction strategy in the filename to avoid collisions, but that seems like a good idea, anyway.

I'm not sure anymore we should do this. @satra, are you still interested in having both options? IMHO this might be confusing to the user and would set the ground for people to try both and pick the one that gives a better outcome.

@oesteban - i would be fine with doing it by default, but it would need to have the right kind of checks (e.g., on shimming, on polarity). i'm just worried if people use the sdc blindly, the current methods don't have anyway of validating output.
also how you dissociate if some participants have the files to do correction, and some don't, or that the  checks (above) don't pass for some subject? you would need some way of encoding whether the generated file was sdc processed or not (this could be provenance, but we haven't gone down that road). so in the meantime you would still need some way of naming/adding json metadata.
more generally, preprocessing can involve many different things. i think these should be noted as attributes of output files, but it would be like properties of participants. whether you care about age or gender is upto the application at hand. fmriprep shouldn't try to decide that whether someone user wants to mix a group of participants some of who had correction, and some didn't.
happy to discuss more next week.

I'll keep this open then. Looking forward to hearing your thoughts :)


Add missing gold_passages_retrieved function

The function gold_passages_retrieved is currently missing, without it the tutorial doesn't work.
I copied the function from https://github.com/stanfordnlp/dspy/blob/eab1324d45aa1a723e187b2523e4d20bfc75356d/tests/examples/test_baleen.py#L98
I tested the code with this new function and I get similar numbers as in the tutorial

Thanks @tom-doerr !


Release for Unreal Engine 5 ?

This is planned. Should be done in 1- 2 weeks.

Either this or just explain how to enable building it from own project.

I briefly looked into this and it seems that the plugin can be compiled for UE5 easily. Just download latest release of the plugin and put it to YOUR_UE5_PROJECT_DIR/Plugins. Let me know if you have any issues

I'm still planning to roll out UE5 ready plugin on Marketplace

Okay, 5.0 is ready @ssuukk ! You can either grab it from Marketplace or right here on Github.


fix: SampleSet.fromDist works for discrete and mixed distributions

I still would like to clean this up and test it.
This closes https://github.com/quantified-uncertainty/squiggle/issues/1003

Codecov Report

Merging #1065 (b87e952) into develop (462f1c9) will decrease coverage by 0.37%.
The diff coverage is 35.13%.

@@             Coverage Diff             @@
##           develop    #1065      +/-   ##
===========================================
- Coverage    58.22%   57.84%   -0.38%
===========================================
  Files           74       74
  Lines         4191     4213      +22
===========================================
- Hits          2440     2437       -3
- Misses        1751     1776      +25

Impacted Files
Coverage Δ

...c/rescript/Distributions/PointSetDist/Discrete.res
23.15% <0.00%> (ø)

...cript/Distributions/PointSetDist/Distributions.res
55.55% <ø> (ø)

.../src/rescript/Distributions/PointSetDist/Mixed.res
8.69% <0.00%> (-0.83%)
:arrow_down:

...ript/Distributions/SampleSetDist/SampleSetDist.res
32.75% <0.00%> (ø)

packages/squiggle-lang/src/rescript/Utility/E.res
48.95% <ø> (ø)

...script/Distributions/PointSetDist/PointSetDist.res
58.25% <50.00%> (-12.34%)
:arrow_down:

...le-lang/src/rescript/Distributions/GenericDist.res
62.56% <100.00%> (ø)

...rescript/Distributions/PointSetDist/Continuous.res
64.58% <100.00%> (+2.36%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Will improve later on.


Update fabric-sdk-java to 2.2.23

About this PR
📦 Updates org.hyperledger.fabric-sdk-java:fabric-sdk-java from 2.2.5 to 2.2.23
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.hyperledger.fabric-sdk-java", artifactId = "fabric-sdk-java" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.hyperledger.fabric-sdk-java", artifactId = "fabric-sdk-java" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #281.


Set channelv2 as default controller and dispatcher for KEDA scaling

Signed-off-by: aavarghese<EMAIL_ADDRESS>Breaking down https://github.com/knative-sandbox/eventing-kafka-broker/pull/2437 into smaller PRs.
This one is for KafkaChannel v2 (Scheduler and KEDA integration) as new default.
Proposed Changes

Use KEDA as a library to auto-scale Kafka resources in eventing-kafka-broker.
Removed old implementation of KafkaChannel Controller and Dispatcher Deployment
Set KafkaChannel v2 with KEDA Scaling and HA Scheduling as the new implementation for control-plane and data-plane

Release Note

Set KafkaChannel(v2) with KEDA Scaling and HA Scheduling as the new implementation for control-plane and data-plane.

Docs

/retest-required

/retest-required

/test channel-integration-tests-ssl

/test unit-tests

/test integration-tests-namespaced-broker
/test reconciler-tests-namespaced-broker

/test reconciler-tests


OCI fixes for Cost Explorer

Testing OCI with Luke's OCI source provider. There are some issues which are causing breakage in the cost explorer page. A few missing pieces in explorerUtils to ensure the correct API is called.
https://issues.redhat.com/browse/COST-2358

Codecov Report

Merging #2409 (8a960e4) into main (7044dc3) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             main    #2409    +/-   ##
========================================
  Coverage   70.43%   70.43%
========================================
  Files         432      432
  Lines        8074     8074
  Branches     1893     1758   -135
========================================
  Hits         5687     5687
  Misses       2384     2384
  Partials        3        3

Continue to review full report at Codecov.

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


Feature Request: Add a zip method to Array

Me again ;) I need a Python like zip method. There is a jQuery implementation: http://plugins.jquery.com/project/zip
I would call it zip cause it is the same principle as your zippers ;)
Implementation detail: When you call it on the array the array represents you keys and the given array are your values. E.g.:
var arr1 = [1,2,3];
var arr2 = [4,5,6];
var zipped = arr1.zip(arr2); // {1:4, 2:5, 3:6}

Maybe it should also possible to zip multible arrays to one e.g.
var arr1 = [1,2,3];
var arr2 = [4,5,6];
var arr3 = [7,8,9];
var zipped = arr1.zip(arr2, arr3);

Which can result in:
{1:[4,7], 2:[5, 6], 3: [5,9]}

or the classic result which also python does:
[[1,4,7], [2,5,6], [3,5,9]]

Discussion on stackoverflow: http://stackoverflow.com/questions/4856717/javascript-equivalent-of-pythons-zip-funciton
Python doc: http://docs.python.org/library/functions.html#zip
Or a new idea to access the results in a easier way would be to define a resulting object:
var arr1 = [1,2,3];
var arr2 = [4,5,6];
var arr3 = [7,8,9];
Array.zip({arr1 : arr1, arr2 : arr2, arr3 : arr3}) // [{arr1 : 1, arr2 : 4, arr3 : 7}, {arr1 : 2, arr2 : 5, arr3 : 8}, {arr1 : 3, arr2 : 6, arr3 : 9}]

There are a number of methods to do this in Sugar (actually vanilla JS for the first example), depending on what exact functionality you are expecting. For the traditional method, you can simply leverage map:
var zipped = array1.map(function(el, i) {
  return [el, arr2[i], arr3[i]];
});

For the more complex behavior described in the first example, there is actually a method designed to do exactly this (and more):
var zipped = arr1.groupBy(function(el, i) {
  return arr2[i];
});

Now that having been said it wasn't working for me just now as I noticed a bug where the index i  wasn't properly being passed. I've fixed it now and pushed it so if you're actually going to use this, use the edge version instead...

There are a number of methods to do this in Sugar (actually vanilla JS for the first example), depending on what exact functionality you are expecting. For the traditional method, you can simply leverage map:
var zipped = array1.map(function(el, i) {
  return [el, arr2[i], arr3[i]];
});

For the more complex behavior described in the first example, there is actually a method designed to do exactly this (and more):
var zipped = arr1.groupBy(function(el, i) {
  return arr2[i];
});

Now that having been said it wasn't working for me just now as I noticed a bug where the index i  wasn't properly being passed. I've fixed it now and pushed it so if you're actually going to use this, use the edge version instead...


Write ifaces on save

To achieve this we augment the FileOfInterest store with a flag that indicates whether a file is saved on disk or not.

The mtime change in the last commit isn't very relevant right now, but it is important for checking the integrity of the database in my hiedb branch.

I'm not sure how to test this change.

Hmmm I cannot think of a nice way either.
Why do we want to write interface files on save? Is that for hiedb?

Yes, it is useful for hiedb, but also addresses some of your concerns here: https://github.com/haskell/ghcide/pull/688#discussion_r453326292

A way to test this might be to check if the interface file exists after saving. But I don't think we can get the path the the ghcide cache directory currently.
Maybe we should also introduce unit tests?

@wz1000 are you planning to add tests to this? You can know find the location of the cache directory for a given module

I think this is ready


File detection doesn't work properly when using partition in hot reload mode in ipython

Currently if you are using the partition brick in hot reload mode in ipython, an error related to file detection occur is you make a change to partition.py.
Steps to reproduce
from unstructured.partition.auto import partition

elements = partition("example-docs/layout-parser-paper.pdf")

Make a change to partition.py and run the same code again. You'll get:
ValueError: Invalid file /Users/mrobinson/data/sitreps/downsampled-data/docx/01_SOCN_DOWNREP_06-01.docx. File type not support in partition.

But if you run:
from unstructured.file_utils.filetype import detect_filetype

partition("example-docs/layout-parser-paper.pdf")

You'll see that the filetype is correct. This may be related to how Enums are handled during hot reloading. The workaround is to exit iPython and restart.

Hello @cragwolfe ,
I tried reproducing the error on my local but it is working fine. Also the file mentioned partition.py is in nlp directory and not the partition directory. So is the file name correct?

@sparkbrains , i think the issue is that it does work fine in plain old python, however when using "hot reload mode in ipython" there will be an error after partition.py is edited.

Yeah it's for the hot reload mode in iPython. Try running this in your iPython session and editing the file.
%load_ext autoreload
%autoreload 2

@cragwolfe
https://www.loom.com/share/d01ac7bc70ac4bf8b2c0d9264e24a84f
This is the video for the steps I am following to reproduce the error for issue 178. Please check this and correct me if somewhere I am not following the steps properly.


Custom offhours schedule

This would allow instances/asgs to define a custom off hours schedule via a tag (c7n_downtime).
Schedule format:
# up mon-fri from 7am-7pm; eastern time
off=(M-F,19),on=(M-F,7)
# up mon-fri from 6am-9pm; up sun from 10am-6pm; pacific time
off=[(M-F,21),(U,18)],on=[(M-F,6),(U,10)],tz=pt

Possible values:

field
values

days
M, T, W, H, F, S, U

hours
1, 2, 3, ..., 22, 23, 24

Days can be specified in a range (ex. M-F).
If the timezone is not supplied, it's assumed et (eastern time), but this default could be configurable.
Parser output:
The schedule parser will return a dict or None (if the schedule is invalid):
# off=[(M-F,21),(U,18)],on=[(M-F,6),(U,10)],tz=pt
{
  off: [
    { days: "M-F", hour: 21 },
    { days: "U", hour: 18 }
  ],
  on: [
    { days: "M-F", hour: 6 },
    { days: "U", hour: 10 }
  ],
  tz: "pt"
}

Help wanted:
I was planning on working on the schedule parser, but I'd love to partner up with someone for the rest of it. Besides the schedule parser, what remains is determining the day and hour, taking the schedule dict, and determining if the instance/asg should be off.

@mrpudn I'd be interesting in helping with this feature. I'd need to get up to speed with the cloud-custodian internals but would be a useful feature that shouldn't be too hard.

I've been messing around with a parser. Hopefully it is useful (no worries if you wanted to approach it another way, just though it would be fun): https://github.com/fdosani/offhours-parser

@fdosani thanks, that looks reasonable, fwiw, the offhours filter at the moment is localized to c7n/offhours.py

I'll take a stab at integrating the two.
Heading to DC tonight, so will try and get to it shortly unless @mrpudn wants to give it a go.

@fdosani - Awesome! I appreciate the help, and I'll take a look at what you've got so far.
I had some personal things to attend to the past couple of days, so I haven't had too much time to work on this. I did brush up on some regex stuff, though, and I'm hoping to prototype some ideas today.

@mrpudn sounds good! 👍

@fdosani Awesome job on this so far. Great call on using the semicolon to separate each component of the schedule - that's much easier to work with. 👍
I forked what you had and started converting it into a class:
https://github.com/mrpudn/offhours-parser
I'm guessing a lot of the custom schedules will be the same, so I added a cache feature into the parser to cache already parsed schedules. It probably won't add much of a performance boost, but it seems pretty non-invasive. Let me know what you guys think!

@mrpudn Sorry for the delay. Looking good. the class structure makes sense. I think we should figure out a hard set of rules we'd want to enforce. There seems to be a lot of corner cases which we may want to handle or not.
For example: Is F-T valid?
Can you have 2 of the same days for off?: off=[(M,9),(M,18)]
Some of these may not seem intuitive for myself but there could be legit reasons for other. Might make sense to hash some of these rules out?

You could also adopt a 'cron' style expression
'0 21 * * MON-FRI' would be 9pm MON-FRI.

@mrpudn I might give this a shot on my local fork to see if I can get some integration with the offhours.py. Can always swap out the parser later.

We could probably get rid of timezones altogether by only supporting UTC time - thoughts?
@chiradeep - We discussed using a cron or cron-esque schedule, but there was some backlash. We could probably build it in later - I actually prefer it to the custom schedule.
0 7 * * 1-5 on || 0 19 * * 1-5 off (on Mon-Fri @ 7am; off Mon-Fri @ 7pm)

@kapilt Any thoughts on the following corner cases for the parser. I'm wondering if we should try and catch some cases, and ignore others: https://github.com/fdosani/offhours-parser/blob/master/corner-cases.md
There might be some more which come to mind, but the following 3 jump out.

skip
not sure i understand that
seems worth supporting

re cron -> py parser https://github.com/josiahcarlson/parse-crontab

@kapilt @mrpudn hoping to get your input on what I have so far on my forked branch: https://github.com/fdosani/cloud-custodian/blob/offhours-feature/c7n/offhours.py
Just to summarize:

I'm using @mrpudn parser which I've added to offhours.py at the end. I've made some minor tweaks to check for valid hours (0-23) and valid dates (m-s).
main logic within offhours.py sits in get_custom_time

Couple of notes (please let me know if this makes sense or we should revert):

If the custom schedule tag is malformed it will use the default values and continue on.
When it loops through the custom schedule it is a bit verbose and prints something as follows to the shell:

2016-05-26 18:49:21,227: custodian.filters:INFO InstanceOffHour 1 of 1 instances
2016-05-26 18:49:21,227: custodian.offhours:DEBUG resource: instance:i-04390fa105ad8911a specifies downtime with value: off=(m-f,18),(s,19);on=(m-f,15),(h,15);tz=et
2016-05-26 18:49:21,371: custodian.offhours:DEBUG resource: instance:i-04390fa105ad8911a checking custom hours, day=m hour=18, and tz=et
2016-05-26 18:49:21,371: custodian.offhours:DEBUG resource: instance:i-04390fa105ad8911a checking custom hours, day=t hour=18, and tz=et
2016-05-26 18:49:21,371: custodian.offhours:DEBUG resource: instance:i-04390fa105ad8911a checking custom hours, day=w hour=18, and tz=et
2016-05-26 18:49:21,371: custodian.offhours:DEBUG resource: instance:i-04390fa105ad8911a checking custom hours, day=h hour=18, and tz=et
2016-05-26 18:49:21,371: custodian.offhours:DEBUG resource: instance:i-04390fa105ad8911a matches custom hours with value now: 2016-05-26 18:00:00-04:00

I've been messing around with it on my own account and it seems to be working correctly. If there are any corner cases you think I missed please let me know. the circular dates one isn't implemented just yet, but I'll try to include once I get some feedback on this.
Also wondering if you had any better suggestions with regards to this part:
https://github.com/fdosani/cloud-custodian/blob/offhours-feature/c7n/offhours.py#L312
Since the instance of the class can be on or off I have a "check", but I'm thinking this might not be good form?


Validator automatically startup on new setup

Validator Startup parameters for docker based launches or for mass deployment. This will allow mass deployment to many machines with each machine having a config setup to allow all needed functions to resume like validating.

This cannot be done successfully. Issue could be if loaded to fresh wallet there is no balance to immediately check. Becoming a validator is something that will need to be done on sync. Will explore starting validator once wallet reports sync.

Validator can be auto config on startup with config.txt file. Commit: 74bb703212f18aaaad2f18a7a8e4093708bc474c


ENDOC-599 Add a public lexicon/dictionary/index/glossary for Entando language

@nshaw

should all listed terms be kept? if not, should the sections with their descriptions be removed from the architecture page?
should Entando Component be defined? (capitalization appears on architecture page)
should ECR be defined in the glossary and on the architecture page? i believe the term is still in use and appears elsewhere in the documentation; i don't think the ECR and local hub are completely synonymous because there was at least one instance we did not change to "local hub"; i'd like to better understand the distinction between the 2 terms and their applicability

Just need to add 7.1 and put it in the nav.


chore(main): release v2.0.1

:robot: I have created a release beep boop
2.0.1 (2024-06-09)
Bug Fixes

One more try and release-please (#46) (a67df51)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/actuarysailor/gha-repo-manager/releases/tag/v2.0.1 :sunflower:


Restore gtktest

Let's see if Appveyor picks this up

And you also put back all the old gtktest example code ! That's a wonderful day ! =D


CI: correct and relax tags check

@guusdk I think this is ready for review, this will require tags in the form of v#.#.#


fix: updating release draft status from true to false

Hi! Thanks for creating this action 😊
One issue I've encountered is that it's currently impossible to use the action to publish a draft issue.
In this PR, I'm trying to address this issue by changing how existingRelease is being looked for from agetReleaseByTag call to iterating through allReleases. Previously, we were only iterating through allReleases if the desired state of the release was draft.
I'd suggest reviewing with whitespace changes hidden: https://github.com/softprops/action-gh-release/pull/316/files?diff=split&w=1
Testing

[x] used the updated action to publish draft release here: https://github.com/protocol/.github-test-target/actions/runs/4068545498

@galargh can you fix the merge conflicts? Thanks!

Of course! Done :) The diff is much cleaner now.

also can you post some examples of how this PR being used.

Hey there, thank you all for both maintaining and contributing to this library, we use it and it is helpful!
Here's an example of using this PR in practice: https://github.com/pantsbuild/scie-pants/pull/444 (note that we're using a custom fork but it's literally just v2.0.9 + this PR's code merged in)
The resulting workflow is: https://github.com/pantsbuild/scie-pants/blob/9d73b15a0f602de1359c842a7b153b1dda53c7e9/.github/workflows/release.yml

the github-release matrix job creates a bunch of draft: true releases: https://github.com/pantsbuild/scie-pants/blob/9d73b15a0f602de1359c842a7b153b1dda53c7e9/.github/workflows/release.yml#L98-L113
the publish-announce-release job takes that same release and sets draft: false (along with a few other "publishing" actions): https://github.com/pantsbuild/scie-pants/blob/9d73b15a0f602de1359c842a7b153b1dda53c7e9/.github/workflows/release.yml#L136-L147

I hope that provides some reassurance that this code seems to be functioning correctly in practice.
(As I said above, thanks for maintaining and contributing to this library.)


fix #299 fix bug in StreamingTestUtil.createEchoForTaskActor

Why you think this will fix the problem?

The TaskActor will register itself to AppMaster after registering to the Express. When the mock appmaster received both two RegisterTask messages, each Express's local actor is ready.

It should work,  +1
another way is to do #345.


Fix/dev azurite

Description
Updates the release compilation code for building an Azure Object in Rust to not use emulation. Still uses emulation on debug builds. Also updates the package.json to do release builds again (apparently the code wasn't auto-formatted before)
Motivation and Context
We just want the new timeseries stuff to work 😩
How Has This Been Tested?
Works locally, trying to get it to work in the dev env
Screenshots (if appropriate):
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

apparently package.json had a bunch of trailing spaces that got auto-removed


Setting file for fitting environments

When we run mutiple Dockerfile or requirements.txt files for separated purpose, we need to specify the setting through envrionment variables described in https://github.com/docker-science/cookiecutter-docker-science/pull/53.
But setting such variables though the command line parameters are tedious, and therefore  I would like to add a basic setting files to add environment setting. the following is the sample of the setting file (.env).
DOCKERFILE=docker/Dockerfile.test
REQUIREMENTS=requirements.txt.test

The template does not generate .env directory but the .env_template file not to load the setting until when users change the name of the file .env_template to .env and add the setting to the file.

@chie8842 @yoheikikuta Please let me know if the above is a good idea or not.

At first, if we use requirements.txt, generally use the name test_requirements.txt is used for the requirements file for test.
Second, if we use pipenv, we can summarize requirements for dev(include test) and default in one file named Pipfile.
e.g.
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[packages]
requests = "*"

[dev-packages]
pytest = "*"

In general usage, I think it's convenient to prepare following two environments.

development environment
This environment includes not only package dependency, but also analytics tools such as matplotlib
and testing tools which isn't needed when it is deployed.
We use Dockerfile.dev, requirements.txt and requirements_dev.txt to create this environment.

executable environment
This environment includes only package dependency.
We use Dockerfile and requirements.txt to create this environment.

@chie8842 thank you very much for the idea 🙏 Would be great if we can talk about this topic Monday.


wavefront_obj dependency is unmaintained and pulls in dependencies with soundness issues

Running cargo deny check dependencies on a project that includes three-d-asset with the obj feature displays the following alert.

ID: RUSTSEC-2023-0055
Advisory: https://rustsec.org/advisories/RUSTSEC-2023-0055
lexical contains multiple soundness issues:

Bytes::read() allows creating instances of types with invalid bit patterns
BytesIter::read() advances iterators out of bounds
The BytesIter trait has safety invariants but is public and not marked unsafe
write_float() calls MaybeUninit::assume_init() on uninitialized data, which is is not allowed by the Rust abstract machine

The crate also has some correctness issues and appears to be unmaintained.
Alternatives
For quickly parsing floating-point numbers third-party crates are no longer needed. A fast float parsing algorith by the author of lexical has been merged into libcore.
For quickly parsing integers, consider atoi and btoi crates (100% safe code). atoi_radix10 provides even faster parsing, but only with -C target-cpu=native, and at the cost of some unsafe.
For formatting integers in a #[no_std] context consider the numtoa crate.
For working with big numbers consider num-bigint and num-traits.
Solution: No safe upgrade is available!
lexical v5.2.2
└── wavefront_obj v10.0.0
    └── three-d-asset v0.5.0
        └── three-d v0.15.0

If you have an alternative to wavefront_obj, you're more than welcome to change that dependency.

@asny closed this as completed

Apologies; can you clarify why this was closed? Does that mean this issue won't be fixed?

This is a problem in wavefront_obj, not in this crate, please open an issue there instead. Also, I don't understand the problem, do you have issues loading an obj file? Finally, you can disable the obj feature if you don't like that dependency.

wavefront_obj appears to be unmaintained.
If a dependency has unsoundness bugs (i.e. undefined behavior), that can break code throughout the project, and the damage is not limited to the functions or modules with the bugs. Any project including that dependency may have unpredictable bugs. It's probably unwise to depend on crates that have soundness bugs (or have dependencies with soundness bugs) that are never going to be fixed (because the crate is abandoned). "Seems to work" is not a reliable guarantee-- there are lots of discussions of undefined behavior that talk about this in more detail.
There are a few ways to resolve this, though they may not be attractive:

Drop the dependency on wavefront_obj and lose support for the obj format.
Drop the dependency on wavefront_obj and replace it with some other crate that can do the same job.
Fork the wavefront_obj crate and fix its issues.

There is no way to communicate to a downstream user that enabling the obj feature exposes them to soundness bugs. I only noticed this because of the work of the RustSec project and cargo deny reporting the problem.


Some tests passed for Conv2D backward on GPU

Just a draft. Anyone see the mistakes?

This isn't passing any of the test_conv2d or test_strided_conv2d subtests for backward() on GPU. Make sure you set forward_only=False, or remove that kwarg from the relevant helper_test_op(...) invocations in test_ops.py.
Let me know if I missed something.

Working on line reduction so this fits.

Also, is there any way to reuse the forward pass kernel?

definitely broke!

Okay, that was very wrong. Rewrote it. Now it passes the test.

1000 lines :(

I didn't realize we had buffer_zeros (also using buffer_new lead to an annoying bug)!

Congrats!

This isn't passing any of the test_conv2d or test_strided_conv2d subtests for backward() on GPU. Make sure you set forward_only=False, or remove that kwarg from the relevant helper_test_op(...) invocations in test_ops.py.
python -m unittest -v test/test_ops.py -k TestOpsGPU.test_conv2d -k TestOpsGPU.test_strided_conv2d
and make sure you aren't seeing testing ... bp: nan / nan ms for any test output (which indicates the backward() pass is skipped).
Let me know if I missed something.
BTW, the main issue was that different kernels wrote to the same global memory. I think it was running on my Laptop for some tests because it essentially doesn't have a "real" GPU!

Oh yea you can't += to the same place across multiple runs of the kernel.


[BUG] Twirp error unavailable: no response from servers

Describe the bug
could not solve the issue be reading this some title error
i set up the environment in WSL2, run the services in this order

livekit-server --dev --bind <IP_ADDRESS>
docker network create livekit-network   i create this network so the Redis and egress can connect
 docker run --rm --name db-redis --network livekit-network -d -v redis-data:/data -v ./redis-custom.conf:/usr/local/etc/redis/redis.conf -p 6379:6379 redis:latest
docker run --rm \ --cap-add=SYS_ADMIN \ --network livekit-network \ -e EGRESS_CONFIG_FILE=/out/config.yaml \ -v ~/livekit-egress:/out \ livekit/egress

when i try to start recording get this error in Golang  twirp error unavailable: no response from servers
Egress Version
latest
Egress Request
	fileRequest := &livekit.RoomCompositeEgressRequest{
		RoomName: roomName,
		Output: &livekit.RoomCompositeEgressRequest_File{
			File: &livekit.EncodedFileOutput{
				FileType: livekit.EncodedFileType_MP4,
				Filepath: "public/my-room-test.mp4",
			},
		},
	}

	info, err = egress.egressClient.StartRoomCompositeEgress(context.Background(), fileRequest)

Additional context
my redis config file
# Comment out the line that restricts Redis to only listen to the localhost
# bind <IP_ADDRESS>

# Disable protected mode to allow connections from outside the local system
protected-mode no

my live egress config.yaml
api_key: devkey
api_secret: secret
ws_url: ws://<IP_ADDRESS>:7880
insecure: true
redis:
  address: db-redis:6379
  username:
  password:
  db: 1
log_level: debug

Logs
when running the egress i get this, the second line looks like error failed cgroup
2024-05-26T13:39:18.745Z        INFO    egress  redis/redis.go:142      connecting to redis     {"nodeID": "NE_8cxiPb22eTgV", "clusterID": "", "simple": true, "addr": "db-redis:6379"}
2024-05-26T13:39:18.748Z        INFO    egress  hwstats/cpu_linux.go:76 failed reading cgroup specific cpu stats, falling back to system wide implementation   {"nodeID": "NE_8cxiPb22eTgV", "clusterID": ""}
2024-05-26T13:39:18.748Z        INFO    egress  stats/monitor.go:134    cpu available: 8.000000 max cost: 4.000000     {"nodeID": "NE_8cxiPb22eTgV", "clusterID": ""}
2024-05-26T13:39:18.750Z        DEBUG   egress  server/server.go:140    starting service        {"nodeID": "NE_8cxiPb22eTgV", "clusterID": "", "version": "1.8.4"}
2024-05-26T13:39:18.750Z        INFO    egress  server/server.go:146    service ready   {"nodeID": "NE_8cxiPb22eTgV", "clusterID": ""}
2024-05-26T13:39:18.751Z        DEBUG   egress  server/server.go:132    starting template server on address localhost:7980     {"nodeID": "NE_8cxiPb22eTgV", "clusterID": ""}

solved by updating the config.yaml to
api_secret: secret
ws_url: ws://<IP_ADDRESS>:7880
insecure: true
redis:
  address: <IP_ADDRESS>:6379
log_level: debug

and running the livekit server with this commnad  livekit-server --dev --redis-host=<IP_ADDRESS>:6379 --bind <IP_ADDRESS>
but still  the egress livekit-cli list-egress   has this error
twirp error internal: unexpected HTTP status code 301 "Moved Permanently" received, Location="/twirp/livekit.Egress/ListEgress"
new issue is need for that error

solved by updating the config.yaml to
api_secret: secret
ws_url: ws://<IP_ADDRESS>:7880
insecure: true
redis:
  address: <IP_ADDRESS>:6379
log_level: debug

and running the livekit server with this commnad  livekit-server --dev --redis-host=<IP_ADDRESS>:6379 --bind <IP_ADDRESS>
but still  the egress livekit-cli list-egress   has this error
twirp error internal: unexpected HTTP status code 301 "Moved Permanently" received, Location="/twirp/livekit.Egress/ListEgress"
new issue is need for that error


Koenig embed card

No issue, related release: https://github.com/TryGhost/Ghost-Admin/releases/tag/1.24.3

preparing Casper for Koenig Embed card

LGTM 👌


chore: enable tests to run in a merge group

Bit too beta for now - closing until the feature has more configuration capability


[ASCII-2258] demultiplexer params

What does this PR do?
This PR adds a mandatory parameter to the demultiplexer Module() in order to replace
demultiplexerimpl.Module(),
fx.Supply(demultiplexerimpl.NewDefaultParams()),

by
demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams()),

Motivation
By adding the parameter to the Module function, a user of demultiplexer doesn't have to guess that demultiplexer.Params is mandatory

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes
Agent metrics and logs: Make sure dogstatsd_no_aggregation_pipeline works as expected for Dogstatsd binary and for the Agent binary.

/merge


🐛 fix (#34)

remove 'time' as transitive dependency by disabling default-features in chrono

I've seen this rather trafficked as a security issue than a bug. I'll stick to the gitmoji code and use the emoji security issues for the message in the merge.
Thanks for the work m8!


Monitoring Azure Files GA

[Enter feedback here]
In "How can I audit file access and changes in Azure Files?"
"Monitoring Azure Files" https://docs.microsoft.com/en-us/azure/storage/files/storage-files-monitoring?tabs=azure-portal has GA'd in Feb 2022.
The content can be updated.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 534b3ef3-5664-973e-b146-8c1f960bf536
Version Independent ID: 57c3ce18-2857-8ed0-10a5-5061d391a079
Content: Frequently asked questions (FAQ) for Azure Files
Content Source: articles/storage/files/storage-files-faq.md
Service: storage
Sub-service: files
GitHub Login: @roygara
Microsoft Alias: rogarana

@pinyuko Thank you for your feedback. We will investigate and update the thread further.

@pinyuko Firstly apologies for the delay response! Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.

@pinyuko Thanks for bringing this to our attention, we appreciate it! We've staged the content update and it'll be live later today.
Accordingly, I'll close this out.
Thanks again! :)
#please-close


libswoc: update to 1.4.4

Update to libswoc 1.4.4. This contains a number of fixes, primarily for MemSpan.
Note: slight issue with 1.4.3 on Ubuntu, tweaked to deal with that and bumped the libswoc version to be safe.

[approve ci ubuntu]

[approve ci autest]

I don't have any objection to upgrading libswoc, but I'm wondering why this change doesn't have any change in unit tests.
We don't import any unit tests of libswoc?
https://github.com/SolidWallOfCode/libswoc/tree/1.4.4/unit_tests

What would be the benefit of that? Those are run before a libswoc release, and the results won't change for that release.

[approve ci autest]

It seems we may need this to fix the autest(actually fix the issues causing the fail on the autest)

OK, the libswoc is tested well in the upstream repo before we import it. Hmm, it should be fine.
But what's the reason why we don't import the whole repo?


[BUG] PUT _plugins/_ism/policies/{id} API is not Idempotent but it should be!

Describe the bug
PUT methods should be Idempotent by design. Currently when you upload the same policy twice in version 1.1.0, you get bounced back with an error about conflicting versions which makes no sense.
To Reproduce
Steps to reproduce the behavior:

PUT a policy _plugins/_ism/policies/something
PUT the same policy again _plugins/_ism/policies/something
Get an error that:

{"error":{"root_cause":[{"type":"version_conflict_engine_exception","reason":"[ingress-accesslogs]: version conflict, document already exists (current version [1])","index":".opendistro-ism-config","shard":"0","index_uuid":"1lQ_voH4S0uIPbi-pjDbkQ"}],"type":"version_conflict_engine_exception","reason":"[ingress-accesslogs]: version conflict, document already exists (current version [1])","index":".opendistro-ism-config","shard":"0","index_uuid":"1lQ_voH4S0uIPbi-pjDbkQ"},"status":409}%

Expected behavior
I expected that I can PUT the same policy OVER AND OVER with the same result of PUT method..
Plugins
repository-azure
Screenshots
N/A
Host/Environment (please complete the following information):

Im using official Chart and Images provided by Opensearch in versions:

  - name: "opensearch"
    repository: "@myrepo"
    version: 1.2.4
  - name: "opensearch-dashboards"
    repository: "@myrepo"
    version: 1.0.6

Additional context
N/A

This is by design for ISM.
For updating a policy, you would have to provide the right is_seq_no and if_primary_term which you can get from get policy API. doc link
We don't plan to change this API and it's to enforce the prevention of accidental overwrites.


The location template tag should probably return None

Currently, if location() fails to find anything, it returns
<i>unknown</i>

Which is problematic on two fronts:

The <i> tag has been deprecated for a while in favour of <em>.

It limits the user's ability to control the output.  Most filters return None if nothing is available because it allows you to do stuff like this:
{{ session.ip|locaiton|default_if_none:'Nothing found' }}

For that matter, the device template tag has similar behaviour.
I can offer a pull request if you agree with this assessment.  I just didn't want to write one if you wouldn't want to use it.

Seems like a valid change request, I'll welcome the PR.

Fixed in adbcd552a2de465e8da9c49ccfe51d8bcadf83ea.


update year and corp name in license

previously there was no year and corporation name.
Now I've added the year and corp name.

@MikhailArkhipov please have a look! Thanks!

Thanks :-)