Update of File Uploader component documentation

Acceptance Criteria:
FileType Checking Function Clarification:

The purpose of the .replace("/", "/") operation within the isValidFileType function needs clarification. It appears to be redundant and has caused confusion among users. Clarification or removal (if indeed redundant) is advised.
Documentation on using MIME types versus file extensions for the accept property is needed. Currently, developers are unsure whether to use .doc or application/msword for Microsoft Word documents, for example.

Accept Property Usage:

It has been highlighted that the accept property's functionality and its usage could be better documented. Specifically, instances where developers have attempted to use file extensions (e.g., .doc, .docx) directly in the accept list without the expected outcome. An explanation and guidance on the correct usage of MIME types versus file extensions in this context would benefit users.
The correct implementation for allowing files by their extension (e.g., doc, docx, pdf) needs explicit documentation, especially regarding the inclusion or exclusion of the period (.) before file extensions.

Documentation Link to Common MIME Types:

A suggestion was made to include a link to common MIME types (e.g., MDN Web Docs on MIME Types) directly in the documentation. This would aid developers in correctly setting the property.

Bug Fix Confirmation:

A potential bug was identified where file.name.endsWith(accept); should instead be file.name.endsWith(matcher);. Confirmation of this bug and its fix should be documented, clarifying the correct code implementation.

Inclusion of Examples:

Including examples of correct accept property usage in various scenarios (e.g., allowing specific file types like .doc and .docx files)

Done

[x] Removal of .replace("/", "/") from filter
[ ] Added examples in documentation for how to use accept property, both with file extensions and mimetypes
[ ] Link to Mozilla common Mimetypes documentation
[x] Bug fix for file extension method

:tada: This issue has been resolved in version 1.17.0-alpha.36 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 4.17.0-alpha.21 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 3.0.0-alpha.4 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


recursive inst2dict() dict2inst() implemented for subclasses

Fix: #6533 recursively serialize/deserialize objects
this fix will work on current master (959ffd5) too(Variant -> Callable), but since the dictionary is broken in current master it can't be tested. should I also have to create another pr for master or create this pr against master ??
test case
extends Node2D

class A:
	var var_a
	var inst_b
	## d is not instance of A.B.C, but a Dictionary
	var dict = {'@path':'res://Node2D.gd', '@subpath':'A/B/C', 'var_c':'dict'}
	var spr = Sprite.new() ## this won't serialize

	class B:
		var var_b
		var inst_c

		class C:
			var var_c

func serialize():
	var inst_a = A.new()
	inst_a.var_a = 'a'
	inst_a.inst_b = A.B.new()

	inst_a.inst_b.var_b = 'b'
	inst_a.inst_b.inst_c = A.B.C.new()

	inst_a.inst_b.inst_c.var_c = 'c'

	print(inst2dict(inst_a))
	pass

func deserialize():
	var dict = {
		'@path':'res://Node2D.gd', '@subpath':'A',
			'd':{'@path':'res://Node2D.gd', '@subpath':'A/B/C', 'var_c':'not inst'},
			'inst_b': {'@path':'res://Node2D.gd', '@subpath':'A/B',
				'inst_c':{'@path':'res://Node2D.gd', '@subpath':'A/B/C', 'var_c':'c'},
				'var_b':'b'},
			'var_a':'a'
		}

	var a :A = dict2inst(dict)
	print(inst2dict(a))
	print(a.dict['var_c']) ## d deserialize as a dictionary
	print(a.inst_b.inst_c.var_c) ## deserialize as a class
	pass

func _ready():
	serialize()
	deserialize()
	pass

output
{@path:res://Node2D.gd, @subpath:A, dict:{@path:res://Node2D.gd, @subpath:A/B/C, var_c:dict},
inst_b:{@path:res://Node2D.gd, @subpath:A/B, inst_c:{@path:res://Node2D.gd, @subpath:A/B/C,
var_c:c}, var_b:b}, var_a:a}

@Xrayez sorry didn't notice you already opened a pr 😅

The PR I've been working on specifically: #33137.
@ThakeeNathees I forgot to link you a tracker of dict2inst/inst2dict stuff #33348, you'll see some other PRs of mine there. 😛
For the sake of comparison, #33137 adds a deep argument which is disabled by default, and also turns inner arrays and dictionaries with instances too.

closing : already has a pr with same solution


Decouple the load store relationship calculation and the actual store to load forwarding

The actual store to load forwarding can be reused for both stack and heap accesses in multiple memory models. The load store relationship however depends on the memory model, but it can be reused for multiple optimizations.

I just came across MemorySSA.
https://llvm.org/docs/MemorySSA.html
https://www.airs.com/dnovillo/Papers/mem-ssa.pdf


Test and review new tab scrolling features

I have implemented scrolling buttons for tabs, configurable with config.max_tabs, by default 10 tabs. The button appears when there are more than the maximum number of tabs to scroll them.
I have also added some animations. It is all in the branch:
https://github.com/franko/lite-xl/tree/tab-scroll-buttons-2
Please test, I would like to have some feedback before merging into master or dev branch.

Hi @takase1121, @liquidev, @adamharrison, @budRich, you may have a look if you have some spare time. I would appreciate to have some feedback from you before merging.

Here are my thoughts on the changes.
Design
I think the padding on the left here looks a bit awkward when there are no tabs to scroll:

I get that it's here to accomodate space for the button, but it's unnecessary when there's no button present.
It seems like tabs just disappear if they don't fit on the tab bar. In my opinion, they should be clipped instead, as it leaves an awkward empty space on the right:

Interaction
I think scrolling should be done per pixel instead of per tab, where you hold down the button and the tabs scroll continuously. It saves clicks, and is how most other apps (eg. Firefox) do it. The scroll speed should be configurable, though - I find the default scrolling speed in Firefox too slow.
I think we should also allow for using the mouse whell to scroll tabs, as sometimes clicking the comparatively small buttons can get a bit annoying, versus just scrolling on the much bigger tab bar. Simply moving the scroll wheel up or down is faster. I'm not sure how we should translate up/down to left/right though, maybe make it a configurable setting?
Compatibility
The changes seem to be compatible with existing plugins that draw over the tabs (see my tab numbering plugin), which is good.

Thank you for your comments.
For the empty spaces around tabs I am not sure. To me it seems okay to have this small empty space on the side for the buttons. I think I would not like the tabs to shrink just because the button appeared. I found these kind of movements annoying. At least this was the idea but I am open to suggestions.
For the empty space on the right when you reach the max number of tabs I agree with you, the behavior is odd and it should be changed. Is just that I didn't find a good solution to take into account the available space. There is a technical problem because the application first run the window with a size of zero and this can cause all sort of odd behaviors. I think we have to figure out what a good solution could be.
As for the scrolling-by-pixel I see your idea but I don't see how you can scroll them is a meaningful way. You cannot drag the tabs to scroll them and to me is more natural if the button just moves of one tab left or right.

I honestly really like it. As long as we keep it as a documented, easy option based on configs to switch back to the old system, I think this is great. It was intuitive for me, but that could be just because I was looking for it. Also, 10 tabs basically matches my resolution exactly, so it works well, when that's the number.
I do agree though, that if you set it to 5, for example, it is confusing that there's all this space to the right wasted. Perhaps make the tab size vary based on the window size / tab count, so that when you're at max tabs, you're always as far over to the right as possible?
Or better yet, perhaps make the tab configuration a model based on a number of parameters. Say:
max_tabs, which either is an integer, or nil. If nil, it's the old behaviour.
tab_size, which is either an integer, or nil. If nil, it's the old behaviour, or if max_tabs is not nil, then it does what I mentioned above, where it stretches to the whole window.
If max_tabs, and tab_size are both set, we then simply clip the tabs if it overruns the window.
What about something like that?

I do agree though, that if you set it to 5, for example, it is confusing that there's all this space to the right wasted. Perhaps make the tab size vary based on the window size / tab count, so that when you're at max tabs, you're always as far over to the right as possible?

I agree, probably we can display the config's max number of tabs or more based on the available space. In this way, if the size is zero the algorithm will not get crazy because we will always display at least the configured max number. I will try to code this.
For the max_tabs to nil, well, you can get the old behavior if you set it to a big number. The previous implementation was like if max_tabs was infinite.
For tab_size I am perplexed. Do you think it is really useful to let people choose the size of the tab ? Isn't this confusing since you already have max_tabs ?
I don't like to leave the user with too many configuration details to choose. I prefer to make choices from our side so that the application behaves in the most sensible way and leave to the user only the more important options.
For example the variable config.max_symbols and config.max_project_files is a failure from my side because I wasn't able to engineer a proper solution so that the application just behaves correctly. The user shouldn't be bothered to choose these kind of details. I this case I made the compromise because I didn't have the engineering resources to fix these problems properly.

I agree, probably we can display the config's max number of tabs or more based on the available space. In this way, if the size is zero the algorithm will not get crazy because we will always display at least the configured max number. I will try to code this.

For the max_tabs to nil, well, you can get the old behavior if you set it to a big number. The previous implementation was like if max_tabs was infinite.

Fair. I misunderstood this, but that makes sense.

For tab_size I am perplexed. Do you think it is really useful to let people choose the size of the tab ? Isn't this confusing since you already have max_tabs ?

Actually; this is already in style; so it's not really a problem; you're already letting the user choose the size of the tab here (style.tab_width). I was speaking as if we'd change the tab size so that the tab width is (scrollbar width / max tab count).

I don't like to leave the user with too many configuration details to choose. I prefer to make choices from our side so that the application behaves in the most sensible way and leave to the user only the more important options.

It is your fork, so it's absolutely your call. I do like the idea though of providing configuration options if they're easy, and letting the user pick whatever they like, but only if it doesn't bloat the code, and only if sensible defaults are picked from the start.

Actually; this is already in style; so it's not really a problem; you're already letting the user choose the size of the tab here (style.tab_width). I was speaking as if we'd change the tab size so that the tab width is (scrollbar width / max tab count), if style.tab_width is nil.

Okay, I understand better now. You are right tab_width is already in "style" I forgot and I agree that it has its place there. You proposition make sense but setting tab_width to nil feels like a quirky ad-hoc solution.
I found the solution below but it doesn't change the tab's width but it lets the application display more tabs if there is really enough space:
diff --git a/data/core/rootview.lua b/data/core/rootview.lua
index 17bb7c7..63f3fe5 100644
--- a/data/core/rootview.lua
+++ b/data/core/rootview.lua
@@ -249,7 +249,8 @@ end

 function Node:get_visible_tabs_number()
