Add sticky-file-header feature

Resolve #5459
Test URLs

https://github.com/refined-github/refined-github/commit/1d9dd9f0208c327351512beb6d6a22279bc47807
https://github.com/refined-github/refined-github/compare/22.2.13...22.2.22#diff

Screenshot
https://user-images.githubusercontent.com/44045911/156828581-eea2ce6a-91a0-48da-9634-f64a9b453fd2.mov

this could become pure CSS.

Nope, those are .js-* classes and they are called that for a reason:
// https://github.githubassets.com/assets/app/assets/modules/github/behaviors/sticky.ts
observe('.js-sticky', {
  constructor: HTMLElement,
  add(el) {
    initializeSet(el)
  },
  remove(el) {
    removeSet(el)
    manageObservers()
  }
})

What's the reason exactly? I don't see it. What I see is that 2 lines of CSS work as expected in this case:

// https://github.githubassets.com/assets/app/assets/modules/github/behaviors/sticky.ts
// `position: sticky` behavior that works with the notification shelf
// ...
// - Ensures that any sticky headers that are on the same page as the notifications shelf sit below it vertically, rather than hidden underneath the shelf

I forget it needs selector-observer for lazy loaded items 🥲

Could we maybe check for the the presence of a notification bar (ideally via CSS) and adjust accordingly?

Could we maybe check for the the presence of a notification bar (ideally via CSS) and adjust accordingly?

Yes:
.file-header {
	position: sticky;
	top: 0;
}
.notification-shelf ~ .application-main .file-header {
	top: 70px;
}

@kidonng I hope in the future we can reach these solutions without snark like:

and they are called that for a reason:


Problem in account_link_client.py

When I tried sddc_crud.py to create sddc with python2.7 or python3, I got following error.
This seems something wrong in account_link_client.py.
Example: Create a SDDC (sddc-single-nk) in org xxxxx-org-id-xxxx:
Traceback (most recent call last):
File "samples/vmc/sddc/sddc_crud.py", line 227, in
main()
File "samples/vmc/sddc/sddc_crud.py", line 219, in main
sddc_operations.create_sddc()
File "samples/vmc/sddc/sddc_crud.py", line 119, in create_sddc
self.org_id)
File "/usr/lib/python2.7/site-packages/com/vmware/vmc/orgs/account_link_client.py", line 280, in get
'provider': provider,
File "/usr/lib/python2.7/site-packages/vmware/vapi/bindings/stub.py", line 345, in _invoke
return self._api_interface.native_invoke(ctx, _method_name, kwargs)
File "/usr/lib/python2.7/site-packages/vmware/vapi/bindings/stub.py", line 281, in native_invoke
self._rest_converter_mode)
File "/usr/lib/python2.7/site-packages/vmware/vapi/bindings/converter.py", line 1092, in convert_to_python
binding_type.accept(visitor)
File "/usr/lib/python2.7/site-packages/vmware/vapi/bindings/type.py", line 40, in accept
visitor.visit(self)
File "/usr/lib/python2.7/site-packages/vmware/vapi/lib/visitor.py", line 43, in visit
return method(value)
File "/usr/lib/python2.7/site-packages/vmware/vapi/bindings/converter.py", line 618, in visit_list
for elt_value in in_value]
File "/usr/lib/python2.7/site-packages/vmware/vapi/bindings/converter.py", line 605, in _visit_list_element
self.visit(typ)
File "/usr/lib/python2.7/site-packages/vmware/vapi/lib/visitor.py", line 43, in visit
return method(value)
File "/usr/lib/python2.7/site-packages/vmware/vapi/bindings/converter.py", line 854, in visit_reference
self.visit(typ.resolved_type)
File "/usr/lib/python2.7/site-packages/vmware/vapi/lib/visitor.py", line 43, in visit
return method(value)
File "/usr/lib/python2.7/site-packages/vmware/vapi/bindings/converter.py", line 740, in visit_struct
in_value.get_field(field_name), field_type)
File "/usr/lib/python2.7/site-packages/vmware/vapi/bindings/converter.py", line 696, in _visit_struct_field
self.visit(typ)
File "/usr/lib/python2.7/site-packages/vmware/vapi/lib/visitor.py", line 43, in visit
return method(value)
File "/usr/lib/python2.7/site-packages/vmware/vapi/bindings/converter.py", line 1057, in visit_date_time
self._in_value.value)
File "/usr/lib/python2.7/site-packages/vmware/vapi/bindings/datetime_helper.py", line 169, in convert_from_rfc3339_to_datetime
match = DateTimeConverter._rfc3339_dt_expr.match(datetime_str)
TypeError: expected string or buffer

I tried orgs.account_link.ConnectedAccounts in my python scripts, I got same error.
vmc_client.orgs.account_link.ConnectedAccounts.get("xxx-org-id-xxxxx")

Hi @norikuro
We are working on this issue.
thanks
Kunal

This issue is now fixed.


Add new strategy: SearchEngine5

Add new strategy: SearchEngine5

https://github.com/Ahwxorg/librey/

Done


Move repo into rust-amplify org

Since this crate has nothing to do with encryption and privacy-preserving networking per se (which is a goal of this github org) and rather is a generic-purpose network service library I plan to move it into https://github.com/rust-amplify organization where it seems to be more appropriate (it already contains few other microservice- and networking-related crates).
I'll do that next week if I wouldn't receive objections from @zkao @cryptoquick and @Lederstrumpf
NB: While this crate is still used in LNP/BP nodes, from v0.10 they will switch from it onto https://github.com/rust-amplify/io-reactor thus this move wouldn't affect projects like RGB, LNP etc (a note for @zoedberg @nicbus)

That makes sense. Will this also be a part of the move away from ZMQ?
Also, be sure to take a look at Nakamoto's reactor model for inspiration: https://github.com/cloudhead/nakamoto/tree/master/net

@cryptoquick the Nakamoto reactor was the starting point for creating  https://github.com/rust-amplify/io-reactor; in fact io-reactor IS nakamoto reactor with some slight enhancements (like more generic, able to work with worker threads etc).
As for ZMQ, yes, eventually all repos will move out of it

Excellent! Maybe you can offer a PR to replace the Nakamoto reactor, then; that might help reduce maintainership burden, and generalize their implementation.

We discussed with @cloudhead that eventually Nakamoto will use the new reactor - but still have a lot of other priorities to do before that

After certain considerations I decided not to do that. First, it introduces circular dependencies, since this repo depends on other repo from this org (internet2), which in turn depends on repos from @rust-amplify org. Second, microservices were designed for running microservice architectures using mixnets, encryption etc, so it seems that this org is the right place for it.
With netservices v0.1 release I am moving all our nodes to it, but eventually here I will put some higher-level code to build nodes and servers with microservice architecture using stuff from netservices and reactor


Creating Connection object failed on EOF

