Fix abbreviation at start of paragraphs

There was an issue with an abbreviation term being at the start of the paragraph, in which the index does not update and therefore words can be repeated. This fixes it!

+1 for this!

Thanks!


True branchless orthonormal basis construction

Now that we are switching to C++ 11, we should be able use copysign safely. However, In OIIO's missing_math header, copysign is directed to  the native _copysign function via a macro, which is not properly overloaded. How should we handle this?

Hey, thanks so much for remembering to update the code!
We have a mechanism in place to cleanup after "unhygienic" libraries: pairs of macros that surround the libraries' header files, defined in foundation/platform/oiioheaderguards.h in the case of OIIO.
Unfortunately this mechanism won't work in this case because a C/C++ macro cannot #undef a symbol.
It seems to me that the simplest option is to simply implement copysign() ourselves. It's very simple to implement, and to my surprise it seems that the standard implementation is never inlined, so our implementation would also have a performance advantage.
I've just done it: https://github.com/appleseedhq/appleseed/pull/1448. Review appreciated!

Actually, a closer study of the assembly code generated by gcc 7.1 and clang 4.0.0 indicates that their implementation are probably superior to mine since they use SSE registers only, instead of ping-ponging between integer and floating point registers like my implementation does.
Maybe a better alternative to my PR is to replace OIIO's header guards by a pair of include files that would surround OIIO's header files. It's something I've done in our Maya plugin:
https://github.com/appleseedhq/appleseed-maya/blob/master/src/appleseedmaya/alphamapnode.cpp#L36

Here is a better mechanism that takes care of undefining the copysign() macro: https://github.com/appleseedhq/appleseed/pull/1450
Review appreciated!

Maybe we can merge this now and have a true branchless method:)

Yes! I'm not in front of my computer right now but feel free to merge it!
If you don't have the rights I'll give them to you tomorrow.
On Sun, 11 Jun 2017 at 19:54, Aytek Aman<EMAIL_ADDRESS>wrote:

Maybe we can merge this now and have a true branchless method:)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/appleseedhq/appleseed/pull/1447#issuecomment-307645496,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AATnCkNAxowVecvwWAhi70x0z1CJK4Uhks5sDCnOgaJpZM4N2ZDw
.


Update all users documents with upn and idir

We will now be capturing a users IDIR and UPN and passing that to the provisioner. We have implemented the front and backend changes but now need to update the existing users in our database.
Write a script that will fetch the IDIR and UPN for each users and update each user document in our production database
Dod:

[ ] The script is created
[ ] User documents are updated

The script was run on prod and updated all the users that had upn or/and idir with corresponding fields.


Remove PlannedAnalyzedRelation

There was no PlannedAnalyzedRelation which implemented AnalyzedRelation, so we basically only had Plans.
This commit therefore removes PlannedAnalyzedRelation and moves the
functions that were specific to Plans into the Plan interface.

@dobe please review

Current coverage is 81.08% (diff: 65.00%)

Merging #4303 into master will increase coverage by 0.04%

@@             master      #4303   diff @@
==========================================
  Files          1312       1311     -1
  Lines         44614      44599    -15
  Methods           0          0
  Messages          0          0
  Branches       7116       7115     -1
==========================================
+ Hits          36155      36165    +10
+ Misses         5789       5776    -13
+ Partials       2670       2658    -12

Powered by Codecov. Last update ae8aa08...a725c83


Add accordion widget to the package

:tada: This PR is included in version 1.3.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


ModelingToolkit integration

This provides an overload for ODESystem that constructs an ODESystem from a lens. This really should be refactored on top of a System struct from #52.

Since CICD for MTK is going to add a lot of heft to the package, should we factor out these examples into SymbolicLenses.jl or something? Then we can test MTK integration in a separate repo. It looks like we can us GHA to test downstream deps so that Gatlab tests will reflect the status of another package. We could move faster on Gatlab and just make sure that tagged releases of Gatlab don't break the SymbolicLenses.jl package. https://github.com/SciML/SciMLBase.jl/blob/master/.github/workflows/Downstream.yml

Agreed that MTK should not be a hard dependency of this package. I assume that this was just temporary since Gatlab is not yet a released package. On that note, Julia 1.9 will be out soon with better support for optional dependencies, removing the need for Requires.jl.

Since CICD for MTK is going to add a lot of heft to the package, should we factor out these examples into SymbolicLenses.jl or something? Then we can test MTK integration in a separate repo. It looks like we can us GHA to test downstream deps so that Gatlab tests will reflect the status of another package. We could move faster on Gatlab and just make sure that tagged releases of Gatlab don't break the SymbolicLenses.jl package. https://github.com/SciML/SciMLBase.jl/blob/master/.github/workflows/Downstream.yml

I have an issue for this: #32. This is definitely not going to be merged into Gatlab, but I didn't want to go to the bother of creating a new package when I was focused on the demo.


dbeaver: 6.1.0 -> 6.1.3

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)

/nix/store/54z33s97vb54d0cld1wfy0fbyn9pzkf9-dbeaver-ce-6.1.0	  980185768
/nix/store/8nzpczc5flkhd4k1iblwkvy6bgbvzzfi-dbeaver-ce-6.1.3	  980327824

[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Hi! :wave: thanks for the contribution!
This supercedes #64480.
@GrahamcOfBorg build dbeaver


feat:

Prerequisites

[X] I have searched for existing issues that already include this feature request, without success.

Describe the Feature Request
Bought items
Describe the Use Case
I have encountered a problem with my trading. For example, if I have bought a lot of players and they are still on the watch list and the transfer list is full. Do I have to sell them to Manuel later? or is there a possibility that when space is free again we will be sold?
Describe Preferred Solution
A slider with the option of purchased items that are in the watch list are automatically returned to the transfer list.
Describe Alternatives
No response
Additional Information
No response

If it bot is running, it will try to sell the won items in the watchlist.
if you have stopped the bot in between, you need to manually list the item

Good evening
but he does not do that with purchased items


DomEvent.Pointer to touchevents wrong event-type

If the Browser has not native touch support we simulate with DomEvent.Pointer the touchevents.
if we set an listener for touchmove, it will be fired if pointermove is called from the browser. But the event-type is still pointermove but is fired on a touchmove listener. This can be confusing and in my eyes not correct. If we listen on touchmove the event-type self should be touchmove too.
If we use the same event handler for multiple events, a if-else check will be used on the event-type, but this will not work because the unexpected type pointer... will be passed.
L.DomEvent.on(map.getContainer(), 'touchstart touchmove', function(e){
	if(e.type === 'touchstart') {
		console.log('Event fired', e.type, e);
	} else if(e.type === 'touchmove') {
		console.log('Event fired', e.type, e);
	} else {
		console.log('Event type not found:', e.type, e);
	}
})

@johnd0e do you know if this was done on purpose? Where there problems while changing from pointermove to touchmove of the event?

Test (no plunkr because it doesn't support touch-simulation):
<script>
	// to disable nativeTouch Support / enable Leaflet-pointer-event-manager
	delete window.ontouchstart;
	delete window.TouchEvent
</script>
<script src="../../dist/leaflet-src.js"></script>

Go in the touch-simulator of the Browser and enable touch.
L.DomEvent.on(map.getContainer(), 'touchstart touchmove', function(e){
	if(e.type === 'touchstart') {
		console.log('Event fired', e.type, e);
	}else if(e.type === 'touchmove'){
		console.log('Event fired', e.type, e);
	}else {
		console.log('Event type not found:', e.type, e);
	}
})

Vote for #7064


[feature] Import URLs based on Sitemap

Hello,
the tool could be great for monitoring errors on websites. As an agency, for example, I would like to track if something breaks on the site due to updates.
A function to get all the "URLs" of a page (e.g. through Sitemap) and import them directly would be super cool.
Are there any plans for this?
Tobias

Please search the issue/features list before creating a new one https://github.com/dgtlmoon/changedetection.io/issues/486


 bug fixes

Coverage decreased (-0.006%) to 38.929% when pulling 3af2be8f4db4d00ff93144aff830786223497cb7 on import_fixes into db9938f926929d33df1460abdaf688c2d6d10326 on master.


[PREVIEW] Scale ASP to 4 instance and cleanups

JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/RDM-4221
https://tools.hmcts.net/jira/browse/RDM-4236
Change description
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ ] No

This has been pretty OK for now.  No obvious need to scale out.


Use abspath for gh-pages html fetch

I haven't investigated this deeply, but asv gh-pages failed for me on the panadas repo.
The issue seems to be related to having the benchmarks inside the project directory, like pandas does.
git clone pandas
cd pandas/asv_bench
asv gh-pages --no-push
[ 11.11%] · Loading machine info
[ 22.22%] · Getting params, commits, tags and branches
[ 33.33%] · Loading results
[ 44.44%] · Detecting steps
[ 55.56%] · Generating graphs
[ 66.67%] · Generating output for SummaryGrid
[ 77.78%] · Generating output for SummaryList.
[ 88.89%] · Generating output for Regressions
[100.00%] · Writing index
[100.00%] · Updating gh-pages branch
[100.00%] · Error running /usr/local/bin/git fetch html
            STDOUT -------->

            STDERR -------->
            fatal: 'html' does not appear to be a git repository
            fatal: Could not read from remote repository.

            Please make sure you have the correct access rights
            and the repository exists.
Traceback (most recent call last):
  File "/Users/taugspurger/miniconda3/envs/asv/bin/asv", line 11, in <module>
    load_entry_point('asv', 'console_scripts', 'asv')()
  File "/Users/taugspurger/sandbox/asv/asv/main.py", line 38, in main
    result = args.func(args)
  File "/Users/taugspurger/sandbox/asv/asv/commands/__init__.py", line 48, in run_from_args
    return cls.run_from_conf_args(conf, args)
  File "/Users/taugspurger/sandbox/asv/asv/plugins/github.py", line 36, in run_from_conf_args
    return cls.run(conf=conf, no_push=args.no_push)
  File "/Users/taugspurger/sandbox/asv/asv/plugins/github.py", line 60, in run
    util.check_call([git, 'fetch', conf.html_dir])
  File "/Users/taugspurger/sandbox/asv/asv/util.py", line 344, in check_call
    cwd=cwd)
  File "/Users/taugspurger/sandbox/asv/asv/util.py", line 571, in check_output
    raise ProcessError(args, retcode, stdout, stderr)