-  return math.min(#self.views - self.tab_offset + 1, config.max_tabs)
+  local max_tabs = math.max(config.max_tabs, math.floor(self.size.x / style.tab_width + 0.5))
+  return math.min(#self.views - self.tab_offset + 1, max_tabs)
 end

It is your fork, so it's absolutely your call. I do like the idea though of providing configuration options if they're easy, and letting the user pick whatever they like, but only if it doesn't bloat the code, and only if sensible defaults are picked from the start.

Hey, it is not my fork, it is our fork! :-)
I just wanted to share my vision, I don't want to be a dictator, not even a benevolent one! :-) We just discuss and take the time to decide whatever feels better.

Okay, I understand better now. You are right tab_width is already in "style" I forgot and I agree that it has its place there. You proposition make sense but setting tab_width to nil feels like a quirky ad-hoc solution.

Yeah; fair, it's not ideal. I think you're right, that just displaying more tabs makes sense.

Hey, it is not my fork, it is our fork! :-)

I just wanted to share my vision, I don't want to be a dictator, not even a benevolent one! :-) We just discuss and take the time to decide whatever feels better.

No worries!  But appreciate the way you look at the project!

I pushed a new commit:
a92d15fe300f589041965f063c1a062ca86309bb
into the https://github.com/franko/lite-xl/tree/tab-scroll-buttons-2 branch.
It makes the tab's width larger than style.tab_width if there is enough available space to accommodate the max number of tabs as specified in config.max_tabs.
This should address the remark of @liquidev and I think it goes in the direction of @adamharrison though I didn't make the "tab_size is nil" implementation. I think this behavior make sense and it obeys to the principle of least surprise. As usual all the feedback is welcome.

The feature is now in the new release.


[Communication Calling][1.6.0-beta.1][CSS reported] - Screen Orientation on Android is Inconsistent

Package Name<EMAIL_ADDRESS>Package Version: 1.6.0-beta.1
Operating system:] Android 10+
ISSUE DESCRIPTION:  Inconsistent Android phone screen orientation experience
We’ve noticed there is inconsistent Android phone experience as it relates to screen orientation while in an SDK session (azure-communications-calling version 1.6.0-beta.1).  All devices mentioned below have been confirmed to be using Google Chrome.
Test #1
LG Aristo 5
Android v10
All other apps will automatically switch between portrait and landscape for the patient, SDK will not.
The patient cannot change screen orientation neither automatically or manually.
Test #2
Samsung Galaxy S9
Android v10
Automatically updates session to reflect portrait or landscape orientation.
Properly rotated video received in Teams on provider side.
Properly rotated video received in SDK session on patient side.
Test #3
Google Pixel 5a
Android v12
When phone is configured to manually rotate screen, provider sees patient’s video 90 degrees off
**When phone is configured to automatically rotate screen, the proper orientation is seen by the provider (Teams) and by the patient (SDK)
Latest SDK: version 1.6.0-beta.1
Browser: Chrome**
Expected behavior
Orientation would be consistent whether manual or automatic

Label prediction was below confidence level 0.6 for Model:ServiceLabels: 'Communication:0.501995,Automation:0.15485297,Service Bus:0.07925081'

I'm not sure how to link the ADO but here is the Work Item number - 2949249

Label prediction was below confidence level 0.6 for Model:ServiceLabels: 'Communication:0.501995,Automation:0.15485297,Service Bus:0.07925081'

@petrsvihlik can you help route this?

/cc @anjulgarg too

redirecting to @fizampou and @akania

@Jcodevisible can you please let us know if this issue still occurs, we've released couple more SDKs (1.11 being latest stable )please update and let us know


MacOS Mojave: Brew prepends libtool with a "g" and breaks gifify

Hi thank you for creating gifify!
When i was installing gifify I was greeted with this message.

libtool
In order to prevent conflicts with Apple's own libtool we have prepended a "g"
so, you have instead: glibtool and glibtoolize.

after that the result was that gifify did't work

Could not find gifsicle. Is it installed?
More info: https://github.com/vvo/gifify#requirements

Thank you for resolving this.

@heyheni could you submit a PR to solve this? You should be able to check that we are on a specific version of macos using nodejs process api

Don't use homebrew to install gifify, that formula is broken. Simply install it with node and it'll work nicely, based on what's written in the readme.


