problem to encode with grayscale ICC profile

I am trying to encode JXL file using C API.
I set basic info uses_original_profile = JXL_TRUE; and to set grayscale ICC profile via JxlEncoderSetICCProfile but I get following error during the process:
lib/jxl/enc_external_image.cc:113: JXL_FAILURE: Buffer size is too small
lib/jxl/enc_external_image.cc:328: JXL_RETURN_IF_ERROR code=1: ConvertFromExternal( jxl::Span<const uint8_t>(static_cast<const uint8_t*>(buffer), size), xsize, ysize, c_current, pixel_format.num_channels == 2 || pixel_format.num_channels == 4, false, bitdepth, pixel_format.endianness, false, pool, ib, float_in)

I used num_color_channels = 1; and pixel format num_channels = 1; and bits_per_sample = 16; and data_type = JXL_TYPE_UINT16;
Similar code with uses_original_profile = JXL_FALSE; and JxlEncoderSetColorEncoding works with grayscale images so I believe I calculate buffer size correctly.
When I want to save RGB ICC profile, everything works but my attempts to save grayscale ICC lead to failure.
The grayscale ICC profile is generated by GIMP.

What ICC profile are you using?  Is it one of the default GIMP profiles or one you actually have a file for?

The default non-linear gray profile. But also with the gray linear.
I understand that only one of JxlEncoderSetColorEncoding and JxlEncoderSetICCProfile can be used.

If it's the default gray profile from GIMP, you can call JxlColorEncodingSetToLinearSRGB(&color_encoding, gray) or JxlColorEncodingSetToSRGB(&color_encoding, gray) instead of attaching the ICC profile.

Would you show the code you use to calculate the buffer size?
It looks like libjxl doesn't translate translate ICC profiles into the internal color encoding, so it doesn't know that the ICC profile is grayscale.  As a result, checks in image_bundle.cc fail.  Unfortunately, the workaround is to not use the ICC profile on grayscale images.

My code to calculate buffer size with 16bit depth is:
buffer_size = 2 * pixel_format.num_channels * (size_t) output_info.xsize * (size_t) output_info.ysize;

I don't get the buffer size error on my machine...  Have you tried increasing the multiplier from 2 to 4 to see if it makes a difference?

I think you allocate more than necessary because you multiply with bits_per_sample but the buffer is in bytes.

I don't get the buffer size error on my machine... Have you tried increasing the multiplier from 2 to 4 to see if it makes a difference?

  size_t buffer_size = jxl_save_opts.basic_info.xsize *
                       jxl_save_opts.basic_info.ysize *
                       jxl_save_opts.pixel_format.num_channels *
                       jxl_save_opts.basic_info.bits_per_sample;

Yes.  I have plenty of RAM on this machine.  I have to be a bit wasteful to get swap usage up.  90% of the time, it's stuck at zero.

I observed that increasing buffer helps encoding to pass but saved JXL file looks weird. It is decodable via C API but djxl will fail to decode.

When you decode with the API, does it show as three small versions of the image next to each other?  That's because with the ICC profile, libjxl is treating it as RGB.  That's also why the buffer needs to be 3x the size.

Question is if the "increasing buffer" workaround causes the encoder to produce an invalid bitstream, or if it produces a valid bitstream and djxl has a bug.
Either way it's a bit strange to have something that decodes via the api but not with djxl. Could you share an example of such a bitstream?

Either way it's a bit strange to have something that decodes via the api but not with djxl. Could you share an example of such a bitstream?

Examples: Invalid_channel_range.zip
djxl graya1.jxl output1.png
JPEG XL decoder v0.6.0 405a126 [AVX2]
Read 163609 compressed bytes.
/var/tmp/portage/media-libs/libjxl-9999/work/libjxl-9999/lib/jxl/modular/transform/transform.cc:80: JXL_FAILURE: Invalid channel range: 4..4 (there are only 4 channels)
/var/tmp/portage/media-libs/libjxl-9999/work/libjxl-9999/lib/jxl/modular/transform/palette.h:289: JXL_RETURN_IF_ERROR code=1: CheckEqualChannels(input, begin_c, end_c)
/var/tmp/portage/media-libs/libjxl-9999/work/libjxl-9999/lib/jxl/modular/encoding/encoding.cc:394: JXL_RETURN_IF_ERROR code=1: transform.MetaApply(image)
/var/tmp/portage/media-libs/libjxl-9999/work/libjxl-9999/lib/jxl/modular/encoding/encoding.cc:507: JXL_RETURN_IF_ERROR code=1: dec_status
/var/tmp/portage/media-libs/libjxl-9999/work/libjxl-9999/lib/jxl/dec_modular.cc:223: JXL_RETURN_IF_ERROR code=1: dec_status
/var/tmp/portage/media-libs/libjxl-9999/work/libjxl-9999/lib/jxl/dec_frame.cc:208: JXL_RETURN_IF_ERROR code=1: frame_decoder.ProcessSections( section_info.data(), section_info.size(), section_status.data())
/var/tmp/portage/media-libs/libjxl-9999/work/libjxl-9999/lib/jxl/dec_file.cc:155: JXL_RETURN_IF_ERROR code=1: dec_ok
Failed to decompress to pixels.

djxl gray1.jxl output2.png
JPEG XL decoder v0.6.0 405a126 [AVX2]
Read 108804 compressed bytes.
/var/tmp/portage/media-libs/libjxl-9999/work/libjxl-9999/lib/jxl/modular/transform/transform.cc:80: JXL_FAILURE: Invalid channel range: 2..2 (there are only 2 channels)
/var/tmp/portage/media-libs/libjxl-9999/work/libjxl-9999/lib/jxl/modular/transform/palette.h:289: JXL_RETURN_IF_ERROR code=1: CheckEqualChannels(input, begin_c, end_c)
/var/tmp/portage/media-libs/libjxl-9999/work/libjxl-9999/lib/jxl/modular/encoding/encoding.cc:394: JXL_RETURN_IF_ERROR code=1: transform.MetaApply(image)
/var/tmp/portage/media-libs/libjxl-9999/work/libjxl-9999/lib/jxl/modular/encoding/encoding.cc:507: JXL_RETURN_IF_ERROR code=1: dec_status
/var/tmp/portage/media-libs/libjxl-9999/work/libjxl-9999/lib/jxl/dec_modular.cc:223: JXL_RETURN_IF_ERROR code=1: dec_status
/var/tmp/portage/media-libs/libjxl-9999/work/libjxl-9999/lib/jxl/dec_frame.cc:208: JXL_RETURN_IF_ERROR code=1: frame_decoder.ProcessSections( section_info.data(), section_info.size(), section_status.data())
/var/tmp/portage/media-libs/libjxl-9999/work/libjxl-9999/lib/jxl/dec_file.cc:155: JXL_RETURN_IF_ERROR code=1: dec_ok
Failed to decompress to pixels.

@jonsneyers  The libjxl GIMP plugin prevents ICC profiles from being attached to avoid this problem.  When I undo the patch, I get different errors those that @novomesk reports.  With uses_original_profile=false, no file is generated.  The error is:
../lib/jxl/image_bundle.cc:33: JXL_CHECK: metadata_->color_encoding.IsGray() == c_current.IsGray()

The problem seems to be that JxlEncoderSetICCProfile in encode.cc uses SetICCRaw from color_encoding_internal.h.  This function doesn't do any ICC parsing at all.  Since JxlEncoderSetICCProfile and JxlEncoderSetColorEncoding cannot be used together, a default color encoding is used, which is RGB.  This causes the check to fail.
With uses_original_profile=true, the attached files are generated (jpegxl-logo-gray-1.zip).  I get the following errors from djxl:
../lib/jxl/enc_color_management.cc:657: JXL_RETURN_IF_ERROR code=1: skcms_Parse(icc_.data(), icc_.size(), &profile)
../lib/jxl/dec_file.cc:116: JXL_RETURN_IF_ERROR code=1: io->metadata.m.color_encoding.SetICC(std::move(icc))
Failed to decompress to pixels.

This seems to be caused by skcms being unable to parse the ICC profile.
When loaded with into GIMP with the plugin, which uses the API, multiple copies of the image are shown side-by-side.  I believe this is related to encoder treating it as RGB when saving, but being treated by monochrome when being loaded.

@novomesk Can you check whether #498 prevents creation of the bad jxl files?

@xiota Thanks, it seems to work now.


Parse error

Hi, i'm get Parse error in "src\Config\Config.php on line 34", anyone else with this issue?

Ok, no problems sorry, i have activated php 5.6 :P


warp sync market shows up randomly when searching in dispute page - remove from search

without a search:

fixed - closing


tks~

Thanks to your thoughts, the browser first producer goal finally close to completion.
If you have time, we may need to cloud synchronization function, it is easier to implement it in the browser, can be based on such onedrive cloud storage data synchronization to the cloud, such work in the home, when work can continue.

Thanks for the suggestion. Seems like the data synchronization is a hot demand. I would make a plan to support this feature, not only onedrive but also dropbox, google could and jianguoyun maybe. Please be patient with it since it might take a while to be achieved. Any update would be posted in this issue.

@moshuying Hi there, I have checked serval cloud synchronization apps such as onedrive, dropbox and google could. It seems that it is not easy to integrate them into chrome extension since a lot of restrictions such as CORS and so on need to be solved. I tried them without a success.
Does anyone have experience in this field? A merge request with this feature would be really appreciated.

Wait a minute, I found the chrome.storage.sync function supports sharing data between serval computers with the same google account from here  and I would like to take it a try!

awesome！Thank you for your contribution to this matter. I found some good materials, which may be useful to you。

I found the updated documentation and he is here
and maybe you need this

This feature should be support by chrome.storage.sync now, please update to 1.3.7 to take it a try. Thanks for the suggestion and help.


Sorting of categories alphabetically

Hi,
there are two issues in TestCaseDB in case you add multiple sub categories to a category:

They are sorted using their IDs instead of using alphabetically sorting.
The ID sorting is also broken. The number 100 is higher in the list as then entry 99 for example, since TestCaseDB only checks that the 1 is lower than the 9 instead of taking care of the whole number.

Fix 1 is really want I need, but Fix 2 should also be done in case the algorithm will be used in some other code fragments too.

