Board Review: Introducing Project Oak Forest

Thank you for starting the process for approval of the client library for your Azure service.  Thorough review of your client library ensures that your APIs are consistent with the guidelines and the consumers of your client library have a consistently good experience when using Azure.
The Architecture Board reviews Track 2 libraries only. If your library does not meet this requirement, please reach out to Architecture Board before creating the issue.
Please reference our review process guidelines to understand what is being asked for in the issue template.
Before submitting, ensure you adjust the title of the issue appropriately.
Note that the required material must be included before a meeting can be scheduled.
Contacts and Timeline
Information is present in Engagement Record

Service team responsible for the client library:
Main contacts:
Expected GA date for this library:

About the Service
Information is present in Engagement Record

Link to documentation introducing/describing the service:
Link to the service REST APIs:
Is the goal to release a Public Preview, Private Preview, or GA?

About the client library
Information is present in Engagement Record

Name of client library:
Link to library reference documentation:
Is there an existing SDK library? If yes, provide link:

Step 1: Champion Scenarios
Information is present in Engagement Record
Ultimately the library should be easy to use for common scenarios that developers want. Consider the following questions when thinking about champion scenarios:

What is the app the developer is building that uses your client library?
Who is the end-user of the application (the developer's customer)?
What features of the API need to be explained in the sample so that someone could use this API in real app?
How does the authentication workflow look?

See Champion Scenario section here.
Code is appreciated but optional. Pseudocode is fine.

Champion scenario 1

Link to library’s sample folder:

Champion scenario 2

Link to library’s sample folder:

…
Champion scenario n

Link to library’s sample folder:

Step 2: Quickstart Samples (Optional)
Include samples demonstrating how to consume the client library if available:

Create a new resource
Read the resource
Modify the resource
Delete the resource
Error handling
Handling race conditions/concurrency issues

Thank you for your submission!

@lilyjma - All of the information that you need should be in the engagement record.
Project Oak Forest, is the Azure managed service offering for the Open Energy Platform, which is an industry community project. Since the REST API Stewardship board would have very little influence on the community APIs, it was recommended by Peter to have the Project Oak Forest team provide a service introduction to the Azure SDK Architecture Board. Mark mentioned joint review would be good, as the Stewardship Board could provide input on how the APIs are surfaced.  Please reach out @czubair to determine who from the REST API Stewardship Board should participate in the service introduction.
Also, the service team is in India, would you please work with them on a global time accommodation for the service introduction.  Thank you!

thanks @ladonnaq.
@komakkar I'll ping you on Teams to discuss details


Upgrading neovim causes 134 error

Hi, thanks for the plugin: the simplicity and ease of use are great.
I recently updated from neovim "NVIM v0.5.0-715-gc5ceefca7" to "NVIM v0.5.0-dev+1062-gcc1851c9f". Now when I start the REPL I immediately get the following error:
[Process exited 134]

My only ripple related configuration is
let newline = "\<cr>"
let g:ripple_enable_mappings = 0
let g:ripple_winpos = 'below'
nmap <LocalLeader>ro <Plug>(ripple_open_repl)
vmap <LocalLeader>rs <Plug>(ripple_send_selection)
nmap <LocalLeader>rm <Plug>(ripple_send_motion)
nmap <LocalLeader>rp <Plug>(ripple_send_previous)
nmap <LocalLeader>a <Plug>(ripple_send_motion)ae
nmap <LocalLeader>p <Plug>(ripple_send_motion)ap
nmap <LocalLeader>l <Plug>(ripple_send_motion)_
nmap <LocalLeader><CR> :call ripple#command(0, 0, newline)<CR>
nmap <LocalLeader>w <Plug>(ripple_send_motion)iw

I'm not sure if this is a ripple or neovim issue. Any advice on debugging or a fix would be most welcome.

Hi, and many thanks for reporting the issue. I'm using Neovim v0.5.0-808, which is a more recent version than yours, but can't reproduce the issue. After what mapping / command does the issue arise? And does the issue arise with all languages?

Thanks for the quick response. It happens after <Plug>(ripple_send_motion)_ and <Plug>(ripple_send_motion)ae with both python and R file types. I will try a newer version of neovim (I thought I had a recent one but will double check).

Just discovered <Plug>(ripple_open_repl) opens the REPL fine with this message:
vim-ripple: Opening an isolated REPL. To open a REPL common to all buffers of filetype 'python', use 'yr<motion>' directly.

Thanks for your help, I think this is at least a work-around.

It seems that 'ae' is not a text object in Python for me. I tried
<Plug>(ripple_send_motion)_ but, on my machine, this does not lead to
an error. What if you open the REPL first and then send a text object?
Also, have you tried updating the plugin?
On Wed, Feb 03, 2021 at 08:00:49AM -0800, John Reid wrote:

Thanks for the quick response. It happens after <Plug>(ripple_send_motion)_ and <Plug>(ripple_send_motion)ae with both python and R file types. I will try a newer version of neovim (I thought I had a recent one but will double check).
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/urbainvaes/vim-ripple/issues/16#issuecomment-772618040

ae is a text object from one of plugins so yes that is unlikely to work in general. I did update all my plugins and I have the same issue. I will continue investigating but I do have the work-around you suggested: open the REPL first, then send a text object. Thanks for your help.

It looks to me like something has changed in neovim. Given that 0.5.0 is only a development release and doesn't seem that stable I've actually gone back to 0.4.4 whilst 0.5.0 sorts itself out. Again thanks for your help with this.

Thank you again for reporting the issue. If you ever discover the root cause, I'd be interested to know :)


Resource types for Network Intent Policies

Is your feature request related to a problem? Please describe.
I found it very fiddly to work with SQL Managed Instance, the resource requires a predefined network intent policy, set of rules on the NSG so it can be deployed. The first deployment is usually fine as Azure in the backend will add these SqlManagement rules, but adding your own NSG configuration can prove to be troublesome, and there is often conflicts when deploying.
Having these rules manually configured within my bicep may also cause problems in the future when the rules are updated and no longer match my bicep configuration, leading to my pipeline failing and having to go through and open a PR.
https://learn.microsoft.com/en-gb/azure/azure-sql/managed-instance/connectivity-architecture-overview?view=azuresql&tabs=current#mandatory-security-rules-with-service-aided-subnet-configuration
Describe the solution you'd like
I'd like to see a resource type where I can define a network intent policy for my sepecific resource, whether that's datawarehouse or SQL Managed Instance (eg. Microsoft.Network/NetworkIntentPolicy/SqlManagedInstance) etc that I can concat with the rules I would like to add.

Just wanted to add that I also would like to see something like this implemented as facing similar pain points as described by @lewismclean.

any update on this one. This make the resource deployent anti-idempotent

Figured out the managed instance by adding all NSG and RT manually after decompilte

Figured out the managed instance by adding all NSG and RT manually after decompilte

Yeah this is what I had to do post initial deployment. For anyone who stumbles across this, I’ve uploaded the rules for v11 networking intent here:
https://gist.github.com/riosengineer/3cbb4bf725030d0ee54f3944a35427d8


Conventions definitions fail when using your package

Hi,
I tried your package today for setting up DI in a .Net Core 2.1 Console Application using your example as a start. When I did that, the conventions definitions started to fail. The Type that was fed into the conventions function is null. See screenshot.
Is this a known thing? How can I trace/test this to see where it fails?
Thanks,
Morten

Update: The assemblies were still scanned, but it seems that more types were evaluated.
This change to the conventions definition seems to have fixed it:
conventions.DefiningCommandsAs(types => types.Namespace?.EndsWith("Commands") ?? false);

This way to configure the conventions is common. I also check for empty/null namespace.
I guess some internal compiler generated types have no namespace.


[BUG] Video playback issue

Describe the bug
Fritter works great but there is an issue I am experiencing quite a lot. When I open a/any profile page with videos on it, for example I can only play (random) 2-3 videos out of 30+. The rest have an error placeholder in place of the video player, see screenshot. I am NOT experiencing video playback issues in any other application and clearing both the cache and the data of Fritter didn't help. Closing all applications doesn't help either - in case of video playback conflict.
To Reproduce
Steps to reproduce the behavior:

Go to any profile with several videos on feed
See error

Screenshots

Device
Samsung A6+ (2018), Android 10, Fritter 2.16.3.

This should now be fixed in 3.0.0-beta1, as videos are now only loaded when tapping to play. Previously, all tweets with videos were loading the player, but keeping it paused, causing some oddities in the underlying Java library with large numbers of loaded streams. This also has the bonus of using slightly less data, as it only displays the thumbnail, rather than loading the first frame(s) of the video as the thumbnail.


Cannot install: many warnings

Hi,
I tried to install as recommended:
git clone --recursive `https://github.com/jts/nanopolish.git`
cd nanopolish
make

and I obtained many warnings. Example:
file_image.c:27:58: note: in expansion of macro ‘FAIL_PUTS_Endition)) FAIL_PUTS_ERROR(string) } while(0)
      |                                                          ^~~~~~~~~~~~~~~
file_image.c:1135:5: note: in expansion of macro ‘VERIFY’
 1135 |     VERIFY(image_size == -1, "H5Fget_file_image(5) succeeded.");
      |     ^~~~~~
../src/H5private.h:1539:14: warning: ISO C90 does not support ‘__func__’ predefined identifier [-Wpedantic]
 1539 | #define FUNC __func__
      |              ^~~~~~~~
h5test.h:90:53: note: in expansion of macro ‘FUNC’
   90 |                                 __FILE__, __LINE__, FUNC);
      |                                                     ^~~~
h5test.h:111:42: note: in expansion of macro ‘AT’
  111 | #define FAIL_PUTS_ERROR(s) {H5_FAILED(); AT(); puts(s); goto error;}
      |                                          ^~
file_image.c:27:58: note: in expansion of macro ‘FAIL_PUTS_ERROR’
   27 | #define VERIFY(condition, string) do { if (!(condition)) FAIL_PUTS_ERROR(string) } while(0)

the code is finished like this:
gcc -g -Wall -O2 -fvisibility=hidden -I.  -fpic -c -o htscodecs/htscodecs/tokenise_name3.pico htscodecs/htscodecs/tokenise_name3.c
gcc -shared -Wl,-soname,libhts.so.3 -fvisibility=hidden -o libhts.so kfunc.pico kstring.pico bcf_sr_sort.pico bgzf.pico errmod.pico faidx.pico header.pico hfile.pico hts.pico hts_expr.pico hts_os.pico md5.pico multipart.pico probaln.pico realn.pico regidx.pico region.pico sam.pico synced_bcf_reader.pico vcf_sweep.pico tbx.pico textutils.pico thread_pool.pico vcf.pico vcfutils.pico cram/cram_codecs.pico cram/cram_decode.pico cram/cram_encode.pico cram/cram_external.pico cram/cram_index.pico cram/cram_io.pico cram/cram_stats.pico cram/mFILE.pico cram/open_trace_file.pico cram/pooled_alloc.pico cram/string_alloc.pico htscodecs/htscodecs/arith_dynamic.pico htscodecs/htscodecs/fqzcomp_qual.pico htscodecs/htscodecs/htscodecs.pico htscodecs/htscodecs/pack.pico htscodecs/htscodecs/rANS_static4x16pr.pico htscodecs/htscodecs/rANS_static.pico htscodecs/htscodecs/rle.pico htscodecs/htscodecs/tokenise_name3.pico -lz -lm -lbz2 -lpthread
/usr/bin/ld: cannot find -lbz2: No such file or directory
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:316: libhts.so] Error 1
make[1]: Leaving directory '/home/marcos/aitor/methylation_tools/nanopolish/htslib'
make: *** [Makefile:139: htslib/libhts.a] Error 255