Hi @mostafa ,
I have been tried to create new Connection object for control my creation and deletion off topic via my test but i get error of Failed to get controller., OriginalError: EOF  error="Failed to get controller., OriginalError: EOF", I'm trying to connect to my kafka cluster in Confluent Cloud.
For new Writer or new Reader it is not happening and i verified my role (I'm ClusterAdmin and EnvironmentAdmin).
My environment:
kafka cluster - Confluent Cloud
k6:
k6 v0.49.0 (go1.21.0, darwin/arm64) Extensions:   github.com/grafana/xk6-output-influxdb v0.4.2, xk6-influxdb [output]   github.com/mostafa/xk6-kafka v0.22.0, k6/x/kafka [js]

Hey @AdiHaim,
Can you provide a snippet? Please remove sensitive information before posting.


Add test case for SmallData

From https://github.com/SteamDatabase/ValveResourceFormat/issues/22

Done: https://github.com/SteamDatabase/ValvePak/commit/6df0cea5e91cc1c6b6895a6ab09d9ff37a9c6e75


RHS expression type in assignment incorrectly inferred

To completely fix #1587 TypeScript should also support:
function repro(message: Object | Object[]) {
    if (message instanceof Array) {
        message = message.filter;  // error
    }
}

Currently it results in Property 'entries' does not exist on type 'Object | Object[]'. It seems message on the RHS switches from Array back to Object | Object[] prematurely.
Workaround:
function workaround(message: Object | Object[]) {
	var theMessage = message;
    if (theMessage instanceof Array) {
        message = theMessage.filter;
    }
}

The current design is that type guards narrow down the known constituent types of a union type, but they don't narrow to anything just based on the instanceof operator. Otherwise there'd be no need to use a union type here at all, you could just type message as any and let type guards do the rest.

I thought that was what my example did, narrow down the constituents of the union type. Here's another example:
class Uri {
	uriString: String;
 }

function repro(uri: String | Uri) {
    if (uri instanceof Uri) {
        uri = uri.uriString;
    }
}

function workaround(uri: String | Uri) {
	var theUri = uri;
    if (theUri instanceof Uri) {
        uri = theUri.uriString;
    }
}

I certainly wouldn't want to type uri as any.

I believe the reason you're getting issues in both examples is because type-guards don't narrow variables in scopes where you assign to those variables.

@DanielRosenwasser, that's what it feels like to me too. It seems to assign one type to the entire code block, in this case the if block. It doesn't recognize that before the assignment the type guard is in effect, and after the assignment acquires a different type.

Sorry, I misread the original example. @DanielRosenwasser is right, the issue is related to the assignment rule we have for type guards.

Basically duplicate of #2388, then?

@RyanCavanaugh, pretty close. Could be used as another test case.


The Problem of DMX Address Unable to be Saved

The DMX address cannot be changed while the port can be changed, and the save button is ineffective.
Minecraft：1.20.1 Fabric
Mod: 1.0.0-alpha22

To clarify you mean the DMX address in the ArtNet settings menu? Could you provide a screenshot?

👇

After I entered the content and clicked the save button, when I opened it again after exiting, I found that it didn't show up.

DMX address in this UI is not he IP address, it is the DMX address IE, from 1-512. The IP address for the network needs to be configured by pressing escape, going to Settings and then ArtNet Settings.

Thank you for your reply. I'll give it a try later.

I'm sorry for the trouble I've caused you.
😊😵


On FreeBSD check for EMLINK when expecting ELOOP and on NetBSD check for EFTYPE

See: https://man.freebsd.org/cgi/man.cgi?query=open&sektion=2&n=1#end
Essentially FreeBSD had NO_FOLLOW before it was standardised and chose to use EMLINK whereas the standard uses ELOOP. Without this PR it's not possible to delete directories containing symlinks on FreeBSD. See https://github.com/rust-lang/rustup/issues/4022#issuecomment-2363550179
Update: And NetBSD uses EFTYPE https://man.netbsd.org/open.2#ERRORS
I decided to test both error codes in case newer versions of FreeBSD or NetBSD follow the POSIX specified errno.

I decided to test both error codes in case newer versions of FreeBSD or NetBSD follow the POSIX specified errno.

Hmm... I'm having second thoughts about that. Considering it's security sensitive, maybe we should just check the documented errno?

Oh right. I'll need #[cfg] here because the errnos don't exist on all platforms.


Show versions in the report for all dependencies

I can see that the report shows the versions only for the dependencies that have vulnerabilities. How can I modify the code to show the versions for all dependencies irrespective of whether they contain vulnerabilities or not? I would like to use this tool for inventory purposes as well. So the versions would really help.

All dependencies and versions are included in the HTML, XML, JSON, etc. reports. I'm confused as to the question?
The HTML report does have a link near the top that shows all dependencies - by default it only shows the vulnerable dependencies.

@jeremylong Yes, I am aware of the link to show all dependencies. Upon selecting it, I am viewing the list of dependencies, but the package column has no value. Attaching the screenshot for your reference.

In some cases we do not have enough information to generate a package-URL identifier. This is generally the case when we are scanning files (like JS) on disk that are not being managed by some form of package manager.


Django Specific Enhancements

Enhancement Proposal
Hi,
I've been following the dev of this Gunicorn charm and it is a really cool general charm. What I'm hoping for is the ability to use it with my Django application which I feel has a pretty common workflow (even across non Django applications). Before I can do that however there are 2 things missing. To mold it to my needs, I've lifted a lot of the charm logic and made a specific charm for my application but I'm hoping I can switch over to this charm again when/if it fits my use case (my attempt at that can be seen here).
1. Nginx Sidecar
In order to server static files for my Django app I need Nginx setup as a sidecar container with the static files in the container and a config file for Nginx. Currently I've emulated what's done in the Indico operator charm and I have an image that installs Nginx and populates the static files + config and I deploy that alongside my workload container.
I can think of some options to accomodate this,

Create an additional resource in metadata.yaml that would accept an nginx image we could use for serving up static files. The user then needs to create a separate image with the static files and Nginx config and supply that image when deploying the gunicorn charm.
Don't create an additional resource but instead add some logic to the charm to automatically fetch an Nginx image and populate it with resources from the workload container using pebble.

An additional setting could also be added to config.yaml like NGINX_ENABLED which could potentially enable/disable the Nginx functionality if an app doesn't require it?
Alternatively, and I'm not sure if this is the right approach,

Identify/create an Nginx charm that would relate to the gunicorn charm and request a config and a tar of static files? This wouldn't be a sidecar though and I'm not sure how scaling would work here.

2. Running schema migrations
For my application I require that schema migrations are run when the app is deployed. Currently I set my app not to startup automatically, only once Postgres is related and the schema migration is run does the app start. The flow is,
Deploy app (Blocked waiting for postgres) -> Postgres related -> Schema migration run (set a peer relation value so that we don't run the migration again) -> start Gunicorn server.
The challenge here is that to make it general, every app will have it's own command and set of pre-conditions. In my application/charm, the command resembles the following,
process = container.exec(
                command=[
                    "/usr/bin/python3",
                    "/code/manage.py",
                    "migrate",
                    "--noinput",
                ],
                environment={"DATABASE_URL": db_uri},
            )

where db_uri is obtained from
pg_data = self._stored.reldata.get("pg", {})
db_uri = pg_data.get("db_uri")

and the pre-condition is that the Postgres relation exists (i.e. db_uri is populated).
In a conversation with @mthaddon the idea came up that the entrypoint of the image could be used to define the command and the pre-condition can be verified by checking that the required environment variables are set. I imagine the environment variables would be templatted as is done in the config.yaml, so setting something like the following perhaps inside your dockerfile,
ENTRYPOINT DATABASE_URL={{pg.db_uri}} python3 /code/manage.py migrate --noinput

Those 2 issues are pretty much it. Happy to discuss or elaborate further on anything above. Really cool work going on here, thanks!

Thanks for the input. There's a fair amount to digest there, and we'll need to draw up some design documents for each one (although the second point may end up being more about documenting recommended behaviour than anything else). We'll look into this and update this ticket once we have a path forward.


MINIFI-488: Allow flow construction from YAML config

Thank you for submitting a contribution to Apache NiFi.
Please provide a short description of the PR here:
Description of PR
Moves core MiNiFi modules to NiFi codebase, allows the specification of a MiNiFi config.yaml to replace bootstrap.conf and nifi.properties and to provide a static flow in NiFi. This is part of a larger effort (MINIFI-422) to align MiNiFi and NiFi codebases. The first commit is from Aldrin Piri who led the way on this effort.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

[ ] Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not squash or use --force when pushing to allow for clean monitoring of changes.

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[x] Have you written or updated unit tests to verify your changes?
[ ] Have you verified that the full build is successful on both JDK 8 and JDK 11?
[x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI for build issues and submit an update to your PR as soon as possible.

reviewin'

Definitely pros and cons to both. If we incrementally bring over code from MiNiFi, we need to keep up to date with any commits that are happening in the MINIFI repo, plus there's the duplication as you mentioned. Working in a branch until MiNiFi is fully in NiFi means we have to keep up with commits in NiFi master on the branch, some of which may be fairly invasive.
If I had to pick, I think the branch strategy is the better of the two, as the code can be brought over "all at once" so to speak, and we don't have to worry about refactoring code that we bring in piecemeal. The final PR will be a beast but as you said we'll have to pay the price someday, better to only pay it once.
If you agree, I can close this PR and continuing working in my branch.

I think it is fair to do this piecewise.  Maybe make this a branch against our core repo and iteratively feed in PRs along the way?  Might help in striking the balance of getting the refactoring/inclusion correct without dropping a massive PR in there?

Ah you were talking about the middle ground the whole time, went right over my head :) So, I can push a branch called MINIFI-422 up to the Apache repo, then we can do PRs against that branch until it's ready as a single PR against master?

@mattyb149 Yeah, it seems to make sense.  If you are onboard with that approach, maybe we leave the lower commits as squashed items for each item we are tracking.  We can build on top of those with one or more commits for a given issue being worked.  Does that sound like a reasonable approach?


Seeing non responsive ingressgateway in redis tests

Bug description
In Redis Ratelimiting tests, we see ingressgateway becomes unresponsive and needs to be restarted for it to become responsive again.
Affected product area (please put an X in all that apply)
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ X] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Expected behavior
Ingressgateway is responsive all the time
Steps to reproduce the bug
Send a lot of traffic through ingressgateway
Environment where bug was observed (cloud vendor, OS, etc)
Istio Testing CircleCi
Additionally, please consider attaching a cluster state archive by attaching
the dump file to this issue.

Sample logs, this happened in IstioCtl Metrics test : https://prow.istio.io/view/gcs/istio-prow/pr-logs/pull/istio_istio/15593/integ-mixer-k8s-tests_istio/1365


Event Grid output binding missing Connection option

The worker's EventGridOutputAttibute is behind the WebJobs extension's EventGridAttribute regarding the Connection property. The worker should surface this as an option. It allows managed identity to be used instead of the topic key.
CC @nzthiago

duplicate of #1638


A few missing details

After the patch for DEFAULT in OPERATOR CLASS submitted, I've been able to perform a full roundtrip of pgmp.
The resulting schema had a few small differences:

CATEGORY = 'N' in CREATE TYPE
SORTOP = > in CREATE AGGREGATE
HASHES, MERGES in CREATE OPERATOR

everything else roundtripped perfectly, which is a great result I'd say.

Commit a65b8128fe takes care of TYPE CATEGORY clause.

Commit 38f8bbfbd0 adds the AGGREGATE SORTOP clause.


Provide the user a means to know is a security data is discontinued.

Expected Behavior

If data for a discontinued security is asked, e.g. JP225JPY for dates after October 2014, send a message to the user warning about lack of data.
Actual Behavior

The algorithm doesn't inform the user the data is not available nor indicates it cannot find the files.
Potential Solution

Make the SubscriptionDataReader aware of the available dates for each security.
Reproducing the Problem

The following algorithm shows the actual behavior with JP225JPY CFD.
    public class BasicTemplateAlgorithm : QCAlgorithm
    {
    	string _ticker = "JP225JPY";
        private Symbol _symbol;
        private Identity _price;

        public override void Initialize()
        {
            SetStartDate(2018, 05, 01);  //Set Start Date
            SetEndDate(2018, 06, 01);    //Set End Date
            SetCash(100000);             //Set Strategy Cash

            _symbol = AddCfd(_ticker, Resolution.Daily, Market.Oanda).Symbol;

            _price = Identity(_symbol.Value);
            PlotIndicator($"{_symbol.Value} Price", _price);
        }

        public override void OnData(Slice data)
        {
            if (!Portfolio.Invested)
            {
                SetHoldings(_symbol, 1);
                Log($"Purchased Security {_symbol}");
            }
        }
    }

System Information

Cloud.
Checklist

[x] I have completely filled out this template
[ ] I have confirmed that this issue exists on the current master branch
[x] I have confirmed that this is not a duplicate issue by searching issues

[x] I have provided detailed steps to reproduce the issue

Implementing this at the moment as a collection of statistics on every single file miss on the backtest.
Implementing as part of the Local Platform support; will be charted on the GUI with red-green grid area diagram
Closing for now.


adding Nicola to Camel reviewers

was interesting to see that @nicolaferraro  is not part of the Camel reviewers ...

/lgtm

/verify-owners


gstreamer1.0-plugins-base: drop custom cppflags

This is not need any more to build with gstreamer 1.18
Signed-off-by: Jose Quaresma<EMAIL_ADDRESS>
- What I did
- How I did it

Can one of the admins verify this patch?

@agherzan-ci ok to test

I have build it with DISABLE_VC4GRAPHICS = "1" as well as with DISABLE_VC4GRAPHICS = "0" and it build successful on both cases.

Thanks, @quaresmajose . Merged.


Improve code quality

What
This PR does code refactoring etc., to facilitate future development.

[ ] Do extensive unit testing.
[ ] Do an integration test.
[ ] Make evaluation KWJA-independent.
[ ] Flatten unnecessary structures.

Codecov Report

Merging #142 (20c265a) into dev (9264385) will increase coverage by 0.29%.
The diff coverage is 93.10%.

@@            Coverage Diff             @@
##              dev     #142      +/-   ##
==========================================
+ Coverage   65.98%   66.27%   +0.29%
==========================================
  Files          66       69       +3
  Lines        4927     4985      +58
==========================================
+ Hits         3251     3304      +53
- Misses       1676     1681       +5

Impacted Files
Coverage Δ

src/kwja/evaluators/char_module_metric.py
88.23% <88.23%> (ø)

src/kwja/evaluators/typo_module_metric.py
100.00% <100.00%> (ø)

src/kwja/evaluators/word_module_metric.py
100.00% <100.00%> (ø)

src/kwja/utils/word_normalize.py
80.37% <0.00%> (-0.38%)
:arrow_down:

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


Seperate color for SVG border and fill is not supported.

"fill-current text-teal-500" and "stroke-current text-red-500" works individually on svg items. But when I use them together to give border a different color then fill space "fill-current text-teal-500 stroke-current text-red-500", it fails as it takes only the last indicated text color,. I understand that this is because of the way it is referring the currentColor.
i don't know how to get around this but it is certainly a bug inherent due to indirect referencing of text color. Suggest if we have a work around for this corner case.
Also Ref: #249 which suggested another approach, but then was closed due to not have reached this corner case.

You can add your own custom colors to the fill or stroke utility:
https://tailwindcss.com/docs/fill/#customizing
https://tailwindcss.com/docs/stroke/#customizing
I would suggest just adding the stroke color and using fill-current with your text color class.
// tailwind.config.js
module.exports = {
  theme: {
   stroke: theme => ({
     'red': theme('colors.red.500'),
   })
  }
}

<svg class="fill-current text-teal-500 stroke-red" ...>

Thanks @royvanv . I will try it out.


Review report from "npm audit"

npm audit is reporting a few dependencies — not sure if / to what event any of them are actually issues.

I do see one low-severity vulnerability when I run npm audit, but I'm guessing that's new since I filed this issue.

yeah. that one is impossible to fix at the moment.


chore: Refactor compareInt function for improved readability

Re-submitting to try and reproduce CI issues.
Closes #77

Should we just merge https://github.com/apple/pkl-go/pull/77 instead of this one?

#77 was made to go green in CI, so this is no longer useful.


Should every exception thrown from the Link be of type LinkException?

I'm building my own link that utilizes dio for making HTTP requests instead of http library. dio have multiple types of errors should I remap them to a exceptions that extend LinkException?
for example, should I do the following or rethrow expectations other than the ones in the gql_link library?
} on dio.DioError catch (e) {
  if (e.type != dio.DioErrorType.RESPONSE) {
    final res = e.response;
    if (res.data is Map<String, dynamic>) {
      final parsedResponse =
          parser.parseResponse(res.data as Map<String, dynamic>);
      throw DioLinkServerException(
          response: res, parsedResponse: parsedResponse);
    }
  }else if (e.type == dio.DioErrorType.CONNECT_TIMEOUT){
    throw DioLinkTimeoutException(originalException:e);
  }
  else if(...){
    ...
    throw DioLinkXXXException(originalException:e);
  }
}catch (e){
  throw DioLinkUnkownException(originalException:e);
}