Can be closed. I opened a new issue for that with our priority added:
https://github.com/msjit/testcasedb/issues/91


feat: new command - c8y util repeatcsv

New command to convert csv files into json line contents so it can be piped into other commands without relying on other tooling.
Features

Support processing multiple csv files (processed serially)
Auto convert column data to numbers, boolean, null or strings
Auto detect the delimiter character (defaults to comma (,)). You can override the auto detection by providing the --delimiter ';' flag
Option to define columns
Option to disable header row processing (go-c8y-cli assumes the csv file has a header, otherwise you need to set --noHeader)
Support --output, --select and --filter flags which can be applied to the output (after the csv has been converted)

Example
Given the following csv input file (called input.csv)
time,text
2020-01-01T00:00:00,Test event 1
2020-01-01T01:00:00,Test event 2
2020-01-01T02:00:00,Test event 3
2020-01-01T03:00:00,Test event 4

Using the c8y util repeatcsv command, the input.csv can be transformed to newline delimited json objects (which is generally more pipeable to other commands).
c8y util repeatcsv input.csv -o json -c

Output
{"text":"Test event 1","time":"2020-01-01T00:00:00"}
{"text":"Test event 2","time":"2020-01-01T01:00:00"}
{"text":"Test event 3","time":"2020-01-01T02:00:00"}
{"text":"Test event 4","time":"2020-01-01T03:00:00"}

This can then be combined with other commands. For example you could pipe the data create c8y events:
c8y util repeatcsv input.csv \
| c8y events create --device 12345 --template input.value --type my_type --dry

Below is the full help of the command showing all of the supported flags.
Generic utility to iterate over csv files and transform them into newline delimited json objects
which can be piped to other commands.

Usage:
  c8y util repeatcsv <FILE> [...FILE] [flags]

Examples:
$ c8y util repeatcsv input.csv
Convert the input.csv to json

$ c8y util repeatcsv *.csv
Convert multiple csv files

$ c8y util repeatcsv input-without-header-row.csv --columns custom1,custom2,custom3 --noHeader
Convert csv file which does not have a header row. Manually define the names of the columns

Flags:
      --columns strings         Manually define the headers/columns used in the csv file
      --delimiter string        Field delimiter. It will be auto detected by default.
      --first int               only include first x lines. 0 = all lines
  -h, --help                    help for repeatcsv
      --infinite                Repeat forever. You will need to ctrl-c it to stop it
      --noHeader                Input data does not have a header row. Treat the first row as a data row
      --randomDelayMax string   random maximum delay after each request, i.e. 5ms, 1.2s. It must be larger than randomDelayMin. 0 = disabled. (default "0ms")
      --randomDelayMin string   random minimum delay after each request, i.e. 5ms, 1.2s. It must be less than randomDelayMax. 0 = disabled (default "0ms")
      --randomSkip float32      randomly skip line based on a percentage, probability as a float: 0 to 1, 1 = always skip, 0 = never skip, -1 = disabled (default -1)
      --times int               number of times to repeat the input (default 1)

Notes

If you need advanced processing of csv files, then please use other tooling like mlr which has more options. The c8y util repeatcsv just supports common/simple use cases.

Thank you. I tested the new util variant for repeatcsv. It is very helpful.
--Christof


General role behaviour Debian vs RedHat

If this role runs on Debian it will install the latest version of Oracle JDK due to state=latest
For RedHat it will install whatever version is defined in defaults or someone changes the variables to another specific version.
I like to provide a change here as pull request.
Either

the role will also for RedHat get the latest version installed by default
or
it stays as it is now, but when an additional variable is set, it will change the default variables to reflect the latest available version. (oracle_java_latest = True)

I actually don't like installing latest version since it makes harder to make a playbook run or environment reproducible.
I prefer writing roles that install specific versions but the simplest solution at the time was to use someone else's apt repo so it started like this and has stayed like this.
At a certain point in time, someone provided some code to parse the Oracle to determine the latest version for RedHat only for this code to get broken when the pattern changed.
Debian installation also got broken after Java 10 was released until someone created a new apt repo only for it to be broken again when Java 11 came out.
To be honest, I'd prefer if Debian got the same behavior as RedHat: revamp variables, specify version and install a specific version.
I'm not opposed to let users have the possibility to use latest, at their own risk, with the caveat that no Oracle page parsing is done in this role.
Using some auxiliary scripts
(initial work done here)
the latest version could be captured and
the defaults/<os_family>.yml get updated through cron, CI pipeline, manually, etc?
every new release of Java would require a new version of this role but I don't see this as a bad thing.
The user could also use the auxiliary library above and inject the oracle_java variables into the playbook run.
For the package download this can be very important since downloading it from the web, with the default value, can cause a playbook run to break due to timeouts or firewall issues and hinder their ability to patch or provision a system.
This alternative is already available for any user to explore (for RedHat) but not in Debian and making the Debian install more like the RedHat one, I think, is the way to go.


rbac: support match based on destination cluster

Description:
Envoy can route traffic to clusters based on external given input, e.g. cluster_header in http_conn_manager, and there will be similar proposal for TCP in #4444. We should disallow traffic from listeners going to certain clusters, e.g. xDS API cluster (especially SDS), ratelimit cluster, ext_authz cluster etc.
cc @rshriram
Relevant Links:
https://github.com/envoyproxy/envoy/pull/4444#discussion_r218427696

@lizan is the more general way to solve this to provide a list of allowed routable clusters (or blacklist) in the RouteConfiguration? I.e. is this more a policy issue best addressed in the control plane, where you would control beyond "private/internal" marking at the cluster level.

The more general way to solve this to provide a list of allowed routable clusters (or blacklist) in the RouteConfiguration?

The general allow/deny list is already achievable with RBAC filter for both TCP and HTTP. Making a cluster private/internal is just an additional way to prevent leaking sensitive information from certain clusters (especially SDS) that you would never want traffic routed to.

In general I would also prefer that we handle this in the RBAC filters. Is that what is being proposed here?

@mattklein123 No, I'm proposing add a flag to cluster level that preventing traffic not generated by Envoy itself being routed to, without relying RBAC to be configured on every listeners/HCM. It is non-trivial to configure every listener/HCM with RBAC correctly to avoid external traffic to a specific cluster.

It is non-trivial to configure every listener/HCM with RBAC correctly to avoid external traffic to a specific cluster.

To play devils advocate, why? This seems like an RBAC problem? Can't we have an RBAC rule to deny traffic that is destined for a particular route? It seems pretty straightforward to me?
In general I would prefer to not add special cases to the router for things like this that IMO should be handled by RBAC?

Install the filter on every listener?

Yeah sure it works, but IMO it is too much for just disallowing traffic to a certain clusters. (Note clusters might have credentials configured with it.) In HCM, the RBAC filter comes in front of router, so it need to be configured to match what cluster_header configured in router or delivered by RDS.
It is technically possible to let control planes to figure out all of this and install RBAC filter (perhaps merge existing RBAC rules) accordingly. Though in most cases only certain clusters are private for internal use, there should be a fail-safe flag on cluster side for security in Envoy core, instead of having all logics above to compute RBAC rules. Thoughts?

It is technically possible to let control planes to figure out all of this and install RBAC filter (perhaps merge existing RBAC rules) accordingly. Though in most cases only certain clusters are private for internal use, there should be a fail-safe flag on cluster side for security in Envoy core, instead of having all logics above to compute RBAC rules. Thoughts?

I see your point. Where I am mainly coming from is it's not clear to me that we should have multiple ways of doing something unless it is really necessary. This feels like an RBAC problem that we should solve with the RBAC filter, even if the management server needs to machine generate more config. @envoyproxy/maintainers anyone have any thoughts on this?

I tend to agree with @mattklein123. I think my objection is that this change assumes there are only 2 classes of clusters. What if I have 3 classes instead, which are "routable from listener1 via header", "routable from listener2 via header", and "envoy-internal (xDS, etc)"?

@ggreenway this is only for routable or not, more than that should be RBAC.
Another point: this is also the difference between GoogleGrpc and EnvoyGrpc. xDS configured by REST or EnvoyGrpc has the risk that a unintended traffic could be routed to by misconfiguration, while GoogleGrpc is not routable at all.

to throw to this mix, consider the case where the cluster name is taken from the SNI value? RBAC gets more complicated here as well.

My earlier suggestion is really a preference that we put mechanism in Envoy and the policy in the management server. I think the question is how complicated is the implementation of a general whitelist/blacklist? If it's going to be O(100) lines of code, I think its worth making it general, any more complicated and yeah, sure, just a non-routable tag would make sense.
An early API design principle is that the protos are intended to be machine generated, so we can err away from brevity here.

With current implementations, it is tricky for control-planes to generate, especially for cluster_header in HTTP with the filter order (per route config cannot have multiple configs for same filter) and route cache if filters in middle set that header. If we have upstream filter #173 and RBAC there, I agree that the rule would be pretty simple enough to generate so we don't need this flag.

@lizan sorry I still don't understand why this is hard to do with the existing RBAC filter. Can you describe your use case in more detail?

Sorry I didn't have a chance to revisit this. On a second thought, with current RBAC filter we at least need add destination cluster rule to make this easy. With that it will be fairly easy to setup RBAC rules to prevent traffic to certain cluster, without complexing RBAC rules due to route configuration etc.

On a second thought, with current RBAC filter we at least need add destination cluster rule to make this easy.

Agreed. This is generally useful. Please add!

@lizan
Is the rule to be added to the RBAC policy just a string of the cluster name?

@yangminzhu yeah adding a rule to RBAC policy would be good.

I could be wrong, but it doesn't look like this made it into the rbac filter. Given its been a few years, this very well may not be the best place to put this anymore, but I would love to be able to use this feature to be able to leverage the rich RBAC logic to pass a request directly to a destination cluster. Happy to help if I can!


Upgrade actions to fix upload conflict

Description
Upgrade actions to fix upload conflict
Type of change

This pull request fixes a bug in Radius and has an approved issue (issue link required).
This pull request adds or changes features of Radius and has an approved issue (issue link required).
This pull request is a minor refactor, code cleanup, test improvement, or other maintenance task and doesn't change the functionality of Radius (issue link optional).

Fixes: #issue_number

Per offline discussion with @youngbupark - this needs a force merge because the functional tests won't pass until it's in.