I tried also installing with conda. In these way, when I used nanopolish I obtained this:
nanopolish: error while loading shared libraries: libhdf5.so.10: cannot open shared object file: No such file or directory
Any suggestion?
Thanks.
Aitor Zabala

I run into the same error. Please instruct on how to solve this.

It is still exiting with the same error.

@zigavicic could you send the complete build log to me?

Hi I ran into the same issue, is there a solution to this ?

I switched to using Docker images of the package available here: https://quay.io/repository/biocontainers/nanopolish?tab=tags

It's quite complicated to use docker images to install tools on our server ( need singularity etc and is way out of my basic skills), but thanks for your help anyways! Hopefully there's another solution for this

If the version of HDF5 in the make file is updated ( like it was done in the last commit ) to version 1.8.23, will it work ? Such as doing
ifeq ($(MAC), 1)     HDF5_VERSION ?= 1.13.3 ( change to 1.8.23) else     HDF5_VERSION ?= 1.8.14 endif
Thanks

@valerieT1998 can you send me the complete output when you try to run make?

It's quite long but here is where the warnings started (sorry I don't have a log file of the complete output)

It continues like this until I decided to kill the run with cmd + C

Those warnings are fine and expected, can you let it continue until it naturally stops?

It works thanks. I just needed more patience !

Glad to hear it built successfully

Hello,
I have the same issues.
Cannot successfully execute the make command.
Please have a look through my files. Thank you in advance.
1.txt
2.txt
3.txt
4.txt
5.txt

Hi,
I seem to be having the same error:

/usr/bin/ld: cannot find -lbz2
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:316: libhts.so] Error 1
make[1]: Leaving directory '/users/k1347718/nanopolish/htslib'
make: *** [Makefile:139: htslib/libhts.a] Error 255

I have also tried installing through conda but get:

nanopolish: error while loading shared libraries: libhdf5.so.10: cannot open shared object file: No such file or directory

The above error happens regardless whether I install it through git or conda. I tried installing the lbz2 package separately but that didn't seem to help so any advice would be appreciated.


Custom AJAX implementation / adapters

Frequent question is how to use Angular's HttpClient for AJAX.

https://devexpress.com/issue=T693850
https://devexpress.com/issue=T638106
https://devexpress.com/issue=T661619
https://devexpress.com/issue=T661551
#309

@AlekseyMartynov is there any planned data on support proper Angular HttpClient usage? We use Angular http interceptors extensively in our project so this is a major problem in switching from Telerik (which is all native angular code) to DevExtreme. I see you have an experimental branch but wondering when this would be released/fixed? thank you!

@pwen090
The task is currently in the devextreme-angular team Backlog. No due date is set. However, the experimental implementation linked above is self-contained and pluggable. If you want to use it in your project I'll be happy to assist.

@AlekseyMartynov, and what about AngularJS? Right now we're using a tweaked version of dx.aspnet.data.js where all ajax calls replaced with $http service...

@Bykiev currently no plans to support $http

@AlekseyMartynov, thx, but you should consider to implement universal mechanism to bypass this issue, it's really annoying to support our own custom implementation, because interceptors are really useful in Angular/AngularJS apps.

@Bykiev

you should consider to implement universal mechanism to bypass this issue

If DevExtreme is referenced as a module (via require/define) then you can override the AJAX implementation as I did in my experimental branch:
https://github.com/DevExpress/DevExtreme.AspNet.Data/blob/37e4de79067d8ebfff45c4049e5108c552426370/experiments/ng-http-client-fixture.js#L21-L29
If you use dx.all.js then I think we can expose ajax.inject there too.

@AlekseyMartynov, no, we're not using require/define, exposing ajax.inject seems very promising :) Do I understand correctly, currently it is not supported yet?

@AlekseyMartynov how would we use the experimental code you linked to above in our regular Angular project?

@Bykiev

Do I understand correctly, currently it is not supported yet?

Correct. Without require/define, the ajax module is not visible. I discussed it with the team, and they agreed to expose it in a future release. We'll update this thread when it's done.
@pwen090
I'll prepare an example and share it here.

@Bykiev
We have just merged the related PR - https://github.com/DevExpress/DevExtreme/pull/8881.
DevExpress.utils.ajax will be available in the next maintenance update.

@pwen090
Please check the sample app at https://github.com/AlekseyMartynov/DevExtreme.AspNet.Data.NgHttpClientSample.
The essential code is in this commit.

@AlekseyMartynov, thx!
Do you have any sample how to use it with AngularJS?

@Bykiev
No, we don't. I can only suggest an outline:
// execute on app start
DevExpress.utils.ajax.inject({
    sendRequest: function(options) {
        var d = $.Defered();

        ...

        // on success
        d.resolve(responseBody, "success", xhr);

        // on error
        d.reject(xhr, "error");

        ...

        return d.promise();
    }
});

xhr should be XMLHttpRequest or an object with at least the following members:

status: number
statusText: string
getResponseHeader(name: string): string
responseText: string

@AlekseyMartynov, do I understand you correctly, after injecting my logic into DevExpress.utils.ajax I can use it this way?
dataSource: DevExpress.data.AspNet.createStore({
            key: "OrderID",
            loadUrl: "api/Orders",
}),

If so, it's not working for me, sendRequest method is never called. My AngularJS implementation:
DevExpress.utils.ajax.inject({
  sendRequest: function (options) {
	var d = $.Defered();

	var method = (options.method || 'get').toLowerCase();

	$http({
	  method: method,
	  url: options.url + '?' + $httpParamSerializer(options.data)
	})
	  .success(function (res) {
		d.resolve(res);
	  })
	  .error(function (err) {
		d.reject(err);
	  })

	return d.promise();
  }
});

@Bykiev Thanks for trying it out. Looks like the jQuery-based dx.aspnet.data script requires additional modifications to support custom AJAX. I'll check it and post an update.

@Bykiev Please try a custom version of dx.aspnet.data.js with<EMAIL_ADDRESS>and let me know whether ajax.inject works with these versions.

@AlekseyMartynov, this version is working fine :)

@Bykiev Cool. These changes are included in 2.4.4. You can now upgrade and use the official build.

Is it supposed to work with Axios?

I managed to make it work but it's kind clunky.
Will post something here later on.

@pwen090
Please check the sample app at https://github.com/DevExpress/DevExtreme.AspNet.Data.NgHttpClientSample.

Hi Aleksey, this sample seems to be working incorrectly, because xhr value passed to resolved promise is always null. I've created a pull request

Is there any update on when there will just be built in support for Angular instead of having to do the ng-http-client-helper.ts style workarounds?

Is there any update on when there will just be built in support for Angular instead of having to do the ng-http-client-helper.ts style workarounds?

+1 it will be cool to include it into angular-devextreme package

I wish I could have the built-in support too. Our DevExtreme framework integration team has this task on the list, but its priority is not very high because of the existing workaround. We'll make an announcement when the feature is ready. Thanks for all your help!

Hi all;
Can you implement refresh-token operation with DevExtreme.AspNet.Data in Angular? I tried some ways but couldn' t succeed it. If we get an 401 error with a request created by DevExtreme.AspNet.Data, i cannot do the operations which i' ve already implemented in http.interceptor. (If we got an 401 error, generate a refresh-token request, if everything is ok, send the failed requests again)

@AlekseyMartynov, hello!
It seems with the latest version of devextreme such adapter is not being called anymore (issue with injecting). Can you please check it?

Hello @Bykiev
DevExtreme has changed the module structure in 21.1.
Please refer to https://devexpress.com/issue=T985868
You'll need to edit the import statements like in this commit.

Thank you!