asv.util.ProcessError: Command '/usr/local/bin/git fetch html' returned non-zero exit status 128

I've manually tested this and it worked. Haven't had a chance to write up a regression test, but can do that later if you want.

Coverage remained the same at 86.553% when pulling 4123f286da77dc905438ab581930fe573211392a on TomAugspurger:abspath into 4a071f538d15dc54892defdd0249c65d8520b66b on spacetelescope:master.

thanks, lgtm


Storybook error

Did git clone then npm i and npm run storybook and got
Warning: Failed prop type: The prop style.containeris marked as required inContainerDecorator, but its value is undefined`.
in ContainerDecorator (created by Context.Consumer)
in Unknown (created by NodeHeader)
in NodeHeader (created by TreeNode)
in li (created by Context.Consumer)
in Styled(li) (created by TreeNode)
in TreeNode (created by TreeBeard)
in ul (created by Context.Consumer)
in Styled(ul) (created by TreeBeard)
in TreeBeard (created by Stories)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Stories)
in Stories (created by StoriesPanel)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by StoriesPanel)
in StoriesPanel (created by Container(StoriesPanel))
in Container(StoriesPanel) (created by storiesPanel)
in storiesPanel (created by Layout)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Layout)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Layout)
in div
in Pane
in div
in SplitPane (created by Layout)
in Layout (created by Layout)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Layout)
in div (created by Layout)
in Unknown (created by Layout)
in Layout (created by Container(Layout))
in Container(Layout)
in div
printWarning @ vendors~main.250a45c46cd211276776.bundle.js:50885
vendors~main.250a45c46cd211276776.bundle.js:9213
Uncaught TypeError: Cannot read property 'reduce' of undefined
at ContainerDecorator (vendors~main.250a45c46cd211276776.bundle.js:9213)
at renderWithHooks (vendors~main.250a45c46cd211276776.bundle.js:65400)
at mountIndeterminateComponent (vendors~main.250a45c46cd211276776.bundle.js:67482)
at beginWork (vendors~main.250a45c46cd211276776.bundle.js:68087)
at performUnitOfWork (vendors~main.250a45c46cd211276776.bundle.js:71774)
at workLoop (vendors~main.250a45c46cd211276776.bundle.js:71814)
at HTMLUnknownElement.callCallback (vendors~main.250a45c46cd211276776.bundle.js:52611)
at Object.invokeGuardedCallbackDev (vendors~main.250a45c46cd211276776.bundle.js:52661)
at invokeGuardedCallback (vendors~main.250a45c46cd211276776.bundle.js:52718)
at replayUnitOfWork (vendors~main.250a45c46cd211276776.bundle.js:71040)
vendors~main.250a45c46cd211276776.bundle.js:50885 Warning: Failed prop type: Invalid prop style.container of type object supplied to ContainerDecorator, expected array.
in ContainerDecorator (created by Context.Consumer)
in Unknown (created by NodeHeader)
in NodeHeader (created by TreeNode)
in li (created by Context.Consumer)
in Styled(li) (created by TreeNode)
in TreeNode (created by TreeNode)
in ul (created by Context.Consumer)
in Styled(ul) (created by TreeNode)
in Transition (created by VelocityTransitionGroupChild)
in VelocityTransitionGroupChild (created by VelocityTransitionGroup)
in div (created by TransitionGroup)
in TransitionGroup (created by VelocityTransitionGroup)
in VelocityTransitionGroup (created by Drawer)
in Drawer (created by TreeNode)
in li (created by Context.Consumer)
in Styled(li) (created by TreeNode)
in TreeNode (created by TreeNode)
in ul (created by Context.Consumer)
in Styled(ul) (created by TreeNode)
in Transition (created by VelocityTransitionGroupChild)
in VelocityTransitionGroupChild (created by VelocityTransitionGroup)
in div (created by TransitionGroup)
in TransitionGroup (created by VelocityTransitionGroup)
in VelocityTransitionGroup (created by Drawer)
in Drawer (created by TreeNode)
in li (created by Context.Consumer)
in Styled(li) (created by TreeNode)
in TreeNode (created by TreeBeard)
in ul (created by Context.Consumer)
in Styled(ul) (created by TreeBeard)
in TreeBeard (created by Stories)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Stories)
in Stories (created by StoriesPanel)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by StoriesPanel)
in StoriesPanel (created by Container(StoriesPanel))
in Container(StoriesPanel) (created by storiesPanel)
in storiesPanel (created by Layout)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Layout)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Layout)
in div
in Pane
in div
in SplitPane (created by Layout)
in Layout (created by Layout)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Layout)
in div (created by Layout)
in Unknown (created by Layout)
in Layout (created by Container(Layout))
in Container(Layout)
in div
printWarning @ vendors~main.250a45c46cd211276776.bundle.js:50885
vendors~main.250a45c46cd211276776.bundle.js:9213
Uncaught TypeError: container.reduce is not a function
at ContainerDecorator (vendors~main.250a45c46cd211276776.bundle.js:9213)
at renderWithHooks (vendors~main.250a45c46cd211276776.bundle.js:65400)
at mountIndeterminateComponent (vendors~main.250a45c46cd211276776.bundle.js:67482)
at beginWork (vendors~main.250a45c46cd211276776.bundle.js:68087)
at performUnitOfWork (vendors~main.250a45c46cd211276776.bundle.js:71774)
at workLoop (vendors~main.250a45c46cd211276776.bundle.js:71814)
at HTMLUnknownElement.callCallback (vendors~main.250a45c46cd211276776.bundle.js:52611)
at Object.invokeGuardedCallbackDev (vendors~main.250a45c46cd211276776.bundle.js:52661)
at invokeGuardedCallback (vendors~main.250a45c46cd211276776.bundle.js:52718)
at replayUnitOfWork (vendors~main.250a45c46cd211276776.bundle.js:71040)
vendors~main.250a45c46cd211276776.bundle.js:69579 The above error occurred in the  component:
in ContainerDecorator (created by Context.Consumer)
in Unknown (created by NodeHeader)
in NodeHeader (created by TreeNode)
in li (created by Context.Consumer)
in Styled(li) (created by TreeNode)
in TreeNode (created by TreeNode)
in ul (created by Context.Consumer)
in Styled(ul) (created by TreeNode)
in Transition (created by VelocityTransitionGroupChild)
in VelocityTransitionGroupChild (created by VelocityTransitionGroup)
in div (created by TransitionGroup)
in TransitionGroup (created by VelocityTransitionGroup)
in VelocityTransitionGroup (created by Drawer)
in Drawer (created by TreeNode)
in li (created by Context.Consumer)
in Styled(li) (created by TreeNode)
in TreeNode (created by TreeBeard)
in ul (created by Context.Consumer)
in Styled(ul) (created by TreeBeard)
in TreeBeard (created by Stories)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Stories)
in Stories (created by StoriesPanel)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by StoriesPanel)
in StoriesPanel (created by Container(StoriesPanel))
in Container(StoriesPanel) (created by storiesPanel)
in storiesPanel (created by Layout)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Layout)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Layout)
in div
in Pane
in div
in SplitPane (created by Layout)
in Layout (created by Layout)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Layout)
in div (created by Layout)
in Unknown (created by Layout)
in Layout (created by Container(Layout))
in Container(Layout)
in div
Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://fb.me/react-error-boundaries to learn more about error boundaries.
logCapturedError @ vendors~main.250a45c46cd211276776.bundle.js:69579
vendors~main.250a45c46cd211276776.bundle.js:69579
The above error occurred in the  component:
in ContainerDecorator (created by Context.Consumer)
in Unknown (created by NodeHeader)
in NodeHeader (created by TreeNode)
in li (created by Context.Consumer)
in Styled(li) (created by TreeNode)
in TreeNode (created by TreeNode)
in ul (created by Context.Consumer)
in Styled(ul) (created by TreeNode)
in Transition (created by VelocityTransitionGroupChild)
in VelocityTransitionGroupChild (created by VelocityTransitionGroup)
in div (created by TransitionGroup)
in TransitionGroup (created by VelocityTransitionGroup)
in VelocityTransitionGroup (created by Drawer)
in Drawer (created by TreeNode)
in li (created by Context.Consumer)
in Styled(li) (created by TreeNode)
in TreeNode (created by TreeNode)
in ul (created by Context.Consumer)
in Styled(ul) (created by TreeNode)
in Transition (created by VelocityTransitionGroupChild)
in VelocityTransitionGroupChild (created by VelocityTransitionGroup)
in div (created by TransitionGroup)
in TransitionGroup (created by VelocityTransitionGroup)
in VelocityTransitionGroup (created by Drawer)
in Drawer (created by TreeNode)
in li (created by Context.Consumer)
in Styled(li) (created by TreeNode)
in TreeNode (created by TreeBeard)
in ul (created by Context.Consumer)
in Styled(ul) (created by TreeBeard)
in TreeBeard (created by Stories)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Stories)
in Stories (created by StoriesPanel)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by StoriesPanel)
in StoriesPanel (created by Container(StoriesPanel))
in Container(StoriesPanel) (created by storiesPanel)
in storiesPanel (created by Layout)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Layout)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Layout)
in div
in Pane
in div
in SplitPane (created by Layout)
in Layout (created by Layout)
in div (created by Context.Consumer)
in Styled(div) (created by ForwardRef)
in ForwardRef (created by Layout)
in div (created by Layout)
in Unknown (created by Layout)
in Layout (created by Container(Layout))
in Container(Layout)
in div
Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://fb.me/react-error-boundaries to learn more about error boundaries.`