And as I can see the ferry client only catches LinkException.
https://github.com/gql-dart/ferry/blob/master/lib/src/client/client.dart#L171

Yes, that is the intention to always return LinkException.
https://github.com/gql-dart/gql/blob/master/gql_link/lib/src/exceptions.dart
I guess you can re-wrap the dio exception within one of the LinkException subclasses.
My intention with LinkException is to mark the action where the exception occured.
I recently implemented more verbose error handling in gql_http_link
https://github.com/gql-dart/gql/blob/master/gql_http_link/lib/src/link.dart
That said, it has not yet been proven to be a good idea in practice. Feedback is appreciated.

okay, for now, I will wrap the exceptions to follow the convention. Thanks a lot for your great hard work.


Can you add metrics to compare models?

There is lots of metrics like recall, fid, ...
There is also some metrics in some situations like MOS, PESQ, CSIG, CBAK, COVL, SSNR

these are classification models, most of those metrics wouldn't/coudln't apply or aren't typically used

at least recall and fid scores...

Do you guys think that accuracy itself is precise enough to evaluate a model? What's the meaning behind only using accuracy as the the only metrics? Thanks.


SAK-45091: Some tools don't respect user notification preferences

This should be combined with CLOG-211 to solve notification clog problems.

@jesusmmp could you add a unit test for this method?

Ok, I'll try adding asap.

@jesusmmp could you add a unit test for this method?

@ern Unit test done!

@ern are you OK with the test? We would like to get this merged. Thanks!


Gamoshi: Update aliases

Update gamoshi bidder adapter aliases

@sa1omon - are you sure you want to deleted this file? This adapter is still available in older versions of Prebid.js. Existing customers would lose access to the parameters.

Hi @bretg, thank you for the info, Yes we are sure.


Fix inlined_invoke

In frontend, create return variables immediately after invoking an AST. This fixed returning a returned variable, or passing a returned variable as an argument, but lost the name of returned variables
Fixed the C++ part of inlined_invoke.
Support invoking an @optimize_to_pytorch function in a inlined manner
Reorganize some tests in test/50.frontend
Minor improvements in StagedUnpackAssignable, although it is unused now

Approved offline.


Assignment4 - Team 1

Merging files from Team 1

Somewhat on the right track, but looks like 2 different users were used for P1 and there were unmerged changes from before that carried over.
Will merge this for now for partial credit as it is past the deadline.


Detailing audio file requirements

closes https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/issues/8233
source of information https://docs.microsoft.com/en-us/powershell/module/skype/import-csonlineaudiofile?view=skype-ps

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@CarolynRowe PR has been copyedited and is ready for final review, could you please check and merge? Thanks!

@CarolynRowe Hello Carolyn, can this be merged? Thank you

@tiburd Can you help me to get this merged? Thank you


"undefined reference" when using datetime-fortran

Hi,
I'm a relatively new fortran user, with little experience using external libraries.
I'm on Ubuntu 16.04 with gfortran 5.4.0
I installed datetime-fortran using the instructions:
git clone https://github.com/wavebitscientific/datetime-fortran
cd datetime-fortran
autoreconf -i
./configure
make check
make install prefix=/home/rfapostolo/code/datetime-fortran

However, when I try to run anything using the module, I get "undefined reference to ...", MWE using the first example:
test_dt.f08
program test_dt
use datetime_module,only:datetime

      type(datetime) :: a

      a = datetime(2013,1,1)
      write(*,*)a % isocalendar() ! Prints: 2013  1  2

end program test_dt

trying to compile with:
f95 -o test_dt  -g -I/home/rfapostolo/code/datetime-fortran/include -L/home/rfapostolo/code/proper/datetime-fortran/lib test_dt.f08

Results in:
/tmp/ccMAIMs7.o: In function `MAIN__':
/home/rfapostolo/Dropbox/code/proper/propc/test_dt.f08:6: undefined reference to `__mod_datetime_MOD_datetime_constructor'
/home/rfapostolo/Dropbox/code/proper/propc/test_dt.f08:7: undefined reference to `__mod_datetime_MOD___vtab_mod_datetime_Datetime'
/home/rfapostolo/Dropbox/code/proper/propc/test_dt.f08:7: undefined reference to `__mod_datetime_MOD_isocalendar'
collect2: error: ld returned 1 exit status

I'd really appreciate if you could point me to my mistake.

The issue is your compilation line: you pass a bunch of flags, but none to actually link in the datetime library.
Look inside /home/rfapostolo/code/proper/datetime-fortran/lib for a file named something like libdatetime.a (or ending in .so etc.)
If you find that library, say libdatetime.a, then you should add the following flag to your compile line after the -L/home/... flag: -ldatetime (Or just pass the absolute path to the library... that should work too.)
Let me break down the flags that you are currently passing and what they do:

-o test_dt: Name the output executable test_dt
-g: generate debug symbol info (not really needed here, but doesn't hurt)
-I/home/rfapostolo/code/datetime-fortran/include look for include files and fortran .mod files in this directory
-I/home/rfapostolo/code/datetime-fortran/include tell the linker to look in this directory when searching for libraries specified with the usual -lfoo syntax
-lmy_lib: link against libmy_lib (either the static library, libmy_lib.a or a shared library libmy_lib.so) somewhere on the library search path (system library directories like /usr/lib and places specified with -L/some/path.

HI again,
I tried adding the -ldatetime flag but the result was the same. I tried linking the library directly with L/.../lib/libdatetime' and L/.../lib/libdatetime.a', but again got the same result.
I really appreciate the help and I'm sorry for wasting your time with this.

Hi Rui,
Does the following work? (put the program file before the linking flag)
f95 -o test_dt.f08 test_dt  -g -I/home/rfapostolo/code/datetime-fortran/include -L/home/rfapostolo/code/proper/datetime-fortran/lib -ldatetime

I remember reading the explanation for this somewhere, but can't remember now from the top of my head. When compiling and linking on the same line, put the source file first, linking flags and paths second.

Hi Rui,
I'm not sure what's going on on your system. For me, I installed datetime-fortran through mac Homebrew (brew install datetime-fortran), and was able to compile your test program as follows:
$ gfortran -o test_dt -g -I/usr/local/opt/datetime-fortran/include -L/usr/local/opt/datetime-fortran/lib test_dt.f90 -ldatetime
$ ./test_dt
        2013           1           2

It's possible that you need to list the library to the right of your source file due to the way the static linker works on some OSes.
Also, I would recommend that:

You name any modern (free source form, Fortran 90 onwords) Fortran source file with a .f90 file extension
You call GFortran or whatever your Fortran compiler is directly, not through some system stub like f95
You confirm that datetime-fortran was compiled with the same compiler being used to build and link your code: Fortran .mod files are not compatible between compilers, and sometimes even between major releases of the same compiler.

If you have installed datetime-fortran into a default system location, or configure package-config to find the pc file for datetime-fortran you can get the include flags and the link flags needed to build against it using pkg-config:
gfortran -o test_dt -g $(pkg-config --cflags datetime-fortran) test_dt.f90 $(pkg-config --libs datetime-fortran)

I remember reading the explanation for this somewhere, but can't remember now from the top of my head. When compiling and linking on the same line, put the source file first, linking flags and paths second.

It depends on the OS. On some older linux distros (and ubuntu undid the GCC patch for this... 🙄) the static linker is a bit finicky. Here's how it works:

Process arguments from left to right
Look at the object code (i.e. output of compiling test_dt.f90 or the current library archive file) of the thing being examined
Keep any used symbols, symbols needed by other entities already processed (to the left) of this entity
Construct a list of unresolved symbols and entities to search for when processing items to the right
Discard any unused symbols and entities

This means that if a library or program needs to call a procedure declared in a different library, then it should appear to the left of that other library on the link line.

Hi @zbeekman and @milancurcic ,
I had no idea the compiler was reading the symbols left to right, but I can't say it doesn't make sense.
That was my problem, and having my code before the library worked perfectly.
Thank you very much for your help and suggestions, and apologies for the stupid mistake.

No worries, the left-to-right thing bites even the most experienced programmers from time to time.
The linker does this to increase speed and decrease memory footprint IIRC, and on macOS and some distros it's a complete non-issue. But on certain/most linux distros the linker throws out un-needed symbol info and definitions as it processes, only keeping a table of symbols that have been seen, but not yet defined in memory as it processes the files. When you link dynamically the order doesn't matter, but then you need to find a sane way to deal with loading the libs at runtime.


torch engine better cache allocation

runtime intermediate memory usage might lead to OOM if too many cache blocks are using.
Since most intermediate cache are used by lm_head in ModelForCausalLM, we would leave enough space for the cache and allocate paged cache with rest of the memory.

The estimate is based on vocab_size and max_prefill_token_num, we better expose max_prefill_token_num in API.

max_prefill_token_num is already defined in PyTorchEngineConfig and TurbomindEngineConfig
What does exposing it in API mean?
Pls define small max_prefill_token_num

lmdeploy serve api_server can not recognize --max-prefill-token-num


Jhendr m365 community

formatting fix.

Docs Build status updates of commit 76b92e3:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Community/versioning-basics-best-practices.md
:white_check_mark:Succeeded
View

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


Use Logback logging provided by Play framework (exclude log4j binding)

Hello,
during execution of backend and web services together with ETL jobs scheduled by backend, there is an error referring to multiple bindings (http://www.slf4j.org/codes.html#multiple_bindings). This may disable proper logging ending up with missing logs and problems during debuging (first binding in the classpath is chosen so it should be treated at random).
This pull request contains:

excluding dependencies described at _http://www.slf4j.org/codes.html#multiple_bindings_ during the build of backend and web services,
added Gradle configuration to clean lib/ subdirectory during the clean task (to be sure that there are no JARs left from previous build),
changed Log4j configuration file to Logback configuration in metadata-etl module.

Last point is also necessary, because when scheduling ETL job by backend service there is used its classpath for metadata-etl Launcher, which contains Logback libraries.
Please, could you take a look at this pull request?
Did I miss something like another way of executing metadata-etl job which does not contains Logback libraries in classpath?
I would appreciate for taking a look. After those changes logging is stable in our instance.
Kind regards,
Rafal Kluszczynski

We will later change the instructions regarding how to test the ETL scripts with different logging settings based on logback.
LGTM

I have the same issue with branch master  and  commit commit 753de7de7c1f8cb9ee0276842d7b094e8b537d1d .
Has the problem been solved yet？


Doesn't work in PowerShell Core

[Enter feedback here]
Any plans on making this work with GraphApi? AzureAAD stuff HATES the mac / linunux non windows platform.

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

ID: 51dbe039-2ab8-b9a3-531d-71de3082cf2c
Version Independent ID: 020b443d-d664-9bad-bbc9-74dbe35c8ae2
Content: PowerShell for Azure AD roles in PIM - Azure AD - Microsoft Entra
Content Source: articles/active-directory/privileged-identity-management/powershell-for-azure-ad-roles.md
Service: active-directory
Sub-service: pim
GitHub Login: @amsliu
Microsoft Alias: amsliu

@munntjlx
Thanks for your feedback! We will investigate and update as appropriate.

@munntjlx
Thank you for your feedback!
Since this issue isn't directly related to improving our docs, and to gain a better understanding of your issue, I'd recommend working closer with our support team via an [Azure support request] (https://docs.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request). Or you can leverage our Q&A forum by posting your issue there so our community, and MVPs can further assist you in troubleshooting this issue or finding potential workarounds.
[Teams Q&A forum] (https://docs.microsoft.com/en-us/answers/topics/46488/office-teams-windows-itpro.html) for technical questions about the configuration and administration of Microsoft Teams on Windows.
[Microsoft Teams Community forum] (https://answers.microsoft.com/en-us/msteams/forum?sort=LastReplyDate&dir=Desc&tab=All&status=all&mod=&modAge=&advFil=&postedAfter=&postedBefore=&threadType=All&isFilterExpanded=false&page=1)
Thank you for your time and patience throughout this issue.

SO much for improving the product. Oh well.


CI Navigation improvements

[x] Dashboard select on all currently
[x] Make additional dashboards selectable

:+1:


pdf2img, Error: Command failed: identify -format %n /docfire/EON.pdf

I've just installed pdf2img on my iMAC:
Running: macOS Sierra version 10.12.4
Node version 7.8.0
I'm trying to write a robust PDF to text package, I first use pdf2json to parse the file, if it contains no text nodes with content I then try the following:
    pdf2img   = require("pdf2img")
    var strFile = __dirname + "/" + aryOptions[0];
    console.log(strFile);
    pdf2img.setOptions({type:"png"
				   ,size:8192
				,density:600
			  ,outputdir:__dirname + "/output"
			 ,targetname:"pdf"});
    pdf2img.convert(strFile, function(err, info) {
	if ( err ) {
		console.log(err);
	} else {
		console.log(info);
	}
    });

Unfortunately this fails with:
    /bin/sh: identify: command not found
    child_process.js:524
    throw err;
    ^

    Error: Command failed: identify -format %n /docfire/EON.pdf
    /bin/sh: identify: command not found

    at checkExecSyncError (child_process.js:481:13)
    at execSync (child_process.js:521:13)
    at async.waterfall.pages (/docfire/node_modules/pdf2img/lib/pdf2img.js:47:32)
    at fn (/docfire/node_modules/async/lib/async.js:638:34)
    at Immediate.<anonymous> (/docfire/node_modules/async/lib/async.js:554:34)
    at runCallback (timers.js:672:20)
    at tryOnImmediate (timers.js:645:5)
    at processImmediate [as _immediateCallback] (timers.js:617:5)

[Edit] I have made some progress...after installing the dependencies which I missed initially, the output is now:
    execvp failed, errno = 2 (No such file or directory)
    gm identify: "gs" "-q" "-dBATCH" "-dSAFER" "-dMaxBitmap=50000000" "-dNOPAUSE" "-sDEVICE=ppmraw" "-dTextAlphaBits=4" "-dGraphicsAlphaBits=4" "-r72x72" "-sOutputFile=/var/folders/q7/hnxl054d71q277m5c3j25vdh0000gn/T/gmretZGf" "--" "/var/folders/q7/hnxl054d71q277m5c3j25vdh0000gn/T/gmdtH8SW" "-c" "quit".
    gm identify: Postscript delegate failed (/docfire/EON.pdf).
    gm identify: Request did not return an image.
    child_process.js:524
        throw err;
        ^
    Error: Command failed: gm identify -format %n /docfire/EON.pdf
    execvp failed, errno = 2 (No such file or directory)
    gm identify: "gs" "-q" "-dBATCH" "-dSAFER" "-dMaxBitmap=50000000" "-dNOPAUSE" "-sDEVICE=ppmraw" "-dTextAlphaBits=4" "-dGraphicsAlphaBits=4" "-r72x72" "-sOutputFile=/var/folders/q7/hnxl054d71q277m5c3j25vdh0000gn/T/gmretZGf" "--" "/var/folders/q7/hnxl054d71q277m5c3j25vdh0000gn/T/gmdtH8SW" "-c" "quit".
    gm identify: Postscript delegate failed (/docfire/EON.pdf).
    gm identify: Request did not return an image.

    at checkExecSyncError (child_process.js:481:13)
    at execSync (child_process.js:521:13)
    at async.waterfall.pages (/docfire/node_modules/pdf2img/lib/pdf2img.js:47:32)
    at fn (/docfire/node_modules/async/lib/async.js:638:34)
    at Immediate.<anonymous> (/docfire/node_modules/async/lib/async.js:554:34)
    at runCallback (timers.js:672:20)
    at tryOnImmediate (timers.js:645:5)
    at processImmediate [as _immediateCallback] (timers.js:617:5)

I've checked both the path and the file name, both are correct and exist.
After searching around I found that I had to also install:
    brew install ghostscript

@SPlatten I installed packages, but it keeps giving me the same error.


[Issue report] Unable to share screen in Google Meet

Describe the bug or issue
When trying to share screen in Google Meet, a popup showing "Your browser can't share your screen" will appear and refusing to let your share screen.
Describe your setup

4B with 4GB RAM
Chromium OS r96
No peripherals were connected to the board

To Reproduce
Steps to reproduce the behavior:

Go to 'https://meet.new'
Click on 'Share Screen' icon
Click on any choice in the popup
See error "Your browser can't share your screen"

Expected behaviour
A screen selection window should popup, enabling you to share your screen.
Screenshots and/or hardware setup photos

Unfortunately, this is a Google thing:
https://bugs.chromium.org/p/chromium/issues/detail?id=829916


Symlinks in File Transfer

Currently in File Transfer, you can see directories with "strange names" (/var/lock -> /run/lock/). They are symlinks. They should not be displayed in file transfer.
Expected Behavior
There shouldn't be any symlinks.
Current Behavior
screenshot by @ibragim13kz

Possible Solution
Before adding directories into File Transfer list, make sure that they are real directories.
ls -la command may help with this.
Steps to Reproduce

Create env
Deploy an SSH-key
Open File transfer

Fixed in Master.

Fixed in Prod.


Increase form max content size

Fixes #902, which was assigned to me for a long time
Changes proposed in this pull request:

increase the default maximum form content size

Merging soon in the absence of comments.


Use case: Characterize a participant, both within a given project and across projects.

This may be a long-ish description -- I'm porting a formerly private conversation with @jgbarah over to here.  (If there's some more appropriate forum, please let me know!)
To set some context: almost all the information I'd want to find out about a project is actually built up from the activity of the people in that project, so I've come to think that most of the metrics I'm looking for are about people primarily, and projects secondarily.

Use Case: Evaluate whether a person should be offered commit access or whatever the equivalent is for the kind of work they're doing (e.g., maybe it's actually "a vote on the steering committee" or "an editorship position in the documentation" or whatever).  The point is, existing maintainers often find themselves evaluating a person's activity in order to determine whether that person should be invited into some kind of formal maintainer role.
The metrics required to do this thoroughly are interesting:

The data collection system needs a concept of the person's unified identity.  I.e., this account over here in the repository (which may or may not use the same authn system as the issue tracker) is the same as that account over there in the wiki... is the same person as these two email addresses on the mailing list... all of which are the same person as so-and-so over in the chat platform, etc, etc.  (Obviously it will not always be possible to determine these correspondences automatically, so there needs to be a UI where some knowledgeable human can come in and just tell the system that two accounts both belong to the same person, after which the system can faithfully remember that fact.)
A time-based view of when the person is active.  I almost care that they are active more than how they're active.  It's hard to tell, in an automated way, whether a given commit was more of a contribution than an answer given in Zulip or IRC, for example.  But just looking at when and how often the person did stuff tells you a lot.
When the person is responding to someone else in a thread (whether it be in the issue tracker, mailing list, or somewhere else), what is the range of latencies of the person's responses?

So that's what I want: an ability to look at a list of participants in a project, and see what they've been up to.  Looking at a person's activity within a single project would already be useful.  Ideally, I'd like to look at that person's activity in as many projects as possible.  For example:

Use Case: If I knew that a particular bug reporter had a tendency to report bugs that resulted in associated bug fixes that were successfully merged, with the ticket closed as "FIXED" (or whatever the equivalent state is in that tracker), then when that person reported a bug in my project, I might pay attention more quickly.

I'm carefully avoiding getting into project health metrics for the moment, but expect that they would largely grow out of person-based metrics.  And there are many more person-based metrics we could all think of, of course; the ones above are just a start.  The prerequisite for all person-based metrics is a unified identity tracking system, I think.

Thanks a lot, @kfogel. Yes, this is the place for having this conversation ;-)
First comment is purely procedural: in this issue, are you submitting one or two cases? If they are two, I think it is better to open one issue for each of them (we could keep this for the first use case in your description, and have a new one for the second one). If they are only one, I think I need more data to see how they come together...
Second comment is also procedural, for anyone willing to contribute. This issue is a part of the process described in the use cases README in this repository. As such, please provide any feedback you may want about how to better describe this use case, but let's try to maintain it concrete (that is, we don't need to make it valid for any likely scenario, and therefore @kfogel, who is proposing it, can define its scope).

Now, with respect to the proposal itself, we should end up filling in this template. So, we would need to define the main goal(s), main actor/stakeholders, and questions that metrics should help to answer. I think goals and actor/stakeholders can be easily extracted from the proposal, but we still need to find out about the specific questions that metrics should help to answer. I suggest some (but I'm not sure if they are appropriate):

How much expert on  the project is this person?
How much activity in the project had this person in the past?
How valuable were the contributions of this person?
To which extent this person has helped in the learning / engagement process of others?

Ping @kfogel! ;-)

Hi, @jgbarah.  I reluctantly have come to the conclusion that it's probably two use cases, so I've opened issue #61 for the second one.
Looking at the questions you asked:

How much expert on the project is this person?
I think it doesn't matter for our purposes.  I'm kind of changing the use case here, or narrowing it down: I think this is more about making a first pass.  That is, we're not directly evaluating expertise here, we're just trying to figure out where to devote our attention -- that is, whom to evaluate.  Once we've figured that out, we can use a multitude of other techniques, archives, tools, and social navigation knowledge to do the rest of the assessment for maintainership.

How much activity in the project had this person in the past?
Not sure I understand this one?  This sounds like exactly the information that the use case proposes to gather as input metrics in the first place.

How valuable were the contributions of this person?
Similarly to the answer to the first question: maybe that doesn't matter here.  We're just figuring out whose contributions to evaluate in the first place.  Once we have determined the person, we will look more closely at their contributions.

To which extent this person has helped in the learning / engagement process of others?
Well, we can try to infer that from responsiveness metrics, but ultimately we'd have to look at some of the responses themselves to be sure.  Having easy access to those responses and those threads would make that process fairly easy, though -- you just dip in and pick a random sample to evaluate (that is, evaluate in a non-automated way).

Hi, @jgbarah. I reluctantly have come to the conclusion that it's probably two use cases, so I've opened issue #61 for the second one.

OK, thanks. I will follow up there too.

WRT the questions, first a clarification. We're trying to apply GQM methodology (goal-question-metric). That's the reason why I wanted to define the questions before we enter into the metrics. I know you did your analysis already, so it may seem awkward to talk about the questions when you are proposing metrics. But the idea is to first ensure that the questions of your use case are clear, and then discuss the metrics based on how they help to answer those questions.
So, summarizing, based on your comments to the questions I proposed:

How much expert on the project is this person? I understand that his question does not make sense to reach your goal, so let's not consider it.

How much activity in the project had this person in the past? It seems you agree this is the fundamental question for helping to reach the goal, so let's keep it.

How valuable were the contributions of this person? As with the first question, let's not consider it.

To which extent this person has helped in the learning / engagement process of others? If I understand well, you prefer also not to consider it, right?

This would leave us with a single question, which is no problem at all, if you think it captures well what you need to reach the goal.
I suggest also to define the goal, based in your comments as "Get a shortlist of people who should be consdiered for being offered commit access or whatever the equivalent is for the kind of work they're doing".
If you agree with all of this, I can produce a pr based on the template, and we discuss the metrics and everything in it.

Finally I found the time to produce the pull request (#91). @kfogel (and everyone else), please have a look at it. Any comment / review is appreciated!

@kfogel  and @GeorgLink : Can this issue be closed with the pull request.

Closing as discussino is continuing in another issue.


android: trigger buttons start out pressed

Ebitengine Version
main (36e2d0ec40c9956d9ae1e8514d2912651df61f00)
Operating System

[ ] Windows
[ ] macOS
[ ] Linux
[ ] FreeBSD
[ ] OpenBSD
[X] Android
[ ] iOS
[ ] Nintendo Switch
[ ] Xbox
[ ] Web Browsers

Go Version (go version)
go version go1.19.5 linux/amd64
What steps will reproduce the problem?
Run the gamepad demo, or any game supporting gamepads. Move any OTHER axis on the gamepad (like the left stick) to force a motion event.
What is the expected result?
Trigger buttons should start out non-pressed.
What happens instead?
They start out pressed.
Anything else you feel useful to add?
Likely an Android bug we may need to work around. Seems like MotionEvent does report trigger axes as having a center value until they're first touched by the user.
Need to debug further though to know exact root cause and suggest a solution.

Ebitengine Version
main

Could your write the hash?

Added: 36e2d0ec40c9956d9ae1e8514d2912651df61f00

As this is a bug that remains for long time, I don't think this is a release blocker. Let me reset the milestone. If necessary, I can cherry-pick the fix to 2.5.

Now it's hard to test mobiles as gomobile-build doesn't work unfortunately... https://github.com/hajimehoshi/ebiten/issues/2741

@divVerent Does this issue happen with any gamepads, or a specific gamepad?

Sorry, I have no other gamepad to try this with. I strongly suspect this
affects all though.
On Sun, Sep 17, 2023 at 7:20 AM Hajime Hoshi @.***>
wrote:

@divVerent https://github.com/divVerent Does this issue happen with any
gamepads, or a specific gamepad?
—
Reply to this email directly, view it on GitHub
https://github.com/hajimehoshi/ebiten/issues/2598#issuecomment-1722488268,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAB5NMAN6CIZCYELICH6M3DX24BJPANCNFSM6AAAAAAVYC5DSE
.
You are receiving this because you were mentioned.Message ID:
@.***>

I guess onKeyDown was called unexpectedly, but I am not sure. @divVerent Do you have a suggestion to fix this?

It seems events work fine. What happens:

Normally nothing is pressed.
Once I touch ANY axis on the gamepad, Ebitengine suddenly considers the trigger buttons pressed.

I found that the MotionEvent does include the trigger values at value zero (center, not depressed), but they have not moved.
I guess a potentially good solution would be to increase trigger travel, i.e. have the trigger buttons only be considered active at, like, > 0.2 (instead of > 0 from the -1 to 1 range)?

Are you talking about a standard button that is mapped to a physical axis? Then we already have a threshold https://github.com/hajimehoshi/ebiten/blob/cd90f083bc1db4bcdda45531182dbdac0f88eb77/internal/gamepaddb/gamepaddb.go#L516 Is the axis value exceeds this threshold?

Yes, it exceeds it - the axis value starts at 0 in the axis range, which is mapped to 0.5 in the button range.
Basically, starting axis values at 0 makes total sense for most axes on a gamepad, as that means they're centered - the bug is that the trigger axes start out centered too. Treating them as a button then maps the centered value to a "50% pressed button", which gets interpreted as a press.
I propose that for trigger buttons we use a higher button press threshold that's above 1/2 - or that we do not perform the mapping (axisValue + 1) / 2 for those, but just max(0, axisValue) (which BTW is what in SDL's syntax "lefttrigger:+a2" would do).

That's odd. For trigger axes, -1 should be the default value which is mapped to 0 as a button value. Is there something wrong in the current gamepad database file for your gamepad?

Maybe I was not clear: this is not about the gamepad database, but about handling gamepads using the default mapping (i.e. NOT using the database).
Android provides APIs that are already gamepad-generic and should usually not need the database - and my gamepad ALMOST works this way, except that trigger buttons start at 0, not -1.
The reason for this is in Android, not Ebitengine, as the same issue exists when using third party gamepad test apps: initially the buttons have no value at all (which is probably where Ebitengine fills in -1), but once I touch ANY axis (e.g. move the joystick), the trigger buttons suddenly report as center value in the first MotionEvent Android sends.
So we actually need to work around an Android bug here, I suppose.

Now Ebitengine does NOT use the Android OS's default mapping (i.e. (*nativeGamepadImpl).hasOwnStandardLayoutMapping() returns false), and relies on the database. I refered SDL's implementation.

and my gamepad ALMOST works this way

Do you mean you are using non-standard (phyisical) Gamepad APIs intead of standard-gamepad APIs?

So assuming you are using the standard-gamepad APIs that uses the database,

I am aware I can work around the issue by creating a gamepaddb entry for my gamepad, as the workaround feature is part of the gamepaddb implementation (when registering the trigger axis as +a2 and not a2).

I guess we should update the original database in this case. https://github.com/mdqinc/SDL_GameControllerDB

To be clear: my gamepad is not in the database at all - it uses synthetic mappings from https://github.com/hajimehoshi/ebiten/blob/4b1c0526a7cda62d26fd48f0a1aa6a5dda3392e3/internal/gamepaddb/gamepaddb.go#L593C9-L593C16
And I honestly don't know why Ebitengine does it this way rather than using Android's named button and axis identifiers, which recognize my gamepad correctly, for any other reason than "SDL does it this way too". Clearly this really tries to be a very weird way to do native mappings.
So yes, I could fix this for my gamepad alone by adding a mapping entry, but I'd much prefer a solution that instantly fixes this for ALL gamepads at once (or at the very least all non-mapped ones).
If we want to fix it by adjusting mappings, we could just change AxisScale and AxisOffset in these entries here:
https://github.com/hajimehoshi/ebiten/blob/4b1c0526a7cda62d26fd48f0a1aa6a5dda3392e3/internal/gamepaddb/gamepaddb.go#L752
However as SDL doesn't have a workaround here, I strongly suspect this is the wrong approach, as that likely means that existing mappings do NOT currently work around for this issue.
And the bug is really in Android: the very first MotionEvent - and any subsequent MotionEvent until I ever touch the trigger axis - has the trigger button at center value, but the moment I touch that button and release it, it will return back to -1.
So I suggest one of the following fixes:

Find a way to only report the actually changed axis values from MotionEvent to Ebitengine and not all axes.

It seems to me though that the MotionEvent class doesn't actually expose information about which axes have changed, so reporting all seems necessary.

On Android (maybe directly in EbitenView.java), do not call Ebitenmobileview.onGamepadAxisChanged until the axis value has changed at least once.

Variant: same but in Ebitenmobileview.onGamepadAxisChanged's Go implementation itself.
As this causes minor issues for gamepads that represent a digital button as an axis (as it can cause the first button press to be ignored), I would suggest limiting this workaround to Android only.

Set a higher threshold - namely one above the 50% mark - for axis-mapped buttons (at least on Android, at least limited to trigger buttons).

That however may change gameplay on devices or platforms where this issue is not happening.

Map trigger axes to only the upper range, EVEN if the mapping specifies the full range.
And here comes the crazy solution: implement a double-action/single-action trigger: the FIRST button press after gamepad connect requires going above the 50% mark, but from then on, as the axis now will return to -1 where it should go, use the 30/255 threshold for any further press from then on.

To be clear: my gamepad is not in the database at all - it uses synthetic mappings from https://github.com/hajimehoshi/ebiten/blob/4b1c0526a7cda62d26fd48f0a1aa6a5dda3392e3/internal/gamepaddb/gamepaddb.go#L593C9-L593C16

In this case, you cannot use the standard-gamepad API. Are you really using StandardGamepadButtonValue?

And I honestly don't know why Ebitengine does it this way rather than using Android's named button and axis identifiers, which recognize my gamepad correctly, for any other reason than "SDL does it this way too". Clearly this really tries to be a very weird way to do native mappings.

It's because Android's API might not map to Ebitengine/SDL's standard layout. For example, an "A" button might be mapped to a bottom button or a right button, but we don't know. That's why Ebitengine and SDL rely on the database.

I'll take a look your suggestion carefully tomorrow or later. Thank you for clarifying the situation.

The way I understand it, the native mapping always serves to provide defaults, and then the database is used to override as needed. My issue is clearly not specific to any given gamepad, but should affect ALL gamepad that contain axis-mapped analog buttons, which on standard Xbox gamepads the trigger buttons are.

And the bug is really in Android: the very first MotionEvent - and any subsequent MotionEvent until I ever touch the trigger axis - has the trigger button at center value, but the moment I touch that button and release it, it will return back to -1.

I didn't know the value went back to -1. In this case, modifying the database would not solve the issue 🤔

Well, modifying the database by just mapping the upper half of the range would just serve to move the button's threshold from 30/255 to 285/510 which is > 0.5 and thus "fixes" the issue. Clearly that's a hack though, and it would require pressing the trigger buttons much farther than currently, but it'd at least fix this bug.

The current issue is that the same axis can take [0, 1] and then [-1, 1] after a while, right? So adding an entry to the database doesn't solve this issue in the first place. Of course, your point that modifying the database is not a general solution is correct.

Let me ask questions:

Does the axis value take only 0 before touching, and [-1, 1] after touching?
e.g. 0, 0, 0, 0, ..., 0, (touch), -1, -1, -1, -0.5, 0, 0.5, 1, ...
Or, does the axis value take [0, 1] before touching and [-1, 1] after touching and releasing?
e.g. 0, 0.25, 1, 0.5, 0, (release), -1, -1, -1, -0.5, ...

The former behavior is what I observe. To be exact, assuming we only talk about two axes, the behavior is as follows:
# First: no option events
# Ebitengine: 0 0 button values.
# Then: slowly pressing down left trigger.
-0.98 0  # Ebitengine: 0.01 0.5
-0.8 0  # Ebitengine: 0.1 0.5
-0.2 0  # Ebitengine: 0.4 0.5
0.2 0  # Ebitengine: 0.6 0.5
1 0  # Ebitengine: 1 0
# Then: releasing left trigger.
0.4 0  # Ebitengine: 0.7 0.5
-0.4 0  # Ebitengine: 0.3 0.5
-1 0  # Ebitengine: 0 0.5
# Then: slowly pressing down right trigger.
-1 -0.98  # Ebitengine: 0 0.01
# From here on, as now both triggers have been touched, all is normal.

Which also tells me, the underlying issue is really in how Android builds the MotionEvent. The gamepad has only ever sent an evdev event for the left trigger to the OS, but the OS has to build a MotionEvent including an axis value for the right trigger, and mistakenly fills in a center value there (whereas correct would be the minimum value).

Thank you for clarifying!

Trigger axes are special there in that their resting position is at the bottom of the range, not at the center.

I agree this assumption. I'm fine to add a workaround to Ebitengine. My current idea is,

Add a new funciton like IsAxisInitialized(index int) to gamepaddb.GamepadState interface.

IsAxisInitialized returns false before a non-zero MotionEvent comes for the axis in Android.
IsAxisInitialized returns true otherwise.

Add a hack to return 0 at gamepaddb.standardButtonValue and gamepaddb.StandardAxisValue if a mapping type is an axis and IsAxisInitialized for the axis return false.

Do you think this would work?

Yes, that will work.

Thanks. I'll try to implement this tomorrow.

@divVerent Could you try 46d95eaa6f111c99718ad517e010bfb5e9bd691d? Thanks,

Yes, what happens is:

The trigger axes immediately get axis values -1 when I connect the gamepad
On first motion event for a different axis, the trigger axes jump to a zero value

So it seems slightly harder than that.

Ah, the issue is that this code needs to be removed then:
https://github.com/hajimehoshi/ebiten/blob/4b1c0526a7cda62d26fd48f0a1aa6a5dda3392e3/cmd/ebitenmobile/_files/EbitenView.java#L248

As for my own game - I can't build it at all against your change (but that might be caused by me using just "replace" to build against your change, and not updating go.mod pointing at a release tag):

That's odd.  Also, the latest Ebitengine doesn't use golang.org/x/mobile any longer so you would have to use Ebitengine's RunOnJVM for example.

As for my own game - I can't build it at all against your change (but that might be caused by me using just "replace" to build against your change, and not updating go.mod pointing at a release tag):

That's odd.  Also, the latest Ebitengine doesn't use golang.org/x/mobile any longer so you would have to use Ebitengine's RunOnJVM for example.

That's indeed the issue - gonna fix that when updating to Ebitengine v2.7.0.
Anyway, I think I mostly confirmed the patch and found the one thing still wrong with it by cherrypicking on v2.6.6. So I guess we're good to go.

Ah, the issue is that this code needs to be removed then:

I'll try to fix this. Thanks,

Confirmed OK.

@divVerent As this change seems less risky, I'm OK to cherry-pick this fix to 2.6 if you want. Do you want it in 2.6?

That would be quite nice. Right now I am working around by entirely disabling the trigger buttons - if this is cherrypicked into 2.6, my next release will enable using trigger buttons as additional jump and action buttons (like on PC), which actually doesn't feel bad when playing even in comparison to the right thumb buttons.
So, your call.

Done (e2f26b9dac546ff80f2713c9e307d086ed0e0041). I'll release v2.6.7 a few days later. Thank you for reporting and investigating the issue!


Add support for aarch64-unknown-linux-gnu

Issue: Add support for aarch64-unknown-linux-gnu
Environment

Host System: macOS M3
VM System: NixOS
Loading Method: Using zinit to load pnpm-shell-completion

Configuration:
zinit wait'1b' lucid for \
        id-as"pnpm-shell-completion" \
        nocompile"#!/*" \
        atload"zpcdreplay" \
        atclone"./zplug.zsh" \
        atpull"%atclone" \
    g-plane/pnpm-shell-completion \

Issue Description
pnpm-shell-completion works fine on the macOS host system. However, when attempting to use it on the NixOS virtual machine, the following error occurs:
_pnpm:17: exec format error: /pnpm-shell-completion/pnpm-shell-completion
This might be caused by downloading the incorrect target file when running ./zplug.zsh. I have tried downloading different release targets, but the issue persists.
I attempted to build with cargo build targeting aarch64-unknown-linux-gnu locally, and the issue was resolved.
Suggested Solution
I would like to request adding support for aarch64-unknown-linux-gnu in pnpm-shell-completion. Here is my suggested modification:
# zplug.zsh
if [ $(uname) = "Darwin" ]; then
    if [ $(uname -m) = "arm64" ]; then
        target="aarch64-apple-darwin"
    else
        target="x86_64-apple-darwin"
    fi
else
    if [ $(uname -m) = "aarch64" ]; then
        target="aarch64-unknown-linux-gnu"
    else
        target="x86_64-unknown-linux-musl"
    fi
fi

GitHub Actions doesn't provide ARM Linux at the moment.


License file

Thanks @linuxdynasty for

inspiration to use ansible filters to access needed data from AWS
collection of filters ready to use

The project does not provide a license though, making it hard to use in an enterprise-y environment or to include/use it in own open source projects.
Could you please add a license file, ideally MIT, like https://github.com/Galeria-Kaufhof/private-postgres-rds/blob/master/LICENSE.txt or just use github UI to add https://help.github.com/articles/adding-a-license-to-a-repository/

Sure thing and thank you for the compliments.

Done.


Revise s_client and s_server verbiage re secure renegotiation.

Since TLS v1.3 eschews renegotiation entirely it’s misleading to have
these apps say it’s “not supported” when in fact the TLS version is
new enough not to need renegotiation at all.
Checklist

[x] documentation is added or updated

This pull request is ready to merge

Squashed and merged to master branch. Thank you for your contribution.


Fixed Bug 9226_Saving any Item taking too long

Saving any Item taking too long to complete, when the solution is not in sync with SCM

RefreshSourceControlStatus is called from 6 different places. can we add task inside this function so it will be handled for all different use cases ?

Updated as per requested changes


Show an example of response interceptors with forkJoin observable

Could you please show an example of response interceptors with forkJoin observable I'm not able to make it work.

That should be as simple as:
httpInterceptor.response().addInterceptor(res =>
  res.forkJoin(Observable.of('test').delay(1000)));

So if request will end faster that 1s, it will emit exactly after 1s with response and 'test'.
If request will be longer then 1s it will emit right after response arrives but in reverse order: first 'test' and then response.

I'm going to close this issue.
If you have any other questions please feel free to open new issue.


Use this implementation for TTS engine

Can create separate branch for TTS implementation, that's the ultimate goal for every neural vocoder. I will try to use this implementation with nvidia's Tacotron2, as preprocessing for both networks are same.
Note : I am already working in it, and will post the output samples here by tomorrow.

How about creating a new repository for this, and adding this repo as submodule in that repo?
For example, https://github.com/NVIDIA/tacotron2 uses waveglow repo as submodule.

@seungwonpark yeah sure, I will train MelGAN on GTA.

Thanks, that will be awesome.
Let me know whenever you make that new repo public so that I can add a link to README.md here.

@seungwonpark checkout first sample : https://drive.google.com/drive/folders/1fPjLwMORsfilwPS9EAXUR_5ZKjUWbaIA?usp=sharing
Note: This is non GTA sample using nvidia's tacotron2

@seungwonpark official repo melgan

Added official repo in README.md, thanks.

Just for Information: New paper on Parallel WaveGAN. The best part is it's fast, lightweight(1.4 M parameters only) and specially designed for TTS engine.
We propose Parallel WaveGAN, a distillation-free, fast, and small footprint waveform generation method using a generative adversarial network. In the proposed method, a non-autoregressive
WaveNet is trained by jointly optimizing multi-resolution spectrogram and adversarial loss functions, which can effectively capture
the time-frequency distribution of the realistic speech waveform.
As our method does not require density distillation used in the
conventional teacher-student framework, the entire model can be
easily trained even with a small number of parameters. In particular, the proposed Parallel WaveGAN has only 1.44 M parameters
and can generate 24 kHz speech waveform 28.68 times faster
than real-time on a single GPU environment. Perceptual listening
test results verify that our proposed method achieves 4.16 mean
opinion score within a Transformer-based text-to-speech framework, which is comparative to the best distillation-based Parallel
WaveNet system.

After doing the training, how do i use the result to do TTS ?

@seungwonpark give a look to this paper: https://arxiv.org/pdf/2005.05106.pdf

@rishikksh20 Thanks for letting me know.
It's a bit disappointing to see that the proposed model was only tested with 16kHz. However, their ablation studies are persuasive and their approaches look promising to me, too. Let's wait for them to open-source the code.

By the way, I've used the MelGAN for our new VC paper: https://arxiv.org/abs/2005.03295
Please have a look if you're interested in VC.

@seungwonpark Hope you are doing well !
I have coded Multi-band MelGAN paper and uses this repo as a base.
Please give it a looks https://github.com/rishikksh20/melgan .
Though I just finished coding and havn't tested it yet.

@seungwonpark yeah sure, I will train MelGAN on GTA. I am also planning to train it in multiple voices as I have a huge repo of large (> 40 hrs) custom voice dataset.

@rishikksh20
Hi!
What is the final result of training melgan with GTA?
I would like to train melgan in GTA mode (combine with SV2TTS) 。
But I'm not sure whther it's right：ignore preprocess.py in melgan, and just feed the mel spec from TTS(SV2TTS algorithm)and retrain melgan. (GTA mode)
Could you please give me some advice? Thanks a lot!

@xuexidi it doesn't give good result, I had trained model around 1.5 Million step but normal mel training gives better result than GTA. Though one option which I havn't tried is train Melgan for first 200k steps on GTA and then after that continue training with normal mels, this techniques explained to work in HiFI-GAN paper.

@xuexidi it doesn't give good result, I had trained model around 1.5 Million step but normal mel training gives better result than GTA. Though one option which I havn't tried is train Melgan for first 200k steps on GTA and then after that continue training with normal mels, this techniques explained to work in HiFI-GAN paper.

@rishikksh20
**Thanks for your quick reply!!!
And thanks for your techniques advice!!!**
But I still  confused about：
before I start training melgan as a vocoder for TTS，there are two options:
1). Change the mel extraction function of melgan，keep it same as TTS.
2).Change the mel extraction function of TTS，keep it same as melgan.
From your experience，which could perform better? And what option you choose in your experiment.
I 'm pretty confusing about that :(