Hello @AlekseyMartynov,
in the newest devextreme version the Deferred function is marked as deprecated.
The sample app (https://github.com/DevExpress/DevExtreme.AspNet.Data.NgHttpClientSample) still uses the Deferred function and is not updated to<EMAIL_ADDRESS>Is there already a new way how to use the HttpClient from Angular?

Any news on this matter by any chance ?

In all honesty feedback on this would be really important.
As it looks the workaround doesn't work anymore in the current version and using a Promise inside the beforeSend-Callback doesn't work either.
As nowadays it is basically not possible to use any API without sending and refreshing tokens,
a solution is required urgently, using the HttpClient being the prefered one.


tracing: Enable decorated operation in outbound (egress) listener to …

…be passed to inbound (ingress) listener to override server span operation
Resolves #1849
Signed-off-by: Gary Brown<EMAIL_ADDRESS>

@objectiser quick pre-review note that we will need docs for this change. It would be good to add this header into the router headers section that I mentioned in the issue, and also link to their from the tracing docs. Thank you.

@mattklein123 Hi Matt, need some help.
https://github.com/envoyproxy/envoy/pull/1858/files#diff-ed63d9053f7d0b3777c96f2aaf8f2f2fR400 - this test is failing when code for sanitizing the header is included. So this suggests this test is representing an external request, even though the comment https://github.com/envoyproxy/envoy/pull/1858/files#diff-ed63d9053f7d0b3777c96f2aaf8f2f2fR409 suggests it is internal.
If this test is handling an external request, then I can change it to correctly check for a null header - and then introduce another test for internal request handling? If this is the case - how should I change the test to represent an internal request?
Other option is to remove the santization code for now and deal with in a separate PR? thoughts?

@objectiser I can check it out locally and see, but from a quick glance, given that use_remote_address_ is being set to false, I think you just need to set XFF to an internal address. So in the dispatched headers add something like x-forwarded-for: <IP_ADDRESS>

@mattklein123 Adding that header made the test work - however looks like the sanitization is not having the desired effect. I tried out the jaegertracing example, and the decorated op name is not being propagated from the egress listener to the ingress:

Is it ok to remove the sanitization for now and look at as a separate issue?

Is it ok to remove the sanitization for now and look at as a separate issue?

Sure that's fine. Please open an issue so that we can track/remember.


change clear historyStack to removeSubrange

I changed HistoryData clear function.
I think Cleaning historyStack requires retaining the root routing and returning to the initialization, otherwise canGoBack will need two routing jumps to return true, this is a bug.

Good catch. Thanks!


repeat.for not updating when using converters

construction like this
<div repeat.for="item of object.someItems | filter: {type:5}">${item.name}</div>

is not  updating when add/remove items dynamically in object.someItems. Aurelia should bind to array as usual, then call converter function.

duplicate of https://github.com/aurelia/binding/issues/183


fix: issue with pagination on the Asana API

Fixes #48
Checklist

[x] Assign labels to PR
[ ] Request PR update using @CodiumAI-Agent /describe
[ ] Request PR review using @CodiumAI-Agent /review (and if required update with @CodiumAI-Agent /review -i)

@CodiumAI-Agent /describe

@CodiumAI-Agent /review

PR Analysis

🎯 Main theme: This PR addresses an issue with pagination in the Asana API. The changes involve refactoring the way Asana tasks are fetched and matched with ADO tasks.
📝 PR summary: The PR modifies the sync_project function to fetch all Asana tasks at once and store them in a list. It also changes the get_asana_task_by_name function to search for a task within this list instead of making an API call. A new function get_asana_project_tasks is introduced to fetch all tasks from a project, handling pagination.
📌 Type of PR: Bug fix
🧪 Relevant tests added: No
🔒 Security concerns: No

PR Feedback

💡 General suggestions: The changes in the PR seem to address the issue with pagination in the Asana API effectively. However, it would be beneficial to add tests to ensure that the new functions work as expected and that the changes do not introduce new bugs.

 🤖 Code feedback:

relevant file: ado_asana_sync/sync/sync.py
suggestion: Consider handling exceptions at a higher level to avoid repetition and enhance readability. [medium]
relevant line: except ApiException as e:

relevant file: ado_asana_sync/sync/sync.py
suggestion: It's a good practice to avoid using magic numbers. Consider replacing '100' with a constant that explains its purpose. [medium]
relevant line: "limit": 100,

relevant file: ado_asana_sync/sync/sync.py
suggestion: Consider adding a check to ensure that 'asana_project_tasks' is not None before using it. This can prevent potential errors if the 'get_asana_project_tasks' function fails to return a list. [important]
relevant line: asana_project_tasks = get_asana_project_tasks(a, asana_project)

relevant file: ado_asana_sync/sync/sync.py
suggestion: Consider adding a check to ensure that 'asana_task' is not None before using it. This can prevent potential errors if the 'get_asana_task_by_name' function fails to return a task. [important]
relevant line: asana_task = get_asana_task_by_name(asana_project_tasks, item.asana_title)

How to use

Tag me in a comment '@CodiumAI-Agent' and add one of the following commands:
/review [-i]: Request a review of your Pull Request. For an incremental review, which only considers changes since the last review, include the '-i' option.
/describe: Modify the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest improvements to the code in the PR. Extended mode employs several calls, and provides a more thorough feedback.
/ask <QUESTION>: Pose a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.

To edit any configuration parameter from configuration.toml, add --config_path=new_value
For example: /review --pr_reviewer.extra_instructions="focus on the file: ..."
To list the possible configuration parameters, use the /config command.

@CodiumAI-Agent /review -i

Incremental PR Review

⏮ Review for commits since previous PR-Agent review: Starting from commit https://github.com/danstis/ado-asana-sync/pull/50/commits/a4c133ed66d82bb0334947ab13ef8b69c3304cbd

PR Analysis

🎯 Main theme: This PR addresses an issue with pagination on the Asana API. It also includes tests for the new function and moves the page size into the app configuration.
📝 PR summary: The PR fixes an issue with the Asana API pagination by moving the page size into the app configuration. It also adds tests for the new function 'get_asana_task_by_name' in the sync module.
📌 Type of PR: Bug fix
🧪 Relevant tests added: Yes
🔒 Security concerns: No security concerns found

PR Feedback

💡 General suggestions: The PR looks good overall. It addresses the pagination issue effectively by moving the page size to the app configuration. The addition of tests for the new function is also commendable. However, it would be beneficial to add comments to the new test cases to explain what they are testing and why.

 🤖 Code feedback:

relevant file: tests/sync/test_sync.py
suggestion: Consider adding comments to the new test cases to explain what they are testing and why. This will make it easier for other developers to understand the purpose of these tests. [medium]
relevant line: class TestGetAsanaTaskByName(unittest.TestCase):

relevant file: ado_asana_sync/sync/app.py
suggestion: Consider adding a comment to explain the purpose of the 'asana_page_size' variable. This will make it easier for other developers to understand its use in the code. [medium]
relevant line: self.asana_page_size = 100

How to use

Tag me in a comment '@CodiumAI-Agent' and add one of the following commands:
/review [-i]: Request a review of your Pull Request. For an incremental review, which only considers changes since the last review, include the '-i' option.
/describe: Modify the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest improvements to the code in the PR. Extended mode employs several calls, and provides a more thorough feedback.
/ask <QUESTION>: Pose a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.

To edit any configuration parameter from configuration.toml, add --config_path=new_value
For example: /review --pr_reviewer.extra_instructions="focus on the file: ..."
To list the possible configuration parameters, use the /config command.

@CodiumAI-Agent /review -i

@CodiumAI-Agent /review -i

How to use PR-Agent

Tag me in a comment '@CodiumAI-Agent' and add one of the following commands:
/review [-i]: Request a review of your Pull Request. For an incremental review, which only considers changes since the last review, include the '-i' option.
/describe: Modify the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest improvements to the code in the PR. Extended mode employs several calls, and provides a more thorough feedback.
/ask <QUESTION>: Pose a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.

To edit any configuration parameter from configuration.toml, add --config_path=new_value
For example: /review --pr_reviewer.extra_instructions="focus on the file: ..."
To list the possible configuration parameters, use the /config command.


Master: Allow fractional zoom stopping with Map.TouchZoom and fix CRS.scale calc with fractional zoom

Similar Pull to https://github.com/Leaflet/Leaflet/pull/3325, but different code for master.
I believe that I have found a fix to allow touch/pinch fractional zoom support (when using plain Leaflet object and or GeoJson objects). But I could not comment as to if this will break any map with tiles. I believe work has gone into master to support better fractional zoom levels, but in the latest master the problem described below still exists.
The underlying issue being solved is the "jump" in the map when stopping a touch/pinch zoom whilst the map snaps to a whole number zoom level. Our users on iPad's and Android were finding this very obvious and it was very hard for them to zoom in/out to the level of detail that they wanted.
Changes to Map.TouchZoom support stopping the zoom level exactly where the user has stopped the pinch.
The secondary issue uncovered is that the built in CRS.scale calculation also does not support fractional zoom. The side-affect of this is that when touch/pinch zooming, the percent with which the map is grown or shrunk does not reflect the final size that the map will be drawn at. Thus this means that there is still a "jump" in the map when stopping a touch/pinch zoom, even with the first fix in place.
The commit to CRS.js supports Scale calculation for fractional zoom levels.
Please refer to these related issues:
https://github.com/kartena/Proj4Leaflet/issues/57
https://github.com/kartena/Proj4Leaflet/pull/73
https://github.com/Leaflet/Leaflet/issues/426
https://github.com/Leaflet/Leaflet/pull/1309
http://stackoverflow.com/questions/24151177/fractional-zoom-levels
https://github.com/Leaflet/Leaflet/pull/2382
https://github.com/Leaflet/Leaflet/issues/2558

Please don't squash two unrelated changes into one pull request — they should be discussed separately.

Ok, my apologies. My thinking was that one goes with the other as a single fix for improved touch-zoom support? Let me know what you'd like me to do to help with it?

@adriankb @mourner we are looking at using this in our Leaflet 0.8/1.0 map, too. Are the changes to CRS.js necessary? We are only using tiles and have no problems.

I haven't tested with tiles, but the CRS change affects the zoom calculation so both fixes should go together or else the map will still "jump" when you finish the touch event.

I'll make the touch zoom not snapping to integer zooms change separately — it should be an option, and also may need clean up after #3278. That's why I'd prefer to merge CRS scale change separately.

Superseded by #3523


Suricata integration with PALANTIR

DESCRIPTION
The objective is to add Suricata as a Source in PALANTIR, the proposed use cases for Suricata are:

Netflow labeling (Use case 1)
Description
The objective is to use the output given by suricata to label Netflowv9 traffic so can be used to constantly train the algorithms for Threat classification.
Questions

Need to create a model for the chosen Suricata output (probably Eve)?
How to correlate Netflow and Suricata received information, are they received near in time, will the timestamps match?

Routing based on Suricata (Use case 2)
Description
The objective is to use any present field in Suricata output to decide to what component of the PALANTIR system is going to be sent by writting it into the corresponding topic.
Questions

What field do we need to select for the routing?
To what component is going what specific message from Suricata?

NOTES
Antonio Lopez Martinez has provided some examples of data format for Suricata (Eve.json and fast.log):
Eve.json:
{
 {
  "timestamp": "2022-05-18T09:16:24.132366+0000",
  "flow_id":<PHONE_NUMBER>312447,
  "in_iface": "eth0",
  "event_type": "alert",
  "src_ip": "<IP_ADDRESS>",
  "src_port": 59854,
  "dest_ip": "<IP_ADDRESS>",
  "dest_port": 80,
  "proto": "TCP",
  "tx_id": 1,
  "alert": {
    "action": "allowed",
    "gid": 1,
    "signature_id": 2013504,
    "rev": 6,
    "signature": "ET POLICY GNU/Linux APT User-Agent Outbound likely related to package management",
    "category": "Not Suspicious Traffic",
    "severity": 3,
    "metadata": {
      "created_at": [
        "2011_08_31"
      ],
      "former_category": [
        "POLICY"
      ],
      "updated_at": [
        "2020_04_22"
      ]
    }
  },
  "http": {
    "hostname": "archive.ubuntu.com",
    "url": "/ubuntu/pool/universe/j/jq/libjq1_1.6-1ubuntu<IP_ADDRESS>_amd64.deb",
    "http_user_agent": "Debian APT-HTTP/1.3 (2.0.6)",
    "http_method": "GET",
    "protocol": "HTTP/1.1",
    "length": 0
  },
  "app_proto": "http",
  "flow": {
    "pkts_toserver": 50,
    "pkts_toclient": 12,
    "bytes_toserver": 3781,
    "bytes_toclient": 12943,
    "start": "2022-05-18T09:16:23.466239+0000"
  }
}
{
  "timestamp": "2022-05-18T09:16:24.132366+0000",
  "flow_id":<PHONE_NUMBER>312447,
  "in_iface": "eth0",
  "event_type": "alert",
  "src_ip": "<IP_ADDRESS>",
  "src_port": 59854,
  "dest_ip": "<IP_ADDRESS>",
  "dest_port": 80,
  "proto": "TCP",
  "tx_id": 2,
  "alert": {
    "action": "allowed",
    "gid": 1,
    "signature_id": 2013504,
    "rev": 6,
    "signature": "ET POLICY GNU/Linux APT User-Agent Outbound likely related to package management",
    "category": "Not Suspicious Traffic",
    "severity": 3,
    "metadata": {
      "created_at": [
        "2011_08_31"
      ],
      "former_category": [
        "POLICY"
      ],
      "updated_at": [
        "2020_04_22"
      ]
    }
  },
  "http": {
    "hostname": "archive.ubuntu.com",
    "url": "/ubuntu/pool/universe/j/jq/jq_1.6-1ubuntu<IP_ADDRESS>_amd64.deb",
    "http_user_agent": "Debian APT-HTTP/1.3 (2.0.6)",
    "http_method": "GET",
    "protocol": "HTTP/1.1",
    "length": 0
  },
  "app_proto": "http",
  "flow": {
    "pkts_toserver": 50,
    "pkts_toclient": 12,
    "bytes_toserver": 3781,
    "bytes_toclient": 12943,
    "start": "2022-05-18T09:16:23.466239+0000"
  }
}
{
  "timestamp": "2022-05-18T09:18:22.061737+0000",
  "flow_id":<PHONE_NUMBER>89208,
  "in_iface": "eth0",
  "event_type": "alert",
  "src_ip": "<IP_ADDRESS>",
  "src_port": 45686,
  "dest_ip": "<IP_ADDRESS>",
  "dest_port": 80,
  "proto": "TCP",
  "tx_id": 0,
  "alert": {
    "action": "allowed",
    "gid": 1,
    "signature_id": 2013028,
    "rev": 7,
    "signature": "ET POLICY curl User-Agent Outbound",
    "category": "Attempted Information Leak",
    "severity": 2,
    "metadata": {
      "created_at": [
        "2011_06_14"
      ],
      "updated_at": [
        "2022_05_03"
      ]
    }
  },
  "http": {
    "hostname": "testmynids.org",
    "url": "/uid/index.html",
    "http_user_agent": "curl/7.68.0",
    "http_content_type": "text/html",
    "http_method": "GET",
    "protocol": "HTTP/1.1",
    "status": 200,
    "length": 39
  },
  "app_proto": "http",
  "flow": {
    "pkts_toserver": 4,
    "pkts_toclient": 3,
    "bytes_toserver": 364,
    "bytes_toclient": 743,
    "start": "2022-05-18T09:18:21.986936+0000"
  }
}
{
  "timestamp": "2022-05-18T09:18:22.098166+0000",
  "flow_id":<PHONE_NUMBER>89208,
  "in_iface": "eth0",
  "event_type": "alert",
  "src_ip": "<IP_ADDRESS>",
  "src_port": 80,
  "dest_ip": "<IP_ADDRESS>",
  "dest_port": 45686,
  "proto": "TCP",
  "alert": {
    "action": "allowed",
    "gid": 1,
    "signature_id": 2100498,
    "rev": 7,
    "signature": "GPL ATTACK_RESPONSE id check returned root",
    "category": "Potentially Bad Traffic",
    "severity": 2,
    "metadata": {
      "created_at": [
        "2010_09_23"
      ],
      "updated_at": [
        "2010_09_23"
      ]
    }
  },
  "http": {
    "hostname": "testmynids.org",
    "url": "/uid/index.html",
    "http_user_agent": "curl/7.68.0",
    "http_content_type": "text/html",
    "http_method": "GET",
    "protocol": "HTTP/1.1",
    "status": 200,
    "length": 39
  },
  "files": [
    {
      "filename": "/uid/index.html",
      "sid": [],
      "gaps": false,
      "state": "CLOSED",
      "stored": false,
      "size": 39,
      "tx_id": 0
    }
  ],
  "app_proto": "http",
  "flow": {
    "pkts_toserver": 5,
    "pkts_toclient": 4,
    "bytes_toserver": 430,
    "bytes_toclient": 809,
    "start": "2022-05-18T09:18:21.986936+0000"
  }
}

fast.log:
05/18/2022-09:16:24.132366  [**] [1:2013504:6] ET POLICY GNU/Linux APT User-Agent Outbound likely related to package management [**] [Classification: Not Suspicious Traffic] [Priority: 3] {TCP} <IP_ADDRESS>:59854 -> <IP_ADDRESS>:80
05/18/2022-09:16:24.132366  [**] [1:2013504:6] ET POLICY GNU/Linux APT User-Agent Outbound likely related to package management [**] [Classification: Not Suspicious Traffic] [Priority: 3] {TCP} <IP_ADDRESS>:59854 -> <IP_ADDRESS>:80
05/18/2022-09:18:22.061737  [**] [1:2013028:7] ET POLICY curl User-Agent Outbound [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} <IP_ADDRESS>:45686 -> <IP_ADDRESS>:80
05/18/2022-09:18:22.098166  [**] [1:2100498:7] GPL ATTACK_RESPONSE id check returned root [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} <IP_ADDRESS>:80 -> <IP_ADDRESS>:45686

DOCUMENTATION

Full documentation of the output of Suricata
Focusing on Eve format the documentation provides the configurations needed to get Eve format as an output
As our work will mainly focus in the modelling side of the output, the documentation also provides information about the fields in the Eve JSON Format

Won't do.


Starting background job in a UNC path with & returns error

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
Since Powershell 7.3 i can't start a background job via the & shorthand with an UNC path as working directory.
It's working fine when using Start-Job { }.
Expected behavior
PS Microsoft.PowerShell.Core\FileSystem::\\localhost\Share> $null &

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
1      Job1            BackgroundJob   Running       True            localhost            Microsoft.PowerShell.Man…

Actual behavior
PS Microsoft.PowerShell.Core\FileSystem::\\localhost\Share> $null &
Start-Job: Cannot find the WorkingDirectory path Microsoft.PowerShell.Core\FileSystem::\\localhost\Share.

Error details
Exception             :
    Type       : System.IO.DirectoryNotFoundException
    TargetSite :
        Name          : ThrowTerminatingError
        DeclaringType : System.Management.Automation.MshCommandRuntime, System.Management.Automation, Version=<IP_ADDRESS>0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35
        MemberType    : Method
        Module        : System.Management.Automation.dll
    Message    : Cannot find the WorkingDirectory path Microsoft.PowerShell.Core\FileSystem::\\localhost\Share.
    Source     : System.Management.Automation
    HResult    : -2147024893
    StackTrace :
   at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)
CategoryInfo          : InvalidOperation: (:) [Start-Job], DirectoryNotFoundException
FullyQualifiedErrorId : DirectoryNotFoundException,Microsoft.PowerShell.Commands.StartJobCommand
InvocationInfo        :
    MyCommand        : Start-Job
    ScriptLineNumber : 1
    OffsetInLine     : 1
    HistoryId        : -1
    Line             : $null &
    PositionMessage  : At line:1 char:1
                       + $null &
                       + ~~~~~
    InvocationName   : Start-Job
    CommandOrigin    : Internal
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1

Environment data
PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.3.0
PSEdition                      Core
GitCommitId                    7.3.0
OS                             Microsoft Windows 10.0.19041
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Visuals

The problem was also present in 7.3.0-rc.1 - don't know when it started.
It only affects the postpositional & syntax for starting background jobs - Start-Job { "Hi from $PWD" } works fine, for instance.

Just to help with discoverability: can you please fix the typo in the title? backround -> background

This is a regression introduced by #16180, but the real bug is in Start-Job -WorkingDirectory.


Fix wrong color for disabled input fields on iOS

Added -webkit-text-fill-color to createDisabledTextStyles
Fixes #56

@rwachtler  I will review it before the weekend. thanks and welcome to React95 🔥

:tada: This PR is included in version 3.0.0-beta.1 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[1.25.0] re-enable skipped tests

Proposed changes
Re-enabling tests tagged with @pytest.mark.skip  # need remote registry that in fact do not use the remote registry.
Addresses issue #1
Fixes
If it fixes a bug or resolves a feature request, be sure to link to that issue.
Types of changes
What types of changes does your code introduce to agents-aea?
Put an x in the boxes that apply

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

Checklist
Put an x in the boxes that apply.

[ ] I have read the CONTRIBUTING doc
[ ] I am making a pull request against the develop branch (left side). Also you should start your branch off our develop.
[ ] Lint and unit tests pass locally with my changes and CI passes too
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have checked that code coverage does not decrease.
[ ] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules

Further comments
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

failures:

ubuntu 3.7 - addressed in #453>       assert (
            "Warning: cannot parse 'go' version from command: ['go', 'version']." in stdout
        )