Problem: MLS member leaving/joining interaction with council nodes not documented (WIP #141)

Solution:

revised the proposed design, so that joining is immediate (node fetches MLS handshakes directly from remote TDBE instead of waiting for commit message)
sketched out basic types for NACK
sketched out a state diagram and explanation of transitions with regards to different events and MLS handshake messages

/staging


Remove "chromium" from directory names

GitHub can't handle diff of this PR that changes 2,488 files.  Closing Without Merging this PR.  Replace by 4-5 PRs, one per dir:

devtools-guide-chromium
devtools-protocol-chromium - 1 article (w/ outdated Note per below); can include in other PR.
extensions-chromium
progressive-web-apps-chromium
webdriver-chromium

This PR contains a good rewrite to retain, replacing the outdated Note in
https://learn.microsoft.com/en-us/microsoft-edge/devtools-protocol-chromium/
by two paragraphs written from 2024 POV:
Microsoft Edge uses the Chromium browser engine.  The Microsoft Edge DevTools Protocol matches the APIs of the [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/) (CDP).

The [Microsoft Edge (EdgeHTML) DevTools Protocol](/archive/microsoft-edge/legacy/developer/devtools-protocol/index) is legacy and won't be updated.  Any methods that were prefixed with `ms` in the Microsoft Edge (EdgeHTML) DevTools Protocol are no longer supported in the Microsoft Edge DevTools Protocol.

PR too big for GH to handle.  Create 1 PR per dir.  Closing Without Merging.


ImportSegments not working

When importing the segment information for a video collection, the import does not work.
There is a mismatch between names and/or ids for the videos.

This works as intended and was rather a configuration / setup issue.
We close this for now but have noted, that the entire segment management / handlig is poorly documented and we'll have to have a look


CreateStorageImport should allow passing io.Reader when type is direct_uploud

As opening a file for reading is such a trivial task in Go I feel this should be the default.
Rationale:
user of this library might want to implement a progress bar / status. He/she might also want to calculate a checksum to be compared with the value that UpCloud API returns.
Proposal:
add another public field to CreateStorageImportRequest of type io.Reader or use an internal field with public setter.

Issue resolved in #67


Remove usage of IDocumentStorageService.write

Note: This does not currently remove all implementations of the write method from classes who implement IDocumentStorageService
Classes that implement IDocumentStorageService but still have the write method (unimplemented):

OdspDocumentStorageService
ReadDocumentStorageServiceBase
NullBlobStorageService
ShreddedSummaryDocumentStorageService
WholeSummaryDocumentStorageService

Looks reasonable (as a started). Looking forward to complete client changes.

@vladsud Should I create a separate PR for removing the write method? Then once that PR is merged I can consume the new @fluidframework/driver-definitions version in this PR.

Yes, but first I think we should prove to ourselves that we can indeed remove it. I.e. there is no usage of this API (other than various proxy implementations). So I think developing this draft PR to full completion and proving to yourself that it's complete (i.e. it compiles just fine without write method on interface) is a must before actual removal.
It might be hard to find all implementations (I think we can find most of them, but if we miss one - it's not a big deal). But finding all usage (which is hopefully zero) is a must.

@vladsud I've gone ahead and removed all implementations of the write method in this PR. I adjusted the compiled .js files locally and the only build failures are for backwards compatibility on various interfaces and classes. Commenting out all these backwards compat tests sees the build succeed.

LGTM! Please proceed with definition change (removal of method from interface).
I'm surprised you are hitting compat test issues, but we can glance one definition changes are in.

LGTM! Please proceed with definition change (removal of method from interface). I'm surprised you are hitting compat test issues, but we can glance one definition changes are in.

I assume I need to create a separate PR to remove the method? Then update the version for @fluidframework/driver-definitions in this PR once that is built and pushed?


NA OFI: IPv4/IPv6 domain not selected correctly

Describe the bug
Running the test suite via ctest -VV results in the following error:
chogan@jelly build (master)*$ ctest -V
UpdateCTestConfiguration  from :/mnt/wrk/chogan/dev/mercury/build/DartConfiguration.tcl
Parse Config file:/mnt/wrk/chogan/dev/mercury/build/DartConfiguration.tcl
UpdateCTestConfiguration  from :/mnt/wrk/chogan/dev/mercury/build/DartConfiguration.tcl
Parse Config file:/mnt/wrk/chogan/dev/mercury/build/DartConfiguration.tcl
Test project /mnt/wrk/chogan/dev/mercury/build
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 1
      Start  1: mercury_rpc_ofi_sockets

1: Test command: /mnt/wrk/chogan/dev/mercury/build/bin/mercury_test_driver "--server" "/mnt/wrk/chogan/dev/mercury/build/bin/hg_test_server" "--client" "/mnt/wrk/chogan/dev/mercury/build/bin/hg_test_rpc" "--comm" "ofi" "--protocol" "sockets"
1: Test timeout computed to be: 1500
1: Test Server.
1: HGTestDriver: server command is:
1:  "/mnt/wrk/chogan/dev/mercury/build/bin/hg_test_server" "--comm" "ofi" "--protocol" "sockets"
1: HGTestDriver: client command is:
1:  "/mnt/wrk/chogan/dev/mercury/build/bin/hg_test_rpc" "--comm" "ofi" "--protocol" "sockets"
1: HGTestDriver: starting process server
1: -------------- server output --------------
1: # Using info string: ofi+sockets
1: # Starting server with 8 threads...
1: # Waiting for client...
1: HGTestDriver: server sucessfully started.
1: HGTestDriver: starting process client
1: HGTestDriver: client sucessfully started.
1: -------------- client output --------------
1: # Using info string: ofi+sockets
1: # Target name read: ofi+sockets://fe80::54e6:2bff:febb:f49e:0
1: Testing simple RPC                                                    *FAILED*
1: HGTestDriver: ***** Test will fail, because the string: "FAILED"
1: HGTestDriver: ***** was found in the following output from the client:
1: "Testing simple RPC                                                    *FAILED*"
1: # NA -- Error -- /mnt/wrk/chogan/dev/mercury/src/na/na_ofi.c:1099
1:  # na_ofi_str_to_sin(): Unable to convert IPv4 address: fe80
1:
1: # NA -- Error -- /mnt/wrk/chogan/dev/mercury/src/na/na_ofi.c:3315
1:  # na_ofi_addr_lookup2(): Could not convert string to address
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury_core.c:1394
1:  # hg_core_addr_lookup(): Could not start lookup for address ofi+sockets://fe80::54e6:2bff:febb:f49e:0
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury_core.c:4312
1:  # HG_Core_addr_lookup(): Could not lookup address
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury_hl.c:320
1:  # HG_Hl_addr_lookup_wait(): Could not lookup address
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/Testing/mercury_test.c:600
1:  # HG_Test_init(): Could not lookup addr for target ofi+sockets://fe80::54e6:2bff:febb:f49e:0
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury_core.c:4660
1:  # HG_Core_forward(): NULL target addr
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury.c:2150
1:  # HG_Forward(): Could not forward call
1: # HG Test -- Error -- /mnt/wrk/chogan/dev/mercury/Testing/test_rpc.c:161
1:  # hg_test_rpc(): Could not forward call
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury_core.c:4660
1:  # HG_Core_forward(): NULL target addr
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury.c:2150
1:  # HG_Forward(): Could not forward call
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/Testing/mercury_test.c:206
1:  # hg_test_finalize_rpc(): Could not forward finalize call
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury_core.c:3910
1:  # HG_Core_context_destroy(): HG core handles must be freed before destroying context (2 remaining)
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury_core.c:3914
1:  # HG_Core_context_destroy(): HG core handle at address 0xa4c8c0 was not destroyed
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury_core.c:3914
1:  # HG_Core_context_destroy(): HG core handle at address 0xa4d560 was not destroyed
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury.c:1230
1:  # HG_Context_destroy(): Could not destroy HG core context
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury_hl.c:276
1:  # HG_Hl_finalize(): Could not destroy HG context
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/Testing/mercury_test.c:667
1:  # HG_Test_finalize(): Could not finalize HG Hl
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury_core.c:3910
1:  # HG_Core_context_destroy(): HG core handles must be freed before destroying context (2 remaining)
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury_core.c:3914
1:  # HG_Core_context_destroy(): HG core handle at address 0xa4c8c0 was not destroyed
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury_core.c:3914
1:  # HG_Core_context_destroy(): HG core handle at address 0xa4d560 was not destroyed
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury.c:1230
1:  # HG_Context_destroy(): Could not destroy HG core context
1: # HG -- Error -- /mnt/wrk/chogan/dev/mercury/src/mercury_hl.c:276
1:  # HG_Hl_finalize(): Could not destroy HG context

It seems the server is using IPv6 but the client is expecting IPv4. If I build with the sm or bmi plugins, the tests succeed. Only the ofi plugin fails.
 Here are the details of each system (they are very similar).
System where ofi tests fail

centos-release-7-2.1511.el7.centos.2.10.x86_64
Compiler version: gcc 7.2.0
Plugin and protocol used: ofi
Dependency version: libfabric 1.8.0, boost 1.69, cmake 3.10.2

System where ofi tests succeed

centos-release-7-5.1804.el7.centos.x86_64
Compiler version: gcc 7.3.0
Plugin and protocol used: ofi
Dependency version: libfabric 1.8.0, boost 1.69, cmake 3.15.2

Fixed in 584926bf921d33d12c159d25b9919cb2b33b8a90


Copy-paste from Side Panel (e.g. Stdout, Stderr, Job Config)

What would you like to be added:
For some strange reason, I cannot copy paste from the Side Panel that shows up from Job Config, Stdout, and Stderr. I cannot right-click to copy because no copy command shows up in the context menu, nor can I use Ctrl-C to copy.

Not sure if this is a bug on my end or if copy-paste is disabled. If it is disabled, can it be enabled, please?
Why is this needed:
I want to copy output and configs.
Without this feature, how does the current module work:
It can't copy!
Components that may involve changes:
Not sure.
Environment:

OpenPAI 0.14.0
Google Chrome Version 80.0.3987.106 (Official Build) (64-bit)
Manjaro Linux

@andrewjong there's no copy/paste in context menu, but ctrl+c then ctrl+v works fine for copying and pasting. maybe you could try in latest chrome or another browser.


Add "colcon" to spell_check.words

To fix an error in CI
test/test_spell_check.py F..                                             [100%]

  =================================== FAILURES ===================================
  _______________________________ test_spell_check _______________________________

  known_words = ['apache', 'iterdir', 'pathlib', 'pytest', 'scspell', 'setuptools', ...]

      def test_spell_check(known_words):
          source_filenames = [Path(__file__).parents[1] / 'setup.py'] + \
              list(
                  (Path(__file__).parents[1] / 'colcon_awesome_pkg')
                  .glob('**/*.py')) + \
              list((Path(__file__).parents[1] / 'test').glob('**/*.py'))

          for source_filename in sorted(source_filenames):
              print('Spell checking:', source_filename)

          # check all files
          report = Report(known_words)
          spell_check(
              [str(p) for p in source_filenames], base_dicts=[SCSPELL_BUILTIN_DICT],
              report_only=report, additional_extensions=[('', 'Python')])

          unknown_word_count = len(report.unknown_words)
  >       assert unknown_word_count == 0, \
              'Found {unknown_word_count} unknown words: '.format_map(locals()) + \
              ', '.join(sorted(report.unknown_words))
  E       AssertionError: Found 1 unknown words: colcon
  E       assert 1 == 0

  test/test_spell_check.py:38: AssertionError
  ----------------------------- Captured stdout call -----------------------------

Without running the sed commands to actually replace the template values with actual package names, this package doesn't actually contain "colcon" anywhere that the spell checker is looking, so we can't take this PR as-is.
That said, it's pretty obnoxious that the tests immediately fail once you run those commands to set up your initial package. Maybe we can slip "colcon" in somewhere so that we can move forward with this change?

@cottsay Sorry for the delayed reply!
I see. How about making the CI test after running the exact commands written in README.rst?
https://github.com/colcon/template-package/pull/3


Add updated delegate info

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the maintainers.
What Type of PR is This?

[ ] Issue
[ ] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screen Shoot.

Preview environment: https://hdh.pr.harness.io/pr-949

Preview environment: https://hdh.pr.harness.io/pr-949


[FIX] clix flags are read using Global* functions.

Coverage remained the same at 97.359% when pulling 1befa5c79a54155d766aea95ded4ebe4ed86d2f6 on flags-fix into 59060a45e9baaa26827dcb866ee43bc4f7282136 on master.


FPI & Cache Occupancy Channel FP'ing [Tor 28621]

Paper: https://arxiv.org/abs/1811.07153
Article: https://www.theregister.co.uk/2018/11/21/unmasking_browsers_side_channels/
@tomrittervg : does FPI mitigate this, or what about disabling cache(s) (disk, memory)? Or is this something that can only be blocked by timing, eg FuzzyFox down the track? Or is this a bit old and we're already OK? Asking for a friend :grin:
edit: ok, spose I better read it first

But this latest browser fingerprinting technique doesn't need a high-precision timer because it focuses on processor cache occupancy

what about disabling cache(s) (disk, memory)?

page 11:

When we keep the browser’s response cache, the advan-
tage of cache-based website fingerprinting starts to emerge.
As Table 6 shows, the accuracy of the standard network-
based methods degrades when the response caching is en-
abled. We can see a degradation in accuracy of over 20% in
the fingerprinting accuracy.
In contrast, the cache-based methods are largely unaf-
fected by the reduction in network traffic, achieving high
accuracy rates. This result supports the conclusion that the
cache-based detection methods are not simply detecting the
CPU activity related to the handling of network traffic, mak-
ing them essentially a special case of network-based clas-
sifiers, but are rather detecting rendering activities of the
browser process.

so no, disabling disk or memory cache does not mitigate it
They're measuring rendering "time" (not really but let's go with that for simplicity) of sites loaded in other tabs/windows or even other browsers and comparing it against a pre-generated "table" of rendering times for certain sites. I don't see how FPI would have any effect on that at all.
It's definitely interesting but not very practical for a general purpose, wide-range attack. Different hardware will produce very different "times" and even using something simple like blocking all 3rd-party request will have a major impact on rendering times. So basically they can't just use one table to attack normies and power-users alike.
Could be very effective in targeted attacks though but I'm not worried about that.

ps: blocking workers will almost certainly make this attack impossible

no-workers: * true in uMatrix

so do you mean workers, or service workers (yup, I know SW's requires workers)? The description from uM says "web workers"

of sites loaded in other tabs/windows or even other browsers

page 5:

In this work we discuss a different attack model, presented
in Figure 2. In this model, the target user has two concur-
rent browsing sessions. In one session, the user browses to
an adversary-controlled site, which contains some malicious
JavaScript code. In the other session, the user browses to
some sensitive web site. These two sessions can be carried
out on the same browser, on two different browsers belong-
ing to the same user, or even on two browsers residing in
two completely isolated virtual machines which share the
same underlying hardware.

 Thanks for finally getting around to it :kiss:
PS: Don't assume anything (from your now edited comment) - I do things for a reason, mostly .. at night, mostly

Countermeasures in JavaScript. [...] now all mainstream browsers incorporate this
countermeasure.

We have these:
// privacy.reduceTimerPrecision
// privacy.resistFingerprinting.reduceTimerPrecision.microseconds
Table 5 has a Firefox 59 with time resolution of 2.0 ms, that corresponds to a
privacy.resistFingerprinting.reduceTimerPrecision.microseconds value of 2000
See: https://github.com/ghacksuserjs/ghacks-user.js/issues/448#issuecomment-429934051

update: email from Tom Ritter

I skimmed it.  There are no reasonable countermeasures. Page coloring looked interesting, but AFAICT that was an idea from the early 2000s that hasn't been revisited?
The 100ms resolution helps; but it isn't the complete answer (and I want to reduce it anyway if we can achieve the same security boundary using fuzzyfox.)
Maybe the answer is something more complicated? Degrading it dynamically (throttling) if we detect repeated calls and throw a permission prompt (with or without the doorhanger)?

Just follow the relevant Tor ticket 28621 - I don't think there is a corresponding bugzilla


[Update] Chromium

Continued from https://github.com/chocolatey/chocolatey-coreteampackages/issues/265#issuecomment-237745306

@RedBaron2 said:

I'm going to chime in here and state that the Chromium Package has just had the PR #267 #268 #269 done to implement checksum 'md5' because of the whole FOSSHub News. This was able to be done with the help of Woolyss wonderful API.
I would like to see about having the chromium package updated more frequently than seems to be done now. If that would take becoming the package Maintainer I guess I would be up for it.

@RedBaron2 I'm not sure what you mean. chromium is automatically updated pretty much daily. Are you suggesting multiple updates per day?
PR look good, but I don't feel comfortable merging without testing such a popular package. @gep13 can you see if Ketarin takes PR #267 #268 #269?
@RedBaron2 please do all your commits in a single commit next time. You can push to your fork after you did the PR and it will automatically be added to that PR.

I'm not sure what you mean. chromium is automatically updated pretty much daily. Are you suggesting multiple updates per day?

Yes! that is exactly what I'm suggesting. The 'Chromium Package' was updated yesterday to a new version twice in one day. There have been times when the 'Chromium Package' has been updated as much as six times in one 24 hour period. I'm just suggesting a morning update and an evening update for the package. This would be nothing too serious, and an easy change that could be done in the schedule of the making the packing.

please do all your commits in a single commit next time. You can push to your fork after you did the PR and it will automatically be added to that PR.

Thanks for the suggestion.

To be clear, the ketarin instance, which runs this chromium package is scheduled to check for new package versions every hour. So if a new version is detected, it will be pushed and approved within about 2-3 hours. So I think we have this covered, right?

@gep13 Yeah that sounds fine. I was forgetting the moderation of the package would take extra time.
I have updated the Ketarin file and the install file for uniformity with the choco update packager.
I have also just tested the files.
$checksum = @{$true = "2aa28074985b0ca6feda7d36a3d3b147"; $false = "034f48de10724f089d4f85945f55bca2"}[$systemIs64bit -eq 64]
The checksums are placed and ready for install chocolateypackage command

@gep13 I'm inviting you to merge this, as the new configuration needs to be implemented in ketarin before the new installer makes sense.

@RedBaron2 do you use Gitter?  Would love to chat about a few things if you have some time.  Thanks!

@gep13 haven't heard of it. Just installed the package a moment ago.

@Redsandro with the help of @RedBaron2 I think I have got this sorted out now, so I am going to close this for now.
We can re-open if it doesn't work after the next release.

@gep13 aaight, that's what it's for. :+1:
@RedBaron2 package? I didn't know there was an app. Does it add anything valuable that the gitter.im website doesn't offer?

@redsandro The package send to be a stand alone app. The interface is very similar to the website.


patch-shebangs breaks in scripts using set -u

Scripts in any sort of “strict mode” run into an issue with wrapProgram, similar to what is fixed by #207203.
If a script using set -u (or set -o nounset) uses wrapProgram, it will fail with the following error:

/nix/store/…-make-shell-wrapper-hook/nix-support/setup-hook: line 185: flagsBefore: unbound variable

My workaround for now has been to run it in a subshell:
( # NB: wrapProgram uses -z instead of -v to check for unset vars
  set +u
  wrapProgram …
)

but ideally sourced files would be robust to shell options.

Hrmm, the title here refers to patchShebangs, but the description is about wrapProgram. I think I mixed some things up.
In any case, I think both of those issues were temporarily fixed by #245909, but patchShebangs was broken again not long after by ebd4619053711ffb317a36dca4b118ae33f17828.
I'm wondering what the right way to avoid re-breaking these things is. We can add tests for these things, but given that it's bash, we don't find these bugs without executing that line. I wrote & use https://github.com/sellout/bash-strict-mode for all of my code, which is how I end up discovering these issues all over the place. I don't know that trying to integrate that with Nixpkgs is the right thing, but maybe something in that direction?

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/error-when-patching-and-installing-a-package-patch-shebangs-sh-line-121-update-unbound-variable/46363/4


Make Selective Hydration Work

Closing this since it's very outdated and broken. Will make a new take with a completely new approach.


Question

Hi,
I made the assembly and used an old PS/2 optical mouse with 2 buttons and a scroll wheel. However, the left and right buttons are inverted.
Any ideas, please?
Do I need to edit the part of code ?
#ifdef REVERSE_BUTTONS
bitout[8]=mdata[0]&0x01?0:1;
bitout[9]=mdata[0]&0x02?0:1;
#else
bitout[8]=mdata[0]&0x02?0:1;
bitout[9]=mdata[0]&0x01?0:1;
#endif
Regards,

On line 40, it says #define REVERSE_BUTTONS - try commenting out this line.

On line 40, it says #define REVERSE_BUTTONS - try commenting out this line.

thanks you! i'll try

It works like a charm ! Thank You !


Empty value for MultipleChoiceField does not return any result.

When using a filter with a MultipleChoiceField even if required is False you won't get any result if left empty.
For example, I've been filtering names as a non required MultipleChoiceField. When I query page_list?name= I get no results while I'd expect an unfiltered list.
The issue has been narrowed to the filterset's associated form not being valid. The reason why it's not valid is that "name=" translates into data=[u''] which isn't a valid choice in my case. What should be given to the field is data=[]:
(Pdb) response.context_data['filter']._form.fields['name'].clean([u''])
*** ValidationError: [u'Select a valid choice.  is not one of the available choices.']
(Pdb) response.context_data['filter']._form.fields['bug_status'].clean([])
[]

This is also related to the #36, #45, #134 cluster.

OK. This is a doozy.
If I set up a test like this:
        class TestFilterSet(FilterSet):
            title = MultipleChoiceFilter(choices = [('a','a'), ('b','b'), ('c','c')])

            class Meta:
                model = Book
                fields = ['title',]

This is passes:
        f = TestFilterSet({'title':''})
        self.assertTrue(f.form.is_valid())

And this fails:
        f = TestFilterSet(QueryDict('title='))
        self.assertTrue(f.form.is_valid())

That's explicable, since if I'm expecting a list from a QueryDict I'll ask for one:
from django.http import QueryDict
q = QueryDict('title=')
q.getlist("title")
[u'']

...and sure enough that happens in SelectMultiple.value_from_datadict
So the answer here is going to be implement a custom widget if you're likely to have this problem.
Can we do better than that?


[GOBBLIN-784] Allow setting replication factor in distcp

Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[x] My PR addresses the following Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"

https://issues.apache.org/jira/browse/GOBBLIN-784

Description

[x] Here are some details about my PR, including screenshots (if applicable):
If writer.file.replication.factor, override the default behavior of distcp (which is use the source factor or use the filesystem default).

Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:
Trivial change and tested locally

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

LGTM

+1


Add all supported ComboBox themes - missing OUTINED_PRIMARY and OUTLINED_WARNING

After #277 is finished, this issue can be closed


search() method doesn't work properly

Hi,
I'm trying to use the search() method and it basically gives me a mostly empty object.
This is what I get:
{ tracks:
   { href: 'https://api.spotify.com/v1/search?query=Du+bist+sch%C3%B6n&offset=1&limit=1&type=track',
     items: [ [Object] ],
     limit: 1,
     next: 'https://api.spotify.com/v1/search?query=Du+bist+sch%C3%B6n&offset=2&limit=1&type=track',
     offset: 1,
     previous: 'https://api.spotify.com/v1/search?query=Du+bist+sch%C3%B6n&offset=0&limit=1&type=track',
     total: 2041 } }

Here's the code I'm executing with Git Bash (not gonna share my clientId and clientSecret of course, but they are there and correct):
var SpotifyWebApi = require('spotify-web-api-node');
var spotifyApi = new SpotifyWebApi({
	clientId: <clientID>,
	clientSecret: <clientSecret>,
        redirectUri: 'http://localhost:8888/callback',
});
spotifyApi.search('Du bist schön', ['track'], { limit : 1, offset: 1}, function(err, data) {
	if (err) {
		console.error(err);
	} else {
	console.log(data.body)
	}
});

If I try this data.body["tracks"] it gives me more information:
{ href: 'https://api.spotify.com/v1/search?query=Du+bist+sch%C3%B6n&offset=0&limit=1&type=track',
  items:
   [ { album: [Object],
       artists: [Object],
       available_markets: [Object],
       disc_number: 1,
       duration_ms: 228213,
       explicit: false,
       external_ids: [Object],
       external_urls: [Object],
       href: 'https://api.spotify.com/v1/tracks/5PJeAJAw8YFUesmwARqn9Y',
       id: '5PJeAJAw8YFUesmwARqn9Y',
       name: 'Du bist schön',
       popularity: 68,
       preview_url: 'https://p.scdn.co/mp3-preview/04b971fb3e032f162d0096e442073a25c085cfb6',
       track_number: 11,
       type: 'track',
       uri: 'spotify:track:5PJeAJAw8YFUesmwARqn9Y' } ],
  limit: 1,
  next: 'https://api.spotify.com/v1/search?query=Du+bist+sch%C3%B6n&offset=1&limit=1&type=track',
  offset: 0,
  previous: null,
  total: 2041 }

but that's still not everything, as you can see. I tried using an access token (I have another function that gives me the audio features of a song) but I get the same result. I also tried using promises but still the same.
What am I doing wrong here? Please keep in mind that I'm fairly new to JavaScript and Node.
Also I do not really need everything, mostly I'd like to get the artist, name of the track and the id. How do I get only these things?

Hi @AlcuZan!
I see that you are pasting both the code to get the first one (limit=1, offset=0) and also the second one (limit=1, offset=1). It is a minor issue but makes it more difficult to find out exactly what problem you are having.
By the looks of it the API is working perfectly. You are getting track objects when searching tracks.
If you want to get the artist, name of the track and id, you can do:
var track = data.body.tracks.items[0]; // beware items can be empty and you would need to check for this case
var artistName = track.artists[0].name; // a track always has a list of artist objects with at least one of them
var trackName = track.name;
var trackId = track.id;

I'm going to close this ticket since I can't see any problem in the behaviour of the wrapper. Feel free to reopen it if you find any issue.


How is possible to debug a goroutine leak?

Thanks

Hi!
Please read this important information about creating issues.
If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
This is an automated, informational response.
Thank you.
For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
uname -a:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

@aledbf Send SIGUSR1 to daemon, but be prepared for massive output.

@LK4D4 this is available in 1.6.2? I don't see any output from the kill command

@aledbf Probably not :/ Only on master. But any issue is better to debug on master, because it can be already fixed.

@aledbf I'm going to close this issue, because this is not a bug in docker; feel free to continue the discussion here, or perhaps better, join the #docker-dev IRC channel


RaisedButton colors are not working properly

Steps to Reproduce

Run this code on DartPad:

import 'package:flutter/material.dart';

void main() => runApp(SampleApp());

class SampleApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SamplePage(),
    );
  }
}

class SamplePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: RaisedButton(
          color: Colors.white,

          highlightColor: Colors.blue,
          hoverColor: Colors.yellow,
          splashColor: Colors.red,
          child: Text('Test'),
          onPressed: () => null,
        ),
      ),
    );
  }
}

Long press on the button and ink ripple is gone, you'll only see the blue highlightColor.
If you do a quick second press before the elevation from the first one, you can now see the red splashColor on the ink ripple .

This was tested in DartPad, Chrome and an Android device, and it worked the same way in all of the platforms.
Expected results: Ink ripple is always drawn over highlightColor
Actual results: It only happens on a quick second press of the button, before the hover/highlight effect of the first press is gone
[✓] Flutter (Channel master, v1.15.17-pre.5, on Microsoft Windows [VersiÃ³n 10.0.18363.657], locale es-ES)
    • Flutter version 1.15.17-pre.5 at C:\src\flutter
    • Framework revision 88852731a5 (49 minutes ago), 2020-03-06 10:26:01 +0100
    • Engine revision 5aff311948
    • Dart version 2.8.0 (build 2.8.0-dev.12.0 9983424a3c)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at C:\Users\Cristian\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-R, build-tools 29.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.4.5)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.4.29806.167

[✓] Android Studio (version 3.6)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 45.0.2-dev.1
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)