@xuexidi it doesn't matter choose any pre-processing (mel-extraction) and use the same for both TTS and melgan. The mels on which TTS trained always be same as on which melgan trained.

@xuexidi it doesn't matter choose any pre-processing (mel-extraction) and use the same for both TTS and melgan. The mels on which TTS trained always be same as on which melgan trained.

@rishikksh20
Thank you very much!
I got it! I'll keep the mel format of TTS the same with melgan.
Thank you!


Specify a default base path for vulcanized client files

I have an issue that's similar to #51 but maybe not exactly the same. Similar to #51 I have a src/ directory for development files and a dist/ directory for production-ready files.
Possibly different:

In my server code I'm statically serving all client files from static/. Specifically in express.js I'm doing something like express.static("/static", "dist")
In my HTML I reference all client files with /static as base, such a

Here's an example of my pre-build setup:
src/html/index.html
<!DOCTYPE html>

    <link rel="import" href="/static/components/foo-bar.html">

<foo-bar></foo-bar>

src/components/foo-bar.html
<polymer-element name="foo-bar">
<template>

Hi

</template>

</polymer-element>

Providing inline and csp options, I'd like vulcanize to mutate my HTML to be:
dist/html/index.html
<!DOCTYPE html>

<polymer-element name="foo-bar">...</polymer>