E       assert "Warning: cannot parse 'go' version from command: ['go', 'version']." in ''
...
Exit Code	Package
1       	valory/connections/p2p_libp2p

macos 3.10 - NOTE: these tests (consistently?) fails on macos 3.10, not elsewhereFAILED tests/test_cli/test_transfer.py::TestCliTransferFetchAINetworkWithPassword::test_integration
FAILED tests/test_cli/test_transfer.py::TestCliTransferFetchAINetwork::test_integration

there are lots of timeouts, not sure why yet, I expect these two test may be responsible

TestMultiAgentManagerAsyncModeWithPassword
TestMultiAgentManagerMultiprocessModeWithPassword

failures

macos 3.8 - newTestLoadFailedCauseImportedPackageNotFound.test_load_component_failed_cause_package_not_found
...
 >           proc.expect_all(
                [
                    " found the following packages that are imported by some module but not declared as dependencies of package (skill, fetchai/echo",
                    "protocol fetchai/not_exist_protocol used in:",
                    "handlers.py",
                ]
            )
...
 >           raise exc
E           pexpect.exceptions.TIMEOUT: <tests.common.pexpect_popen.PexpectWrapper object at 0x11be9f790>
E           searcher: searcher_string:
E               0: ' found the following packages that are imported by some module but not declared as dependencies of package (skill, fetchai/echo'
E               1: 'protocol fetchai/not_exist_protocol used in:'
E               2: 'handlers.py'
E           <tests.common.pexpect_popen.PexpectWrapper object at 0x11be9f790>
E           searcher: searcher_string:
E               0: ' found the following packages that are imported by some module but not declared as dependencies of package (skill, fetchai/echo'
E               1: 'protocol fetchai/not_exist_protocol used in:'
E               2: 'handlers.py'
...
FAILED tests/test_components/test_loader.py::TestLoadFailedCauseImportedPackageNotFound::test_load_component_failed_cause_package_not_found

macos 3.9tests/test_cli/test_run.py::test_run_with_profiling
...
>           process.expect("Start processing messages", timeout=10)
 >           raise exc
E           pexpect.exceptions.TIMEOUT: <tests.common.pexpect_popen.PexpectWrapper object at 0x114818370>
E           searcher: searcher_re:
E               0: re.compile('Start processing messages')
E           <tests.common.pexpect_popen.PexpectWrapper object at 0x114818370>
E           searcher: searcher_re:
E               0: re.compile('Start processing messages')
...
FAILED tests/test_cli/test_run.py::test_run_with_profiling - pexpect.exceptio...
FAILED tests/test_cli/test_run.py::test_run[fake-password] - pexpect.exceptio...

macos 3.10 - #456FAILED tests/test_cli/test_transfer.py::TestCliTransferFetchAINetworkWithPassword::test_integration
FAILED tests/test_cli/test_transfer.py::TestCliTransferFetchAINetwork::test_integration

windows 3.7INTERNALERROR> MemoryError

remaining failures after rerun

macos 3.10 - #456FAILED tests/test_cli/test_transfer.py::TestCliTransferFetchAINetworkWithPassword::test_integration
FAILED tests/test_cli/test_transfer.py::TestCliTransferFetchAINetwork::test_integration

windows 3.72022-11-24T18:41:34.8860384Z                 assert result.exit_code == 0, result.output
2022-11-24T18:41:34.8861111Z                 assert "Hash was not provided for" in result.stdout
2022-11-24T18:41:34.8861884Z                 assert "Will try with http repository" in result.stdout
2022-11-24T18:41:34.8862392Z >               assert "Successfully added skill" in result.stdout
2022-11-24T18:41:34.8863883Z E               AssertionError: assert 'Successfully added skill' in 'Adding item from hash: bafybeia3ovoxmnipktwnyztie55itsuempnfeircw72jn62uojzry5pwsu\nHash was not provided for: __DUMMY__AUTHOR__/__DUMMY_PACKAGE__:latest:bafybeia3ovoxmnipktwnyztie55itsuempnfeircw72jn62uojzry5pwsu\nWill try with http repository.\n'
2022-11-24T18:41:34.8865774Z E                +  where 'Adding item from hash: bafybeia3ovoxmnipktwnyztie55itsuempnfeircw72jn62uojzry5pwsu\nHash was not provided for: __DUMMY__AUTHOR__/__DUMMY_PACKAGE__:latest:bafybeia3ovoxmnipktwnyztie55itsuempnfeircw72jn62uojzry5pwsu\nWill try with http repository.\n' = <Result okay>.stdout
...
FAILED tests/test_cli/test_registry/test_add.py::TestAddFromHashIPFSFail::test_hash_not_provided