Translations update from Hosted Weblate

Translations update from Hosted Weblate for Kitsune/App.
Current translation status:

Thanks @Kiimby for your contribution!

 @Drumber (＾∇＾)ﾉ


Granular device management for Jax

The jax backend currently has a very simple device management option. We would like to improve it such that users can specify specific devices to run on like with our Pytorch models. This should automatically move jax numpy arrays using jax.device_put in a similar way the @auto_move_data decorator does.
Helpful issue https://github.com/google/jax/issues/1914
Will need a way to move an existing train state across devices: https://github.com/google/flax/discussions/1783

Including multi-device here too


Remove unused Mixpanel events

Background
Describe the problem that we are trying to solve with this feature.
If a path to a solution is known, feel free to write it down, but have an open mind
Mixpanel has changed billing to be counted by message volume and our account is switching to a paid account. We need to reduce events that cost us unecessarily
Done when
these events are no longer sent to mixpanel

[x] BNBEVENT (https://github.com/palomachain/kits/blob/b31998df0930f29fc61a85e8b9573fc476ed0eb6/index.js#L193) and ETH_EVENT (https://github.com/palomachain/kits/blob/b31998df0930f29fc61a85e8b9573fc476ed0eb6/index.js#L127) are no longer tracked. Seems like we're not using it for anything?
[ ] Twitter:Followers Twitter:Responses https://github.com/VolumeFi/twitter_mixpanel_bot

I checked all our servers and can't find where Twitter:Responses is coming from. I think I'll have to open a ticket with mix panel to get the ip that is sending the data.


Release startup lock during long-lived build ios framework

Description
Avoid Waiting for another flutter command to release the startup lock... during long-running flutter build ios-framework commands.

LGTM


[match] import P12 codesigning certificate to match's repo, updated, fixed

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

Motivation and Context
Asked here https://github.com/fastlane/fastlane/issues/6900 and continued here https://github.com/fastlane/fastlane/pull/6972
Description
In comparison to https://github.com/fastlane/fastlane/pull/6972 it matches certificates by issuer and serial which according to rfc identify a unique certificate, I also addressed all the comments from previous version

I signed it!

@milch I addressed your comments on the prev PR please take a look :)

need this very much

Sorry to be so negative on this, but I'm not very comfortable merging this. I can already see this feature causing lots of incoming GitHub issues from people that import invalid certificates and keys, or mismatching profiles, causing more confusion. The beauty of match is that you can be sure things work as expected.
I said the same thing a few times in the past, I know that this is a feature people wish for, but I'm not super comfortable with it, and I don't think I'm the one ready to merge it.

@KrauseFx I understand your worries, features are coming with the cost of supportability :)
What can we do in order to prevent "issues from people that import invalid certificates and keys" - check CNs, expiration dates?
Maybe print more info about supplied certificate as well as found on devportal?
Can we turn "so negative on this" to constructive suggestions?

@KrauseFx @DanToml Some news about this merge request? It looks very helpful to many.

still nothing about this feature ? :)

This is still my position: https://github.com/fastlane/fastlane/pull/9752#issuecomment-320373291
If someone else feels comfortable reviewing, testing, merging and maintaining the code, I'm okay, but I won't sign off, sorry again, but that's my opinion on this feature (has nothing to do with the code)

Maybe we can find a compromise if we can understand the exact reasons for wanting this. My understanding is the following:

Due to customers or company regulations, it is not possible to give out the credentials that would allow match to create certificates and profiles
At the same time, it is also not possible to run match on the account owner's computer once and then use readonly: true from the developer's computer

Why?

Anything else?

@matthewellis no, there was no such intention and last time I used it myself I synced dev certs, right, will sort it out as soon as I can