[✓] VS Code (version 1.42.1)
    • VS Code at C:\Users\Cristian\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.8.1

[✓] Connected device (4 available)
    • ONEPLUS A5000 • f2eb43ee   • android-arm64  • Android 9 (API 28)
    • Windows       • Windows    • windows-x64    • Microsoft Windows [VersiÃ³n 10.0.18363.657]
    • Chrome        • chrome     • web-javascript • Google Chrome 80.0.3987.132
    • Web Server    • web-server • web-javascript • Flutter Tools

• No issues found!

Thanks for filing this @Zazo032!
I agree with you about what the behavior should be, although I've checked out commits as far back as 2017 and haven't been able to find a time when this behavior was ever different.
I'm going to remove the "regression" label since this does not seemed to have changed recently. @HansMuller mentioned to me that he's planning some work on buttons, so this may end up changing soon.

That's correct. One of the biggest projects within flutter.dev/go/material-theme-system-updates is updating (replacing really) the button theme classes.

RaisedButton has now been removed from the framework and replaced by ElevatedButton. I think we can close this issue now, unless the same issue exists in the new button API.

The way ripples show has changed since this was opened, I can't reproduce it now with the new ElevatedButton widget


This is not supporting .net core/.net standard project

My project is .net standard project and I did included the Microsoft.AspNet.WebApi.OwinSelfHost plugin which is showing me the warning in package level.

You might want to open an issue at https://github.com/aspnet/AspNetCore
This doesn't appear to be a document issue.


Route, template and querystring

We've migrate our web api project from RC1 to core 1 and we notice a couple of strange behavior. The "worst" one is that it seems that when using wildcard as last parameter in the route template the querystring version of the http call doe not work. Here is an example (the controller name is SpaceController).
The action:
[HttpGet("Details/{*fullPath}")]
public async Task GetSpaceDetails(string fullPath)
<= RC1:

https://localhost:44310/api/Space/Details/Test --> OK
https://localhost:44310/api/Space/Details?fullPath=%2FTest -->OK

Core 1

https://localhost:44310/api/Space/Details/Test --> OK
https://localhost:44310/api/Space/Details?fullPath=%2FTest -->KO

In core 1 the result of a call with the url that use the querystring is that variable fullPath is null.
Another strange behavior (that in RC1 work correctly) is that when using default value as parameter value in action the parameter is always null. For example (the controller name is SpacesController):
[HttpGet("{*SpacePath}")]
public async Task GetTree(string SpacePath = "/")
In this case in the call to https://localhost:44310/api/Spaces SpacePath parameter doesn't take the default value and is always null

@javiercn can you take a look? I have this sneaking suspicion that at least part of this is by design, e.g. due to the ordering of value providers in model binding. But I'm not sure, especially about the second part of the report.

Will do

I've tried the following and everything works.
Products/Bread/Glutten/Free gives back Bread/Glutten/Free
If you use [FromQuery] as you see below, you can also do Products?fullPath=Glutten/Free
If you don't specify anything, the default value is used and the result is "something".
        [HttpGet("Products/{*fullPath}")]
        public IActionResult Products([FromQuery] string fullPath = "something")
        {
            return Content(fullPath);
        }

If this is still happening to you, can you provide a small repro project?

Hi I am writing on behalf of simone.
I've tried the following:
[Route("api/[controller]")]
public class PathController : Controller
{
    [HttpGet("{*fullPath}")]
    public async Task<IActionResult> Get([FromQuery] string fullPath = "something")
    {
        return Ok(fullPath);
    }
}

api/Path?fullPath='foo'      returns "foo"
api/Path/foo                      returns  "something" (default value)
when removing  [FromQuery]
[Route("api/[controller]")]
public class PathController : Controller
{
    [HttpGet("{*fullPath}")]
    public async Task<IActionResult> Get(string fullPath = "something")
    {
        return Ok(fullPath);
    }
}

api/Path?fullPath='foo'      returns null
api/Path/foo                      returns  foo
Thank you for your help

Whats happening here is that the route value data provider provides the empty string when queried about full path and that takes priority over the query string parameter value. This has been the behavior in past versions of MVC and we decided to make it the same in ASP.NET MVC Core for backward compatibility reasons.

This seems to me a braking change from betaX/rcX to 1.0, we based part of our javascript code on this "feature" at our risk and we can accept it.
How about the default value overriding? Is this also by design? (please refer to my edit above)
Thanks
Alessandro

@ingAlfano the main reason we changed it was that it was always a mistake that we just didn't realize, and we didn't want to break compat with previous versions of MVC (1 - 5).
You can change the order of the value providers in MVC's options if you require a different order.


Implement the experimental log mode cli flag

Pull Request
Related issue
Fixes #<issue_number>
What does this PR do?

...

PR checklist
Please check if your PR fulfills the following requirements:

[ ] Does this PR fix an existing issue, or have you listed the changes applied in the PR description (and why they are needed)?
[ ] Have you read the contributing guidelines?
[ ] Have you made sure that the title is accurate and descriptive of the changes?

Thank you so much for contributing to Meilisearch!

Yeah, I know don't worry; I still have quite a bit of stuff to write before trying to merge it 😁

I see I was put as a reviewer, should I ignore this until it leaves draft status? If not, can you specify in the description what is needed to put the PR out of draft?

I see I was put as a reviewer, should I ignore this until it leaves draft status?

Oops yes sorry, I removed you when I realized that I still had a bit of work to do but looks like GitHub really wanted you to be there 😬


Image size

Hello, this plugin is great. It would be perfect if, instead of loading the full image, it showed a thumbnail of the image, with a fixed width maybe. Sometimes the full image is too big and you can only see a small part of it, which makes it less useful.
Thanks.

That's a great suggestion @Cooperdale! I'm going to check how to implement it despite the current constraints from ST3. Thanks

Not my idea actually. I copied it from Dreamweaver :).

@Cooperdale nevertheless useful 🙂
I've just released a new version 0.0.8 that adjusts the size of local images to the popup size. It should update automatically on your end. Let me know what you think.
I'd still have to implement a similar flow for remote images.
@Kristinita until a larger popup is available through ST3 API, what do you think about this?

It works great! Thanks, you are The Man!

Glad you liked it @Cooperdale 🙂 thanks for the suggestion

@alvesjtiago , thanks! It would be nice, if images will be more larger.

And we wait this feature for remote images.

@alvesjtiago , any ideas, how show remote images without scrollbars like local images?
Thanks.

@Kristinita yeah, I'd have to download the image first and calculate the dimensions prior to displaying them. Going to reopen this ticket to work on the same functionality for remote images.

@alvesjtiago , status?
Thanks.

Hi @Kristinita, I still didn't have a chance to work on this feature but I hope I can do it in the next couple of days. I'll keep you posted. Thanks

@Kristinita this last release should add the ability to see remote images fitting to the size of the popup window. Let me know what you think.

@alvesjtiago, thanks, it works for me!

And I think, it would be nice, if would be possible make image size larger. As you can see, the details on image are not very visible.
Thanks.

@Kristinita great! The image size unfortunately can't be larger due to the window popup dimension restrictions of Sublime Text 3 without displaying sliders so I will close this issue. Thank you for your feedback!

The image size unfortunately can't be larger due to the window popup

@alvesjtiago, maybe it would be nice to create an issue in Sublime Text Core?
Thanks.

@Kristinita yes, I will do that 😊


Installer: Default System Settings

This issue will hold all commits about changes of YaWK's default settings. (.sql data that gets imported during installation)

seems to be done for now.


Crash after a while

The app stops to work regularly. See Screenshot.
Also the screen becomes a "screenshot" of the current screen with a border around it.
I tried to make a screenshot, but the file ended up being all black only.

"After a while" makes me think you have one of those devices that mess with accessibility services. In this case there's nothing that developers can do to fix this. Here's an example with Dashlane having the same problem. The author is also suggesting some solutions.

The solutions in the link don't apply in Android 12 anymore. I checked for battery optimization, and it is already switched off.


Unreadable links in the Markdown editor

Please change the link styles, as their display is very hard to read in the Markdown editor:
Example.
You can take URL styles from the Apple notes to make them close to Mac OS UI standards:
Example.
There is also one overlay bug on the add link window:
Example.

Hi @broslavski, you can change the appearance of the Markdown editor with the 'Markdown editor light'-setting.
The overlay bug on the add link window should be fixed with the latest release.


RangeError: Maximum call stack size exceeded

Reported at https://x.com/nekonuma_inm/status/1806481471198376183
When pressing the "skills" button in Toushin Toshi 3, xsystem4 crashes with the error message RangeError: Maximum call stack size exceeded.
Pressing the "start" button in Haru Urare crashes as well. It must be a regression bug, as it worked before.

vm_stack_trace() at the crash location in Haru Urare:
0x0005205c in Image@0
0x00052b3e in ImagePool@load
0x00052a3a in ImagePool@getImage
0x0006929a in CountNumber@setImage
0x00069254 in CountNumber@0
0x000d4bdc in SceneTurnStart@2
0x000587ec in SceneTurnStart@0
0x0005805c in RunSceneTurnStart
0x0008341a in Game@run
0x00083230 in HaruApp@run
0x00055908 in game_main
0x0003ab32 in main