I've also ran into this issue where I have a separate /dist folder for the built app and vulcanize path fix up doesn't resolve properly. It's fairly common in a Gulp word.

Are there any plans to implement this? Does anyone know of a workaround in the mean time?
Thanks.

@therealklanni The workaround (as I understand) is to copy all files from src/ to dist/, and then run Vulcanize within the dist/ directory. I have an example here, if you're interested.
Likewise, I would also appreciate a native solution. Is there any possibility it'll be implemented?

@kincaidoneil thanks for this. Maybe you can help me understand how yours differs from mine. I already copy the files to dist/ before vulcanizing from there:
  gulp.task('vulcanize', function () {
    var DEST_DIR = 'dist';

    return gulp.src('dist/index.html')
      .pipe($.vulcanize({
        dest: DEST_DIR,
        strip: true
      }))
      .pipe(gulp.dest(DEST_DIR))
      .pipe($.size({ title: 'vulcanize' }));
  });

Perhaps there's something else I am missing?
My component looks something like this:
<link rel="import" href="../../bower_components/polymer/polymer.html">

<polymer-element name="header" attributes="layout" noscript>

  <template>
    <link rel="stylesheet" href="../styles/main.css">
    <link rel="stylesheet" href="../styles/different.css">
  </template>
</polymer-element>