Updating storybook to 5.1.9 fixed it

Updating storybook to 5.1.9 fixed it

:tada: This issue has been resolved in version 2.2.10 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 2.2.10 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


hi.Here's a problem

Can the iOS version directly use this SDK to get satellite information? Or need to use external hardware to get the NMEA Log

Hi JonkMing,
iOS CoreLocation APIs do not get or provide satellite information, only latitude/longitude/speed/heading/altitude.  This is true for both the internal GPS and external GPS accessories such as Bad Elf GPS receivers.
If you are need the satellite information and are using a Bad Elf GPS receiver, this SDK allows an app to get ALL of the satellite data.
HTH!
-Brett

I see the careland map can get satellite number, but do not know how to do

Can you please post a link to the Careland map app and we'll take a look?

http://www.careland.com.cn


feat: add rxnMAIDfield to JSON file

Main improvements in this PR:

This PR is to add rxnMAID field to humanGEMRxnAssoc.JSON file, as discussed in #174

I hereby confirm that I have:

[X] Tested my code on my own computer for running the model
[X] Selected devel as a target branch

Two comments/suggestions:

Maybe leave the rxnMAID field blank for reactions that do not have an ID of the form MA_####, instead of just using their original ID? I realize it's temporary and probably doesn't matter, but this would at least keep all of the IDs in the rxnMAID field consistent.

Consider adding an extra digit, since we're already surpassing 10,000 reactions; e.g., MA_3905 would be MA_03905.

@JonathanRob the elements are reformatted as suggested.


⚠ Bofrost.be has degraded performance

In ef512d3, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1836 ms

Resolved: Bofrost.be performance has improved in e928934.


Sample Authorization Server Switch to in memory db - fixes #385

Use in memorydb for client repository to match the custom consent form sample - fixes failure to call to token endpoint that is returning a 302 to the login form.

@mikee Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@mikee Thank you for signing the Contributor License Agreement!

#385 - replace sample jdbc code with in memory.  If this isn't preferred I'm happy to work out what is wrong with the jdbc sample itself

Thanks for the PR @mikee.
However, we want the sample to use the JDBC-backed repository.
The main issue has been fixed via ea7c689


Debugger tab ui disappearing

When you scroll down in the debugger panel, the tab buttons disappear. The clip attached below demonstrates this issue:
https://github.com/daveleroy/SublimeDebugger/assets/101906945/fd074a1b-ab07-4736-802f-f9a4aedb8fb5

They have to disappear when scrolling because the ui cannot be redrawn every frame


Add code conduct page

Issue

close https://github.com/DroidKaigi/conference-app-2022/issues/189

Overview (Required)
Add "code conduct" under "license".
Screenshot

@takahirom OK. I will add WIP to title of this PR. 🙆🏼♂

Can you check the conflict?🙏

@takahirom
Fixed conflicts! Please let me confirm two things. 🙏🏼

Is the position of "code of conduct" bottom (under "license") in about screen?
How's about "privacy policy"?
https://github.com/DroidKaigi/conference-app-2022/issues/189#issue-1361411972

How about this order.
Code of conduct
Privacy policy
From web

@takahirom Is this order correct?
Access
Staff List
License
Code of conduct
Privacy Policy
App Version

And how's about "privacy policy"?
Should I develop in this PR or another PR (issue)?

There is the issue 👀
https://github.com/DroidKaigi/conference-app-2022/issues/188

LGTM! Thanks for your cooperation.


⚠ ClamAV has degraded performance

In 546d2b6, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 54 ms

Resolved: ClamAV performance has improved in 204381f after 7 minutes.


Listen to all IP-adresses

I was having a problem when getting the app working with Laravel running in Windows WSL2. Due to only listening to the local IP-address, Laravel wasn't able to connect to the server.
Changing the host to <IP_ADDRESS> means it will listen on every IP-address given.

Thank you!

Thank you!


Prevent invalid traceparent ("00-00000...") from being returned to the caller

Signed-off-by: Karsten Wintermann<EMAIL_ADDRESS>Description
Added a check in http_channel.go which prevents an empty traceparent header from being returned to the caller.
This way, valid traceparent headers, which may be received from Kafka topics with raw payloads, are not overwritten.
Issue reference

Please reference the issue this PR will close: #7372
Checklist
Please make sure you've  completed the relevant tasks for this PR, out of the following list:

[X] Code compiles correctly
[X] Created/updated tests
[X] Unit tests passing
[X] End-to-end tests passing
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

@KarstenWintermann see the linter failure

@KarstenWintermann see the linter failure

OK, fixed it


[NFR] Adding nullable(false) and/or notNullable() methods

Currently, it seems there is no command to undo nullable() method. A function to prevent null value (not nullable) is really necessary. e.i.  nullable(false) and/or notNullable()

You can use nullable(false) already.

Can you add in documentation about nullable(false) ?


Update readme.html

added aYourls to Android apps

Thanks! Now pimped on http://yourls.org/#More as well


fix: add stopPropagation calls to dnd handlers

Fixes https://github.com/KevinVandy/mantine-react-table/issues/383
Without stopping propagation, libraries like react-mosaic may break the dnd features. This solution has been proposed here as well.

Hey sorry it took a while to review this. We were discussing this and did not believe this is the right fix, as this is a workaround around the react-mosaic-component package, and IMO this should not be fixed at the library level but in userland. Moreover, some other users might be expecting the event to bubble up which this effectively prevents.
I think the right fix would be to expose a prop so the user of the library can provide its drag handle function (more like a render props approach), however, this is more work. Let me know if you would be interested in exploring that approach, otherwise, I would have to close this.

Closing as no response, please feel free to open another PR


Better control for the "Show Replies" setting

Is your feature request related to a problem? Please describe.
Let's take accounts A and B that I follow, and account C that I don't.
I wish there was a setting:

preventing me from having in my feed a reply from account A to account C (since I don't follow account C)
allowing me to have a reply from account A to account B (since I follow both accounts) or from account A to account A (own reply to one's post) in my feed

Describe the solution you'd like
I wish the "Show Replies" setting was split into 2 when indicating "Yes":

Show "all" replies (current behaviour, with existing Reply Filters)
Only show replies to posts from accounts you follow (either post creator or another account you follow)

Describe alternatives you've considered
As far as I understand, there's no way to achieve that at the moment
Additional context
Related to https://github.com/bluesky-social/social-app/pull/885 and https://github.com/bluesky-social/social-app/issues/791

Isnt that what this is for?

It was removed in 1.90 as part of changes to what posts are shown in the Following feed:
https://bsky.app/profile/bsky.app/post/3l2s5vdthls2h
They were somewhat controversial changes, and the Bluesky team have been listening to the feedback from users and have floated some ideas for improvements.

Oh wow, what. Biased here, but the best improvement would be to simply restore the feature.


Explore{} functionality

Because the concepts (aka things and actions) are being stored in the vector space, we can explore Weaviate in a different fashion than traditional searches.
Birds-eye view;

Rename Local -> Fetch -> Fuzzy to Local -> Explore -> Concepts
Explore both concepts via beacons as things and actions directly

Explore function in GQL
On the highest level, the new functionality looks like:
{
  Local{
    Explore{     # <== Explore is the new syntax, because one "explores" Weaviate.
      Concepts{} # <== Concepts returns beacons. It can be anything of an unknown origin.
    }
  }
}

Concepts{}
Schema with example input;
{
  Local{
    Explore{
      Concepts(
        keywords: ["GTA", "5", "reviews"],
        limit: 100,
        moveTo: {
      		words: ["positive"],
		force: 0.5
        },
        moveAwayFrom: {
      		words: ["epic"],
		force: 0.25
        }
      ){
        beacon
        className
        distance
      }
    }
  }
}

keywords = an array of strings where every individual string represents a vector space (or not). When multiple words are in one string (e.g., keywords: ["monkey dance"]) the centroid of the words will be taken as the input vector. Resulting in different results when they are separated (e.g.,  keywords: ["monkey dance"] versus  keywords: ["monkey", "dance"])
limit = maximum results.
moveTo: when a centroid is calculated based on the keywords k, one can move towards direction T where the force f is a maximum of half the distance resulting in: (k+T)/2*f For example: if k = 1, T = 20, f = 1.0. The search centroid will be placed at vector 10.5.
moveAwayFrom: is similar to moveTo but moves away resulting in: k-(k+T)/2*f. For example, if k = 1, T = 2, f = 1.0. The search centroid will be placed at vector -0.5.
beacon: Beacon -as currently used- that points to a concept.
className: Name of the local class the beacon points to.
distance: How far is it from the search vector point? (previously known as relevancy)

Notable

For Things and Actions using the explore function directly we have: https://github.com/semi-technologies/weaviate/issues/881

@bobvanluijt Quick question regarding

When multiple words are in one string (e.g., keywords: ["monkey dance"]) the centroid of the words will be taken as the input vector. Resulting in different results when they are separated (e.g., keywords: ["monkey dance"] versus keywords: ["monkey", "dance"])

If they're all in one string (array item) we built the centroid, understood. What is supposed to happen if they are separate elements?

Let's take the following two keywords:

keywords: ["monkey dance", "tango"]
keywords: ["monkey", "dance", "tango"]

The following would happen;

First, the centroid of monkey and dance is created. Secondly, the centroid of the monkey dance centroid + tango is created (two-dimensional centroid).
A centroid of monkey, dance and tango is created (three-dimensional centroid).

I see, thanks. So without a 2nd/3rd arg the following would lead to identical results, correct? (At least as long as the contextionary only supports single words.)

keywords: ["monkey dance"]
keywords: ["monkey", "dance"]

Correct

@bobvanluijt I have two questions regarding the "moving to" and "moving away" forumula. You proposed the following:

(k+T)/2*f

Question 1
First up this way of writing is a bit misleading as this literally means (k+T)*f / 2, however, because of the order you wrote it the intention might have been to mean (k+T) / 2f. Which one did you mean? Either way though, I can construct the next example to be potentially problematic with this formula:
Question 2
However, I'm not sure if it's the best idea to divide (or multiply) the entire vector by the force. As we approach smaller forces the vector would be come infinitely small (with (k+T)*f / 2) or infinitely big with (k+T) / 2f. For example take the following situation:

k=5
T=1
f=0.0001

Since the force is very small, we would expect that the resulting search vector is very close to the original keywords. We only moved a tiny bit towards the "moveTo". However, with the above formula we would actually result in:
Option 1: (5+1)/2  * 0.0001 = 0.0003
Option 2: (5+1)/(2 * 0.0001) = 30,000.00
Both are quite far from the original vector. I would thus propose to change the formula to the following, which is basically a weighted average:
k * ( 1-f/2 ) + (T *f/2 )

With the above example we would end up with 5 * (1-0.0001/2) + 1 * (0.0001 / 2) = 4.9998 and indeed very close to the original keyword.
With an example for "full force", we would end up with 5 * (1-1/2) + 1 * (1/2) = 3 which is indeed much closer to the move to example.

Interested to hear your thoughts.

Thanks for sharing @etiennedi, let me try to answer all open questions in one.
The suggested movement formulas were hypothetical, I have not been able to test them. The problem here is that it is very hard to be deterministic about the results. We use intuition to determine if the presented beacons make sense. Long story short, feel free to tweak and adjust the formula to get to intuitively satisfying results. Your last suggestions make complete sense to me.
PS:
I'm not sure I understand the question no.1 for me this is potato, potato 😁

Thanks for the answer :)

I'm not sure I understand the question no.1 for me this is potato, potato 😁

Just for completeness sake (even though it doesn't really matter anymore now), these were the two different options you could have potentially meant:

Ha, thanks

@bobvanluijt FYI: As of the latest commit (see above), the distance in the search results is now displayed as a normalized value between 0 and 1 (0 meaning search and result vector are identical, 1 meaning they are perfect opposites). The value is calculated based on cosine similarity which is also what we are using to score the vectors inside the Elasticsearch backend.

Check, thanks @etiennedi. Is this also in the docs?

@bobvanluijt Not yet, I just wanted to add it, but realized that the docs are currently still focused on the Fetch functions alltogether. This means the entire section needs to be rewritten to remove Fetch Fuzzy include Explore Concepts and the explore Operator. I think it would be best to group those in a small documentation issue. (I'll create it). This is also something @laura-ham could potentially help with if she has some time.

Ok thanks.


Benchmarks for busboy

Tadaaa!
I modified the dicer benchmark for busboy. I also added the old busboy for comparison, but i did not add a npm package.json script for benching against the old busboy. I can add it if you like.
I moved the dicer benchmarks into the bench folder. Looks clear. ;)

Checklist

[x] run npm run test and npm run benchmark
[x] tests and/or benchmarks are included
[ ] documentation is changed or added
[x] commit message and code follows the Developer's Certification of Origin
and the Code of conduct

btw. The comparison:
uzlopak@uzlopak-Lenovo-Legion-5-17ARH05H:~/Workspace/fastify/busboy$ node ./bench/busboy-bench.js
2380.95 mb/sec
2222.22 mb/sec
3448.28 mb/sec
3571.43 mb/sec
3571.43 mb/sec
3448.28 mb/sec
3448.28 mb/sec
3571.43 mb/sec
3571.43 mb/sec
3448.28 mb/sec

uzlopak@uzlopak-Lenovo-Legion-5-17ARH05H:~/Workspace/fastify/busboy$ node ./bench/fastify-busboy-bench.js
8333.33 mb/sec
11111.11 mb/sec
10000.00 mb/sec
10000.00 mb/sec
10000.00 mb/sec
10000.00 mb/sec
11111.11 mb/sec
11111.11 mb/sec
10000.00 mb/sec
10000.00 mb/sec


fix Unit is_on() for dimmable lights

I only have dimmable lights and in home assistant they are always shown as but they are off in real.
The problem seems to be that _on is always True and only the dimmer value is set to 0. The code seems to take care of that but the condition was wrong, self._state.dimmer would always be false when the dimmer is 0 thus it was going into the else branch which only return _on.
Just removing the condition makes it work because the dimmer value is checked in the return line anyway.

Looks good to me. Thanks for all the help.


feat: use dateutils.relativedelta instead of timedelta

Description
This will enable to work with months and years time frequencies.
Closes #63 and #8

@mdancho84 fancy taking a look whenever you have the time?

Sorry must have missed this message. I'll install and test out with pytimetk.

Hey @mdancho84

Sorry must have missed this message

I should avoid pinging during weekends 🙈

I'll test the month in a minute and report back.

Sure thanks! There is no rush 😁 I could also follow a similar approach to what we do in Narwhals and run the pytimetk test suite in CI as a downstream library. I will open an issue to keep track of that

I'm seeing a failure with 'months'
# imports
import numpy as np
import pandas as pd
import pytimetk as tk

# Get data
df = tk.datasets.load_dataset('bike_sales_sample')

df['order_date'] = pd.to_datetime(df['order_date'])

df.glimpse()

# aggregate sales by month
sales_by_month = df \
    .groupby('category_2') \
    .summarize_by_time(
        date_column = 'order_date',
        value_column = 'total_price',
        agg_func = ['sum'],
        freq = 'MS'
    )

sales_by_month

# make cross validation sets

from pytimetk import TimeSeriesCV

tscv = TimeSeriesCV(
    frequency="months",
    train_size=24,
    forecast_horizon=12,
    gap=12,
)

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
File Untitled-[1](untitled-1:1):1
----> 1 tscv = TimeSeriesCV(
      [2](untitled-1:2)     frequency="months",
      [3](untitled-1:3)     train_size=2[4](untitled-1:4),
      4     forecast_horizon=12,
      [5](untitled-1:5)     gap=12,
      [6](untitled-1:6) )

File ~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:153, in TimeSeriesCV.__init__(self, frequency, train_size, forecast_horizon, gap, stride, window, mode, split_limit, **kwargs)
    [140](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:140) def __init__(
    [141](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:141)     self,
    [142](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:142)     frequency: str,
   (...)
    [151](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:151) ):
    [152](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:152)     # Initialize the parent class
--> [153](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:153)     super().__init__(
    [154](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:154)         frequency = frequency,
    [155](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:155)         train_size = train_size,
    [156](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:156)         forecast_horizon = forecast_horizon,
    [157](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:157)         gap = gap,
    [158](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:158)         stride = stride,
    [159](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:159)         window = window,
    [160](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:160)         mode=mode,
    [161](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:161)         **kwargs
    [162](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:162)     )
    [164](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/Desktop/software/pytimetk/src/pytimetk/crossvalidation/time_series_cv.py:164)     self.split_limit = split_limit

File ~/opt/anaconda3/envs/pytimetk/lib/python3.9/site-packages/timebasedcv/core.py:111, in _CoreTimeBasedSplit.__init__(self, frequency, train_size, forecast_horizon, gap, stride, window, mode)
    [108](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/opt/anaconda3/envs/pytimetk/lib/python3.9/site-packages/timebasedcv/core.py:108) self.window_ = window
    [109](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/opt/anaconda3/envs/pytimetk/lib/python3.9/site-packages/timebasedcv/core.py:109) self.mode_ = mode
--> [111](https://file+.vscode-resource.vscode-cdn.net/Users/mdancho/Desktop/software/pytimetk/~/opt/anaconda3/envs/pytimetk/lib/python3.9/site-packages/timebasedcv/core.py:111) self._validate_arguments()

File ~/opt/anaconda3/envs/pytimetk/lib/python3.9/site-packages/timebasedcv/core.py:118, in _CoreTimeBasedSplit._validate_arguments(self)

That was the problem. I wasn't upgraded. Solution was to uninstall and reinstall at your last commit /branch

I am running into issues with the 'month' test I've put together inside of Pytimetk:
# imports
import numpy as np
import pandas as pd
import pytimetk as tk

# Get data
df = tk.datasets.load_dataset('bike_sales_sample')

df['order_date'] = pd.to_datetime(df['order_date'])

df.glimpse()

# aggregate sales by month
sales_by_month = df \
    .groupby('category_2') \
    .summarize_by_time(
        date_column = 'order_date',
        value_column = 'total_price',
        agg_func = ['sum'],
        freq = 'MS'
    )

sales_by_month \
    .groupby('category_2') \
    .plot_timeseries("order_date", "total_price_sum", smooth=False, plotly_dropdown = True)

# Set index
df = sales_by_month.copy()

df.set_index("order_date", inplace=True)

# Create an X dataframeand y series
X, y = df.loc[:, ["category_2"]], df["total_price_sum"]
X
y

# make cross validation sets

from pytimetk import TimeSeriesCV

tscv = TimeSeriesCV(
    frequency="months",
    train_size=6,
    forecast_horizon=3,
    gap=0,
)

splits = tscv.split(X, y)

for i, (X_train, X_forecast, y_train, y_forecast) in enumerate(list(splits)):

    print(f"Split {i+1}")
    print(X_train)
    print(X_forecast)

tscv.glimpse(y)

tscv.plot(X,y)

The output from printing the splits suggests it's only making 1 split:
Split 1
                    category_2
order_date
2011-03-01  Cross Country Race
2011-04-01  Cross Country Race
2011-05-01  Cross Country Race
2011-06-01  Cross Country Race
2011-07-01  Cross Country Race
2011-08-01  Cross Country Race
2011-03-01          Cyclocross
2011-04-01          Cyclocross
2011-05-01          Cyclocross
2011-06-01          Cyclocross
2011-07-01          Cyclocross
2011-08-01          Cyclocross
2011-03-01          Elite Road
2011-04-01          Elite Road
2011-05-01          Elite Road
2011-06-01          Elite Road
2011-07-01          Elite Road
2011-08-01          Elite Road
2011-03-01      Endurance Road
2011-04-01      Endurance Road
2011-05-01      Endurance Road
2011-06-01      Endurance Road
2011-07-01      Endurance Road
2011-08-01      Endurance Road
2011-03-01            Fat Bike
2011-04-01            Fat Bike
2011-05-01            Fat Bike
2011-06-01            Fat Bike
2011-07-01            Fat Bike
2011-08-01            Fat Bike
2011-03-01       Over Mountain
2011-04-01       Over Mountain
2011-05-01       Over Mountain
2011-06-01       Over Mountain
2011-07-01       Over Mountain
2011-08-01       Over Mountain
2011-03-01               Sport
2011-04-01               Sport
2011-05-01               Sport
2011-06-01               Sport
2011-07-01               Sport
2011-08-01               Sport
2011-03-01               Trail
2011-04-01               Trail
2011-05-01               Trail
2011-06-01               Trail
2011-07-01               Trail
2011-08-01               Trail
2011-03-01          Triathalon
2011-04-01          Triathalon
2011-05-01          Triathalon
2011-06-01          Triathalon
2011-07-01          Triathalon
2011-08-01          Triathalon
                    category_2
order_date
2011-09-01  Cross Country Race
2011-10-01  Cross Country Race
2011-11-01  Cross Country Race
2011-09-01          Cyclocross
2011-10-01          Cyclocross
2011-11-01          Cyclocross
2011-09-01          Elite Road
2011-10-01          Elite Road
2011-11-01          Elite Road
2011-09-01      Endurance Road
2011-10-01      Endurance Road
2011-11-01      Endurance Road
2011-09-01            Fat Bike
2011-10-01            Fat Bike
2011-11-01            Fat Bike
2011-09-01       Over Mountain
2011-10-01       Over Mountain
2011-11-01       Over Mountain
2011-09-01               Sport
2011-10-01               Sport
2011-11-01               Sport
2011-09-01               Trail
2011-10-01               Trail
2011-11-01               Trail
2011-09-01          Triathalon
2011-10-01          Triathalon
2011-11-01          Triathalon

It seems that the data has one year only:
df.index.min(), df.index.max()
(Timestamp('2011-01-01 00:00:00'), Timestamp('2011-12-01 00:00:00'))

Yes, is that a problem?

Whops sorry, I thought it was 1 year frequency, ignore me

So the reason is that there are 11 months between min and max, with a 6 months training and 3 months forecast horizon (and stride as well). This makes the second split to start on 2010-12-01, which is before the min date.
For mode="backward" I want to guarantee that the train size is always respected (but also the forecast_horizon will be so).
If you were to compute this in forward mode, then you would get 2splits, the second of which has a test size of 2 months only (from 2011-10-01 to 2011-12-01).
One way to achieve that in backward mode would be to specify the end date in .split method:
from datetime import datetime

...

tscv = TimeSeriesCV(
    frequency="months",
    train_size=6,
    forecast_horizon=3,
    gap=0,
)

splits = tscv.split(X, y, end_dt=datetime(2012, 1, 1))

for i, _ in enumerate(list(splits)):
    print(f"Split {i+1}")

Split 1
Split 2

Ok that's interesting. Thanks for looking into it.
All of the original examples I put together are working.
I'll play around with it and see if there's anything else.
But this looks great. Thanks so much for adding the new frequencies.

Hey @mdancho84, I hope everything is ok!
Pinging you as gently reminder for this PR 🙃

I'm good with it. If I find anything substantial I'll let you know. Nice work!


cargo-component cannot find exported function in a world

I am following https://component-model.bytecodealliance.org/language-support/rust.html#importing-an-interface-into-a-command-component to create a command component with cargo-component.
My adder WIT was:
package component:adder;

world adder {
    export add: func(a: s32, b: s32) -> s32;
}

And my WIT for the host is
 package component:host;

 world host {
    import component:adder/add;
 }

I also added this to Cargo.toml
[package.metadata.component.target.dependencies]
"component:adder" = { path = "../guest-adder/wit" }

But when I ran cargo component build, I got
error: failed to create a target world for package `host-command-component` (/Users/zhiqiu/offline_code/opensource/wasi_mindmap/host-command-component/Cargo.toml)

Caused by:
    0: failed to merge local target `/Users/zhiqiu/offline_code/opensource/wasi_mindmap/host-command-component/wit`
    1: interface not found in package
            --> /Users/zhiqiu/offline_code/opensource/wasi_mindmap/host-command-component/wit/host.wit:4:28
             |
           4 |     import component:adder/add;
             |                            ^--

This took me a while to debug, but in the end, I had to write my adder WIT like:
package component:adder;

interface add {
  add: func(a: s32, b: s32) -> s32;
}

world adder {
    export add;
}

So it has add interface exported, which has an add function.
I don't think the behavior of cargo-component is expected, as in a WIT file, a world can just simply export a function.

Thanks! Are there any ongoing proposals for top-level functions?

You can include the entire contents of one world into another though

I wanted to compose two components, plug an adder component into a command line component. As far as I understand, including a WIT world is basically like copying and pasting the imports and exports of the included world, which is not suitable for composing components.

Thanks! Are there any ongoing proposals for top-level functions?

I'm not aware of any currently.

You can include the entire contents of one world into another though

I wanted to compose two components, plug an adder component into a command line component. As far as I understand, including a WIT world is basically like copying and pasting the imports and exports of the included world, which is not suitable for composing components.

Could you describe this in more detail? Including a WIT world is as you say, but this is often what one wants, when combining two worlds.

I think this screenshot should worth dozens of words. I have an adder component, which is just a library, and I want to test/run it in command line with wasmtime, so I should implement a command line component that imports adder's functionality and run the function.

I think this screenshot should worth dozens of words. I have an adder component, which is just a library, and I want to test/run it in command line with wasmtime, so I should implement a command line component that imports adder's functionality and run the function.

And were you able to make this work?  This should work with the wit you provided that uses the interface keyword, as right now this the syntax that cargo-component expects.  If you can share a link to the source code for the components you're authoring, it would probably help with identifying the cause of any issues you're having in your compositions.


[GSSOC'23] Bug Report: Chat Symbol is not at right position

Reproduction steps
If you look at the homepage of the website, you'll see that the chat icon is at the centre of the screen on the right side. Ideally, it should be at the bottom of the screen for a better user experience.
Kindly assign this issue to me under GSSOC'23 Label, I want to fix this issue.
Expected behaviour

Actual Behavior

👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

I wanr to work on the issue . Kindly assign teh issue to me.


OVH S3 (Ceph) needs a region to be specified, otherwise fails

When trying to use OVH S3 backend, which is based on ceph, i run into the following issue:
2024-05-23 15:30:36,263 [INFO] ceph.py:62 -- Ceph client created - Endpoint: https://s3.gra.perf.cloud.ovh.net/
Traceback (most recent call last):
  File "/home/ayman/.local/bin/lithops", line 33, in <module>
    sys.exit(load_entry_point('lithops', 'console_scripts', 'lithops')())
  File "/home/ayman/.local/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/home/ayman/.local/lib/python3.10/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/home/ayman/.local/lib/python3.10/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/ayman/.local/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/ayman/.local/lib/python3.10/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/home/ayman/Work/lithops/lithops/scripts/cli.py", line 206, in hello
    fexec = lithops.FunctionExecutor(
  File "/home/ayman/Work/lithops/lithops/executors.py", line 113, in __init__
    self.internal_storage = InternalStorage(storage_config)
  File "/home/ayman/Work/lithops/lithops/storage/storage.py", line 352, in __init__
    self.storage.create_bucket(self.bucket)
  File "/home/ayman/Work/lithops/lithops/storage/storage.py", line 98, in create_bucket
    return self.storage_handler.create_bucket(bucket)
  File "/home/ayman/Work/lithops/lithops/storage/backends/ceph/ceph.py", line 93, in create_bucket
    raise e
  File "/home/ayman/Work/lithops/lithops/storage/backends/ceph/ceph.py", line 86, in create_bucket
    self.s3_client.head_bucket(Bucket=bucket_name)
  File "/home/ayman/.local/lib/python3.10/site-packages/botocore/client.py", line 535, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/home/ayman/.local/lib/python3.10/site-packages/botocore/client.py", line 983, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (400) when calling the HeadBucket operation: Bad Request

This is solved by passing the region to the storage backend.

Solved, closing.


Not getting events in addGatewayEventListener

This has been fixed with latest version. Please use latest version of SDK


html_safe and escaping javascript

Obviously using .html_safe or raw() on the content is not a good idea if the saved data is not escaped from javascript. Inserting  when in html-mode will pop open an alert box when the user views the post.
Any ideas on how to properly escape javascript from the content that is being saved?
Using this gem is probably an option: https://github.com/rgrove/sanitize
But I wanted to make sure that I am not doing this the wrong way - adding an additional gem just to sanitize malicious input.

i think whitelist-based escape is best.(https://github.com/rgrove/sanitize is whitelist-based)
Choose whitelist is depends on application, some application not allow script but another application allow.


Move back to struct file type for airspeed access

@kd0aij Could you please try this branch and see if that fixes it? This is based on diffing master and beta.

same preflight fail on airspeed:
sercon: Registering CDC/ACM serial driver
sercon: Successfully registered the CDC/ACM serial driver
[i] microSD mounted: /fs/microsd
nshterm [6:70]
param: selected parameter default file /fs/mtd_params
[param] Loaded: /fs/mtd_params
rgbled on I2C bus 1 at 0x55 (bus: 100 KHz, max: 100 KHz)
 1:   SYS_USE_IO: match
 2101: + SYS_AUTOSTART: match
[i] Custom config: /fs/microsd/etc/config.txt
px4io: CRCs match
dataman: Power on restart, data manager file '/fs/microsd/dataman' size is 1015s
MS5611_SPI on SPI bus 4 at 2 (11000 KHz)
ms5611: no device on bus 4
MS5611_SPI on SPI bus 1 at 3 (11000 KHz)
ms5611: no device on bus 1
ms5611: no device on bus 2
adc init done
ver hwcmp match: PX4FMU_V2
HMC5883_I2C on I2C bus 1 at 0x1e (bus: 100 KHz, max: 400 KHz)
hmc5883: no device on bus 1
mpu6000: driver start failed
MPU6000 on SPI bus 1 at 4 (1000 KHz)
L3GD20 on SPI bus 1 at 1 (11000 KHz)
LSM303D on SPI bus 1 at 2 (11000 KHz)
Airspeed on I2C bus 1 at 0x28 (bus: 100 KHz, max: 100 KHz)
sensors_task: mag cal status changed
telem> PREFLIGHT FAIL: AIRSPEED SENSOR MISSING
commander: INVAL: ARMING_STATE_STANDBY_ERROR - ARMING_STATE_STANDBY
px4io default PWM output device
mavlink_if0: mode: 0, data rate: 1200 B/s on /dev/ttyS1 @ 57600B
mavlink_if0: offboard mission init: ERROR
ver hwcmp match: PX4FMU_V2
sdlog2: log buffer size: 12288 bytes
[i] FIXED WING
  MAV_TYPE: unchanged
px4io mixer sent
[i] Mixer: /fs/microsd/etc/mixers/fpv_skywalker.mix on /dev/pwm_output0
[i] Mixer: /etc/mixers/pass.aux.mix on /dev/pwm_output1
INFO

ver hwcmp match: PX4FMU_V2
px4flow [157:100]

NuttShell (NSH)
nsh> px4flow: scanning I2C buses for device..
gps: module found: UBX
INFO  filter ref off: baro_alt: -1629.1820
telem> [ekf] ref: LA 39.7502,LO -105.0979,ALT 1704.08
commander: home: lat = 39.7502007, lon = -105.0978829, alt = 1703.79
telem> settings autosaved
commander: mission ok

I have a workaround in PR #2745


In README: CPPUTEST_HOME variable prefixed with a $

The CPPUTEST_HOME variable to be added to CPPFLAGS perhaps needs to be prefixed with a $ to work in a Makefile.

Coverage remained the same at 99.88% when pulling 013fe3fc4e7f2c014b22ed45e8a69371197ccebc on saraf:master into dd1958a689d0e22ecdb5582deeab388fe65fa711 on cpputest:master.

Tnx


wait completion of staging blocks in writeback mode

In writeback mode, we may want all the staging blocks to be uploaded before umount.
We can use the FUSE DESTROY operation as an signal to flush all staging blocks: https://github.com/torvalds/linux/commit/0ec7ca41f6f0f74a394a7d686bc0ee8afef84887

I'm working on this issue, as the go-fuse does not support DESTROY operation, here are three possible alternatives:

Wait for uploading in the signal handler.
Wait for uploading before the FUSE server exit.
Don't wait, but provide a subcommand like flush to upload data.

The first solution works well with the K8S CSI but does nothing when users execute the umount command. The second solution can keep uploading data when users execute the umount command, but users cannot umount immediately as we cannot deliver arguments to juicefs by umount. And the last solution works well in all cases, but users must execute the subcommand explicitly.

Hi @Hexilee, any updates? As a variation of option 2, juicefs already have umount subcommand with -f option. It appears that you could implement the here the logic there without introduce a new command. A new subcommand like flush is a nice to have as well.

Hi @Hexilee, any updates? As a variation of option 2, juicefs already has umount subcommand with -f option. It appears that you could implement the logic there without introducing a new subcommand. A new subcommand like flush is a nice to have as well.

I prefer option 3 personally. If we implement it in juicefs umount, the normal umount won't work.

If we implement it in juicefs umount, the normal umount won't work.

The normal umount wouldn't work safely in any case until fuse sync is implemented everywhere. The problem of a separate flush command is the potential data loss (of successful write(2)) due to the plausible race between flush and umount. You can implement the juicefs umount free of such race by first disabling writes and then flush and wait for flush to complete and unmount.
In any case, people who care about these details just want to have a reliable way to prevent data loss (e.g. a writing pod could be spawned elsewhere and retry the writes correctly).

If we implement it in juicefs umount, the normal umount won't work.

The normal umount wouldn't work safely in any case until fuse sync is implemented everywhere. The problem of a separate flush command is the potential data loss (of successful write(2)) due to the plausible race between flush and umount. You can implement the juicefs umount free of such race by first disabling writes and then flush and wait for flush to complete and unmount.
In any case, people who care about these details just want to have a reliable way to prevent data loss (e.g. a writing pod could be spawned elsewhere and retry the writes correctly).

Reasonable, I'm going to implement this feature in the umount subcommand.


Make PyPI release

Is there any progress on this issue? Django 1.8 is approaching fast and I guess it is important for a lot of people to have a PyPI - package with the formtools...

@jezdez will try to do it this week.

Actually this week, sorry for the delay.

@jezdez 1.0.0 is released. Should this issue be closed?

Ah, yeah.


2 different versions in dist

Hi. By first line and update time, react-mini-router.js and react-mini-router.min.js look like different versions. First one is 1.2.0, second one is 2.0.0

I'll make sure to get this updated.

Both files are now matching version 2.1.0


Concurrent SRV requests failure

An ongoing SRV request causes the next SRV request to fail as IP in the cached object isn't valid.

Cherry-picked to 8.0.x

Cherry-picked to v9.0.x branch.


Split the example app into "app under tests" and Patrol example

[ ] Use Patrol "challenge" as an example app.
[ ] Transform existing example app to test app that will be used for internal Patrol testing
[ ] Introduce desktop- and mobile-specific directories in both of those apps (related to #1926)
[ ] Make sure CI/CD works with new apps

See also #852, where more issues related to testing of Patrol itself are mentioned.


Allow creating a user scenario with data store

Coverage increased (+0.5%) to 73.529% when pulling b3d0b28c3f17ce4d914dc09c22a98f3aa28ffce6 on feature/user-scenario-with-datastore into 60c420733766dbd01b73d43591c1aef09a4dc948 on develop.

Coverage increased (+0.5%) to 73.529% when pulling 136add7467de68ec740e9efb91b1568d0a76f7eb on feature/user-scenario-with-datastore into 60c420733766dbd01b73d43591c1aef09a4dc948 on develop.

Coverage increased (+0.5%) to 73.529% when pulling c9936174d1a9eab02ed736c47331d49427318e66 on feature/user-scenario-with-datastore into 60c420733766dbd01b73d43591c1aef09a4dc948 on develop.

@Rymdsnigel I've updated the help text. It's a bit long now but at least it's clear what's expected.


Mode "multi live menu" does not block UI

Bug: busy overlay does not cover entire page, so page-bottom areas remain interactive.


Binding: Add HTTP Stream Support

Describe the feature
Would like to request support for HTTP Streams, which is like WebSockets or other PubSub systems, HTTP allows to keep an open connection where chunks can be sent from a server towards a client.
However, when creating such a client code must be written to support this streaming scenario
Example Server
Example Client
This request comes as increasingly more IoT devices are switching towards the HTTP Streaming API approach and where I believe Dapr can bring a benefit of not having to write the abstraction layer for it. Next to the IoT space, this can also be useful in Web APIs and others.
Release Note
RELEASE NOTE: ADD HTTP Streaming Support

Hi @XavierGeerinck, just so I'm clear, are you asking about the ability to maintain a persistent HTTP connection from a client to Dapr so messages can be over HTTP as streams (WebSockets or long-polling?).
We do not recommend to have client applications connecting to the Dapr runtime directly. The Dapr runtime (daprd) is meant to be used as a "sidecar", and all connections should be in the same network (localhost, and in Kubernetes, in the same pod). The Dapr runtime is not designed to receive connections from clients over an unstable network and/or with high latency.
In your case, perhaps you should consider creating an application that your IoT clients connect to, and that application interacts with daprd?

Gotcha. This sounds like it should be its own input binding component. The problem I see is that Dapr tries to adhere to existing standards, and I'm not aware of any standard for this kind of streams today that we should consider supporting.

It's part of the HTTP/2 Standard :)
https://datatracker.ietf.org/doc/html/rfc7540#page-15

Yes, for sure the transport protocol is, but the data protocol (ie. how the data is formatted in the messages) - are you aware of a standard for that?

it's more of an open standard indeed, but I guess we could offer the implementation for Bytes and JSON? Seeing that the latter is most frequently used in Streaming APIs and the first allows for custom implementations by the users?

But Dapr needs to have a higher-level format. For example, if we get messages formatted as JSON, the messages need to contain a “topic” or “queue”. They need to have a specific format for passing metadata, etc.
For example, some other components use HTTP for transporting data, but they all have some data protocols on top that define what format the data is in.
Of course we could always create our own format, but I would prefer if we could rely on industry-standard ones.

I am not following perfectly of what you mean here (might be missing something), so a stream is coming in JSON by JSON message with a line carriage return as the dividers.
Dapr picks these up and sends them to the connected clients no?
What format do you specifically mean then? Since in this case it's a fetch operation which will accept the default fetch arguments (e.g. headers, ...)

We try to develop components based on data formats more than transport standards. We are not going to define our own formats and say "your JSON message needs to be formatted this way, have these keys, and you must pass those headers", as that format wouldn't be standard.
A popular data format protocol for events is CloudEvents, which is implemented by some Dapr pubsub components already: https://cloudevents.io/
CloudEvents does have a specification for a HTTP protocol binding, but it is limited to HTTP1.1 and does not support streaming: https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/bindings/http-protocol-binding.md

Honestly I am still not following, how does this need a standard? The data format is defined by the stream returning JSON events in this case. Dapr acts as a "relay" in this case, giving the user the freedom of not having to implement the technology needed to connect to the stream.


AssertionError, no explaination

Traceback (most recent call last):
  File "cluster.py", line 24, in start_job
    OmegaConf.to_container(cfg, resolve=True)
AssertionError

Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.

however
username@hostname :  echo $HYDRA_FULL_ERROR
1

to_container throws an assertion error without any trace, nor error message.
My configuration files are big and numerous. I finally found out where the problem came from, but the AssertionError really got on my nerves. I needed to talk about it.
I feel better now.

Hi,
Sorry about the unexplained assertion error.
Hydra and OmegaConf goes to great length to ensure that the error messages are good and to the point.
assertion errors are typically an indication of a bug in the code, in this code there is at least a second bug that causes the error message to be opaque (it's also possible that it's not a bug in the first place but an omission).
I am assuming that you are talking about this one, but without a stack trace or a repro it could be anywhere.
A minimal repro and the full stack trace you managed to get will help.


When using HttpClient to access https resources and ignore the body, it will be 100% CPU usage on one core.

I found a bug, this code will be 100% CPU usage on one core.
import 'dart:io';

main(List<String> args) async {
  HttpClient client = HttpClient();
  HttpClientRequest request = await client.getUrl(Uri.parse("https://minio.xausky.cn/blog/mozzdirpj8yymkcwon3b.png")); //Any https resource can be used here
  HttpClientResponse response = await request.close();
  print(response.headers);
  // response.pipe(File("ddd.png").openWrite());  // There is no problem to uncomment this line
}

on Dart VM version: 2.8.1 (stable) (Thu Apr 30 09:25:21 2020 +0200) on "linux_x64"

I can reproduce this issue on linux_x64 with all Dart releases from 2.0.0 to 2.8.1 (I didn't check the 1.x series). It didn't seem to happen with every single HTTPS resource for me, but certainly I could make it happen with the above URL or requesting e.g. the latest dart release. The issue goes away if the response is handled or e.g. drained (with response.drain()).
Note that programs are supposed to actually handle the responses so this is a bug in the program. But on the other hand, it doesn't seem reasonable for Dart to use 100% CPU if the program is tardy.
@zichangg Do you want to debug what's going on?

In fact, I want to ignore all the content in the body, only use Headers, please ask me how to code correctly.

Let me assign myself first. I'll take a look later.

@xausky If you only want the headers, then use headUrl instead of getUrl, so the server won't give you a full body (using a HTTP HEAD request instead of HTTP GET), and then use request.drain() to discard the body.

I think the program is looping with _tryFilter, which recursively calls into itself to updates filter status.
It has _filterStatus.readEmpty being false, which probably means data to be picked up.
I'm new to this piece of code. @whesse is the expert!
Do you think this is expected behavior? If so, can we make _tryFilter into scheduleMicroTask instead of firing the callback immediately? It can probably save program from being flooded with _tryFilter.

An update after I've reading some of secure socket codes.
I think this is expected. The dart side don't know whether the data is ready for picking up. So it keeps asking the filter.


separate tests

@promer94 Great! Is there any reason to keep duplicate tests, which have been split out to individual files, in use-swr-test.tsx?

@promer94 Great! Is there any reason to keep duplicate tests, which have been split out to individual files, in use-swr-test.tsx?


Bug: curlrequest not using baseURI on localhost

Describe the bug
I've just updated to the latest release (from v4.0.4) and noticed my previously working curlrequest code is broken on my development environment.
The baseURI I supply in the options is not used. Instead, it uses the CI project's URL as the baseURI.
This issue occurs when the baseURI is on localhost. Changing the baseURI to something other than localhost works as expected.
Has something changed in the way curlrequest works on localhost?
CodeIgniter 4 version
CI 4.1.2 - failed
CI 4.0.4 - working
Affected module(s)
Unsure
Expected behavior, and steps to reproduce if appropriate
My CI controller is located at appstarter/app/Controllers/example.php
It contains this fragment:
$options = [
        'baseURI' => 'http://localhost/api/v1/'
];

$client = \Config\Services::curlrequest($options);

$response = $client->get('some/function/');

If I execute via http://localhost/appstarter/public/example, the get request attempts to fetch http://localhost/appstarter/public/api/v1/some/function, which does not exist.
I would have expected the get request to fetch http://localhost/api/v1/some/function
Context

OS: Windows 10
Web server: Xammp 7.4.18
PHP version: 7.4.18

This was actually a problem introduced in 4.0.5 that we attempted to mitigate in 4.1.2. When URI is cast as a string it assumed it should be relative to the App config settings. In 4.1.2 this was restricted only to instance when the host matched: https://github.com/codeigniter4/CodeIgniter4/blob/7eef1f708750fe11089e5eb056e7c817a691d0fa/system/HTTP/URI.php#L685-L702
It looks like me like URI is identifying your CURL URL as a relative one, even though it isn't. Probably the framework fix would be to have CURLRequest::prepareURL() to use URI:: createURIString() instead of the cast (which I consider problematic).
In your case, you could try altering your baseURL in app/Config/App.php or .env, assuming this isn't a browsable web app anyway.

Thanks for the explanation of the problem.
I was able to restore the functionality on my dev environment, by using <IP_ADDRESS> in the curl options instead of localhost to prevent a match.
Let me know if you want me to close this issue or leave it open.


Second run of a query hangs

Issue Type: Bug

open a new query
type "select 42"
run the query
run it again -- hangs here.

Azure Data Studio version: azuredatastudio 1.17.1 (814ce88c41e0daaca89afed8b184e795057a6f9d, 2020-04-30T00:16:35.943Z)
OS version: Windows_NT x64 10.0.18363

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz (8 x 2112)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: enabledrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_off_okwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.88GB (3.33GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (2)

Extension
Author (truncated)
Version

azuredatastudio-postgresql
Mic
0.2.6

powershell
ms-
2020.4.0

![image](https://user-images.githubusercontent.com/12263288/81442628-f48cee80-9141-11ea-9894-2fd96ff2cbd8.png)

This is new with the latest update of ADS, at least, new to me
On Fri, May 8, 2020 at 3:38 PM adsbot[bot]<EMAIL_ADDRESS>wrote:

Thanks for submitting this issue. Please also check if it is already
covered by an existing one, like:

Query Window "Hang" (#3627)
https://www.github.com/microsoft/azuredatastudio/issues/3627

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/azuredatastudio/issues/10324#issuecomment-625983698,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AC5R66CU247N6GJO7KY2WBTRQRNUXANCNFSM4M4NGOZA
.

--
Gerald Britton, Pluralsight Author
LinkedIn Profile: http://ca.linkedin.com/in/geraldbritton
Pluralsight Courses: https://bit.ly/2WB2TdX https://bit.ly/2WB2TdX

@gbritton1 I wasn't able to repro this issue using the provided steps on 1.17.1.  Do you know if there is any additional information that may be helpful to diagnosis the problem?


v1.1.0

Codecov Report

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

@@          Coverage Diff          @@
##           master    #80   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           1      1
  Lines         351    351
  Branches       96     96
=====================================
  Hits          351    351

Impacted Files
Coverage Δ

src/tridi.ts
100% <ø> (ø)
: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 7e3aa82...3dfbddd. Read the comment docs.


Replace gather() with pivot_longer()

Development on gather() is complete, and for new code we recommend switching to pivot_longer().

Fixed.


Convert couple of cgroups settings to pointers

Converting to pointers to be consistent with other cgroups settings.
Signed-off-by: Mrunal Patel<EMAIL_ADDRESS>

@crosbymichael @vishh PTAL

We can wait for #284 to merge before this.

@vishh Updated to remove pointers from slices.

LGTM. Thanks for the cleanup @mrunalp :+1:

LGTM


Dependency License Check

We need a way to check our dependencies if they are licensed under an OSI-approved open source license. There are tools out there that automate that for us.

(e) All projects evaluated for inclusion in the CNCF shall be completely licensed under an OSI-approved open source license. If the license for a project included in CNCF is not Apache License, Version 2.0, approval of the Governing Board shall be required.

requirements: https://github.com/cncf/foundation/blob/main/charter.md#11-ip-policy
AC:

research how other projects do that
figure out how/when to apply the license checker (in CI?)

do a manual license check with our dependencies
if possible automate it right away

Related to that: https://github.com/google/go-licenses
At least this can bring us our current status. Maybe that + some bash hackery can give us the output we want here.

first manual run got these errors:
PS C:\Users\gusfc\Downloads\external-secrets-main\external-secrets-main> go-licenses csv github.com/external-secrets/external-secrets > out.csv
W0413 18:28:08.511129   17156 library.go:87] "github.com/modern-go/reflect2" contains non-Go code that can't be inspected for further dependencies:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>W0413 18:28:12.313241   17156 library.go:87] "github.com/cespare/xxhash/v2" contains non-Go code that can't be inspected for further dependencies:
<EMAIL_ADDRESS>E0413 18:28:20.117332   17156 library.go:108] Failed to find license for github.com/akeylesslabs/akeyless-go/v2: cannot find a known open source license for<EMAIL_ADDRESS>whose name matches regexp ^(?i)(LICEN(S|C)E|COPYING|README|NOTICE).*$ and locates up until<EMAIL_ADDRESS>W0413 18:28:23.927908   17156 library.go:87] "github.com/golang/snappy" contains non-Go code that can't be inspected for further dependencies:
<EMAIL_ADDRESS><EMAIL_ADDRESS>W0413 18:28:23.932889   17156 library.go:87] "github.com/pierrec/lz4" contains non-Go code that can't be inspected for further dependencies:
<EMAIL_ADDRESS>W0413 18:28:25.047204   17156 library.go:87] "golang.org/x/crypto/blake2b" contains non-Go code that can't be inspected for further dependencies:
<EMAIL_ADDRESS><EMAIL_ADDRESS>W0413 18:28:25.063188   17156 library.go:87] "golang.org/x/sys/cpu" contains non-Go code that can't be inspected for further dependencies:
<EMAIL_ADDRESS>W0413 18:28:25.592116   17156 library.go:87] "golang.org/x/crypto/curve25519/internal/field" contains non-Go code that can't be inspected for further dependencies:
<EMAIL_ADDRESS>W0413 18:28:30.047379   17156 library.go:262] module github.com/external-secrets/external-secrets has empty version, defaults to HEAD. The license URL may be incorrect. Please verify!

and also this output file:
out.csv

I think we are going to need some sort of analysis by the TOC anyways, because we have a lot of non Apache 2.0 licenses here.

I think we're fine actually. It seems that openEBS for instance has a lot of code in BSD as well. I think generally speaking our licenses are ok.

Created this issue: https://github.com/akeylesslabs/akeyless-go/issues/5.


root_id variable length

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Versions

terraform: 1.1.7
azure provider: 2.94
module: 1.1.3
Description
Describe the bug
Can't associate custom policy definition to management group when root_id length is greater than 10 characters (mycompany-root in my case).
I would like to create the following management group hierarchy:
- "[Test] root" as Name and "mycompany-root" as ID (policy definition Deny-PublicIP)
      - "[Test] child" as Name and "mycompany-child" as ID (policy assignment Deny-Public-IP)

Terraform error
 Error: Invalid value for variable
│
│   on caf.tf line 13, in module "caf_enterprise_scale":
│   13:   root_id                   = "mycompany-root"
│
│ Value must be between 2 to 10 characters long, consisting of alphanumeric characters and hyphens

Why does root_id is limited to 10 characters?
This limitation restricts the naming of the management group which receives the caf-enterprise-scale framework. caf-enterprise-scale will not be applied at the root level, that's why the root_id need to be greater than 10 characters in my use case.
Steps to Reproduce
Step 1: Terraform configuration
archetype_definition_lz_bug_root.json
{
  "lz_bug_root": {
    "policy_assignments": [],
    "policy_definitions": [
      "Deny-PublicIP"
    ],
    "policy_set_definitions": [],
    "role_definitions": [],
    "archetype_config": {
      "parameters": {},
      "access_control": {}
    }
  }
}

archetype_definition_lz_bug_child.json
{
  "lz_bug_child": {
    "policy_assignments": [
      "Deny-Public-IP"
    ],
    "policy_definitions": [],
    "policy_set_definitions": [
    ],
    "role_definitions": [
    ],
    "archetype_config": {
      "parameters": {},
      "access_control": {}
    }
  }
}

locals {
  landing_zone = {
    "mycompany-child" = {
      "archetype_config" = {
        "access_control" = {}
        "archetype_id" = "lz_bug_child"
        "parameters" = {}
      }
      "display_name" = "[Test] child"
      "parent_management_group_id" = "mycompany-root"
      "subscription_ids" = []
    }
    "mycompany-root" = {
      "archetype_config" = {
        "access_control" = {}
        "archetype_id" = "lz_bug_root"
        "parameters" = {}
      }
      "display_name" = "[Test] root"
      "parent_management_group_id" = "xxx"
      "subscription_ids" = []
    }
}

module "caf_enterprise_scale" {
  source  = "Azure/caf-enterprise-scale/azurerm"
  version = "1.1.3"

  providers = {
    azurerm              = azurerm
    azurerm.connectivity = azurerm
    azurerm.management   = azurerm
  }

  default_location          = local.location
  root_id                         = "mycompany-root" # <----------- length is greater than 10
  root_parent_id            = local.parent_management_group_id
  deploy_core_landing_zones = false
  custom_landing_zones      = local.landing_zone

  library_path = "${path.cwd}/lib"
}

Terraform result
 Error: Invalid value for variable
│
│   on caf.tf line 13, in module "caf_enterprise_scale":
│   13:   root_id                   = "mycompany-root"
│
│ Value must be between 2 to 10 characters long, consisting of alphanumeric characters and hyphens

Additional context
I also tried to not specify root_id parameter, I get another error because policy_definition_id computed value for policy assignment contains the default value "es" which doesn't match with any of my management groups.
Terraform plan
  # module.caf_enterprise_scale.azurerm_management_group_policy_assignment.enterprise_scale["/providers/Microsoft.Management/managementGroups/mycompany-child/providers/Microsoft.Authorization/policyAssignments/Deny-Public-IP"] will be created
  + resource "azurerm_management_group_policy_assignment" "enterprise_scale" {
      + description          = "This policy denies creation of Public IPs under the assigned scope."
      + display_name         = "Deny the creation of public IP"
      + enforce              = true
      + id                   = (known after apply)
      + location             = "northeurope"
      + management_group_id  = "/providers/Microsoft.Management/managementGroups/mycompany-child"
      + metadata             = (known after apply)
      + name                 = "Deny-Public-IP"
      + not_scopes           = []
      + policy_definition_id = "/providers/Microsoft.Management/managementGroups/es/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicIP"
    }

Terraform error
Error: creating Policy Assignment ID: (Assignment Name "Deny-Public-IP" / Scope "/providers/Microsoft.Management/managementGroups/mycompany-child"): policy.AssignmentsClient#Create: Failure responding to request: StatusCode=400 -- Original Error: autorest/azure: Service returned an error. Status=400 Code="InvalidCreatePolicyAssignmentRequest" Message="The policy definition specified in policy assignment 'Deny-Public-IP' is out of scope. Policy definitions should be specified only at or above the policy assignment scope. If the management groups hierarchy changed recently or if assigning a management group policy to new subscription, please allow up to 30 minutes for the hierarchy changes to apply and try again."
│
│   with module.caf_enterprise_scale.azurerm_management_group_policy_assignment.enterprise_scale["/providers/Microsoft.Management/managementGroups/mycompany-child/providers/Microsoft.Authorization/policyAssignments/Deny-Public-IP"]

The default value for root_idis es

Hi @jpinsolle-betclic... thank you for raising this question.

Why does root_id is limited to 10 characters?

In short, the 10 character limit is due to the way we use this as a prefix for many of the other resources created by this module, allowing us to ensure we do not exceed the name length limits which vary by resource type.
We recommend using the display name for more descriptive and "human friendly" names within the management group hierarchy, as this isn't used for any other resources.

I also tried to not specify root_id parameter, I get another error because policy_definition_id computed value for policy assignment contains the default value "es" which doesn't match with any of my management groups.

The root_id is also a crucial part of how the module uses the calculated names of resources to convert the input templates into a valid list of resources to deploy. As such, it's required (when building a custom hierarchy as you are doing) that this value matches the id assigned to your root management group or you will get the error you've already observed.
It's probably also worth noting that all of our built-in templates work on the expectation that Policy Definitions and Initiatives are declared at the root management group scope, as this is our recommended approach.
I hope this explanation helps? I am going to close this issue as we have no plans to increase this limit further.


Add articles on record structs

C# 10 adds record struct types. These types follow value semantics (as all value types do). The compiler generates many of the same methods as it does for record types. Some aren't applicable because they are only needed to support inheritance for record types.
In addition, record types can be declared as record class types to avoid potential confusion with record struct types.
Feature specification: Record structs

To address this issue, the following tasks must be completed:

[ ] Update the language reference on record to include record struct. This should also point out that record class and record are the same type.
[ ] The Fundamentals article on Records needs to be updated to include record struct types.
[ ] The What's new tutorial on Records needs to be updated to include record struct types.

Fix #24681 in the same PR as this issue.

Note that now all struct types support with expressions, not just record structs. That ripples through some of our language reference work on struct types.

Note that now all struct types support with expressions, not just record structs. That ripples through some of our language reference work on struct types.

@BillWagner #26100 takes care of that.


New Collection Request

Collectible Name
Shrub Paper Gardens
Contract Address
https://polygonscan.com/address/0xa9ae86b25424d8b523a91975da1336ac490bc4c7
Project Link
https://gardens.shrub.finance/
Network Name
Polygon Mainnet
Description
The first interactive on-chain growth NFT. Shrub.finance's genesis NFT project is the most technically advanced NFT series yet. In this series you plant a seed and grow it into a Shrub all on the Polygon blockchain. Dynamic metadata means you watch it grow on OpenSea. Join us in this groundbreaking series.

@way2rach thanks for submitting a listing request!
a lot of assets have broken metadata in this collection

@way2rach interesting mechanism, so the burned token IDs will never be used again?

we will soon introduce filters that can be used to exclude burned tokens in the results, but in the mean time it will show as broken metadata, let me know if you are fine with this

@way2rach interesting mechanism, so the burned token IDs will never be used again?

That is correct. This is for instance how potted plant NFTs convert to Shrub NFTs. Our users have really enjoyed this mechanism. :)

we will soon introduce filters that can be used to exclude burned tokens in the results, but in the mean time it will show as broken metadata, let me know if you are fine with this
That would be awesome! We are happy in the meantime to be listed with the broken metadata.
Thanks for working on making this happen <3

@way2rach added to the direcotry https://github.com/0xsequence/niftyswap-directory/commit/a6cb7f18235c212001df1c2c2fab45143925cbb7
feel free to join our discord if you have any other questions / feedback https://discord.com/invite/niftyswap


get spec fix

这个 PR 实现什么功能/修复什么问题:

get spec handler fix
镜像上传response未解析的问题 fix

是否需要 backport 到之前的 release 分支:

release/2.11

/area region
/hold

Codecov Report

Merging #2243 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master   #2243      +/-   ##
=========================================
- Coverage     7.1%   7.09%   -0.01%
=========================================
  Files         452     452
  Lines       71256   71253       -3
=========================================
- Hits         5060    5057       -3
+ Misses      65780   65779       -1
- Partials      416     417       +1

Flag
Coverage Δ

#aFlag
7.09% <ø> (-0.01%)
:arrow_down:

Impacted Files
Coverage Δ

pkg/util/rbacutils/rbac.go
73.37% <0%> (-0.93%)
:arrow_down:

pkg/compute/guestdrivers/qcloud.go
3.75% <0%> (-0.06%)
:arrow_down:

pkg/compute/models/networks.go
0.82% <0%> (ø)
:arrow_up:

pkg/compute/models/buckets.go
1.76% <0%> (ø)
: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 345d2dd...c0a59b3. Read the comment docs.

/cc @zexi

/cancel

/lgtm
/approve

/cancel

/lgtm

/lgtm