Note the nested @0 (constructor) calls. These are invoked inside A_ALLOC instruction, meaning that there are four execute_instruction() frames in the call stack. Since execute_instruction() has 444 local variables (why?), this may have led to the crash.

Actually, it wasn't. git bisect pointed out https://github.com/kichikuou/xsystem4/commit/4282b7ec30e408b3bb4e31222163e3c2620bc0ac as the culprit.
Nested huge switch statements appear to cause the problem. Preventing ffi_call() from being inlined within execute_instruction() seems to fix it.


Incorrect gradient calculation

Hi, I've been experimenting with this library for a few months now and really like the capabilities present. I'm working to develop an AD capability via code generation for a set of aerospace engineering codes in Python.
However, I think I've run into either a bug or a usage misunderstanding. Consider the following stand-alone function, which takes several parameters and returns a scalar:
import tangent

BTU_s2HP, HP_per_RPM_to_FT_LBF = 1.4148532, 5252.11

def enthalpyandpower(W_in, W_out, ht_in, ht_out_ideal, eff, Nmech, b1_W, b1_ht, b1_ht_ideal):

    ht_out = W_in/W_out * (ht_in * (1.0 - eff) + ht_out_ideal * eff)
    power = W_in * eff * (ht_in - ht_out_ideal) * BTU_s2HP

    ht_out += b1_W / W_out * \
        (b1_ht * (1.0 - eff) +
         b1_ht_ideal * eff)
    power += b1_W * eff * \
        (b1_ht - b1_ht_ideal) * BTU_s2HP

    # calculate torque based on revised power and shaft speed
    trq = power / \
        Nmech * HP_per_RPM_to_FT_LBF

    return power

If I generate the partial derivative of power with respect to the first parameter W_in
dpower_dwin = tangent.autodiff(enthalpyandpower, wrt=(0,), verbose=1)

then I get:
def denthalpyandpowerdW_in(W_in, W_out, ht_in, ht_out_ideal, eff, Nmech,
    b1_W, b1_ht, b1_ht_ideal, bpower):
    # Initialize the tape
    _stack = tangent.Stack()
    _ht_out3 = ht_out_ideal * eff
    _1_0_minus_eff = 1.0 - eff
    _ht_out2 = ht_in * _1_0_minus_eff
    _ht_out = _ht_out2 + _ht_out3
    W_in_over_W_out = W_in / W_out
    ht_out = W_in_over_W_out * _ht_out
    _power2 = ht_in - ht_out_ideal
    W_in_times_eff = W_in * eff
    _power = W_in_times_eff * _power2
    power = _power * BTU_s2HP
    tangent.push(_stack, ht_out, '_1c132dd6')
    _3285 = b1_ht - b1_ht_ideal
    b1_W_times_eff = b1_W * eff
    _3244 = b1_W_times_eff * _3285
    _eb3b = _3244 * BTU_s2HP
    tangent.push(_stack, power, '_b65b4e60')
    power = power + _eb3b
    assert tangent.shapes_match(power, bpower
        ), 'Shape mismatch between return value (%s) and seed derivative (%s)' % (
        numpy.shape(power), numpy.shape(bpower))
    power = tangent.pop(_stack, '_b65b4e60')
    bpower = tangent.init_grad(power, allow_lazy_initializer=True)
    ht_out = tangent.pop(_stack, '_1c132dd6')
    bht_out = tangent.init_grad(ht_out, allow_lazy_initializer=True)

    # Grad of: power = W_in * eff * (ht_in - ht_out_ideal) * BTU_s2HP
    _b_power = tangent.unbroadcast(bpower * BTU_s2HP, _power)
    b_power = _b_power
    _3f78 = tangent.unbroadcast(b_power * _power2, W_in_times_eff)
    bW_in_times_eff = _3f78
    _bW_in2 = tangent.unbroadcast(bW_in_times_eff * eff, W_in)
    bW_in = _bW_in2

    # Grad of: ht_out = W_in / W_out * (ht_in * (1.0 - eff) + ht_out_ideal * eff)
    _a32f = tangent.unbroadcast(bht_out * _ht_out, W_in_over_W_out)
    _9f3c = _a32f
    _bW_in = _9f3c / W_out
    bW_in = tangent.add_grad(bW_in, _bW_in)
    return bW_in

Running this seems to give me a partial derivative of 0.0 regardless of the evaluation point. However, the partial is certainly non-zero, e.g. at (30., 30., 10., 9.5, 0.95, 1000., 1000., 1000., 999.) it would be about 0.67206, but instead
x = denthalpyandpowerdW_in(30., 30., 10., 9.5, 0.95, 1000., 1000., 1000., 999., 1.0)
print(x)

returns 0.0.
The correct derivative of can be found analytically with some work, or confirmed roughly by finite difference:
x0 = enthalpyandpower(30., 30., 10., 9.5, 0.95, 1000., 1000., 1000., 999.)
x1 = enthalpyandpower(30.001, 30., 10., 9.5, 0.95, 1000., 1000., 1000., 999.)

print((x1 - x0) / (0.001))

Have I made a user error, or is this an unexpected bug? Thanks!

It looks like a bug. I was able to get a value that looks similar to the finite difference by replacing the += operators, e.g. ht_out = ht_out + .... Could you try to see if that fixes things for you? This would be just a temporary workaround, until we get to fix the bug.

Sure, I can use the workaround for now, I appreciate the feedback.

Definitely a bug, thanks for reporting it, and great catch! We were handling augmented assignments incorrectly in one of our pre-processing passes (anf.py). Should be fixed by #65 , which I hope to merge to master if tests pass.

One other nit, just an FYI for myself: it looks like trq and the aug assign to ht_power are unused in this calculation (it was the power += ... statement that actually caused the gradient bug). Is that intentional, or an artifact of yanking code out of your codebase to give us a running example?

Yeah, It was originally a multi-output function that I tweaked just to get a running example. I may have more questions about best practices surrounding more specific use cases some time soon, but figured I would at least report this bug. Thanks again for the feedback!


[BugFix] Arithmetic expr error

What type of PR is this：

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes https://github.com/StarRocks/starrocks/issues/17853
Problem Summary(Required) ：