Note the relative paths.
The vulcanized result ends up with paths like /styles/main.css. Not sure what I've done differently. Any insight you might have would be greatly appreciated.


Refactor to a single module project

@quintesse could you, please, take a look too?

@gytis could you perhaps base it on my PR? https://github.com/snowdrop/spring-boot-configmap-booster/pull/43 ?
It's basically just the https://github.com/quintesse/spring-boot-configmap-booster/blob/086f8f20dccc4c92b76fa1bf1e2fb50ac9c30629/.openshiftio/Jenkinsfile.setup.groovy file that needs to be used instead of the .snippet one.

Maybe you could push your commit on top? It would probably best to have them separate

@quintesse @gytis wouldn't we have the same issue with the other multi-module boosters? Why do we only need this change for configmap?

Apparently multimodule projects wouldn't work with the pipeline. However, since this one is artificially made to be multimodule, we can fix it.

Also there is no point for it to be multimodule. It was just a workaround which isn't needed any more.

But won't the same issue arise for the other Boosters that do need to be multi-module?

It will, but OpenShift Online doesn't have the capacity to run two services anyway. @quintesse has all the reasons :)

@geoand yes, but those boosters are not currently planned to be used anyway due to lack of resources on starter and OSIO clusters. And it seems unlikely that that will change in the near future. If we ever get to that point we'll see what we can do, for now this is just the easiest way to fix things and get them working before Summit.

@quintesse @gytis  Understood, thanks for filling me in!

Great, thx @gytis !


Multiple patches

I got these warnings when building the example programs:
./thrust/system/cuda/detail/bulk/malloc.hpp(58): warning: address of a __shared__ variable "thrust::system::cuda::detail::bulk_::detail::s_data_segment_begin" cannot be directly taken in a host function

We should never commit changes that introduce new warnings. Can we try to avoid marking the functions in Bulk's malloc implementation with __host__? There might be another workaround to try. Logically, that malloc implementation cannot ever be used in a __host__ function anyway.


Add Prettier

Adds Prettier, git pre-commit hook, CI job (you may need to enable this in the repo settings), and removes some more unused code!

I'm noticing that some of the styling is broken due to the removal of the unused component - it looks like the nouns builder styles are getting overridden by ours. Going to try and fix that in a subsequent PR, and if it's not possible to get them to work together I'll add the component back

Pushed in this PR.


Syntax Error when running Azure CLI in Azure Pipeline