@milch my reason (maybe I've just chosen wrong approach): we have different match repos with different credentials for different projects. We were trying to separate dev certificates as well, but apple restricted the number of total possible dev certificates to 5, so in order to maintain the flow I imported one created earlier into next project's match repo

@razum2um Yeah, that doesn't sound like how match is intended to be used. The idea is more or less to have 1 match repo per Apple account. Is there a reason why you can't have a single repo for all projects?

As for me, I think this feature is needed to prevent legacy enterprise certificates from being revoked by match at first use, as it would disable all the existing apps (unless I'm misunderstanding somehting).

You don't necessarily have to nuke, if you still have a free spot for a new certificate, match will just use that 👍

@KrauseFx sure, but if we have no spots left, the feature would be useful :P (even if, when we have two certificates, we can nuke the unused (yet) one)

Hey folks! I am going to close this PR for now as it has been inactive for quite some time. That being said, please feel free to continue conversation on here and let us know if we should reopen it at any point! 🚀

@milch To add to your list, I learned that revoking an Enterprise cer/profile combination (via nuke) makes the app unusable that moment. So not like with a normal app store cert that you just replace with the next update, your users can't use your app until they get one built with the new cert.

As KrauseFx understandable is cautious about adding this to fastlane itself, how about reworking it into a plugin with its own Github repo @razum2um @MajinRaph? Then problems using it would end up at the issues of that repository and one could make sure that all information for this "advanced usage" is collected there.


MultiBoxLoss.use_prior_for_matching

Is there a reason for the use_prior_for_matching  attribute for the MultiBoxLoss class? It is initialized but doesn't look like its actually used anywhere.

Actually, looks like it is supposed to match up with steps in computing the loss, but if statements were never put in to check for them.
A few of the other variables aren't used either (some are booleans, but others like background_label aren't)


feat: add api for inclusion proof of outgoing message in block #4562

Resolves #4562.
Not looking for a "review to merge" but more like a "review to make sure I'm not completely stupid" 😄

Is there a defined tree height for outgoing messages or will it be dynamically calculated for each block ?

Since the outgoing messages is per transaction, the number of transactions will change the height of the tree, this is why the heigh of the tree must also be conveyed as part of the data. Dynamic.

Benchmark results
Metrics with a significant change:

batch_insert_into_append_only_tree_16_depth_ms (2): 13.7 (+34%)
batch_insert_into_append_only_tree_16_depth_ms (8): 16.9 (+34%)
batch_insert_into_append_only_tree_16_depth_hash_ms (2): 0.765 (+34%)
batch_insert_into_append_only_tree_16_depth_hash_ms (8): 0.719 (+34%)
batch_insert_into_append_only_tree_32_depth_ms (1024): 526 (+17%)
batch_insert_into_indexed_tree_20_depth_ms (1024): 838 (+25%)
node_history_sync_time_in_ms (10): 34,477 (+26%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Values are compared against data from master at commit d98db3aa and shown if the difference exceeds 1%.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
64 txs

l1_rollup_calldata_size_in_bytes
5,700
18,884
36,452

l1_rollup_calldata_gas
66,216
238,952
469,772

l1_rollup_execution_gas
194,164
500,258
909,030

l2_block_processing_time_in_ms
1,196
4,503
8,994

note_successful_decrypting_time_in_ms
198 (-1%)
534 (-3%)
989 (-1%)

note_trial_decrypting_time_in_ms
107 (-1%)
54.9 (-26%)
131 (-3%)

l2_block_building_time_in_ms
15,881 (-1%)
62,962 (-1%)
126,758 (-1%)

l2_block_rollup_simulation_time_in_ms
12,079 (-1%)
47,890 (-1%)
96,727 (-1%)

l2_block_public_tx_process_time_in_ms
3,773 (-1%)
14,997 (-1%)
29,905 (-1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
15,617 (+8%)
:warning: 34,477 (+26%)

note_history_successful_decrypting_time_in_ms
1,245 (-4%)
2,440 (-1%)

note_history_trial_decrypting_time_in_ms
93.8 (-19%)
170 (+8%)

node_database_size_in_bytes
18,735,184
35,266,640

pxe_database_size_in_bytes
29,923
59,478

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes

private-kernel-init
252
44,736
28,001

private-kernel-ordering
184 (+3%)
52,625
14,627

base-rollup
1,390 (+7%)
177,932
933

root-rollup
70.8 (-1%)
4,192
825

private-kernel-inner
321 (+1%)
73,715
28,001

public-kernel-app-logic
203 (+5%)
32,254
25,379

merge-rollup
7.23 (+25%)
2,712
933

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
0 deployed contracts

tx_size_in_bytes
19,179

Transaction processing duration by data writes.

Metric
0 new note hashes
1 new note hashes

tx_pxe_processing_time_ms
2,597 (-3%)
1,381 (+1%)

Metric
0 public data writes
1 public data writes

tx_sequencer_processing_time_ms
0.0308 (-18%)
496 (+5%)


HPM Stopped in initial setup

The install seems to hang or timeout at: "Retrieving list of installed drivers"
Hubitat app log
java.lang.NullPointerException: Cannot get property 'location' on null object on line 2269 (downloadFileAsyncCallback)
code:
def packagesToMatchAgainst = [] for (uri in results.keySet()) { 	def result = results[uri] 	def manifestContents = result.result 	if (manifestContents == null) 		log.error "Found a bad manifest ${pkg.location}. Please notify the package developer." 	else {
thebearmay assisted with this suggestion on line 2269: ${pkg?.location}
So changed line to:
log.error "Found a bad manifest ${pkg?.location}. Please notify the package developer."
Installation completed and I was able to Update and Install packages.
It would be nice to know which application/driver was causing the error so perhaps logging during the iteration or key during error may assist.

Same issue. Anytime running "Match" results in this error. Several forum users reporting same thing.
https://community.hubitat.com/t/beta-hubitat-package-manager/38016
Given the info above, does this mean someone can break HPM by just pushing a bad/malformed manifest to github?


Image Size Issue

When I upload image size 100 kb, after saving it becomes 700kb. I am not able to understand logic behind it. how can  it fix? Please suggest me.

I am facing same issue. Uploading an image and after saving its becoming 10X image size. I guess it copying along with canvas not sure. Please help us out to resolve this major issue. Its effecting on application performance. Thanks!

asDataURL('image/jpg') not affect image type, result is png!
If i replace all png in code to jpg, anyway result is png =
Problem is very actually now for me, search decision.

@SeibelStan Please read documentation carefully https://github.com/ivictbor/painterro#format-and-quality. There is no such mime type as image/jpg, should be image/jpeg
@pankajcardinal please try defining quality of exported image and use image/jpeg, Read here https://github.com/ivictbor/painterro#format-and-quality


Towards a proof-of-concept for a wider audience

I believe this project can gain more traction if we can showcase the project to a wider audience that adding artificial intelligence capabilities to Linux OS works, i.e. auto-tuning does indeed yield better performance. (I'm leaving out the self-healing part for now, as it seems harder than auto-tuning).
What I mean by wider audience is for someone with little knowledge of system and artificial intelligence to be able setup a scenario (or a benchmark), run the project and easily observe that the performance improved when auto-tuning is in action (ideally with all that done by a single script). To achieve that, there are still quite some challenges ahead.
First off, the scenario should be easy to setup. Right now we use TREX in our target scenario, which is not the easiest to setup; while its performance is superior, it support much less network interface cards compared to the Linux kernel. This is easily solvable to switching to other packet generators (e.g.  iperf3, sockperf, ab, etc.), and is a minor issue compared to the next one.
Now, addressing the elephant in the room.
The core of Phoeβe lies in its brain, the decision making engine that will take system telemetry as input, and output a set of system-level parameters that improves the system's performance when applied.
But so far we have not been able to prove that this most curcial piece of the project works, that is, show that it can output system settings that does improve the system's performance. This is our second (albeit the major) issue we have that prevented us from showcasing the project to a wider audience.

I hope this proposal make sense, and if so, perhaps we can proceed to a discussion on how can we improve the decision engine (more data points for csv_files/rates.csv? collect more metric for the decision engine?) and have a simpler setup.

Hello @shunghsiyu ,
Yes, you are right, we are not yet able to prove the "improvement in performance" but that is highly dependable on having a setup IMHO. The setup needs to be stable in the sense that we can count on having it available for all the time we are required to run the benchmarks, etc. I think we are missing that for long time now.
Second, yes, eventually the engine will work better if the density of data points is higher then what we currently have. Again, we would need a setup to have different scenarios so to collect more metrics.
HTH.

Hello @shunghsiyu ,
Yes, you are right, we are not yet able to prove the "improvement in performance" but that is highly dependable on having a setup IMHO. The setup needs to be stable in the sense that we can count on having it available for all the time we are required to run the benchmarks, etc. I think we are missing that for long time now.
Second, yes, eventually the engine will work better if the density of data points is higher then what we currently have. Again, we would need a setup to have different scenarios so to collect more metrics.
HTH.


Users\Name.local directory is created (but not used) even if --local_shark_tank is enabled

Nothing else to it... the directory shouldn't be created if an alternate directory is used, it spams up the User folder.  :D

Thanks for reporting this. We should be handling file storage more intentionally in general.
Ideally the artifacts generated by the .exe / index.py should be kept within the .exe's directory, aside from the _MEI artifacts from the .exe.
This directory is likely initialized in SHARK downloader somewhere, it should be initializing whichever shark_tank directory is specified by the user / pipelined down from the webui arguments (stable_args.py).

It seems as though the command line argument works, but then its value is pulled from some default in another module a little while later and the directory created, then it goes back to using the command line argument.

Using C:\Programs\Shark\cache as local shark_tank cache directory.
gradio temporary image cache located at C:\Programs\Shark\shark_tmp/gradio. You may change this by setting the GRADIO_TEMP_DIR environment variable.
No temporary images files to clear.
vulkan devices are available.
metal devices are not available.
cuda devices are not available.
local-sync devices are available.
local-task devices are available.
diffusers\models\cross_attention.py:30: FutureWarning: Importing from cross_attention is deprecated. Please import from diffusers.models.attention_processor instead.
Running on local URL:  http://<IP_ADDRESS>:8080

To create a public link, set `share=True` in `launch()`.
shark_tank local cache is located at C:\Users\NicholasCage\.local/shark_tank/ . You may change this by setting the --local_tank_cache= flag
Found device AMD Radeon RX 7900 XTX. Using target triple rdna3-7900-windows.
Using tuned models for CompVis/stable-diffusion-v1-4(fp16) on device vulkan://00000000-2300-0000-0000-000000000000.

That last line is where it crashed with no message, which is the other bug I just filed.  :D

The cause for the --local_tank_cache= flag bug is somewhere inside the code of the tkinter UI. The web interface doesn't have this problem.
The flag for reverting to web interface is: --ui=web.

Trying to find a working build newer than last release since 787 and 797 both crash with the current AMD drivers (23.7.1), and found this going on in the current build when the web UI is forced;  somehow we've got 3 instances of trying to use the wrong directory now and it's back to being created...
Using C:\Programs\Shark\cache as local shark_tank cache directory.
gradio temporary image cache located at C:\Programs\Shark\shark_tmp/gradio. You may change this by setting the GRADIO_TEMP_DIR environment variable.
No temporary images files to clear.
vulkan devices are available.
shark_tank local cache is located at C:\Users\Ѽ.local/shark_tank/ . You may change this by setting the --local_tank_cache= flag
metal devices are not available.
cuda devices are not available.
local-sync devices are available.
shark_tank local cache is located at C:\Users\Ѽ.local/shark_tank/ . You may change this by setting the --local_tank_cache= flag
local-task devices are available.
shark_tank local cache is located at C:\Users\Ѽ.local/shark_tank/ . You may change this by setting the --local_tank_cache= flag


Feature Request:  Primary Storage need to support iSCSI with backend filesystem BTRFS

V0.6 only provide NFS type Primary Storage. We need to support iSCSI format with backend filesystem as BTRFS.

fixed in 0.7


Add verify tests for common model components

There are common neutral network architectures that we should test separately from an end-to-end model.
Testing these architectures can make diagnosing future problems much easier since we would be able to independently verify that certain network features work correctly on a stand-alone basis.
We already have verify tests for model features that we modify in some way in compiler passes.
Here are some features that we should test (feel free to add more)

Bert Transformer
Long short term memory (LSTM)
Encoder
Decoder
Autoencoders

We can also take snippets of models and create verify tests for them.
May want to take a look at ORT tests that also use snippets

Link to the ORT tests of model components: https://github.com/microsoft/onnxruntime/tree/main/onnxruntime/test/python/transformers


NSPanel temperature updates are slow

Hi @AlexxIT, do you know if the refresh rate for NSpanel updates can get improved?
its taking forever for the temperature to update, sometimes i can see that the NSPanel screen updates but on HA it goes like from 25°C to 22°C without registering 24°C and 23°C ( in like 5 hours or so it gets only 2 samples, while the device shows the changes going through 24°C and 23°C).
Force update entity doesn´t seem to work on that case.
I know it could be the device limitation, as not showing the decimals could be limitation by the sensor itself, but maybe your integration can request more updates in lets say, 1 hour. it that something that can be done?
Sonoff For LAN latest version
NS Panel Firmware 1.3.1

https://github.com/AlexxIT/SonoffLAN#force-update


Explicitly mark constants in autogenerated headers as unsigned values

This should make it easier to enable more compiler-warnings in future.

ah, this doesn't seem to include the _LSB and _MSB constants!

Superceded by #182


Fix calling subprocess.run

Fix python code in order to work on python 2.7 and python 3.6
Closes: #319
Signed-off-by: Petr "Stone" Hracek<EMAIL_ADDRESS>

closed in favor of https://github.com/sclorg/container-common-scripts/pull/317


linux: version bumps

Motivation for this change
Linux kernel version bumps.
(This is my first backport. Please let me know if there's something I've missed / done wrong.)
I noticed linux_latest-libre: 17788 -> 17830 and linux-rt_5_4: 5.4.74-rt41 -> 5.4.84-rt47 could be updated as well (this PR is backported from #109231), want me to add them to this PR, or should i create a new one?
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

Thank you. All good. If you want, we can have a separate PR for the libre and RT kernels. We don't have tests for them and I am not super familiar with what they do, so I tend to hesitate backporting them.

Thank you. All good. If you want, we can have a separate PR for the libre and RT kernels. We don't have tests for them and I am not super familiar with what they do, so I tend to hesitate backporting them.


Failing Alert

hello
when i in insert alert to my project but not running.
can you help me ??

        NSURLSession.sharedSession().dataTaskWithURL(url){ [unowned self] (data , repsonse , error) in
            if error != nil {
                print(error!)
                let alertView = UNAlertView(title: "hello", message: "link failing ")

                alertView.addButton("Done", action: {
                     self.navigationController?.popViewControllerAnimated(true)

                })

                // Show
                alertView.show()

            } else {

@J-phantom I know the reason why you cannot run the code. Let me update some codes in a few days.

@J-Arji You have to wrap it to run in the main thread. Can you try that?
dispatch_sync(dispatch_get_main_queue(), {

                let alertView = UNAlertView(title: "hello", message: "link failing ")

                alertView.addButton("Done", action: {
                     self.navigationController?.popViewControllerAnimated(true)

                })

                // Show
                alertView.show()

});


A way to check if upvalues are shared by closures?

Currently there seems to be no way to check if two or more closures share an upvalue. This would be useful to have for a Lua script inspector kind of use case, where we list the upvalues of all functions of a script. Previously with Lua 5.4 we pruned down the list to only show unique upvalues.
In Lua 5.2+ there's the function lua_upvalueid which would be perfect for us, so as a quick hack I tried to implement it for Luau:
void* lua_upvalueid(lua_State* L, int funcindex, int n)
{
    TValue* val;
    const char* name = aux_upvalue(index2adr(L, funcindex), n, &val);
    if (name)
        return (void*)val;
    return NULL;
}

This seems to work for some cases but for some reason it does not work for tables. For example:
local a = 1
local tab = {}

function foo()
	a = a + 1
	tab.x = 0
end

function bar()
	a = a - 1
	tab.y = 1
end

lua_valueid correctly returns a shared upvalue for 'a' but the id returned for 'tab' is different for foo and bar. I'm not very familiar how Luau implements upvalues...

Luau has two ways to store upvalues:

As a copy, TValue object gets stored in the closure allocation block
As a reference, closure allocation block stores a reference to UpVal object that's allocated separately on heap

Your implementation works for way 2 but doesn't for way 1 because the pointer you're getting points to the internals of the closure object.
The compiler prefers way 1 because it results in reduced memory allocation traffic, less indirections for garbage collector, less instruction dispatch overhead. As such it uses it in all cases when upvalues aren't modified directly (which we call "immutable" in https://luau-lang.org/performance#optimized-upvalue-storage although that wording isn't quite precise because you can still mutate the data pointed-to-by the value, as you see in your table example).
For inline upvalues (way 1) I don't think there's a way to return a stable pointer identity, but you can compare the upvalues for raw equality in this case which can serve as a similar check... but I'm not sure how well this fits into what you're trying to do.
What differentiates inline upvalues from values stored out of line is whether upref[n] is stores an object of internal UPVAL type (not exposed to scripts) or not, see this in aux_upvalue):
        TValue* r = &f->l.uprefs[n - 1];
        *val = ttisupval(r) ? upvalue(r)->v : r;


postman: 6.7.3 -> 7.0.7

Bundles #58502
Also bundled: fixing the icon detection on my system
Motivation for this change
To squelch the annoying red "upgrade available" dot
Things done

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

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

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

changed title to reflect content

unfree package, build checked locally


Validate user-data

Stacks should validate whether user-data is a valid yaml. Maybe this should be configurable.

User-data comes in many shapes and forms: http://cloudinit.readthedocs.org/en/latest/topics/format.html


Data: project addition by Suraj Pratap : CoinMeter

Add a new project to the list
CoinMeter is a completely responsive and functional real-time Cryptocurrency data fetching app. This app gives you the facility to analyze the top cryptocurrencies across the world and see their real-time market cap and exchanges with the help of a properly designed historical chart for each coin with a clean UI experience.It also has a trending section where the last 24 hours profitable coins are shown.
MockUp:

Technologies Used:

React JS
Material UI
Chart JS
Context API
Coingecko API

Links:

GitHub: https://github.com/SurajPratap10/CoinMeter_Project6
Live Site: https://coin-meter-react-js.netlify.app/

Record

[X] I agree to follow this project's Code of Conduct
[X] I want to work on this issue

assigned to you

assigned to you

Thanks, do assign the gssoc label when completed

assigned to you

Thanks, do assign the gssoc label when completed

previously we've added but currently, We are not providing any labels(according to gssoc23 rules) for project additions as they are not associated with solving any issues.


Write tests for reducers

@avatsaev : did you get answer for this ?

Nope the issue is still for grabs :)


refactor: 💡 make getEventParams sync + add genesisHandler

Description
avoid unnecessary promises and move some handlers to be ran on a per block basis. Also adds an explicit handleGenesis function
Breaking Changes

JIRA Link

Checklist

[ ] Updated the Readme.md (if required) ?

Nothing here that impacts performance in a measurable way, but might make sync a little bit faster.


Clarifications of acronyms and initialisms

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


feat: fast build linux/arm64 frontend

zeabur官方已经更新，兼容性已适配

link:

https://discord.com/channels/1060209568820494336/1263154321151889408


<EMAIL_ADDRESS>cannot import clsx

Describe the bug
When importing clsx in a typescript file, we have a syntax error reported by node due to using export syntax in a cjs file. I think this is due to clsx.m.js is not treated by node as an ESM.
yarn vite-node index.ts
yarn run v1.22.19
$ /Users/chenyuwang/vite-node-import-clsx-fixture/node_modules/.bin/vite-node index.ts
(node:97184) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
/Users/chenyuwang/vite-node-import-clsx-fixture/node_modules/clsx/dist/clsx.m.js:1
function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}export function clsx(){for(var e,t,f=0,n="";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}export default clsx;
                                                                                ^^^^^^

SyntaxError: Unexpected token 'export'
    at Object.compileFunction (node:vm:360:18)
    at wrapSafe (node:internal/modules/cjs/loader:1048:15)
    at Module._compile (node:internal/modules/cjs/loader:1083:27)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1173:10)
    at Module.load (node:internal/modules/cjs/loader:997:32)
    at Function.Module._load (node:internal/modules/cjs/loader:838:12)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:170:29)
    at ModuleJob.run (node:internal/modules/esm/module_job:193:25)
    at async Promise.all (index 0)
    at ESMLoader.import (node:internal/modules/esm/loader:527:24)

Node.js v18.9.0

Reproduction
https://github.com/hanayashiki/vite-node-import-clsx-fixture
System Info
System:
    OS: macOS 12.4
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
    Memory: 393.70 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 18.9.0 - ~/.nvm/versions/node/v18.9.0/bin/node
    Yarn: 1.22.19 - ~/.yarn/bin/yarn
    npm: 8.19.1 - ~/.nvm/versions/node/v18.9.0/bin/npm
    Watchman: 2<IP_ADDRESS> - /usr/local/bin/watchman
  Browsers:
    Brave Browser: <IP_ADDRESS>
    Firefox: 106.0
    Safari: 15.5
  npmPackages:
    vite: ^4.1.0 => 4.1.0

Used Package Manager
yarn
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

For anyone encountering this bug, you may get around it with alias "clsx": "clsx/dist/index.js" which is a cjs file and works both in vite and vite-node.

where should I add this alias ?

Hi, you should add it here https://vitejs.dev/config/shared-options#resolve-alias


How do I test an Avalonia UI E2E?

Hi, I want to know how do you usually make e2e tests for Avalonia.
Is there any driver? Can I use Selenium C# or WinAppDriver?
Thanks

Only in-process tests are available yet. You can access Application.Windows and enumerate controls in the visual tree (e. g. FindControl<T>(name)). Then you can simulate input events like this: https://github.com/AvaloniaUI/Avalonia/blob/db9678041eb69d6e6ccb6d54dcec11dbd2c504ae/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs#L117

anything new about UI tests automation since 2018?

There was an effort to get a headless platform backend that even allowed to connect via VNC.
No selenium automation, one still has to find windows manually.

Headless backend exists for a while now, and recommended to use in e2e testing.
For non-headless scenarios we have automation support now in master branch and nightly builds, see https://github.com/AvaloniaUI/Avalonia/tree/master/tests/Avalonia.IntegrationTests.Appium

@maxkatz6 Great to know we can actually run e2e tests using WinAppDriver, coz that's exactly what we are attempting on our end!
That said, how can we inspect the controls/elements of an Avalonia app? I tried with inspect.exe (recommended by the WinAppDriver folks), but I can't get anything with that. One can see in the attached screenshot that no elements are listed in the inspect.exe tree-view, only the main app's window.

I've checked the integration tests repo you shared in your last comment, but couldn't find any info about that in the readme.md file. I see that your tests look pretty much like ours, so it is a relief to know we are on the right path. However, how can one find the "ButtonWithAcceleratorKey" automation ID or the "AcceleratorKey" attribute name having only the Avalonia app at hand? Which inspector tools I should be using to get those?
[PlatformFact(TestPlatforms.Windows)]
public void ButtonWithAcceleratorKey()
{
    var button = _session.FindElementByAccessibilityId("ButtonWithAcceleratorKey");

    Assert.Equal("Ctrl+B", button.GetAttribute("AcceleratorKey"));
}

@francisferreira hi! Which version of Avalonia are you using? Automation support was added only in 11.0-preview1 and newer.

@maxkatz6 Hey, thanks for the prompt reply!
Ah, I see. Our usage is bound to stable versions only, so we are using 0.10 at the moment (unfortunately for us)...
Just to be sure tho, if we were using 11.0-preview1+ would we be able to just use inspect.exe to get those elements?
And would there be any alternative we can use for older versions? XPath(ing) our way in the root window using only class names for our controls, perhaps? Or could we set automation/accessibility IDs in code for our Avalonia apps and look for those in our e2e tests? Until the next version is out, any help with this matter is highly appreciated.

@francisferreira it works with inspect.exe:

Or same with Accessibility Insights which shows a cleaner tree:

Not every control is mapped to the automation tree IIRC, @grokys might help here better with specific issues.
You can try to build small demo yourself with latest preview and see, if it is good enough for your needs.

And would there be any alternative we can use for older versions?

Well, automation API won't be backported. Too big a feature for that.

XPath(ing) our way in the root window using only class names for our controls, perhaps? Or could we set automation/accessibility IDs in code for our Avalonia apps and look for those in our e2e tests? The following is an example for a control we have for a textbox:

Not sure if I understand your specific requirements. But if you want to be able to search for a control from with some XPath-like syntax, you can traverse the visual tree (control.GetVisualChildren()) until you find it. Filtering by Name or type or maybe set custom attached properties. But I don't see how it would help integration with third party tools like inspect.exe (I am not sure if it's possible to write some kind of plugins there).

@maxkatz6 That's awesome, thanks man! Looking forward to the next Avalonia release.
About the workaround for 0.10, we don't care much about integration with inspect.exe (or other tools). I'll try and traverse the element tree with WinAppDriver the way you suggested. If that works and we can manipulate our controls like that, all is well.
Cheers!

Is it possible to test Avalonia UI by GTest?

Is it possible to test Avalonia UI by GTest?

GoogleTest is a general-purpose test framework (i.e. test execution, assertions, etc.) and does not offer UI automation APIs.


Update Menu Screen

Add menu scene with idling enemy.
Move camera on transition to / from the Settings screen.
Move AudioScene & LevelScene to scenes folder.
Make the enemy scream on play.

Added here.

Added here.


CAD-701: Move tx-gen to a separate cabal-package.

Issue

Move tx generator to a separate Cabal-package (https://jira.iohk.io/browse/CAD-701). Later it will be moved to a separate repo.

This PR results in breaking changes to upstream dependencies.

Checklist

[ ] This PR contains all the work required to resolve the linked issue.

[ ] The work contained has sufficient documentation to describe what it does and how to do it.

[ ] The work has sufficient tests and/or testing.

[ ] I have committed clear and descriptive commits. Be considerate as somebody else will have to read these.

[x] I have added the appropriate labels to this PR.

bors r+


Any possibility we can get an ARM version of Tumbleweed or Leap

We used to have one here. Right now it's not building, we can look into that in the next weeks.
However there's the problem about where we should push the image. The Docker Hub doesn't provide any distinction between x86 and ARM/Power/Z architectures.
A possible solutions could be:

docker pull opensuse/42.1:arm
docker pull opensuse/arm:42.1
docker pull opensuse/leap-arm:42.1

Other ideas are welcome :)

Awesome! I believe opensuse/arm:42.1 or opensuse/arm:tumbleweed works well.

My preference is to label the name spaces according to compiler triplet:

 docker pull opensuse/aarch64:42.1
 docker pull opensuse/armv7l:42.1
 docker pull opensuse/armv6l:42.1
 docker pull opensuse/ppc64:42.1

This also enables growth for any additional architectures that get added

I'm waiting to hear back from ARM as to whether they agree on this proposal, as there are plans to have root name spaces within the docker hub too.

@awafaa Any update on this? I've seen aarch64/ubuntu and aarch64/debian for instance. The former referenced in 96Boards CE Docker documentation.
Otherwise agreed that arm is too generic; I wonder whether it should rather be armv7hl and armv6hl, as on download.opensuse.org?

We already got these repos prepared on jenkins, but we have not configured any worker except for x86_64 so far:

aarch64: opensuse/aarch64:42.1
armv6l: opensuse/armv6l:42.1
armv7l: opensuse/armv7l:42.1
ppc64le: opensuse/ppc64le:42.1
s390x: opensuse/s390x:42.1
x86_64: opensuse/amd64:42.1

I started making my own, so If you wish you can close this issue.

We are build the base images for aarch64, armv7l, ppc64le and even s390x on OBS:

openSUSE Leap 42.2
openSUSE tumbleweed

We have to automate their publishing to the docker hub. I'll create an internal ticket for that.


rename navbar to header

Codecov Report

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

@@           Coverage Diff           @@
##           master     #617   +/-   ##
=======================================
  Coverage   92.51%   92.51%
=======================================
  Files          80       80
  Lines        2632     2632
  Branches        2        2
=======================================
  Hits         2435     2435
  Misses        195      195
  Partials        2        2

Continue to review full report at Codecov.

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


Build V-Sekai

Restore building v-sekai editor for all the platforms.

[x] Mac
[x] Windows
[x] Linux
[x] Android
[x] Web

Now build the game.


Validate OWNERS files - remove sections about emeritus reviewers

please see kubernetes/community#6334
Signed-off-by: Davanum Srinivas<EMAIL_ADDRESS>What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?
NONE

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

/assign @humblec
Thanks

/assign @Jiawei0227

/lgtm
/release-note none

/ok-to-test

/release-note-none

/assign @humblec

Hi, this seems like a duplicate of https://github.com/kubernetes-csi/csi-release-tools/pull/185 which is now merged

/close


test - hello

There shouldn't be a need to open PRs against this repo to have a working Web IDE. Simply forking it should work.


'further schema documentation' elements appear to be missing?

I can't seem to find the 'discriminator', 'readOnly', 'xml' etc keywords mentioned in your representation of the specification.. is that intentional?
https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#fixed-fields-13

That was a bug, I forgot to include the group fields with specific properties (e.g. the one that are not from JSON Schema). It's fixed now.

Excellent, thank-you very much for the quick resolution, this project has quickly become my favourite way to quickly lookup schema details.
:-)


Permissions Service Swagger Spec

Mock up initial stub of Swagger spec for permissions service

merged into PR for #180.


Disable react/prop-types in TypeScript files

Overview

TypeScript files don't need to check react/prop-types, so this disables that rule in them.

PR Checklist

[x] Related to JIRA ticket: WEB-1713
[x] I have run this code to verify it works
[x] This PR includes unit tests for the code change

📬Published Alpha Packages:@codecademy/eslint-config@7.0.1-alpha.aab87c.0


feat(spill): Align with the multi IO compression codec in spill

Which issue does this PR close?

Closes #656
Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

PTAL @richox , if this is OK, I will introduce independent config option to specify spill codec.

All done. cc @richox


Commas in Sample IDs break the internal manifests for per-sample fastq formats

This recently came up on the forum.

I'm not sure we can do much about that since the format is CSV. Users will need to quote any fields containing commas to "escape" the delimiter. Do you think describing this edge-case in the "fastq manifest" part of the importing tutorial would resolve the issue?

Couldn't we start emitting quoted fields and/or escaped fields in the internal manifest? It looks like we are already using pandas.read_csv, to read those manifests back into Q2, which should be able to handle quoted vs non-quoted editions of these files. I think we could do that in a backwards-compatible way, but maybe I am missing something! One gotcha is that there are a few places in the ecosystem where we grab the manifest and do some things with it, so depending on how that is currently implemented, there could be some unintended consequences 👿 .
I am up for documenting the edge case if we don't have a quick fix for this!

:+1: for updating the places where qiime2 is reading/writing manifests so they're compatible with commas. There'll still be the opportunity for users to run into the issue when they're writing their own manifest file (which they'll need to quote themselves), so some docs on the importing tutorial may be useful in addition to the q2-types updates. Does that sound good to you?

Sounds good to me (updating q2-types and documenting the edge case)!


wip! feature: Continuous encoding with per partition realtime offset space allocation back pressure

based on https://github.com/confluentinc/parallel-consumer/pull/44/files
Fixes

#47
#41

Blocked by:

#218

This is a very large change to the way the system works, and affects a lot of tests. POC is done, but will take some time to polish it.

Closing - Stale.


Add ecbo cloak to the showcase

Hi team!
Could you please add ecbo cloak to the showcase?
Thanks!

Unfortunately, we do not accept any PRs that modify the showcase, the list is now curated by hand.


feat(GraphQL): Support for Deleting Domains, Tags via GraphQL API

Summary
This PR includes a few important changes:

Adds support for Deleting Tags + Domains via the GraphQL API. This includes cleaning up references.
Add platform privileges specifically for creating new Tags & Domains, as this has been a point of confusion based on user feedback. This also allows folks to grant permission to create tags and domains, even though someone may not be able to delete any arbitrary tag or domain.
Add metadata privilege for deleting existing Tags & Domains so that owners are allowed to delete them if required (not just folks with full access to read and write tags - we should also add this to glossary entities)
Unit Tests

Validation
Validated the new behavior locally.
Checklist

[ ] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable). If a new feature has been added a Usage Guide has been added for the same.
[ ] For any breaking change/potential downtime/deprecation/big changes an entry has been made in Updating DataHub