With https://github.com/StarRocks/starrocks/pull/4691, we no longer treat all integer types as BIGINT.
The DIVIDE only accepts DOUBLE as inputs and would cast inputs in BIGINT and LARGEINT as DOUBLE.
Since the inputs only in BIGINT and LARGEINT are cast, the ones in INT and TINYINT would get this error.
Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)
[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto backported to target branch

[ ] 2.5
[ ] 2.4
[x] 2.3
[ ] 2.2

run starrocks_fe_unittest


Searching by Language Families - select pull down menu doesn't show the number of involved societies

@xrotwang This issue is caused by the fact that in SQL table languagefamily column language_count wasn't updated after the import. The model class LanguageFamily defines such a function:
https://github.com/D-PLACE/dplace/blob/master/dplace_app/models.py#L300
What do you think, would it be good to call this routine before:
https://github.com/D-PLACE/dplace/blob/master/dplace_app/loader/glottocode.py#L24
or do you see a better place? I'm thinking of a general place where all necessary table updates can be called.

Do it directly in the query rather than precomputing? It's not going to save that much database effort, surely?
from django.db.models import Count
qset = LanguageFamily.objects.all().annotate(language_count=Count('language'))

yes - one option, but we're dealing with static data after loading all data sets thus it'd be better to pre-calculate as much as possible to simplify and speed up the code.

I'm not sure that it's always better to pre-calculate. The trade-off is increased complexity of the loading code - I obviously missed this bit when refactoring.

hmm - so far we've 186 language families and to do 186 times a count to open a select menu - hmm - maybe one could do it in such a way that only the first user after a fresh load will trigger the update which will save the counts in the database for the next call.

@Bibiko But I think you are right in this case. Throwing in a line
for family in families.values():
    family.update_counts()

at the end of load_languages should do the trick.

Well, if one wants to this dynamically for all families, a single group by query would give all numbers.

yes - but I would go with the update in load_languages.

Just did a quick test: Looping over all LanguageFamilys including the society count like this
    a = 0
    for f in models.LanguageFamily.objects.all().annotate(language_c=Count('language__societies')):
        a += f.language_c
    print(a)

clocks in at < 0.02 sec. In some runs it was up to 50% slower than looping without the count (which runs between 0.012 and 0.016 sec). Overall I'd say: Do it dynamically.

After all,

premature optimization ...

I we factor in that Glottolog is now the only language classification scheme we use, this will cut the LanguageFamily model down from
class LanguageFamily(models.Model):
    scheme = models.CharField(max_length=1, choices=CLASSIFICATION_SCHEMES, default='G')
    name = models.CharField(max_length=50, db_index=True)
    language_count = models.IntegerField(default=0, null=False)

    def update_counts(self):
        self.language_count = 0
        for society in Society.objects.all().filter(language__family=self):
            if society.value_set.count() > 0:
                self.language_count += 1
        self.save()

to
class LanguageFamily(models.Model):
    name = models.CharField(max_length=50, db_index=True)


ARM-TTK should skip Bicep self-generated variable

When using Bicep loadTextContent()  function, bicep build generates a variable (e.g.  $fxv#0) to save the file content and references it in the template.
ARM-TTK complains the Bicep self-generated variable saying: Unreferenced variable: $fxv#0, which is not expected.
How to repro
Bicep version: 0.8.9
Sample bicep file test.bicep:
param identity object = {}
param location string
param utcValue string = utcNow()

resource deploymentScript 'Microsoft.Resources/deploymentScripts@2020-10-01' = {
  name: 'test'
  location: location
  kind: 'AzureCLI'
  identity: identity
  properties: {
    azCliVersion: '2.33.1'
    scriptContent: loadTextContent('./test.sh')
    cleanupPreference: 'OnSuccess'
    retentionInterval: 'P1D'
    forceUpdateTag: utcValue
  }
}

Build the script with bicep build test.bicep, it will generate a json file test.json.
Use ARM-TTK to validate test.json: Test-AzTemplate -TemplatePath test.json, you will find an error saying Unreferenced variable: $fxv#0.
Workaround
The workaround was figured out by @majguo.
Use loadFileAsBase64() to load the file, and call base64ToString() to parse base64 string.
param identity object = {}
param location string
param utcValue string = utcNow()

var base64_test=loadFileAsBase64('./test.sh')

resource deploymentScript 'Microsoft.Resources/deploymentScripts@2020-10-01' = {
  name: 'test'
  location: location
  kind: 'AzureCLI'
  identity: identity
  properties: {
    azCliVersion: '2.33.1'
    scriptContent: base64ToString(base64_test)
    cleanupPreference: 'OnSuccess'
    retentionInterval: 'P1D'
    forceUpdateTag: utcValue
  }
}

@StartAutomating - looks like a bug in the regex in irregular - doesn't seem to handle the #

@bmoore-msft
Your suspicion was close to correct.  It didn't like #, because that can start a Regex comment if not escaped.
It also didn't like $, because that normally is interpreted as an "end anchor" if not escaped.
PR should fix both cases.

s/b fixed


new pull 3rd pr

Please resolve the conflict

Please remove the dash above Beginner

Looks good, please ask for a second approval so it can be merged

Thanks

Still a conflict

@EdoriAtiri please fix the conflicts and as soon as you do that, share the link in twitter so it can be merged. You already have 2 approvals.

Yay 🥳


cli: update version for v0.10.12

did you intend to merge this? Note that the install script won't get the new version until you do

Oh, yes I did. Thanks!


Fix DataFrame.describe() to support multi-index columns.

Codecov Report

Merging #1279 into master will decrease coverage by 1.41%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1279      +/-   ##
==========================================
- Coverage   95.15%   93.74%   -1.42%
==========================================
  Files          34       34
  Lines        7208     7208
==========================================
- Hits         6859     6757     -102
- Misses        349      451     +102

Impacted Files
Coverage Δ

databricks/koalas/frame.py
96.53% <100%> (ø)
:arrow_up:

databricks/koalas/usage_logging/__init__.py
24.32% <0%> (-72.98%)
:arrow_down:

databricks/koalas/usage_logging/usage_logger.py
50% <0%> (-50%)
:arrow_down:

databricks/koalas/__init__.py
78.72% <0%> (-14.9%)
:arrow_down:

databricks/conftest.py
92.45% <0%> (-3.78%)
:arrow_down:

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 a3a55a8...876654c. Read the comment docs.


Beans

No idea what this is gonna look like, but something like this would certainly be convenient to have.

First test implementation here -> f6967bb520f1f2264973d45347f5c704ed4d2eaf

Not yet usable, I forgot to clear the activeBeans map in the BeanManager class in the storeActiveBeans method

https://github.com/Bethibande/JWebAPI/blob/f6967bb520f1f2264973d45347f5c704ed4d2eaf/src/com/bethibande/web/beans/BeanManager.java#L92 And then there is this ._.

Add global beans, stored in the JWebServer class, global beans never expire and have to be created using
JWebServer.storeBean(Bean);

where Bean is an instance of your bean class

finished for now


productIndex should have a template with relative path instead of the absoute oscar path

ProductIndex.text: template_name field
with relative path, it is easier to override the search index template(item_text.txt) without the need of subclassing the entire search module.
I will submit a PR.

Merged. Thanks.


⚠ PrivateHD has degraded performance

In 06c73a4, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 2696 ms

Resolved: PrivateHD performance has improved in 5fbd8d5.


Fix column escape in args (#47)

use same char escapes as npm (see npm completion output)
avoid COMP_WORDBREAKS override

(tested on ubuntu)

@dkarlovi can you confirm this resolves your issue on macos?

Would love to get someone who has access to OSX to confirm this still works for them because that was the specific pain point when I initially wrote the completions.
Once that happens, I'd be happy to merge this in.

I've asked a few OSX people and it seems Apple doesn't ship Bash 4+ because of GPL 3. They either use zsh or Bash 3.

Yeah, apple is locked in at bash 3. But you can still use homebrew to install modern bash and bash completions.
Those are the demographic I'd like to hear about if possible.

Oh whoops. Forgot that I have tests for macOS already running (and passing) on this PR.
Cool, let's merge this. Thanks @gluck!


fix huggingface inference

Hello
I try to run colorization_pipeline_hf.py but I encountered couple of errors. I fixed them. Can you check if everything now is OK?
I add scikit-image to requirements.txt because I got error: ModuleNotFoundError: No module named 'skimage'.
And I made successful inference on torch==2.1.1 and torchvision==0.16.2 so maybe is good idea to change these versions in requirements

Hi @Skwarson96 , thank you for fixing this! I will merge this PR into master branch.


Add style guide

Description & motivation
Moving the dbt style guide into the guides section to increase discoverability + maintainability!
Checklist
If you added new pages (delete if not applicable):

[X ] The page has been added to website/sidebars.js
[ X] The new page has a unique filename

Checked with DX team.
Closing this out -- there's a new one in the works.


Transition plan for moving Hyperledger Aries Cloud Agent Python to OpenWallet Foundation acapy

Latest Update: 2024.10.09
This description will evolve as the transition of ACA-Py into the [OpenWallet Foundation] (OWF) and the transfer of the repo (now done) is made operational. Bookmark this issue to learn about the approach, the progress, the timeline, and guidance on what you should do in updating your deployment to reference the new home for the repository.
Goals/Decisions

Names used in the repo move to OWF:

The new name of this repo is acapy —  https://github.com/openwallet-foundation/acapy

A rediect is in place so if you use the old Hyperledger repo name, you get to the proper place.

The name of the project at OWF is "ACA-Py”, although ACAPY can be used as well. It is not an acronym, or if it is, it is “A Cloud Agent Python”, or in the GNU tradition “ACA-Py is a Cloud Agent Python"
The name of the source folder in the repo will be acapy_agent (the name "acapy" is already taken at PyPi).
Sub-projects of ACAPY will have repos prefixed by "acapy-", such as acapy-plugins (which has already been moved).

The documentation site for ACA-Py continues to be the https://aca-py.org, although there might be a bump or two as we complete the post-move updates.
The description in this issue will be the latest and greatest on the transition, and guidance on updating deployments to reference the new repo and artifacts.
LTS requirements will be met by continuing to be able to publish 0.11 and 0.12 releases through to their respective end of life dates. That includes being able to push updates to PyPi and GHCR using the existing artifact names. Note that we have not yet declared an LTS 1.x version of the project.

Details

[x] DONE - None needed. Research if there is a likelihood that we need to do a 0.11 and/or 0.12 LTS release. If so, do it from Hyperledger, before the move.
[x] Update the README.md for the repo to announce the move and create a file acapy_to_owf.md that will contain updated information about the best practices in updating deployments to the new OWF home of the project/repository.
[x] Complete release 1.0.1 that contains the current changes to main.  This is the last Hyperledger-based release.

The update includes a deprecation notice in the README about the Hyperledger repo move to OWF.
It also contains a deprecation notices about the movement of the RFC 0160 connections, issue credential v1 and present proof v1 to the plugins repo, removing them from the core ACA-Py repo. That will be done in an upcoming release.

[x] Before the move prepare PRs that implement the changes resulting from the move to OWF -- but hold off on merging them until after the move. Include documentation updates, GHA changes, and so on.
[x] Move the repo to OWF.
[ ] Merge the PRs prepared for the move to OWF.
[ ] Add a token to the OWF repo that allows for the publishing of artifacts to the Hyperledger GHCR.

[ ] Update the GHCR publishing job (GHA) to publish release artifacts to BOTH the OWF and Hyperledger locations.
[ ] Add a new GHA to publish releases on the 0.11 and 0.12 branches (but not main) to the aries-cloudagent PyPi project.

[ ] Produce a release from OWF (1.1 or 1.1.1) that publishes the artifacts to their new PyPi and old and new GHCR locations.
Carry on...

@WadeBarnes and @ryjones -- love to get your input on the plan.  Same with new maintainers @thiagoromanos and @ff137, and any other deployers.  Does this make it as easy as possible?
For those at the meeting today (@esune @jamshale @dbluhm @mepeltier @PatStLouis) -- note the subtle change I made to the repo that is to be kept at Hyperledger to be able to publish LTS releases.  We'll create the fork immediately after the OWF move, but we'll only rename the repo to the current name when we have to publish an LTS release. That will allow the GitHub automatic redirect to work until that point -- which may be forever. 🤞
Feedback welcome!

If and when we must do a first 0.11 and/or 0.12 LTS release, we will rename the repo to the old "aries-cloudagent-python" name. At that point the the automatic GitHub redirect to the OWF repo will be stopped.  Ideally, we won't ever have to do that, or when we do, the word is out amongst deployers about the change.

I don't think a rename back to aries-cloudagent-python would ever be needed.  The artifacts, their names, and where they are published is independent of the name of the repository.

Awesome!  We were thinking that it would be needed for the GHCR namespace. If not — all the better!  I’ve updated the plan in the issue description.

Couple of housekeeping issues:

[ ] Mission Statement - LF is going to create a Project Charter for ACA-Py, I am getting that process started. We will a mission statement for  the ACA-Py project to be included in the Charter. As this is moving over to the OWF, there is no need for a contribution agreement.

[ ] As ACA-Py is coming into OWF as an Impact project, we will need a representative for the Technical Advisory Council (TAC). The TAC meets every other Weds and should be 2-6 hours per month committment.

[ ] Does the ACA-Py community want to come up with their own logo or should I reach out to LF Marketing for help?

Thanks, @SeanBohan.
Oh boy, a mission statement. :-). We’ll work on that.  Can you direct me to some other Mission Statements of projects so we see the style of what is expected.
We have the bi-weekly ACA-Pug meeting tomorrow and will check in with the community on all three issues.

One of the trickier things is the LTS. When we fork the openwallet-foundation repo back to hyperledger we'll need to change the name back to aries-cloudagent-python and adjust the github actions to point to hyperledger/aries-cloudagent-python again.
That's all good, but forking won't maintain any of the tags or releases. We'll need to manually create the tags and releases by commit id after forking. The existing images are still available after moving the repo. This is only to create new images and pypi packages.
All the existing github secrets will also be lost. They'll also need to be re-made after forking for publishing workflows.
We should make sure the forked repo no longer allows PR's except from a few users that will create patch releases.

We'll need to manually create the tags and releases by commit id after forking. The existing images are still available after moving the repo. This is only to create new images and pypi packages.

Can pypi packages be pushed like it is possible with Docker images? If so, we could just manually push the relevant packages/images to the ghcr for the forked repo - this is only advisable if we expect the LTS releases to be replaced by new ones in the relatively near future and therefore we'd have to manually push only a limited amount of times.

We should make sure the forked repo no longer allows PR's except from a few users that will create patch releases.

+1 to this. Also issue creation (at least from external contributors) should be prevented and redirected to the new repo?

You can manually publish both the pypi package and the ghrc.io images. For pypi you need the publishing account username/password and for ghrc.io you need a PAT with package:read,write,delete privileges.
Getting the github actions to work again and manually tagging the commits wouldn't be too hard with the correct repo rights either, but there is a few steps to do. Renaming the repo again after forking is critical for ghrc because that's how it decides the namespace.

I've produced images for a repo where the image name doesn't exactly match the name of the repo. I think the org name must match but the repo name is not required to be in the image name.

Another thing to consider is changing the project and package name will change the references in plugins. For the managed plugin repo we can do this ourselves but in unmanaged plugins like traction innkeeper they will break if they install the new package without updating the source code.

I’m hoping this is not an issue:

One of the trickier things is the LTS. When we fork the openwallet-foundation repo back to hyperledger we'll need to change the name back to aries-cloudagent-python and adjust the github actions to point to hyperledger/aries-cloudagent-python again.

The point of moving-and-forking-back before we merge the PRs that we’ve made for the move is that the forked version will not have changed from what was working in Hyperledger before the move.  Is that not right?  My hope is that the GHAs should still work, except for the repo name change from “aries-cloudagent-python” to “aries-cloudagent-python-lts”.

I didn't describe this very well. The forking back will work yes if we do it before merging the PR's, but I'm pretty sure we lose the github secrets and the tags/releases after forking back.
The existing artifacts for the releases will still work via redirects but to create new LTS releases via github actions I'm pretty sure we need to recreate the pypi secrets and the tags.

@jamshale correct. I will ask you all to reconsider any plan to fork it back to Hyperledger.

We don’t need the tags — we just need the two (or perhaps 5) we already have, and we know where they belong.   Can we not add back or get new secrets?
@ryjones — if we don’t have a hyperledger-based repo, how will we produce the needed PyPi and GHCR artifacts for LTS releases.  We’re not doing the fork for fun — we think it is necessary.

I think @ryjones has a point, we should try to do everything from the repo in OWF and then figure out what to do from there if we find something is not possible.

Talking to @WadeBarnes and based on what @ryjones has said, here is what we now think is possible, without having to do a link:

Since we have a branch in the repo for the LTS releases, we can still produce the PyPi artifacts from the branches. We'll figure out the best approach, but suggest that we update the current GHA to not produce a PyPi release for the 0.11/0.12 releases, and add a GHA that will produce the old named PyPi artifact for 0.11/0.12 releases.
For the GHCR, we will adjust the current GHA to push all artifacts to both the Hyperledger GHCR with the old tags, and to the OWF GHCR using the new tags. If possible, we would not push the 0.11/0.12 artifacts to the OWF GHCR.
I think the Docs publishing will scheme will just continue to work, but if not, we can always directly update the gh-pages branch.

Please review/confirm/adjust this and I'll update the description of this issue with the latest thinking.

I think this is a good approach. It makes things a lot simpler. We could possibly generate the 0.11.lts and 0.12.lts artifacts for the new package and image names as well. Then someone on the hyperledger artifacts could move to the OWF artifacts without needing to upgrade.
As mentioned before. It is possible to do both the pypi publish and image uploads via command line for the old locations if someone has the correct account credentials. This really shouldn't happen very often.

@jamshale For GHCR, it looks like we add a token (not using the runtime token) with access. https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry
I added ACAPY_PUB to OWF's secrets. the user is hyperledger-bot. You should be able to publish to Hyperledger's GHCR with that combination

Hello guys, the ACA-Py demo link does not work: https://aca-py.org/latest/gettingStarted/AriesDeveloperDemos/

@claudiotorrens where did you find that link?

@claudiotorrens it exists in 0.12.2 and 1.0.1? the correct link is https://aca-py.org/main/gettingStarted/ACA-PyDeveloperDemos/ as it was renamed


test PR with Github API

Please pull this in!

Docs Build status updates of commit 7423eb5:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

node-azure-tools.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 440555f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

node-azure-tools.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 440555f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

node-azure-tools.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


de-serialization?

you have some docs on
https://docs.micro-stacks.dev/modules/core/clarity/serialization
do you have examples of how to decode the data coming back from the APIs?
eg i sent a buffer in and returns
{
  type: '(optional (buff 64))',
  value: {
    type: '(buff 64)',
    value: '0x36333562663261376537333436376636333363313931353738613938383137313663383633306235373164613034643634303334356331646232333231636537'
  }
}

any docs on how to convert that to a useful value?

eg the opposite of bufferCVFromString(seed)

There are a few options:
import {hexToValue} from 'micro-stacks/clarity';
import {hexToCv} from 'micro-stacks/clarity';
import {cvToTrueValue} from 'micro-stacks/clarity';

I'd recommend always using cvToTrueValue or hexToValue


Fix input_shape in Sequential model

Fix #20074
A weird behavior was observed where input_shape might be a list instead of a tuple during loading.
This PR standardizes the input_shape in Sequential's build. The criterion for skipping the building process has also been simplified using try-except block.

Codecov Report
Attention: Patch coverage is 87.50000% with 1 line in your changes missing coverage. Please review.

Project coverage is 57.50%. Comparing base (c1a00e6) to head (4a44111).

Files
Patch %
Lines

keras/src/models/sequential.py
75.00%
1 Missing :warning:

:exclamation:  There is a different number of reports uploaded between BASE (c1a00e6) and HEAD (4a44111). Click for more details.
HEAD has 6 uploads less than BASE

Flag
BASE (c1a00e6)
HEAD (4a44111)

keras
4
1

keras-torch
1
0

keras-tensorflow
1
0

keras-jax
1
0

Additional details and impacted files
@@             Coverage Diff             @@
##           master   #20076       +/-   ##
===========================================
- Coverage   79.29%   57.50%   -21.79%
===========================================
  Files         501      501
  Lines       46951    46955        +4
  Branches     8654     8652        -2
===========================================
- Hits        37231    27003    -10228
- Misses       7971    18276    +10305
+ Partials     1749     1676       -73

Flag
Coverage Δ

keras
57.50% <87.50%> (-21.65%)
:arrow_down:

keras-jax
?

keras-numpy
57.50% <87.50%> (+<0.01%)
:arrow_up:

keras-tensorflow
?

keras-torch
?

Flags with carried forward coverage won't be shown. Click here to find out more.

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


Update capabilities-overview.md

corrected wording.

Docs Build status updates of commit 7abf09b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/concepts/capabilities-overview.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 0cdf341:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/concepts/capabilities-overview.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


test: order of e2e test results

https://github.com/singularity-data/risingwave/pull/3582 should be revisited
Generally, we need to either:

default to rowsort, add nosort to tests with order
default to nosort, add rowsort to tests without order
add both, reject default order.

Since most queries don't require order, 1 is more convenient. But 2 is more safe. (3 is safer, which can force the developer to consider the order)

Current (1 already merged) unsafe problems

[ ] missing nosort on tests with order. They won't fail even if result order is incorrect.
[ ] actually failing: batch parallel scan on ordered mv may have unorderd results. should do a merge sort after parallel scan.

other things about UX

yes, but one special case that will affect user experience is window table functions / date time columns. Though order is not important in our system, users might feel weird that older windows appear later than newer windows when they select from table. Not sure whether we should make user happy or just tell them we do not ensure order...
just an idea, maybe we can add a "RW_SORT_PK" mode for batch query so that users can get consistent output when select? We always produce output with pk sorted in batch query if this option is enabled.

Originally posted by @skyzh in https://github.com/singularity-data/risingwave/issues/3582#issuecomment-1171522240

I would vote for 2 or 3, since safety is more important to me in tests.

BTW I think we should revert #3582 first?

I think most of #3251 are done. How about we revert #3582 first, but do a small modification in scheduler to schedule one task for table scan to workaround this the bug?

You mean only one task? LGTM

You mean only one task? LGTM

Exactly. And we can do small changes to enable true full table scan after we fixed bugs.


Add vdex027 support

Basic support for extracting dex/cdex files from vdex027.
Doesn't include support for debugging the new verifier dependencies section, as this is not essential for dex/cdex extraction.
vdex027 introduced many changes, among them: complete removal of QuickeningInfo, BootClassPathChecksumData and ClassLoaderContextData. Structure has been completely changed for extensibility, so all of the methods had to be adapted. As QuickeningInfo is no longer part of the VDEX file, decompilation/unquickening is no longer needed.
Sample files:
https://drive.google.com/file/d/1lJ31Rb7_79j_ZItuYEf74Gym59tGmFkH/view?usp=sharing
Official format documentation:
// VDEX files contain extracted DEX files. The VdexFile class maps the file to
// memory and provides tools for accessing its individual sections.
//
// In the description below, D is the number of dex files.
//
// File format:
//   VdexFileHeader    fixed-length header
//   VdexSectionHeader[kNumberOfSections]
//
//   Checksum section
//     VdexChecksum[D]
//
//   Optionally:
//      DexSection
//          DEX[0]                array of the input DEX files
//          DEX[1]
//          ...
//          DEX[D-1]
//
//   VerifierDeps
//      4-byte alignment
//      uint32[D]                  DexFileDeps offsets for each dex file
//      DexFileDeps[D][]           verification dependencies
//        4-byte alignment
//        uint32[class_def_size]     TypeAssignability offsets (kNotVerifiedMarker for a class
//                                        that isn't verified)
//        uint32                     Offset of end of AssignabilityType sets
//        uint8[]                    AssignabilityType sets
//        4-byte alignment
//        uint32                     Number of strings
//        uint32[]                   String data offsets for each string
//        uint8[]                    String data

thanks u so much , u save my rom

u are my god, saved my life

cc -O2 -pipe -O3 -pipe -funroll-loops -mretpoline -fno-delete-null-pointer-checks  -fstack-protector-strong -fno-strict-aliasing  -fdebug-prefix-map=/tmp/ports/usr/ports/misc/vdexextractor/work/vdexExtractor-78f283b60ab6991fa27eeaff7d7be16409401c08/src=. -c -std=c11 -D_GNU_SOURCE -Wall -Wextra  -DVERSION=\"dev-78f283b60ab6991fa27eeaff7d7be16409401c08\" -c vdex/vdex_decompiler_027.c -o vdex/vdex_decompiler_027.o
vdex/vdex_backend_027.c:30:19: warning: unused function 'POPCOUNT' [-Wunused-function]
static inline int POPCOUNT(uintptr_t x) {
                  ^
1 warning generated.

yes,it's very good,but i think you need to open a fork to help others easier