Note
Issues in this repo are for tracking bugs, feature requests and questions for the tasks in this repo
For a list:
https://github.com/Microsoft/azure-pipelines-tasks/tree/master/Tasks
If you have an issue or request for the Azure Pipelines service, use developer community instead:
https://developercommunity.visualstudio.com/spaces/21/index.html )
Required Information
Entering this information will route you directly to the right team and expedite traction.
When running az webapp create --resource-group $(RG) --plan $(azureSubscription) --name %1
I keep getting syntax error no matter what I do with the command.
Question, Bug, or Feature?
I believe there is a bug in Azure CLI within Azure Pipelines when passing a runtime variable value in. Happens in 1.0 and 2.0
Type: here
Enter Task Name: here
list here (V# not needed):
https://github.com/Microsoft/azure-pipelines-tasks/tree/master/Tasks
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:

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:

Issue Description
[Include task name(s), screenshots and any other relevant details]
I keep getting the following error: /home/vsts/work/_temp/azureclitaskscript1617268666546.sh: line 1: syntax error near unexpected token `('
This is when I run this set of code from my YAML file that essentially runs an Azure CLI Command:

task: AzureCLI@1
displayName: 'Create Web App in $(appservicename)'
inputs:
azureSubscription: $(azureSubscription)
scriptLocation: inlineScript
Arguments input: $(webappname)
inlineScript: |
az webapp create --resource-group $(RG) --plan $(azureSubscription) --name %1

The webapp name variable is a runtime variable. That has been set correctly and works else where in the yaml file. Yet for azure cli I get this syntax error.
Task logs
[Enable debug logging and please provide the zip file containing all the logs for a speedy resolution]
Troubleshooting
Checkout how to troubleshoot failures and collect debug logs: https://docs.microsoft.com/en-us/vsts/build-release/actions/troubleshooting
I have tried the following things
Settings the Variable as an ENV variable using echo
Wrapping the variable in %% or {}
Quoting around the variable "$(webappname)"'
Dollaring the variable $($webappname)
Nothing seems to work and I get the same error.
Error logs
Main error: /home/vsts/work/_temp/azureclitaskscript1617268666546.sh: line 1: syntax error near unexpected token `('
Whole Log:
##[debug]   set
##[debug]   --subscription
##[debug]   --subscription
##[debug]   237bc9da-22ad-49ea-8411-6cf6a190c18f
##[debug]   237bc9da-22ad-49ea-8411-6cf6a190c18f
/usr/bin/az account set --subscription 237bc9da-22ad-49ea-8411-6cf6a190c18f
##[debug]addSpnToEnvironment=false
##[debug]exec tool: /bin/bash
##[debug]arguments:
##[debug]   /home/vsts/work/_temp/azureclitaskscript1617268666546.sh
/bin/bash /home/vsts/work/_temp/azureclitaskscript1617268666546.sh
/home/vsts/work/_temp/azureclitaskscript1617268666546.sh: line 1: syntax error near unexpected token (' /home/vsts/work/_temp/azureclitaskscript1617268666546.sh: line 1: az webapp create --resource-group ClassroomInTheCloud --plan Visual Studio Professional Subscription (237bc9da-22ad-49ea-8411-6cf6a190c18f) --name %1'
##[debug]Exit code 2 received from tool '/bin/bash'
##[debug]STDIO streams have closed for tool '/bin/bash'
##[debug]task result: Failed
##[error]Script failed with error: Error: The process '/bin/bash' failed with exit code 2
##[debug]Processed: ##vso[task.issue type=error;]Script failed with error: Error: The process '/bin/bash' failed with exit code 2
##[debug]Processed: ##vso[task.complete result=Failed;]Script failed with error: Error: The process '/bin/bash' failed with exit code 2
##[debug]which 'az'
##[debug]found: '/usr/bin/az'
##[debug]/usr/bin/az arg:  account clear
##[debug]/usr/bin/az arg:  account clear
##[debug]exec tool: /usr/bin/az
##[debug]exec tool: /usr/bin/az
##[debug]arguments:
##[debug]arguments:
##[debug]   account
##[debug]   account
##[debug]   clear
##[debug]   clear
/usr/bin/az account clear
Finishing: Create Web App in appserviceplan-dgyn27h2dfoyo
[Insert error from the logs here for a quick overview]

subscribe, i have the same issue, when using the bash step, the expansion seems to be done wrong, sometimes i get EOF when using $(variable), sometimes it fails when using the az cli --name $(variable)

Any Update on this please? When I put actual values the task runs but when putting variabeles in I get syntax error.

@jasric89 for referencing the command line arguments in bash script you should use $1 instead %1. Can you please try that?

@jasric89 Have you got the chance to try above suggestion?

@anuragc617 the issue is not related to %1 or $1
if you pay attention to the debug log you can see an extra quote( ' ) the weird thing is that it gets there at "compile" time, when azure devops replaces variables/secretes, etc with actual values, and passes the script to an actual bash shell
those extra ' are breaking everyones build

@papagalu, sorry for confusion. I already mentioned thisit is giving error there because of '(' in subscription name. It should be a valid app service plan name not a subscription name here.
@papagalu Can you provide more details and provide logs for your issue, so that we can have a look at it.

You guys seriously don't work together or read, posts properly do you.... You have an open bug see PR12922 that If I specify a management group/ service plan you get an error stating that CLI can not find the Azure Subscription.... Therefore you then go down the road of referencing the Azure Subscription and you get this bug that you are replying too, a syntax error. Please can you all work as a team or at least keep up to date on your latest PR's

@jasric89 I am not sure which PR12922 you are referring to, can you please share the link. The issue you have posted here is happening because you are passing Azure subscription instead App service plan to web app create command. As azure subscription is expanded to Visual Studio Professional Subscription (237bc9da-22ad-49ea-8411-6cf6a190c18f) which contains ( , the Azure CLI is failing with unexpected  unexpected token (.
Please replace $(azureSubscription) to $(appserviceplan) it will work
az webapp create --resource-group $(RG) --plan $(azureSubscription) --name %1
I have tried this and it is working fine. Also when I used azureSubscription there, I got the same error which you are facing.
- task: AzureCLI@1
  displayName: 'Create Web App in $(RG)'
  inputs:
    azureSubscription: $(azureSubscription)
    scriptLocation: 'inlineScript'
    arguments: $(webAppName)
    inlineScript: az webapp create --resource-group $(RG) --plan $(appserviceplan) --name $1

I did that and it didn't work, I got the same syntax error.

@jasric89 Can you please share the latest logs with the suggested changes in task? Are you seeing this line in logs az webapp create --resource-group ClassroomInTheCloud --plan Visual Studio Professional Subscription (237bc9da-22ad-49ea-8411-6cf6a190c18f) --name %1'. ?

Hi @jasric89 can you please share the latest logs for investigation?

Closing this since user didn't reply.
Feel free to open incase of issue.

Please do not close this, its not fixed


override images by annotations

Signed-off-by: Zhiwei Yin<EMAIL_ADDRESS>story: https://github.com/open-cluster-management/backlog/issues/14686

/retest

/assign @skeeey @qiujian16


[Chore] Resolve the Gettext warning in config

Why
After generate new project which has gettext, the command line output this warning
warning: the :gettext compiler is no longer required in your mix.exs.

Please find the following line in your mix.exs and remove the :gettext entry:

    compilers: [..., :gettext, ...] ++ Mix.compilers(),

  (gettext 0.20.0) lib/mix/tasks/compile.gettext.ex:5: Mix.Tasks.Compile.Gettext.run/1
  (mix 1.13.4) lib/mix/task.ex:397: anonymous fn/3 in Mix.Task.run_task/3
  (mix 1.13.4) lib/mix/tasks/compile.all.ex:92: Mix.Tasks.Compile.All.run_compiler/2
  (mix 1.13.4) lib/mix/tasks/compile.all.ex:72: Mix.Tasks.Compile.All.compile/4
  (mix 1.13.4) lib/mix/tasks/compile.all.ex:59: Mix.Tasks.Compile.All.with_logger_app/2
  (mix 1.13.4) lib/mix/tasks/compile.all.ex:36: Mix.Tasks.Compile.All.run/1

Who Benefits?
Elixir developer

Related build failed:

https://github.com/nimblehq/elixir-templates/runs/8268651960?check_suite_focus=true
https://github.com/nimblehq/elixir-templates/runs/8268651960?check_suite_focus=true
https://github.com/nimblehq/elixir-templates/runs/8268652500?check_suite_focus=true

Look like the Phoenix team remove the gettext in mix.exs here: https://github.com/phoenixframework/phoenix/pull/4894 . But we not sure when It will be released, so at the moment it's a blocker to get the CI pass.

@byhbt The issue about gettext is from the Phoenix generator itself that including the :gettext atom inside the fresh generated project. To fix the warning, we need to remove the atom until the Phoenix generator is fixed.
I can work on it 🙌

yes @hanam1ni ! Please help update it.
I think we can fix it now to avoid blocking our CI and other feature related to it. In the future, when the new release of Phoenix is come out, then we can revert it.


Fix disk space calculation under W11

Under W10 21H2, fsutil volume diskfree C: outputs the following:
Total free bytes        :   367,475,556,352 (342.2 GB)
Total bytes             : 1,023,563,599,872 (953.3 GB)
Total quota free bytes  :   367,475,556,352 (342.2 GB)

Under W11 21H2 (different machine), we get:
Total free bytes                : 247,016,386,560 (230.1 GB)
Total bytes                     : 511,352,762,368 (476.2 GB)
Total quota free bytes          : 247,016,386,560 (230.1 GB)
Unavailable pool bytes          :               0 (  0.0 KB)
Quota unavailable pool bytes    :               0 (  0.0 KB)
Used bytes                      : 256,893,227,008 (239.3 GB)
Total Reserved bytes            :   7,443,148,800 (  6.9 GB)
Volume storage reserved bytes   :   7,372,722,176 (  6.9 GB)
Available committed bytes       :               0 (  0.0 KB)
Pool available bytes            :               0 (  0.0 KB)

Prior to this PR, tron.bat -d -e outputs upon completion:
                          Free space before Tron run: 367 MB
                          Free space after Tron run:  367 MB
                          Disk space reclaimed:       0 MB *

After:
                          Free space before Tron run: 350464 MB
                          Free space after Tron run:  350461 MB
                          Disk space reclaimed:       -3 MB *

(The -3 MB in this case is just because dry run doesn't kill a download I had in progress)

I've tested this patch with both my W10 and W11 machines, but I don't have 7/8/8.1 to test on unfortunately. I'm hoping that because I used the existing "avail free" method, it should still work the same.

I've tested this patch with both my W10 and W11 machines, but I don't have 7/8/8.1 to test on unfortunately. I'm hoping that because I used the existing "avail free" method, it should still work the same.

Tried on W7 with a VM. works fine

I'm having an issue on Windows Vista, where it complains that numbers must be 32-bit integers. On systems where the free space output is above 2,147,483,647 it throws Invalid number.  Numbers are limited to 32-bits of precision.

Closing as I wasn't able to find a clean solution that worked on all versions of Windows.


Simplify: get rid of nib

Fixed by https://github.com/feross/instant.io/commit/fc74894e55d2300602323d0112d7a721a3558166


New maintainer

@keiraville You have qualified to be a maintainer here. Thank you for your hard work! Would you like to join?

(cc @keiravillekode - I got your username wrong before sorry!)

Yes, I would be happy to join the Lua maintainers.

Message ID: @.***>

Thanks @keiravillekode!

What is the current workflow to add a new maintainer? When @ryanplusplus asked me back then, I had to make a PR adding myself to a maintainer.json file, but this no longer exists as far as I can see.

I think it's adding a person to the exercism/lua team, which needs privs in the exercism org.

I think it's adding a person to the exercism/lua team, which needs privs in the exercism org.

That is correct!

@keiravillekode Awesome. Thank you!
You're part of the team now. You also get access to the #maintainers channel on Discord if your Exercism and Discord accounts are linked.
You can learn more about being a maintainer here
Thanks so much for your work, and welcome to the team :)


Wallet hangs/Unable to pay using Blockstream LN store payment request

Mac OSX 10.13.6 using latest desktop version of Zap Version 0.3.1-beta (0.3.1-beta.5049) through my remote node.
I am able to process Yalls payments just fine but when clicking through on the Blockstream store with the provided LN link the Zap wallet comes up and highlights green with a valid LN address however the payment screen and pay button does not immediately follow, as per normal.
No action by the user is possible at this point except for closing the payment screen.

Thanks for reporting @jchello . This is caused by a limitation in the bolt11 library which we use to parse ln payment requests. The issue was resolved upstream in https://github.com/bitcoinjs/bolt11/issues/9 and I have a patch to merge those changes into our codebase waiting for review in https://github.com/LN-Zap/zap-desktop/pull/1167.


Export functionality is missing for Contact and Company.

Combine export for company with contacts so that user can import same to update data

YES ... it is required... in sample file we need TAG column title also .... like company's tag ... contact's tag etc.