macos port 5000 already in use by Airplay Receiver

Describe the bug
ERROR: failed to create cluster: command "docker run --name kind-worker --hostname kind-worker --label io.x-k8s.kind.role=worker --privileged --security-opt seccomp=unconfined --security-opt apparmor=unconfined --tmpfs /tmp --tmpfs /run --volume /var --volume /lib/modules:/lib/modules:ro -e KIND_EXPERIMENTAL_CONTAINERD_SNAPSHOTTER --detach --tty --label io.x-k8s.kind.cluster=kind --net kind --restart=on-failure:1 --init=false --publish=<IP_ADDRESS>:5000:5000/TCP --publish=<IP_ADDRESS>:10000:10000/TCP --publish=<IP_ADDRESS>:10001:10001/TCP kindest/node:v1.24.0@sha256:0866296e693efe1fed79d5e6c7af8df71fc73ae45e3679af05342239cdc5bc8e" failed with error: exit status 125
Command Output: 28ef95724a4daf43b462efdb8076fff0b7b28c3a0d6f0a22064a031634cc6ff3
docker: Error response from daemon: Ports are not available: exposing port TCP <IP_ADDRESS>:5000 -> <IP_ADDRESS>:0: listen tcp <IP_ADDRESS>:5000: bind: address already in use.

I don't know if its really a bug, but when installing a thundernetes cluster with kind on macos I encountered that the port 5000 is already used by airplay.
For now I disabled airplay receiver like this:
https://developer.apple.com/forums/thread/682332
To Reproduce
Steps to reproduce the behavior:
kind create cluster --config /path/to/kind-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
  extraPortMappings:
  - containerPort: 5000
    hostPort: 5000
    listenAddress: "<IP_ADDRESS>"
    protocol: tcp
  - containerPort: 10000
    hostPort: 10000
    listenAddress: "<IP_ADDRESS>"
    protocol: tcp
  - containerPort: 10001
    hostPort: 10001
    listenAddress: "<IP_ADDRESS>"
    protocol: tcp

Desktop:

OS: macOS Monterey
Version: 12.5

Thanks for reporting this! We should definitely document how to change the port, apologies for the inconvenience! Keeping this issue open so we can work on this.

I can confirm 5000/TCP is in use on my Monterey as well.
Maybe we should pick a different port by default?
Something that's not on this list would have a good chance at being available -
https://www.liquisearch.com/list_of_tcp_and_udp_port_numbers/registered_ports

this was partially fixed in #419. It would be great if we could customize the port via Makefile though, so leaving this open


Arbitrary precision decimals

High doubt to ever implement this :)
https://github.com/MikeMcl/decimal.js/

Closed because it would diverge too far from vanilla. (difficulty for little gain; floats are good enough for most purposes)


SEPG Automated Release - v2.3.1

SEPG Details
Release Build Link: http://sou-jenkins2.swinfra.net:8080/job/Auto-Release/50/
Build Token: github.com/CAFapi/opensuse-opensearch1-image/main/bc35bdb726120af6662af29a924ff6e4710d5131
Versioning Behaviour: Roll on to next minor
Artifacts For Release
Docker

cafapi/opensuse-opensearch1:2.3.1 (Static Tag)
cafapi/opensuse-opensearch1:2.3 (Dynamic Tag)
cafapi/opensuse-opensearch1:2 (Dynamic Tag)
cafapi/opensuse-opensearch1:latest (Dynamic Tag)

This pull request has still not been approved so the build process will now tune down the regularity with which it is being monitored.
Please approve this pull request to continue the automated release process.
The release will automatically continue when it is approved.

RETRY

RETRY

Release Build Continuation: http://sou-jenkins2.swinfra.net:8080/job/Auto-Release/55/

Build Stage
Action
Status

Release Checks
in progress
:clock130:

Gather Release Data

:white_small_square:

QA Documentation Site Deployment

:white_small_square:

QA Deployment Branch Promotion

:white_small_square:

Docker Image Promotion

:white_small_square:

Maven Artifact Promotion (Closed Source)

:white_small_square:

NuGet Artifact Promotion

:white_small_square:

Artifactory Release Artifact Tagging

:white_small_square:

Generic Artifact Promotion

:white_small_square:

Maven Artifact Promotion (Open Source)

:white_small_square:

Maven Staging Repository Removal (Open Source)

:white_small_square:

Git Tagging

:white_small_square:

Git Release

:white_small_square:

Git Release Asset Deployment

:white_small_square:

Pull Request Merge

:white_small_square:

Release Branch Deletion

:white_small_square:

view the build log here


Create a Semaphore explorer for on-chain groups

Description:
The explorer will be a read-only client-side web application that uses the Semaphore subgraph, in particular the SemaphoreSubgraph class of the @semaphore-protocol/data library, to fetch on-chain data from several networks (i.e. Goerli, Mumbai, Optimism Goerli, Arbitrum One) and display it in an intuitive and user-friendly way. The design and code can be refined later. The idea is to have a working demo.
Some of the key features that the explorer should include are:

A search bar that allows users to search for specific on-chain groups by ID
A dashboard that displays key statistics about Semaphore groups, such as the total number of groups, the total number of group members, the total number of verified proofs
A detailed view of each group that displays information such as the group's members, the group's verified proofs

Suggestions:
The application might be built using Vite and React with ChakraUI. Github might be used as a hosting service. Possible projects to take inspiration from are:

https://etherscan.io/
https://explorer.unirep.io/
https://chainlook.xyz/

Something that is still on the radar?

Something that is still on the radar?

Of course 👍🏽

@ai-slave feel free to put it on your name! Let us know through the channels if you have any questions

@aguzmant103 still open ser? :)

@aguzmant103 still open ser? :)

Still open 👍🏽

@calebanderson526


Question: SAM CLI for CI/CD other than Cloud Formation

Is it possible to use SAM CLI (or any other tool known to mankind) to deploy a lambda function with defined triggers, memory and timeout limits set, etc. the way SAM CLI is able to do it using Cloud Formation?

@sthuber90 Github issues is meant for tasks, enhancements/features, and bugs for the project. Support and other questions can be asked in our slack channel (see README.rst), AWS Forums, or Stack Overflow.
Closing as this is a general question.

Sorry about that. I opend a question on Stackoverflow. Unfortunatly I wasn't able to tag it with aws-sam-cli as this requires a reputation of >1500
https://stackoverflow.com/questions/50811064/sam-cli-for-ci-cd-other-than-cloud-formation


Getting error on linux when try to enable APC

Error message:
Apc Extension failed: Error: EACCES: permission denied, rename '/usr/share/code/resources/app/out/bootstrap-amd.js' -> '/usr/share/code/resources/app/out/bootstrap-amd.js.apc.extension.backup'

https://github.com/drcika/apc-extension?tab=readme-ov-file#mac-and-linux-users

Thankx @drcika


Hi, which program shall I use to run this?

I used different version of eclipse but seems this project is not compatible of these.
Can you give me a guidance?
Thanks, sincerely

You have to be more specific on what your problem is!

Exception in thread "main" skadistats.clarity.ClarityException: oops. no provider found for required usage point interface skadistats.clarity.processor.reader.OnMessage
at skadistats.clarity.processor.runner.ExecutionModel.requireProvider(ExecutionModel.java:123)
at skadistats.clarity.processor.runner.ExecutionModel.requireEventListener(ExecutionModel.java:135)
at skadistats.clarity.processor.runner.ExecutionModel.requireProcessorClass(ExecutionModel.java:79)
at skadistats.clarity.processor.runner.ExecutionModel.addProcessor(ExecutionModel.java:49)
at skadistats.clarity.processor.runner.AbstractRunner.createExecutionModel(AbstractRunner.java:29)
at skadistats.clarity.processor.runner.AbstractRunner.initWithProcessors(AbstractRunner.java:35)
at skadistats.clarity.processor.runner.AbstractFileRunner.initAndRunWith(AbstractFileRunner.java:37)
at skadistats.clarity.processor.runner.SimpleRunner.runWith(SimpleRunner.java:36)
at skadistats.clarity.examples.allchat.AllChatProcessor.main(AllChatProcessor.java:23)

I am trying to run the easiest one which is AllChatProcessor, looks very similar to the go version "manta". However I got this errors, is there something I am missing? I just simply click the AllChatProcessor and run as Java application ( replaced the file name with my own replay)


Problem with drawing betweenBarData

fl_chart version : 0.6.2
When using the Betweenbardata for drawing between two bars, if we use the isCurve attribute for that bar, The values between the two bar are not correctly drawn.
And this is the problem for the bar which we put in the toIndex attribute.

Hi @krispypen,
May I ask you to check it, if you have a little free time?

Could you please provide me a reproducible code?
I've checked it and it's working correctly.

It's gonna be closed tomorrow


Ranking information display for synchronized contests

The original ranking list can be displayed after the synchronized contest.

Scheduled for hotfix, shall be released a few days later.

Well, infact this is ConePi's work to store rank from cache to database for future usage.

@pikanglong Hotfix or not?

Maybe I will fix this a year later.


push to pypi

complete issue #22 first!

issue #22 is complete

pypi steps:

README
LICENSE
setup.py modifications
setup.cfg


(GAP) Namespace - Upload (multipart) to Azure blob not working

Environment info

Version: 2.0
Deployment: N/A
Customer: N/A

Actual behavior

Azure blob multipart upload is not working in our namespace implementation.

Expected behavior

Should work

Steps to reproduce

Create a namespace bucket on Azure blob resource
Use S3 multipart upload on the namespace bucket

Screenshots or Logs or other output that would be helpful

@dannyzaken Didn't you fix this one already?


Improved FFTW config

The benchmark currently uses FFTW_ESTIMATE, which uses pre-packaged heuristics to choose its plans.  This is fine for single FFTs, but for multiple uses, other modes are faster.
FFTW_MEASURE enables runtime profiling to find a fast plan, as recommended in this tutorial page.  This has some set-up cost, but I think it makes sense for a benchmark.
Here are a couple of graphs, illustrating the performance difference between the modes:

(Graphs taken from my WIP, which is how I figured this out.)
As the graphs show, FFTW_PATIENT gets even faster results, but plan-searching is very slow for large sizes (e.g. 2^18), which is why I've suggested FFTW_MEASURE in this PR.  The ideal solution probably uses FFTW_EXHAUSTIVE along with fftw_set_timelimit() to limit the search time to some fixed number of seconds.
The plan-profiling uses the input/output arrays, which is why I have moved the benchmark object construction to before the random-data generation.