nice! Thanks for adding delete privileges and allowing the possibility of only owners delete them!


Azure App Service Deploy fails with error message

Troubleshooting
I've gone through all log files and don't see a single error in them, the deploy actually still works, but, this task is failing with:
2019-01-30T15:58:19.1785372Z ##[section]Starting: Azure App Service Deploy: edge-component-explorer
2019-01-30T15:58:19.1789089Z ==============================================================================
2019-01-30T15:58:19.1789147Z Task         : Azure App Service Deploy
2019-01-30T15:58:19.1789224Z Description  : Update Azure App Services on Windows, Web App on Linux with built-in images or Docker containers, ASP.NET, .NET Core, PHP, Python or Node.js based Web applications, Function Apps on Windows or Linux with Docker Containers, Mobile Apps, API applications, Web Jobs using Web Deploy / Kudu REST APIs
2019-01-30T15:58:19.1789300Z Version      : 4.3.19
2019-01-30T15:58:19.1789336Z Author       : Microsoft Corporation
2019-01-30T15:58:19.1789385Z Help         : [More information](https://aka.ms/azurermwebdeployreadme)
2019-01-30T15:58:19.1789440Z ==============================================================================
2019-01-30T15:58:20.0072935Z Got service connection details for Azure App Service:'edge-component-explorer'
2019-01-30T15:58:21.8481651Z Package deployment using ZIP Deploy initiated.
2019-01-30T15:58:54.6873659Z Fetching changes.
2019-01-30T15:58:55.3642391Z Cleaning up temp folders from previous zip deployments and extracting pushed zip file /tmp/zipdeploy/45f7qib6.zip (74.59 MB) to /tmp/zipdeploy/extracted
2019-01-30T15:58:55.3642828Z An unknown error has occurred. Check the diagnostic log for details.
2019-01-30T15:58:55.3743631Z ##[error]Failed to deploy web package to App Service.
2019-01-30T15:58:55.3760545Z ##[error]Error: Package deployment using ZIP Deploy failed. Refer logs for more details.

Environment

Server - Azure Pipelines or TFS on-premises?

If using TFS on-premises, provide the version:

If using Azure Pipelines, provide the account name, team project name, build definition name/build number: account name: edgewebui, project name: Edge Web UI, build def name/number: "Edge Component Explorer - Deploy

Agent - Hosted or Private:

If using Hosted agent, provide agent queue name:

If using private agent, provide the OS of the machine running the agent and the agent version: Ubuntu

Issue Description
[Include task name(s), screenshots and any other relevant details]
Azure App Service Deploy - This uses Private build agents, running Ubuntu and MacOS.  I've had this task in both the Build and Release pipeline and I get the same error.  In build, I am using a YAML file.  On Release it's not an option so I'm using Visual Designer. I've looked at every log file on the Azure Web App (Linux) instance both the staging slot and production.  I don't see any clues why this error is happening.  The application runs Node 10.10 with Express server and the OS has AAD turned on for Microsoft.

Task logs
[Enable debug logging and please provide the zip file containing all the logs for a speedy resolution]
ReleaseLogs_38.zip
Error logs
The weird part is I don't see any errors in the error logs.
[Insert error from the logs here for a quick overview]

I believe this is now a Kudu issue:  https://developercommunity.visualstudio.com/content/problem/435623/zipdeploy-from-azure-devops-task-failing-in-pipeli.html

do we have any workaround this...

Do you have a fix for this issue

Was this issue solved?

Still having the issue on my pipelines

I had the same issue with this. after that changing the deployment command package directory which is read from the build file folder path.
After giving the correct path deployment was successful for me.

Issue persists

Hey @awentzel, good to see you on here... did you ever make any progress? I hit this on a personal coding project over the break... sigh!

Just a quick update from my side: issue got resolved after changing the plan for the web app services. Once I did that, the issue got resolved. Tried the same a few times more and experienced failed deployment on free plan only. Thank you.

For me it was the incorrect path settings as @Ashanmg mentioned. We were deploying the zip package to storage and using WEBSITE_RUN_FROM_PACKAGE to read it (https://docs.microsoft.com/en-us/azure/azure-functions/functions-deployment-technologies#trigger-syncing). But the URL set was incorrect and the path (SAS setting) was not correct.
Evaluating the URL path manually resolved the issue for me. To me it felt like a zip was incorrectly ready and empty folder within /tmp folder was getting read

For me it was the incorrect path settings as @Ashanmg mentioned. We were deploying the zip package to storage and using WEBSITE_RUN_FROM_PACKAGE to read it (https://docs.microsoft.com/en-us/azure/azure-functions/functions-deployment-technologies#trigger-syncing). But the URL set was incorrect and the path (SAS setting) was not correct.
Evaluating the URL path manually resolved the issue for me. To me it felt like a zip was incorrectly ready and empty folder within /tmp folder was getting read

This is what I work with for the past one year. It fails very often and think of the embarrassment when it fails in Production. A retry will always make it deploy, but in Production I have to explain to so many people. Microsoft just publishes half-baked stuff and senior managers buy it and now I have to suffer. No, this is not just the one issue with Azure functions.

I experienced this issue today on a Linux Azure App Service after I changed from a win2016 agent to a ubuntu-latests.
Reading @sijucm "work around" I tried re-deploying and it worked.

This issue still plagues our deployments. We currently deploy 11 Azure Functions in one pipeline and regularly hit four or five retries before it will go through. All fail with the same result, all succeed on the next attempt (but a latter one will likely fail and force another attempt).
Going to each of the 11 functions and disconnecting them in the deployment center seems to lessen the chance of it happening but eventually the error will return.

Just got same same error message when deploying from Github (Azure App Service)

This still happens to me but only with Linux web apps. The windows based ones always work

Thanks for WEBSITE_RUN_FROM_PACKAGE settings!

Deploy to linux app service 70% of the time deployment failed, or very slow (>= 7 mins at least), meanwhile window deployment takes around 30 sec to complete, please reopen this issue

I am facing the same issue while deploying a react frontend to the web apps (linux), I tried using the deployment center to setup the pipeline but the pipeline is failing after running for 1 hour . I have two pipelines one deploying to web app (windows) and its working fine. Below is the error message ;
"Package deployment using OneDeploy initiated.
Error: Failed to deploy web package to App Service.
Error: Deployment Failed, Error: Failed to deploy web package using OneDeploy to App Service."


[Bug] Test-DbaDbCompatibility unnecessarily skips database when IsAccessible equals false

Environmental information
PowerShell version:
Name                           Value

PSVersion                      5.1.14393.3053
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.14393.3053
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
dbatools Module version:
Name    : dbatools
Path    : C:\Program Files\WindowsPowerShell\Modules\dbatools\1.0.68\dbatools.psd1
Version : 1.0.68
SQL Server:
Microsoft SQL Server 2017 (RTM-CU17) (KB4515579) - 14.0.3238.1 (X64)   Sep 13 2019 15:49:57   Copyright (C) 2017 Microsoft Corporation  Standard Edition (64-bit) on Windows Server 2016 Standard 10.0  (Build 14393: ) (Hypervisor)
Report
Test-DbaDbCompatibility unnecessarily skips database when IsAccessible equals false. All the properties required are available when IsAccessible equals false. Removing this check would allow users with view server state permission to execute this cmdlet.
I Checked the required properties using Connect-DbaInstance against SQL Server 2008 and 2017:
Connect-DbaInstance -SqlInstance ***** | Select -ExpandProperty Databases | Select Name, IsAccessible, CompatibilityLevel | ft
Name   IsAccessible CompatibilityLevel

master         True         Version140
model         False         Version140
msdb           True         Version140
tempdb         True         Version140
u*****        False         Version140
Host used

[X] powershell.exe
[ ] ISE
[ ] VS Code
[ ] Other (please specify)

If anything other than powershell.exe was used, please confirm that you can duplicate the issue with powershell.exe

[ ] Still buggy in powershell.exe

Errors Received
No error or warning. Databases are skipped silently
Steps to Reproduce
Execute Test-DbaDbCompatibility against a database that is not accessible to the user with view server state permission.
Expected Behavior
Test-DbaDbCompatibility should report on databases that are not accessible to the user with view server state permission.
Actual Behavior
Databases are skipped silently

What is your proposed method to access the database when it is not accessible via SMO?

We utilize SMO in this command and when the property is false there is no possible way to read the database properties via SMO.
https://github.com/sqlcollaborative/dbatools/blob/821c2e423fd2439b8d99a8e0a9248fe9c4c92d9c/functions/Test-DbaDbCompatibility.ps1#L81
While T-SQL DMVs could gather the information we have no plans to put a "backup" method into every command at this time.

I think this is very similar to #6192
Test-DbaDbCompatibility uses database properties Name and CompatibilityLevel. Both are available in at least Normal, Standby, Restoring and "Offline, AutoClosed", all with IsAccessible equals false.


twister: add 10 hexadecimal digits to version

In https://testing.zephyrproject.org/daily_tests/versions.json, all tags have 10 hexadecimal digits.  But sometimes when I run twister on different hosts, the following command will use the default 7 hexadecimal digits as the abbreviated object name.
https://github.com/zephyrproject-rtos/zephyr/blob/fe8311843285b93951adfdb55c411dffe4bf78ca/scripts/pylib/twister/twisterlib.py#L2583
The generated xml file will contain a tag that  version.json doesn't have. So I think it's necessary to add --abbrev=10 to prevent twister using the default 7 hexadecimal digits as the abbreviated object name.
Signed-off-by: Jingru Wang<EMAIL_ADDRESS>

@wangnuannuan I guess that's because on some machines you use older Git which used to have 7 as a default.
But since Git v2.11 default abbreviation size gets calculated automatically, see https://github.com/git/git/commit/e6c587c733b4634030b353f4024794b08bc86892.
But indeed some pre-defined value might be good for us here... though to be more future proof maybe use 12 digits?

though to be more future proof maybe use 12 digits?

checkpatch currently requires minimal 12 characters for a SHA1 referenced in a commit message, so 12 would have some justification.


Add Prettier + pre-commit hook

Add Prettier + pre-commit hook
Run Prettier

Needs to be merged after #4

Same comment as in #4 - I'm all for using code formatting tools, but please keep the existing code style intact (except of course in places where it might not be consistent).

Just like in #4, it's hard to automate using ESLint + Prettier without changing the code style, since Prettier is a lot more opinionated about it.

After the changes merged in #4, and given that prettier is very opinionated, does it still make sense to add this?

@woubuc Since @prettier really is a standard nowadays, I'd like to use it to automatically fix all the rules.
The only rule that won't be possible anymore (because it's indeed opinionated) is @typescript-eslint/type-annotation-spacing.
The indent & quotes rule can be removed, since they're now handled by Prettier

Tbh, I'm not liking prettier so far. It's a very opinionated piece of software, which on itself isn't a bad thing, but since the code style in this project is significantly different from its standard it just doesn't seem like a good fit. I also see code style issues that we addressed in #4 (like the spacing around :) pop up again in this PR.
What is the benefit of using prettier here? What issues does it catch that a regular eslint doesn't?

Prettier is the to go code formatter nowadays.
https://prettier.io/docs/en/why-prettier.html
The only opinionated thing they have and that's not in the current style (and the community is accepting) is the spaces thing.

The first paragraph says (emphasis mine):

By far the biggest reason for adopting Prettier is to stop all the on-going debates over styles. It is generally accepted that having a common style guide is valuable for a project and team but getting there is a very painful and unrewarding process.

Arguably, a code style already exists in this project, as evidenced by the existence of both an .editorconfig and a tslint config file. So the only debate here is about sticking to the code style, which is what a linter like tslint or eslint is for.
As I see it, prettier is just not the right tool for this particular code style. It's designed to be zero-config and provide an out-of-the-box code style which is significantly different from the one used in this project, so adding it here feels kind of forced and seems like a step in the wrong direction.
I'm all for using tooling to get consistently formatted code and to help developers. But I think the eslint rules we have now, combined with the editorconfig (and a smidge of common sense) are enough to achieve that goal. Especially considering this is a tiny API wrapper for a relatively obscure platform with at this moment 1 weekly download on npm. So it's not like we get hundres of contributors that need to be managed/guided anyway 😄
I'm going to close this PR for now, because I feel we're putting a lot of time and effort into this without much added benefit. I propose we discuss any problems with the code style or its enforcement as they arise.

The thing I wanted to achieve by introducing Prettier, is to enforce the code-style.
Right now I can make commits that don't apply to the specified code-style.
When having Prettier & the pre-commit hook in place, this won't be possible anymore.
Really the only thing that'll change is the @typescript-eslint/type-annotation-spacing rule that's not applied anymore, that's all.
I know this is a small package, but it still makes the world a bit better imo if new contributors (or reviewers) have a thing less to think/care about when this would be in place.

I still don't see why you need prettier to do this. What does it do more that eslint doesn't already do? Can you give me a concrete example of code that you would reasonably write that eslint doesn't catch?

I'm not saying ESLint can't catch it.
I'm just saying that when using the pre-commit hook, the formatting wil automatically be applied if your code doesn't apply to the ESLint rules.

I'm with you on that one. If you want to add a pre-commit hook to run eslint I'll gladly merge that PR.

Prettier not only format's the JS/TS files but will also format the MD/JSON files in this repo.
It can also format HTML/CSS/YAML/... files (https://prettier.io/docs/en/index.html) if they'll ever be included in this repo.
Will look into how the @typescript-eslint/type-annotation-spacing can still be used.
Or we could just let that one go and let this one rule been taken out of our hands.
After all that's what Prettier's for: deciding in our place whether we like it or not.

Except I've already decided, so it's not up to prettier any more.
Let's put a stop to this discussion: I will not use prettier in this repository, and I will not consider merging a PR that adds it at this time. It does not fit the code style in this repository and adding it seems to cause more problems than it has benefits, as established by the excessive and unnecessary discussion in this PR.


RFC: Conditional placeholders

Summary:
Add functionality to define conditional placeholders based on the input of
previous placeholders. Conditional placeholders aren't prompted for unless their
condition holds true. This should also simplify some cases of template conditionals.
Design:
A conditional placeholder defines a list of prompt_if values. Each value
contains a placeholder key and an operator key.
The placeholder value points to a defined placeholder for which the operator
applies to. A templating error is emitted if no placeholder is found.
All operations resolve to a boolean.  The conditional placeholder is prompted
for if all of its prompt_if values resolve to true. The placeholder will
resolve to liquids Nil type if that isn't the case.
Operators
The initial implementation will limit itself to two operators: equals and
not_equals. These can of course be expanded upon if necessary.
equals, as the name suggests, requires both type and value to be exact
matches. not_equals, requires matching types but different values for it to
resolve to true. Mismatched types should emit templating errors.
Example:
[placeholders.git_host]
prompt = "Repository hosting provider"
choices = ["GitHub", "GitLab", "None"]
type = "string"

[placeholders.book]
prompt = "Create an mdBook template?"
choices = ["yes", "no"]
type = "string"

[placeholders.publish_book]
prompt = "Publish the mdBook to repository's static pages service?"
choices = ["yes", "no"]
type = "string"

[[placeholders.publish_book.prompt_if]]
placeholder = "book"
equals = "yes"

[[placeholders.publish_book.prompt_if]]
placeholder = "git_host"
not_equals = "None"

Alternatives
Simply use Rhai init script to avoid bloating cargo-generate.toml features.

Changed my mind, migrating to Rhai scripting was well worth it.


Replace ChatGPT API with Gemini API

Description:
The current system uses the ChatGPT API for generating summaries. We need to switch to the Gemini API to improve accuracy and performance.
Tasks:

[ ] Research the Gemini API and its documentation to understand how it works.
[ ] Refactor the code to replace ChatGPT API calls with the Gemini API.

[ ] Update authentication methods and environment variables as needed.
[ ] Ensure any necessary changes to input/output formatting between the two APIs are handled.

[ ] Run tests to verify that the new API produces accurate and high-quality summaries.
[ ] Monitor performance and ensure there is no significant latency introduced by the switch.
[ ] Update the project documentation (README.md) to include instructions for setting up the Gemini API (e.g., API keys, environment setup).

Acceptance Criteria:

The system uses the Gemini API instead of the ChatGPT API for summarization tasks.
The Gemini API integration works seamlessly, and test results show improved or equal quality compared to the previous setup.
Documentation reflects the new setup requirements for using the Gemini API.

I'm interested in doing it! Can you assign this issue to me?

@IngaleChinmay04 assigned!


ImportExport can no longer be run at command line

/t:testtenant import file /Filename:C:\temp\recipes\testimport.xml

will fail due to Orchard.ImportExport.Providers.ImportActions.ExecuteRecipeAction L156.
_orchardServices.WorkContext.HttpContext.Server.ScriptTimeout = RecipeExecutionTimeout;

assumes an HttpContext, but none is provided when executing from command line (apparently a context used to be provided - I think this is recent refactoring on the develop branch)

recommended fix is
if (_orchardServices.WorkContext.HttpContext != null)
{
    _orchardServices.WorkContext.HttpContext.Server.ScriptTimeout = RecipeExecutionTimeout;
}


ENH: added attributes low and high pass to FLM for parity with Nilearn NiftiMasker

Solving issue #293

In the design_matrix.py file, the period_cut is converted in frequency on the line 103 (inside the function _cosine_drift):
https://github.com/nistats/nistats/blob/e6621dac6d5dc6507d553b8c1c0ae471b8f4676c/nistats/design_matrix.py#L103
We can state hfcut=high_pass and set the default value of high_pass=0.01Hz in the class FirstLevelModel inside first_level_model.py
We will also deprecated the period_cut parameter.
@bthirion

Here're the factors for our consideration and what we plan to do about them:

Several private functions have a default arg for period_cut. We will remove the default args, since they make maintenance harder and functionality more opaque. Private functions should not have any default options at all.

We set the default arg for period_cut in FirstLevelModel & make_first_level_model_design_matrix to None, and add high_pass=0.01, low_pass=None. If the user specifies a period_cut value, we  convert the period_cut value to Hz and pass it to high_pass.

If a user manually sets values for both period_cut & high_pass (and this will be new code, not existing code), low_pass, we raise an error telling them to choose high_pass& low_pass.

We issue a DeprecationWarning, advising against the use of period_cut.

For 3. I'd not raise an error. I would spit a wrning, and only take into account the high_pass value.
LGTM otherwise.

We have run the tests and we get an error in the test_dmtx.py, line 183. len(names) = 4, but it shall be 8. We believe the 4 drift regressors are not properly defined anymore because we have set low_pass to None. Shall we also have a default value for low_pass? What about 0.08Hz?

.08hz is probably the closest match to what people do in practice.
+1 for it.
B

It just occurred to me that in Python 2 / does an internet division not a
floating point division. So using .  to convert the existing value of
period cut may also be necessary.
Let's try that as well before setting a default low_pass value.
On Tue, Mar 26, 2019, 18:35 bthirion<EMAIL_ADDRESS>wrote:

.08hz is probably the closest match to what people do in practice.
+1 for it.
B
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/nistats/nistats/pull/322#issuecomment-476764348, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AH0rxFGSbKaPrAua7G5MkKiO4faE45bDks5valp2gaJpZM4boiVl
.

Yes, it seems that was the problem. I changed it in both first_level_model.py and design_matrix.py and the error disappeared. I got a new one, though, inside the function test_cosine_drift:
https://github.com/nistats/nistats/blob/e6621dac6d5dc6507d553b8c1c0ae471b8f4676c/nistats/tests/test_dmtx.py#L100
Here the traceback:
======================================================================
FAIL: nistats.tests.test_dmtx.test_cosine_drift
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/analu/nistasts_py27_dev/local/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/volatile/mygit_repos/nistats/nistats/tests/test_dmtx.py", line 101, in test_cosine_drift
    assert_almost_equal(spm_drifts[:, 1:], nistats_drifts[:, : -2])
  File "/home/analu/nistasts_py27_dev/local/lib/python2.7/site-packages/numpy/testing/_private/utils.py", line 572, in assert_almost_equal
    return assert_array_almost_equal(actual, desired, decimal, err_msg)
  File "/home/analu/nistasts_py27_dev/local/lib/python2.7/site-packages/numpy/testing/_private/utils.py", line 1007, in assert_array_almost_equal
    precision=decimal)
  File "/home/analu/nistasts_py27_dev/local/lib/python2.7/site-packages/numpy/testing/_private/utils.py", line 752, in assert_array_compare
    raise AssertionError(msg)
AssertionError:
Arrays are not almost equal to 7 decimals

(shapes (20, 3), (20, 399) mismatch)
 x: array([[ 0.3152529,  0.3123345,  0.3074904],
       [ 0.3074904,  0.281761 ,  0.2404615],
       [ 0.2921564,  0.2236068,  0.1210151],...
 y: array([[ 0.3152529,  0.3123345,  0.3074904, ...,  0.3074904,  0.3123345,
         0.3152529],
       [ 0.3074904,  0.281761 ,  0.2404615, ...,  0.2404615,  0.281761 ,...

I also got some UserWarnings that might be related:
https://github.com/nistats/nistats/blob/e6621dac6d5dc6507d553b8c1c0ae471b8f4676c/nistats/design_matrix.py#L501
https://github.com/nistats/nistats/blob/e6621dac6d5dc6507d553b8c1c0ae471b8f4676c/nistats/utils.py#L276

@alpinho do you plan to finish the PR ?

@alpinho do you plan to finish the PR ?

Yes! I am.

Closed in favour of PR #351


Urgent: Request for removing "destranetwork.io" from io/all.json

Our unified dApp, hosted on the domain destranetwork.io, has been mistakenly flagged as phishing in this repository. This is our legitimate domain, which can be verified via the 'Get Started' link located in the hero section of our official landing page (destra.network). Please remove this flag at your earliest convenience, as it is affecting our community.
For further verification, we are also willing to confirm the authenticity of destranetwork.io through our official X handle, @destranetwork .

Our unified dApp, hosted on the domain destranetwork.io, has been mistakenly flagged as phishing in this repository. This is our legitimate domain, which can be verified via the 'Get Started' link located in the hero section of our official landing page (destra.network). Please remove this flag at your earliest convenience, as it is affecting our community.
For further verification, we are also willing to confirm the authenticity of destranetwork.io through our official X handle, @DestraNetwork .

Done! and sorry for that, it happens rarely.


IJAB logo links to a non existing page

to https://www.ijab.de/aktivitaeten/internationale-zusammenarbeit/epartizipation-youthpart/
Might need to be updated with new sponsor anyway, postponing until then.

fixed


New cop to check for better string/array call chain ordering

Example
# bad
str.upcase.strip

# good
str.strip.upcase

With the # good case we are possibly making the string shorter first for the next operation.
Benchmark
# frozen_string_literal: true

require "bundler/inline"

gemfile(true) do
  source "https://rubygems.org"
  git_source(:github) { |repo| "https://github.com/#{repo}.git" }
  gem "benchmark-ips"
end

str = "  \n foobar\n\t"

Benchmark.ips do |x|
  x.report("strip.downcase") do
    str.strip.downcase
  end

  x.report("downcase.strip") do
    str.downcase.strip
  end

  x.compare!
end

Warming up --------------------------------------
      strip.downcase   388.792k i/100ms
      downcase.strip   293.851k i/100ms
Calculating -------------------------------------
      strip.downcase      3.972M (± 1.7%) i/s -     20.217M in   5.091185s
      downcase.strip      2.933M (± 2.2%) i/s -     14.693M in   5.011026s

Comparison:
      strip.downcase:  3972156.8 i/s
      downcase.strip:  2933439.7 i/s - 1.35x  (± 0.00) slower

This could also handle cases like:
# bad
str.{upcase,downcase}.[l/r]strip

# good
str.[l/r]strip.{upcase, downcase}

# bad
str.map(&:upcase).map(&:strip)

# good
str.map(&:strip).map(&:upcase)

# bad
arr.map {...}.compact

# good
arr.compact.map {...}

and many more.

Note, the following case is already detected by Performance/MapCompact:
# bad
arr.map {...}.compact

https://docs.rubocop.org/rubocop-performance/cops_performance.html#performancemapcompact

Sorry for hijacking, but I think we should also check where it's good to suggest #filter_map over #map + #compact when using Ruby >= 2.7. 🙂
https://blog.saeloun.com/2019/05/25/ruby-2-7-enumerable-filter-map.html