Hi,
In the current benchmark all results for the tested libraries are obtained under equal conditions.
KFR is built using AVX2 on Clang 7.0.
IPP and FFTW are prebuilt by their developers with support for architectures up to AVX2.
IPP and FFTW in ESTIMATE mode detect cpu instruction set,
cache size and use only this information to choose best algorithm or combination of algorithms available in prebuilt binary.
By allowing FFTW to try its algorithms right on the cpu before actual run we would put the libraries in unequal conditions.
As soon as similar feature will be supported in IPP and KFR this mode will be added to the benchmark code.
KFR is designed primarily for Audio and DSP.
It's not usual to do such long runtime tests before starting the application or plugin on an end-user machine.
(for 16777216 size it's ~18 minutes in PATIENT mode, 14 seconds for MEASURE which is also sufficient time).
Also, you can provide the following details to make comparison more specific:

Library versions (and commit hash for KFR) used in your benchmark
Architecture and instruction set used for building.
CPU used for testing.

If you did not use the current benchmark code:

How many runs executed (or how much time spent) for each size.
How the final result are calculated? Minimum/average/median time?
How the normalized performance is calculated?
Does it subtract time measurement overhead?

The library versions and target architecture used for the current benchmark are shown on the screenshots.
Other details are in the code. The CPU used for the published results is Core i7 8770K. Other AVX and AVX2-capable CPU show very similar results.

Thanks for responding!  This might be a philosophical difference - I personally think that a good benchmark lets each library show their best.
I expect that people who care about benchmark results are interested in the possible performance they could get - after that, they can balance it against other factors (such as implementation complexity, executable size, or startup cost) and make an informed choice.
So, I'm not sure I agree about the equal conditions.  As an example: my implementation doesn't support AVX.  If I said my "equal conditions" were to only use features that all the libraries support, and therefore compiled KFR without AVX/AVX2 to get this graph:

... it would be much more flattering (for me!), but I expect you'd dispute the validity of those results.
(Also FWIW, the FFTW analysis is a truly one-time cost - you can save that profile as a string and store it in a file, so it only needs to be run once on each machine, not every time it's loaded.  And yeah, FFTW_PATIENT can be super-long, which is why I suggested FFTW_MEASURE, although fftw_set_timelimit() would be even better.)

I didn't want to get too specific about methodology, because I'm not holding up these graphs as definitive!  I was using the results to show that there's a notable difference between FFTW_ESTIMATE and FFTW_MEASURE.  However, since you asked:
Versions:

Apple LLVM version 9.1.0 (clang-9<IP_ADDRESS>)
Target: x86_64-apple-darwin18.2.0
1.6 GHz Intel Core i5
4 GB 1600 MHz DDR3
KFR 3.0.3 (cb4f45604da3a2eabf6c0c7f5b73151dc24370fc), which was master on GitHub at the time.
compiled with -O3 -msse2 -mavx -mavx2 (g++ interface)

Benchmark calculations - hacky and approximate as they are:

a minimum target of 2 seconds (clock time) for each size, for each candidate
performed as 10 sets of 0.2s, the fastest 50% of those 0.2s blocks are taken as the result
normalised performance is (total iterations / total seconds) * 0.00000001 * N*log(N).
it doesn't compensate for time-measurement overhead

I didn't keep the total number of iterations, but a minimum can be worked out.  So, for N=65536, KFR scored around 14, which means it's about 235000 iterations per second, which means it did at least 470000 repeats.  It will have done fewer repeats for larger N, down to a few hundred repeats each for 16777216.
(It's also worth noting that I ended up compiling FFTW myself, instead of downloading a pre-build library, so I might not have compiled that optimally either.  As I said, I'm not claiming these results as definitive.)

I'm not looking to campaign on this issue  - it's not my fight, I'm not an FFTW dev, and in reality I'm not looking to compete with either KFR or FFTW.  (My implementation is a single 600-line header-file, so my real competition here is KissFFT! 😉)
I only thought I'd let you know of this issue in case you weren't aware.  I personally had misunderstood what your graphs implied, and only realised when I ran my own benchmarks (and noticed I wasn't using FFTW_MEASURE either, which took me a while!).
Maybe there's another solution than this PR, like adding a brief note to explain which FFTW configuration you compared against, given that they're so different.  Feel free to resolve this however you like. 🙂

Here are the results of switching to FFTW_MEASURE.

It's obtained on the same machine (8770K up to 4.6GHz/32GB DDR4)
All benchmark code used for FFT comparison is published and reproducible.
You haven't specified cpu model, cache size and versions for IPP and FFTW.

Cool!  Yeah, that's quite a difference, with FFTW running almost twice as fast for some sizes. 🙂
Perhaps I shouldn't have included my hacked-together graphs at all.  I thought they'd be a casual illustration, but we ended up fixated on how I got those exact results, instead of the fact that FFTW_MEAURE has better performance (which was the point of this PR, and your graph also supports).
I also realised that the precompiled FFTWs generally don't include AVX2 (link).  However, since I was building FFTW myself, I used --enable-avx2, which might have made a difference as well.
Thanks for taking the time to look at this.


Revisit Azure Dashboard Terraform Implementation

DevEx/OpEx
There is a bug around the Terraform for Azure Dashboards.  There is a Terraform Github issue for it that can be found here.  Once the linked issue is resolved we should implement our service monitoring dashboards in the various repos so that we have them in the infrastructure as code.
Tasks

[ ] Implement the terraform for Azure dashboards

Blocked until linked issue is resolved


⚠ PassThePopcorn has degraded performance

In 3115d86, PassThePopcorn ($PTP) experienced degraded performance:

HTTP code: 502
Response time: 4912 ms

Resolved: PassThePopcorn performance has improved in 2983711 after 14 hours, 48 minutes.


Copy db from storage

Hello,
I want to use my existing prepared database, I download from my server but I can not copy into assets folder so I can not use copyFromAssets function.Is there a way to use existing database in external folder or data folder?
Thanks.

@enginarmutcu On which platform have you download from your server (iOS, Android, Windows, MacOs) ?. Is it a sqlite db? why you cannot copy it to the asset folder?

Hi,
I use Ionic 5 - capacitor and trying with android.I use sqlite db. While the app is running, I download sqllite db from web and the downloaded sqllite db stored in application data folder as you can see.

As far as I understand, copyFromAssets function is not applicable to this folder.
Thanks for your help.

@enginarmutcu Ok, so just create a databases folder under io.ionic.starter, not under files folder and move the transactiondb.db  and rename the database as transactionSQLite.db then you can access it in your app by giving transaction as  database name
db = await sqlite.createConnection(transaction)

like this it should work.

@enginarmutcu Have you succeed to rename the file. see my answer to #79

Hello,
I can create databases folder manually by android studio file explorer.But I need to do this programmatically.Capacitor filesystem plugins could not be create this folder or I can not do it.

@enginarmutcu fix in 2.9.10, use addSQLiteSuffix and deleteOldDatabasesmethods see https://github.com/capacitor-community/sqlite/blob/2.9.x/docs/MigratingCordovaDatabases.md for explanations


[Feature][E2E] Add hive3 e2e test case

Purpose of this pull request

reslove #7474 -
link #7711

Does this PR introduce any user-facing change?

How was this patch tested?

Check list

[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/seatunnel/tree/dev/docs
[ ] If you are contributing the connector code, please check that the following files are updated:

Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist
Add ci label in label-scope-conf
Add e2e testcase in seatunnel-e2e
Update connector plugin_config

[ ] Update the release-note.

cc @loustler


Make ViewState Transitions API official

For #2046

Background

Move ViewState transition API exports from experimental to official
Add docs and update whats-new.

Change List

ViewportTranstions: Add docs, make exports official

Shall we rename ViewportFlyToInterpolator to FlyToInterpolator? We're moving away from the term viewport in favor of viewState, and it will align with react-map-gl.


Figure out how I can satisfy a descriptor without actually generating signatures

This library's "satisfaction" API can help you build a witness/scriptsig given something containing signatures and other assorted satisfaction material (hash pre-images etc). What if I want to find how how I am going to satisfy a descriptor before producing signatures. This amounts to finding out which subset of my keys (perhaps represented by fingerprint & origin) do I need to engage to create the optimal witness. Here are the reasons I want to do this:

Figure out the witness weight before coin selection (right now in bdk we use max_satisfaction_weight).
Populate PSBT fields before signing based on the satisfaction path you plan to use (rather than populating every possible field as was the approach in #335).
Following on from (2), so I can know which keys I actually need to sign under rather than signing with all possible keys.

Here's two possible approaches:
Reuse the existing satisfaction API (hacky)
Create a custom Satisfier which when asked for a signature under key outputs a random bogus signature. Internally this custom Satisfier would index each public key requested by the random signature. When get_satisfaction finally outputs the witness (or scriptsig) you look for which bogus signatures made it into the final witness and lookup the associated public keys to find the set of keys used. A similar thing can be done for hash pre-images.
Create a new "satisfaction plan" module
The logic of which would essentially mirror the existing satisfier module except instead of using concrete signatures to create a concrete witness it would create something like an abstract witness ("witness template" maybe) from a list of asset keys which the application could access if need be (perhaps represented by fingerprint & origin). From this template you could determine which subset of keys require signatures (and under which tapleaf etc). The witness template could also give you a good estimate of the witness size.
In my mind this module could actually replace the existing satisfaction module as I think it is more general. Consider that you want to simply finalize a PSBT input with the signatures in it (what Descriptor::satisfy with a PSBT does). You could do this like:

Try to create a satisfaction plan using the keys that have entries in partial_sigs or tap_key_sig and tap_script_sigs as the asset keys.
If the plan is successfully created then you can satisfy it, so go through the signature items in the witness template and replace them with the signatures in PSBT

(I've skipped a bunch of details like timelocks and hash images and pre-images here but I hope you can image they work in a similar way).
Any other ideas?
For background discussion see #451

The planning API was introduced in #592 :)


Does not work with angular universal

Works fine running client side but not with Universal.
/node_modules/ngx-scrollspy/dist/index.js:1 (function (exports, require, module, __filename, __dirname) { import { NgModule, Inject, Optional, OpaqueToken, SkipSelf } from '@angular/core';                                                               ^^^^^^ SyntaxError: Unexpected token import     at Object.exports.runInThisContext (vm.js:76:16)     at Module._compile (module.js:542:28)     at Object.Module._extensions..js (module.js:579:10)     at Module.load (module.js:487:32)     at tryModuleLoad (module.js:446:12)     at Function.Module._load (module.js:438:3)     at Module.require (module.js:497:17)     at require (internal/module.js:20:19)     at Object.<anonymous> (/Users/aharris/Projects/PNC/portal/src/app/app.module.ts:15:1)     at Module._compile (module.js:570:32)
Any help with this much appreciated.

I have published a fork which works with Universal.
https://www.npmjs.com/package/@oasisdigital/ngx-scrollspy
However, I am not confident that it contains the right way to implement universal compatibility. Therefore, no PR yet.
If a Angular Universal guru comes along and would like to inspect what I did and suggest whether it is the right solution, here is the relevant commit:
https://github.com/OasisDigital/ngx-scrollspy/commit/a9d6c9332dae51cd32671ecb004a172038da3028


[T4A3][W13-B3] Ngin Yun Chuan

Ready for review

Accepting this PR without a review because another of your PRs for this tutorial was reviewed in detail.


Create a new branch named feature/head and use it to update head

Update head in index.html

Update head in index.html


Feat/pagination

Added pagination in the comments retrieval.

Issues with merge, PR reported to #30


Sound stuttering at arch linux

Hey,
with my old Radeon HD 6850 the stream lagged too much to play.
Today I installed a new RX580 and the lagging is gone but now I have permanent sound stuttering which happend before only a few times and was fixable with reboots.
Now nothing helps, do u have any suggestion? I tried the stable client, because the screen is purple with the beta client.
But the sound seems to be working, but it doesn't help if I can't see anything (screenshot: https://imgur.com/psaZtb8.png)
I ran the shadow-tools tool and alls was fine.
Im running an up to date arch linux with mesa driver.

Hi Saddy,
2 thing to try regarding your audio issue to start with when sound is stuttering:
-killall pulseaudio

check/switch audio cable (Plug / unplug also jack)

Hi aarnoud,
both did not help.
I unplugged my headset 3.5mm + microphone and I unplugged + plugged my 3.5mm speakers.
And I killed pulseaudio (then the sound died) but after restarting the stream I got the same behaviour.
The stable and beta live images are also not working, while loading the shadow client the system shuts down.
I tried logging pulseaudio to debug but it doesn't seem to be helpful to me.
Any tipps how to debug this?
I mean the sound was working before the gpu change.. strange to me but gives me hope.
pulseverbose.log

Hello there!
Do you use the AppImage? Is your Shadow working fine on another device?
Can you give us the vainfo, just to check the compatibility?

Hey,
I tried both aur packages shadow-tech and shadow-beta and I tried running the AppImage manually.
Before I changed the gpu from radeon hd 6850 to rx580 the sound was finde with the stable client.
At my android device and my win10 Laptop its running good, but my goal was using shadow on my arch linux desktop. I am short before reinstalling the virtual machine..


Add decorator_from_middleware

https://github.com/florimondmanca/asgi-caches

Deprecated with Starlette 0.33 added feature:

Per-route Middleware


The docker registry proxy configuration is ambiguous about needing to be applied

It appears that the change required to configure a proxy for a docker registry needs to be applied to become effective.  The docs are ambiguous: https://docs.pivotal.io/pivotalcf/1-12/opsguide/docker-registry.html#proxy
I think that this section could be more clear about how/why this change needs to be applied because it isn't entirely obvious.

Thanks @ssherwood -- see https://github.com/pivotal-cf/docs-ops-guide/commit/c236cd5d63c1379a29c534ce1daceee9dbcc21cc for change staged to publish with next build.


Call webservice from other app

Hi,
I tried to call repository function from other app, but got 'Default connection not found error'
Googled here and found I have to initiate app, but that also failed.
So I am thinking of calling the webservice from asp.net app.
Do you have some sample on how to do it?
Thx in advance

you can make webrequest, but you must make api call to EndPoints (by service route).
for example Route("Services/[ProjectNamespace]/[ModuleName]/[action])
you can get json result from this endpoint url.
but not to forget authenticate. Login and get session by WebRequest

look at issue #583
c# example given before: https://github.com/volkanceylan/Serenity/issues/583#issuecomment-366747276
and java example:
https://github.com/volkanceylan/Serenity/issues/583#issuecomment-211867718
https://gist.github.com/volkanceylan/1b124f58c1e2b4fc7c7c


Future plans

I got out v5 at last, which switched from PhantomJS to Puppeteer. This was an important release as PhantomJS is no longer maintained. Because of this, I tried to keep the breaking changes to a minimum. There are however lots of improvements I would like to do to the API, but which can be done sometime in the future. Here are some rough ideas:
Options:

transparent => defaultBackground and make it true by default (since it's inverted)
username => authentication.username
password => authentication.password
scale => scaleFactor
crop => fullPage and make it true by default (since it's inverted)
format => type (and value jpg => jpeg)
selector => element
css => styles and accept type string[] instead of string
script => scripts and accept type string[] instead of string
hide => hideElements and accept type string[] instead of string

API:

.src() => .source()
.dest() => .destination()

I would also like to move away from the chainable API to a single method call.
Before
const Pageres = require('pageres');

(async () => {
	await new Pageres({delay: 2})
		.src('https://github.com/sindresorhus/pageres', ['480x320', '1024x768'], {crop: true})
		.src('https://sindresorhus.com', ['1280x1024', '1920x1080'])
		.dest('output')
		.run();
})();

After
const pageres = require('pageres');

(async () => {
	await pageres({
		sources: [
			{
				url: 'https://github.com/sindresorhus/pageres',
				sizes: ['480x320', '1024x768'],
				// These options override the global ones
				delay: 4
			}
		]
		destination: 'output',
		delay: 2
	});
})();

Thoughts?

Open questions

Should we make '480x320' => {width: 480, height: 320}? Or support both?
Should sources item specific options be top-level in the source object (like in the above example) or nested inside {options: {delay: 4}}?

Should we make '480x320' => {width: 480, height: 320}? Or support both?
The current input style is also common way of addressing the screen sizes, hence no harm in keeping it. And using the object notation would make the input more explicit.
If both notations are kept, it'll give new users flexibility to choose between these 2 options and users upgrading from previous versions will still have their scripts working with old input format.
My input: Keep both

Maybe it would be nice to add cwd option, that Grunt users can simply set URLs list without duplicates? It may help for users, that use pageres for current site visual testing.
Example:

Before:

urls: ["site/dev/index.html"
        "site/dev/KiraFirstPath/KiraFirstFile.html"
        "site/dev/KiraSecondPath/KiraSecondFile.html"]

After:

cwd: "site/dev/"
urls: ["index.html"
        "KiraFirstPath/KiraFirstFile.html"
        "KiraSecondPath/KiraSecondFile.html"]

Thanks.

@Kristinita You can already do that with Grunt: https://gruntjs.com/configuring-tasks#building-the-files-object-dynamically

@sindresorhus, type:reply

You can already do that with Grunt: https://gruntjs.com/configuring-tasks#building-the-files-object-dynamically

Docs says about files object, but for custom plugins options (as grunt-pageres urls option) similar formats doesn't work.
For example, this configuration:
urls: [
        expand: true
        cwd: "site/dev/"
        src: ["index.html"
            "KiraFirstPath/KiraFirstFile.html"
            "KiraSecondPath/KiraSecondFile.html"]
        ]

or this:
urls:
    files: [
        expand: true
        cwd: "site/dev/"
        src: ["index.html"
            "KiraFirstPath/KiraFirstFile.html"
            "KiraSecondPath/KiraSecondFile.html"]
        ]

will not work.
Thanks.

@Kristinita Good point. Yes, we should support the standard src property in grunt-pageres for local files.


Blazor Support

Has Blazor support been discussed or considered?

@harperjohn did you try following https://www.youtube.com/watch?v=9YdxhhgJvrE ?
Expanding the scope of Tail-kit to .Net does little to help Laravel, Rails, Django, nor static/Node.js users.
How do you know that Tail-kit does not already work with Blazor?
How would you build tests & onboarding documentation, to keep it maintained?
Personally, I'd rather see Charlie budget his time to keep Tail-kit solid & current, with a growing library of components. It's what he's good at, and seems to like.


[Mod Suggestion] Shrink.

First played with the mod in ATM9
I must say it is pretty handy when designing spaghetti factories or building cable shafts
I think the mod would make a good QoL addition
https://www.curseforge.com/minecraft/mc-mods/shrink_

This link is a 404 page.
Working Link


Update impl.md -- Remove duplicated sentence

I believe item (3) encapsulates item (2) under the "Level 0" heading. If I have misunderstood, please consider clarifying the text. Thanks!

@googlebot I signed it!


Merge for release 12-6-2023

Merge for release 12-6-2023

Closed this because it's missing a changeset for the Tailwind plugin divider/decoration design tokens. Find the updated release here: https://github.com/skeletonlabs/skeleton/pull/2290


Possibility to "spread" env variables to a json array?

Problem Statement
I want to provide redirectURIs for client apps via env variables.
Minimal Example:
{
  "realm": "example",
  "clients": [
    {
      "clientId": "webapp",
      "name": "webapp",
      "redirectUris": ["/*"] // can this be something like $(env:CLIENT_WEBAPP_REDIRECT_URIS)?
      // suppose CLIENT_WEBAPP_REDIRECT_URIS="https://host1.tld,https://host2.tld,https://host3.tld"
      // should be turned into:
      "redirectUris": ["https://host1.tld", "https://host2.tld", "https://host3.tld"]
    }
  ]
}

### Proposed Solution

I am not sure how a proper solution would look like.
There are several helpers like `urlDecoder`. Maybe a solution would be to have something like `toArrray`?
But since `keycloak-config-cli` uses [Apache StringSubstitutor](https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/StringSubstitutor.html) I am not sure, if that would be feasible at all.

### Environment

- Keycloak Version: 21.1.1-debian-11-r8
- keycloak-config-cli Version: 5.6.1-debian-11-r22
- Java Version: I guess 11?

### Additional information

_No response_

### Acceptance Criteria

- [ ] As a user, I can define env variables as comma separated lists, that get expanded to array values in Keycloak JSON Configurations

We face the same problem. Overall this is a fantastic tool that fits our use-cases, but the lack of ability to provide an array of values is a blocker and unfortunately whatever I tried was met with failure. Is there a possibility that this is looked at or an alternative that someone knows is provided? I'm really unsure how to proceed as we need the ability to provide redirectUris/webOrigins per environment.

We provide arrays of values like ..
"my_redirects_json": "[\"http://localhost:3000/*\",\"https://abcdev.net/*\"]"

And then
        "redirectUris": ${my_redirects_json},

^^ the problem is this breaks the json syntax and is a PIA as now you cannot compare json etc :(

The alternative I also tried was ....programatically splitting the arrays into elements ( easy )
"my_redirects_json_0": "http://localhost:3000/*"
"my_redirects_json_1": "https://abcdev.net/*

And then hardcoding...
        "redirectUris": [ ${my_redirects_json_0}, ${my_redirects_json_1}"

But the issue is if we have a single realm file for multiple envs and one of the environments wants an additional settings it sort of breaks as you have to inject an empty value in and this empty value is not ignored;
For example
dev_settings::
"my_redirects_json_0": "http://localhost:3000/*"
"my_redirects_json_1": "https://abcdev.net/*
"my_redirects_json_2": "https://another-just-fordev.net/*

prod_settings::
"my_redirects_json_0": "http://localhost:3000/*"
"my_redirects_json_1": "https://abcdev.net/*"
"my_redirects_json_2": ""  // not used in prod

And then hardcoding...
        "redirectUris": [ ${my_redirects_json_0}, ${my_redirects_json_1}, ${my_redirects_json_2}"

This results in an empty element inside keycloak after applying the production settings; i would have hoped empty elements would have been ignore as this would have helped


python310Packages.thorlabspm100: init at 1.2.2

Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Since pythonPackages refers to python2, could you please use python310Packages?

Since pythonPackages refers to python2, could you please use python310Packages?

Where should I do this? Can you give example please

error: hash mismatch in fixed-output derivation '/nix/store/kxqbqg2jm3dz2qm8i02lf5ikd4jhs5mw-source.drv':
         specified: sha256-WjX3IicycisncYBSBDOfDFd5RKv11suocTxoWw7WNHk=
            got:    sha256-X4qEow6u4aE0sbFwZfK3YEso2RS0c9j4iaWJPHaPQV4=

My suggestion may have caused a hash mismatch.

error: hash mismatch in fixed-output derivation '/nix/store/kxqbqg2jm3dz2qm8i02lf5ikd4jhs5mw-source.drv':
         specified: sha256-WjX3IicycisncYBSBDOfDFd5RKv11suocTxoWw7WNHk=
            got:    sha256-X4qEow6u4aE0sbFwZfK3YEso2RS0c9j4iaWJPHaPQV4=

My suggestion may have caused a hash mismatch.

How come? How did you get the hash? I used nix-prefetch-git and then convert it to SRI as you instructed. I updated the hash already.

The hash before seems to be the head of the master branch.
Since we need v1.2.2 here, we add --rev v1.2.2 as an argument to nix-prefetch-git.
It is easy to get the hash by leaving hash = "" and building the package with nix-build -A python310Packages.thorlabspm100, which will give you an error like the one above.

The hash before seems to be the head of the master branch. Since we need v1.2.2 here, we add --rev v1.2.2 as an argument to nix-prefetch-git.
It is easy to get the hash by leaving hash = "" and building the package with nix-build -A python310Packages.thorlabspm100, which will give you an error like the one above.

Thanks for clarifying. Is there anything you want me to change?

Why is that python310Packages and not just python3Packages?

This is more or less a bug in ofborg with the aliasing we do.


Remove persistence task after mesos task running

MesosDriver may crash during launching tasks, and it that case task is not
submitted to mesos but removed from persistence storage. Keep task util it
really executes on mesos.

makes sense :+1:


Uncaught ReferenceError: test is not defined

version: tested with both 2.6.3 and 2.8.0
I'm getting a Uncaught ReferenceError: test is not defined that I cannot understand. I've done a lot of testing and I can tell so far:

seems to be related to code using async
the error always is caused by trying to use a variable called exactly test
the error seems to happen in different parts of my code, changing the point where it happens as I produce different builds (I'm using the webpack-obfuscator for this)
I don't have a property or variable named test in any part of my code
the error only happens if controlFlowFlattening: true AND selfDefending: true
I'm testing using the seed option. With some seeds the error never occurs; with others, it always occurs

Obfuscated snippet (this is just the top of the file, there is more functions later but they don't seem to be relevant here - I can send it if needed, preferably privately). The error occurs at test['constructor']:
import _0x3317b2 from '../conf';
function _await(_0x55ad0d, _0x74fe2a, _0x56a29b) {
    if (_0x56a29b)
        return _0x74fe2a ? _0x74fe2a(_0x55ad0d) : _0x55ad0d;
    return (!_0x55ad0d || !_0x55ad0d['then']) && (_0x55ad0d = Promise['resolve'](_0x55ad0d)),
    _0x74fe2a ? _0x55ad0d['then'](_0x74fe2a) : _0x55ad0d;
}
function _async(_0x39e875) {
    const _0x256514 = function() {
        let _0x57d75a = !![];
        return function(_0x2ab882, _0x3ca6b0) {
            const _0x30cf38 = _0x57d75a ? function() {
                if (_0x3ca6b0) {
                    const _0x46535c = _0x3ca6b0['apply'](_0x2ab882, arguments);
                    return _0x3ca6b0 = null,
                    _0x46535c;
                }
            }
            : function() {}
            ;
            return _0x57d75a = ![],
            _0x30cf38;
        }
        ;
    }()
      , _0x282d2a = _0x256514(this, function() {
        const _0x246224 = function() {
            const _0x3fc13d = test['constructor']('return\x20/\x22\x20+\x20this\x20+\x20\x22/')()['constructor']('^([^\x20]+(\x20+[^\x20]+)+)+[^\x20]}');
            return !_0x3fc13d['test'](_0x282d2a);
        };
        return _0x246224();
    });
    return _0x282d2a(),
    function() {
        for (var _0x150116 = [], _0x3429a4 = 0x0; _0x3429a4 < arguments['length']; _0x3429a4++) {
            _0x150116[_0x3429a4] = arguments[_0x3429a4];
        }
        try {
            return Promise['resolve'](_0x39e875['apply'](this, _0x150116));
        } catch (_0x30fc7a) {
            return Promise['reject'](_0x30fc7a);
        }
    }
    ;
}

export const getResult = _async(function(_0x1f8d7f) {
    const _0x5c05b5 = {
        'ApnJM': 'BACKEND_URL'
    }
      , _0x544bdb = _0x3317b2(_0x5c05b5['ApnJM']) + '/result/' + _0x1f8d7f
      , _0xe8ce2e = {
        'method': 'GET',
        'credentials': 'include'
    };
    return _await(fetch(_0x544bdb, _0xe8ce2e), function(_0x1632a6) {
        if (!_0x1632a6['ok'])
            throw new CustomError(_0x1632a6['status']);
        return _0x1632a6['json']();
    });
});

// there is more code, but I don't think is needed

Config (my intention is to enable everything that is false below, I've just disabled it to isolate the problem):
options: {
    seed: 2,
    controlFlowFlattening: true,
    controlFlowFlatteningThreshold: 0.1,
    identifierNamesGenerator: 'hexadecimal',
    selfDefending: true,
    splitStrings: false,
    shuffleStringArray: false,
    rotateStringArray: false,
    stringArray: false,
}

Can you provide a minimal standalone reproducible example that will show this error after obfuscation?
Also what obfuscator version are you using?

The original code looks very much like this (I've just removed the body and renamed funcA and funcB):
``
`javascript
import conf from '../conf'
export function CustomError(status, responseBody) {
this.status = status
this.responseBody = responseBody
}
export const funcA = async () => {
}
export const funcB = async () => {
}
export const getResult = async id => {
const url = ${conf('BACKEND_URL')}/result/${id}
const options = { method: 'GET', credentials: 'include' }
const response = await fetch(url, options)
if (!response.ok) throw new CustomError(response.status)
return response.json()
}

With these changes, I'm getting at the same point I got `Uncaught ReferenceError: regExp is not defined`. The obfuscated code is (the error happens at `!regExp['test'](_0xd4ed39)`:
```javascript
import _0x35757e from '../conf';
function _await(_0x428c5c, _0x54d433, _0x170ae2) {
    if (_0x170ae2)
        return _0x54d433 ? _0x54d433(_0x428c5c) : _0x428c5c;
    return (!_0x428c5c || !_0x428c5c['then']) && (_0x428c5c = Promise['resolve'](_0x428c5c)),
    _0x54d433 ? _0x428c5c['then'](_0x54d433) : _0x428c5c;
}
function _async(_0x12c610) {
    const _0x1a706a = function() {
        let _0x46347f = !![];
        return function(_0x493357, _0x4ff391) {
            const _0x3b7845 = _0x46347f ? function() {
                if (_0x4ff391) {
                    const _0x1a9bfb = _0x4ff391['apply'](_0x493357, arguments);
                    return _0x4ff391 = null,
                    _0x1a9bfb;
                }
            }
            : function() {}
            ;
            return _0x46347f = ![],
            _0x3b7845;
        }
        ;
    }()
      , _0x1bc5f4 = _0x1a706a(this, function() {
        const _0x34d53b = function() {
            const _0x157caf = _0x34d53b['constructor']('return\x20/\x22\x20+\x20this\x20+\x20\x22/')()['constructor']('^([^\x20]+(\x20+[^\x20]+)+)+[^\x20]}');
            return !regExp['test'](_0xd4ed39);
        };
        return _0x34d53b();
    });
    return _0x1bc5f4(),
    function() {
        for (var _0x8a2aec = [], _0x12da42 = 0x0; _0x12da42 < arguments['length']; _0x12da42++) {
            _0x8a2aec[_0x12da42] = arguments[_0x12da42];
        }
        try {
            return Promise['resolve'](_0x12c610['apply'](this, _0x8a2aec));
        } catch (_0x328c07) {
            return Promise['reject'](_0x328c07);
        }
    }
    ;
}
export function CustomError(_0x5176df, _0x1267da) {
    this['status'] = _0x5176df,
    this['responseBody'] = _0x1267da;
}
export const funcA = function() {
    return _await();
};
export const funcB = function() {
    return _await();
};
export const getResult = _async(function(_0x4bad58) {
    const _0x1426bc = {
        'uSDsB': function(_0x15aa3b, _0x4346cf, _0x48bc90) {
            return _0x15aa3b(_0x4346cf, _0x48bc90);
        }
    }
      , _0x4e7e71 = _0x35757e('ROYALE_URL') + '/result/' + _0x4bad58
      , _0x23ce6c = {
        'method': 'GET',
        'credentials': 'include'
    };
    return _await(_0x1426bc['uSDsB'](fetch, _0x4e7e71, _0x23ce6c), function(_0x219bd3) {
        if (!_0x219bd3['ok'])
            throw new CustomError(_0x219bd3['status']);
        return _0x219bd3['json']();
    });
});

@sanex3339 I've added the version to the top of the original post. Sorry for forgetting that.
I'll try to setup a repo to reproduce the error and ping back in a few minutes.

This is very strange. Need a repo from you.

Nice, I'm preparing it. One thing I've noticed already preparing the repo, if (instead of importing my import conf from '../conf') I just define const conf = () => {}, the error goes away.

@sanex3339 Here we go: https://github.com/rafaeleyng/demo-obfuscator
I've tweaked a lot and is very strange. The error occurs on myClient.js. Changing mostly everything there will cause the error to change or disappear. Like putting funcA before funcB, or changing the string BACKEND_URL_2 to BACKEND_URL_1.
Also, changing the string BACKEND_URL_2 to other numbers at the end, I was able to get a different error (fn is not defined)

Adding garbage at the end of that string I also got regEx is not defined

Minimal reproducible example:
    const code: string =  `
        function foo () {};

        foo();
    `;

    for (let i = 0; i < 1000; i++) {
        let obfuscatedCode: string = JavaScriptObfuscator.obfuscate(
            code,
            {
                stringArray: false,
                selfDefending: true,
                controlFlowFlattening: true,
                controlFlowFlatteningThreshold: 0.1,
                splitStrings: false,
                seed: i
            }
        ).getObfuscatedCode();

        try {
            console.log(eval(obfuscatedCode));
        } catch (error) {
            console.log(error, obfuscatedCode);
            break;
        }
    }

Oh. It was hard to catch. PR will be ready soon.

Fixed in<EMAIL_ADDRESS>

It works perfectly! Thanks a lot 👍


Use composite key from OTEL service name and instance id

Fixes https://github.com/dotnet/aspire/issues/4217
The dashboard incorrectly assumes that each app instance has a unique instance id. That's true in Aspire land, but it isn't guaranteed when the standalone dashboard receives telemetry from 3rd party apps.
For example, someone might use the machine name as a common instance ID:

Name = App1, Instance ID = machine-name-1
Name = App2, Instance ID = machine-name-1

This PR changes dashboard to use service.name + service.instance.id as a composite key to identify apps. Allows for apps with different names to share an instance id.
Microsoft Reviewers: Open in CodeFlow

/azp run

Please review 🙏


Sculk Catalyst does nothing when Disable EXP is on

Technically this is just a knock-on effect of the intended behavior, but it deserves mention. Sculk Catalysts do not produce any sculk blocks when a mob dies near them with Fabrication's Disable Exp feature enabled. Some method of creating additional sculk blocks with this feature enabled (or just a tweak to catalysts to make them work correctly) would be nice to have. Thanks!

Most features under "Extra" are such because they are invasive and cause major mechanic breakage; No EXP is not an exception, due to its nature as a nuclear "remove this mechanic" feature.
Works as intended.

To note,  more nuanced feature, such as one that splits off the anvil and enchanting table effects, would be the solution to this. But "No Experience causes a new experience-based mechanic to not work" is not a bug.

so i didn't know that sculk catalysts required player kills instead of just any death around them. this feature actually works completely fine. 🤦