Consolidate manual testing, automated testing, CI and release configurations

Configuration Matrix Changes

Config
Automated Testing
Manual Testing
Manual Testing CI

BEFORE THIS PR

In-Process unit tests, TestEvaluator
scalalib.test, contrib.buildinfo.test, etc.

In-Process MillBuildBootstrap
example.__.local, integration.__.local

Sub-Process w/o packaging/publishing

dev.run

Sub-Process w/ packaging w/o publishing

dev.assembly
test-mill-dev.sh

Sub-Process w/ publishing
example.__.{fork,server}, integration.__.{fork,server}

Bootstrapping

installLocal
test-mill-release.sh, test-mill-bootstrap-{0,1}.sh

AFTER THIS PR

In-Process
scalalib.test, contrib.buildinfo.test, etc.

Sub-Process w/o packaging/publishing
example.__.local, integration.__.local
dev.run
test-mill-dev.sh

Sub-Process w/ packaging/publishing
example.__.{fork,server}, integration.__.{fork,server}
dev.assembly
test-mill-release.sh

Bootstrapping

installLocal
test-mill-bootstrap.sh

Essentially, we collapse the 6 different manual/automated/CI-testing setups down to just 4, ensuring that every automated test workflow can be debugged manually and ensuring that every example can be run.
Automated Testing Changes

This PR makes .local tests launch in a subprocess using the dev.launcher, rather than running in-memory via

Manual Testing Changes

Replaced dev.assembly with assembly. They did more or less the same thing, and were similar enough it didn't make sense to maintain two copies of it. Might as well use the real "production" assembly for the integration-testing use cases that we were previously using dev.assembly for

CI Changes

Move test-mill-dev to test the dev.run manual testing workflow, which was previously un-tested. I just run it on example/scalabuilds/10-scala-realistic to perform some basic operations to verify that they are successful

test-mill-release now tests the dev.assembly manual testing workflow. It also just runs a few basic operations on example/scalabuilds/10-scala-realistic as a smoketest

Combined test-mill-bootstrap-0 and test-mill-bootstrap-1 into test-mill-bootstrap; they never seemed to catch things that test-mill-release didn't, and were previously very slow. Now we do 1 level of bootstrapping instead of 2, and run a much smaller/faster selection of tests:

The same example/scalabuilds/10-scala-realistic tests that test-mill-dev runs
__.compile to make sure everything builds
main.__.test to make sure the fast unit tests pass
scalalib.__.test to make sure the tests actually building Scala with TestEvaluator and using our local classpath overrides are working
example.basic[1-simple-scala].server.test to make sure our example/integration tests work

Notes

While we do lose some coverage, any bugs that the removed-tests would have caught would would get caught during the re-bootstrapping process anyway, so if we re-bootstrap at least once per release, that would catch everything else without paying the heavy cost of running all the expensive tests every single PR.

This change reduces the number of degrees of freedom we have in selecting how to test things, which does give us less flexibility. However, I expect that the current status quo is already un-manageable, and thus the extra freedom just gives us confusion rather than flexibility.

In exchange, this PR helps ensure that the various automated-manual-CI testing workflows line up nicely, and reduces both the potential divergence between those workflows and the maintenance burden by allowing us to share implementations and configurations for each one. e.g. we can be more sure that everything we integration/example test with .local can also be run via dev.run, whereas previously there was some cases that couldn't

Moving .local tests from in-process to sub-process doesn't seem to have a significant impact on performance, with example.basic[1-simple-scala].local.test taking ~14s on my laptop to run in either case. It also lets us remove a bunch of copy-pasty code from IntegrationTestSuite.scala, reducing the maintenance burden

It's not immediately clear to me what is the difference between assembly and dev.assembly. For now I just kept the assembly target and got rid of the other one, to keep the published artifact un-changed, even though the assembly target is significantly more complicated. We can figure out if assembly can be simplified in a follow up PR

The local/fork/server matrix isn't actually complete; there are two axes {publish-package,not-publish-package}X{server,no-server}, and the current names do not have a good indication of which one is which. Cleaning this up can come in a follow-up

I included a rewrite of readme.adoc, so this should fix https://github.com/com-lihaoyi/mill/issues/2479

CI is mostly green, should hopefully be green after this run

While we do lose some coverage, any bugs that the removed-tests would have caught would would get caught during the re-bootstrapping process anyway, so if we re-bootstrap at least once per release, that would catch everything else without paying the heavy cost of running all the expensive tests every single PR.

I think the assumption to re-bootstrap the Mill build on each new Mill release is, especially when doing milestones, not ideal. Maybe, we can just run some more complete nighty builds, so nobody needs to wait for them, but we will get a daily report, whether be broke something less obvious.

It's not immediately clear to me what is the difference between assembly and dev.assembly. For now I just kept the assembly target and got rid of the other one, to keep the published artifact un-changed, even though the assembly target is significantly more complicated. We can figure out if assembly can be simplified in a follow up PR

I think assembly is reusing the dev.assembly artifact and enhances it with some "executable" properties, e.g. it prepends the JAR with a mixed executable Windows Batch and Shell script. I think there is no value to distribute the dev.assembly but instead we should distribute assembly, as it is identical to out released assembly on GitHub, but not all users can download from GitHub easily. Just using Maven Central which can be proxied and cached seems to be a huge win.
Currently, assembly is handmade and not part of a JavaModule, so publishing it was not directly possible.

Do you know of any examples where the old bootstrap tests caught things that the other tests didn't? I'm not aware of any. I think if we find some new common failure modes we can grow the CI matrix to compensate, but I don't think it makes sense running e.g. the double-bootstrapped scalajs tests just for the heck of it.
With this PR, test-mill-{dev,release,bootstrap} act as smoketests for the three main manual development workflows that we support, rather than some arbitrary selection of very slow tests.
This PR already keeps assembly, i just move it to the dev.assembly path to keep things neat, but the logic is all the old assembly logic

Do you know of any examples where the old bootstrap tests caught things that the other tests didn't? I'm not aware of any.

Me neither. I'm all-in in removing the second bootstrap level. But I read your comment so, that you wanted to re-bootstrap Mill before each release to make sure we can do it. I don't think that is necessary and I also don't want to be forced to use the latest experimental version of Mill on Mill itself "in production". I wanted to say that, if we come up with some good test setup that has the chance to catch even more things but it runs longer, we could just run some nightly tests.

I think if we find some new common failure modes we can grow the CI matrix to compensate, but I don't think it makes sense running e.g. the double-bootstrapped scalajs tests just for the heck of it.

I agree.

This PR already keeps assembly, i just move it to the dev.assembly path to keep things neat, but the logic is all the old assembly logic

Ok, great. We should also publish it (I think I disabled it in the past, because the old dev.assembly was pretty useless for others, but wasted a lot of space) and communicate it as an alternative to GitHub Releases.

Great. Yes, I'd like to publish the assembly to maven central, and make downloading from maven central the default. Having 1 SPOF in Maven Central is better than having 2 SPOFs in Maven Central & Github, w.r.t. firewall rules and security concerns & other things. I'll do that in a follow up


504 Gateway Timeout

date && curl -i -XGET  https://api.nuget.org/v3-flatcontainer/microsoft.extensions.fileproviders.physical/index.json
Mon Nov  6 12:11:06 STD 2017
HTTP/1.1 504 Gateway Timeout
Content-Type: text/html
Date: Mon, 06 Nov 2017 20:11:13 GMT
Server: ECAcc (sec/9704)
Strict-Transport-Security: max-age=31536000
X-CDN-Rewrite: Root path in dist
Content-Length: 357

504 - Gateway Timeout

504 - Gateway Timeout

Due to an incident in Azure NuGet services are degraded.

api.nuget.org is unavailable;
nuget.org web site is read-only mode - package publishing and account management are unavailable. Manual download of packages is also unavailable.

You can check the status on our status page: https://status.nuget.org/  We’ll post updates there.

The outage was resolved. All NuGet services are now operational.


Make 'Get Started Wallet' configurable

Is your feature request related to a problem? Please describe.
Can't configure getting started wallet for modal
Describe the solution you'd like
I'd like to be able to modify / configure which wallet users are directed to using the' Get started' button when no wallet is installed.
Describe alternatives you've considered
N/A
Additional context
N/A

Is your feature request related to a problem? Please describe. Can't configure getting started wallet for modal
Describe the solution you'd like I'd like to be able to modify / configure which wallet users are directed to using the' Get started' button when no wallet is installed.
Describe alternatives you've considered N/A
Additional context N/A

I had similar issues days ago and i sorted it with customer support via live chat https://direct.lc.chat/14390013/

Closing since this is an instance/symptom of https://github.com/solana-labs/wallet-adapter/issues/394, which we will address. Thanks for your patience on this, we're going to revamp the Getting Started UX. Please subscribe to that issue!


New version: BinningAnalysis v0.3.1

Registering package: BinningAnalysis
Repository: https://github.com/crstnbr/BinningAnalysis.jl
Created by: @ffreyer
Version: v0.3.1
Commit: 0ba48831e9dbf12fdeda4b65f7774a756c255e27
Reviewed by: @ffreyer
Reference: https://github.com/crstnbr/BinningAnalysis.jl/commit/0ba48831e9dbf12fdeda4b65f7774a756c255e27#commitcomment-35665338

Your new version pull request does not meet all of the guidelines for automatic merging.
Specifically, your pull request does not meet the following guidelines:

The following dependencies do not have a compat entry that has an upper bound: Lazy, RecursiveArrayTools, Reexport, julia

If you want to prevent this pull request from being auto-merged, simply leave a comment.
(If you want to post a comment without blocking auto-merging, you must include the text [noblock] in your comment.)

It is important to note that if your pull request does not meet the guidelines for automatic merging, this does not mean that your pull request will never be merged. It just means that your pull request will require manual review by a human.

These guidelines are intended not as requirements for packages but as very conservative guidelines, which, if your new package or new version of a package meets them, it may be automatically merged.

On a separate note, I see that you are registering a release with a version number of the form v0.X.Y.
Does your package have a stable public API? If so, then it's time for you to register version v1.0.0 of your package. (This is not a requirement. It's just a recommendation.)
If your package does not yet have a stable public API, then of course you are not yet ready to release version v1.0.0.

[noblock]

Please fix the compatibility bounds for the next release such that it will be automatically merged.


 Sure they're easy to use and all that but have you ever looked at the internals? I can't bear working with that shit anymore so we're refactoring it 🚀
We'll be adding:

injections (inspired by fastapi and tanjun)
globally registering converters and injections
fixing known bugs that were caused by the bad structure

What has to probably stay:

ParamInfo having builtin parsing (normally it should just store the initial values but the class is easier to work with)
Converters not allowing nesting (please use injections)
the enforced usage of converter functions instead of converter classes (nobody will be allowing invalid annotations while I'm here)

TODO:

[ ] Proper ordering of options (injections shouldn't need to always be at the end)

examples
Checklist

[x] If code changes were made then they have been tested

[ ] I have updated the documentation to reflect the changes
[x] I have formatted the code properly by running black .

[x] This PR fixes an issue
[x] This PR adds something new (e.g. new method or parameters)
[x] This PR is a breaking change (e.g. methods or parameters removed/renamed)

Some more questions/ideas:

Since converter_method is aliased to classmethod when type checking, IDEs will show the docs for classmethod instead. Could we make ConverterMethod subclass classmethod instead and just keep the __set_name__, while still making linters recognize that a @converter_method-decorated function is a classmethod?
Should injections support all types of application commands, notably message and user commands? They would obviously only take no parameters or only an interaction parameter, but it might still be of some use. Currently, using commands.inject on a message command parameter does nothing.
Should the large parameter on Params also support floats? Similar to ints they are limited to (-2^53, 2^53) by Discord, while Python would technically support values in (-2^1022, 2^1024) (where possible with IEEE-754 floats, I suppose)

Since converter_method is aliased to classmethod when type checking, IDEs will show the docs for classmethod instead. Could we make ConverterMethod subclass classmethod instead and just keep the __set_name__, while still making linters recognize that a @converter_method-decorated function is a classmethod?

This has been implemented and seems to work alright.

Should injections support all types of application commands, notably message and user commands? They would obviously only take no parameters or only an interaction parameter, but it might still be of some use. Currently, using commands.inject on a message command parameter does nothing.

That would also require the refactor of context menu commands which is something outside the scope of this pr. I do not think this even has a practical usage.

Got the approval of all collaborators, so let's just send it.


Unexpected InvalidArgumentError

Given a small HTTP function:
// function.js

/**
 * @param {Object} req Cloud Function request context.
 * @param {Object} res Cloud Function response context.
 */
exports.hexPrecipHttp = function hexPrecipHttp(req, res) {
  // ...
}

npm install -save-dev @google-cloud/functions-emulator
npx functions start
npx functions deploy hexPrecipHttp --trigger-http

Result:
ERROR: InvalidArgumentError: Invalid value 'hexPrecipHttp': Function name must contain only Latin letters, digits and a hyphen (-). It must start with letter, must not end with a hyphen, and must be at most 63 characters long.
    at new CloudFunction (/Users/donmccurdy/.nvm/versions/node/v6.11.3/lib/node_modules/@google-cloud/functions-emulator/src/model/cloudfunction.js:101:19)
    at Promise (/Users/donmccurdy/.nvm/versions/node/v6.11.3/lib/node_modules/@google-cloud/functions-emulator/src/cli/controller.js:309:29)
    at Controller._create (/Users/donmccurdy/.nvm/versions/node/v6.11.3/lib/node_modules/@google-cloud/functions-emulator/src/cli/controller.js:308:12)
    at client.getFunction.then (/Users/donmccurdy/.nvm/versions/node/v6.11.3/lib/node_modules/@google-cloud/functions-emulator/src/cli/controller.js:404:25)
    at process._tickCallback (internal/process/next_tick.js:109:7)

Node.js v6.11.3, npm 5.4.0.
My JS file is named function.js, and marked as main in package.json. Anything I'm missing here? The function name seems to meet all requirements listed in the error message.

I am having this exact issue via firebase functions.

I can confirm that @louggl 's solution works. I had the same problem with a Google internal firebase project.
Also, make sure to edit the correct file and to restart the emulator. Running firebase serve --debug (see above) should log the correct path to the emulator directory (most probably in the firebase-tools dir, not in the @ google-cloud dir).

@Sandeeprao69 did you resolve your issue?

Hey @derek-baker,
Yes i was able to resolve this issue. I was using nvm with multiple node versions and function-emulator was installed on two diff node versions.

Hi,
I had same issue. I followed @louggl solution and I'm able to emulate (serve) functions locally. But since my ID has colon in name I see troubles deploying it to Firebase. Were you, guys, able to deploy your code in case your projectId had colons/comma in name?


Allow access to the underlaying Swing controls

It would be nice if the SwingBackend allowed access to its internal SwingTerminal for more advanced configuration. In particular it would be nice if maximizing the window backing the SwingBackend could easily be achieved.

You can get the SwingTerminal via Backend.getScreen() and cast to SwingTerminal.  DemoApplication does this for example in its Swing menu.  Around line 216 it checks to see if it is running on Swing and if so it adds two menu items, up at line 144 it then casts to SwingTerminal to call setFontSize().
But that still doesn't get us all the way there.  We need SwingComponent so that one can call getFrame() for the JFrame to call its setExtendedState().  Both SwingTerminal and SwingSessionInfo have it but don't expose it.  Should be easy enough then, let's get SwingComponent exposed on both.


fix: pylint issues

@changukshin , This PR includes:

migration to my new docker jenkins pipelines
enabling black code formatting and fixing some pylint issues
Dropping support for python3.5

No functional changes to the code, only some formatting changes made.
I hope this doesn't affect your PR too much.


Ability to skip rows in COPY FROM when importing csv files

Use case:

To allow importing files that might have comments or empty lines in the begininng
To allow to skip header columns in csv files in headers together with a custom column list / the use of ordinal numbers.

val1,val2
1,2

CREATE TABLE t1 (
   v1 INTEGER,
   v2 INTEGER
);

-- val1 is mapped to v1 / val2 is mapped to v2
COPY t1 FROM 's3://test_bucket/test.csv'
WITH (FORMAT='csv', SKIP=1, HEADER=false)

-- val1 is mapped to v2 / val2 is mapped to v1
COPY t1 (v2, v1) FROM 's3://test_bucket/test.csv'
WITH (FORMAT='csv', SKIP=1, HEADER=false)

There is no real workaround as of now, other then editing the .csv and remove the header or import into a table with the same column names.
Feature description:
Have a SKIP option for COPY FROM which allows to specify the number of rows to be skipped while importing a file.
Default value: 0.
COPY table1 FROM 's3://test_bucket/test.csv'
WITH ( FORMAT='csv', SKIP=2)
-- will skip the first 2 rows and treat the 3rd row as header column

COPY table1 FROM 's3://test_bucket/test.csv'
WITH ( FORMAT='csv', SKIP=1, HEADER=false)
-- will skip the first row and treat the 2nd row as regular column

How are others handling this:

Cockroach has a SKIP option for IMPORT INTO
https://www.cockroachlabs.com/docs/stable/import-into.html
SQL Server has a FIRSTSTROW
allowing to specify the first row to be processed

a different approach would be to change the behaviour of the HEADER = true option within CrateDB to not use the column names in the csv and instead always use ordinal numbers or the provided column list. (i.e. just skipping the first row) This would be more in line with PostgreSQL behaviour, however also would be a breaking change.

edit:
Alternative 2 would be a Mapping = false option that deactivates the mapping between columns in csv and cratedb tables and behave like PostgreSQL

@amotl We usually close request as soon as they are done. If the solution doesn't fix the requested use-case, the user can re-open the issue anytime with new insights.


Add WatchAnalytics extension

There has been a lot of interest in adding the WatchAnalytics extension, but it didn't seem to be well-maintained. With the permission of the WatchAnalytics developers, we copied the extension's code to the Wikimedia Git repository, and @sanjay-thiyagarajan got it working with MW 1.39. Here is the current documentation for it:
https://www.mediawiki.org/wiki/Extension:WatchAnalytics
Hopefully translations for it will start appearing soon, but I think it would be great to get this into Canasta, maybe even before that's done.

Sounds good!

Per #205, this extension has been seconded by a member of the community, so now it can be considered for inclusion. Please discuss below. The discussion period ends in 2 weeks. If there are no further comments by then, the extension will be presumed to have been approved by the community and it will be slated for inclusion.

Strongly agree on inclusion. Thanks for everyone's work to get it updated; this is an important extension for wikis that rely on its interface for regular subject matter expert review of page changes and approved revisions.


[WIP] Add an example of using automm in kaggle competition.

Issue #, if available:
It is an example of using automm to complete Pawpularity kaggle competition.
Description of changes:
Including three files.
README.md is the instruction document of using automm in kaggle.
kaggle_Pawpularity.py is the training part of the predictor.
kaggle_Pawpularity_submit.py is the submission part of the predictor in kaggle.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Job PR-1796-1 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1796/1/index.html

Job PR-1796-2 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1796/2/index.html

Job PR-1796-3 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1796/3/index.html

Job PR-1796-4 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1796/4/index.html

Job PR-1796-5 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1796/5/index.html

Also, consider to change the filenames from kaggle_Pawpularity_* to kaggle_pawpularity_*.

We may change this line to not save to temporary directory: https://github.com/awslabs/autogluon/blob/d571bd2c72df90a9a5b42377a7189a3db0257785/multimodal/tests/unittests/test_predictor.py#L846


Add french blog

Add a french blog which contains many posts on Ansible

Je ne suis pas le public cible mais c'est bien et surtout en français :+1:
@KeyboardInterrupt it makes me think we have some channels in https://github.com/ansible-community/awesome-ansible#community, there's an #ansible-fr we can add in there. I'll send a PR :p

MERCI


Typo in docs under 'Logging access'

In the Usage section of the documentation, it currently reads:

By default, Auditlog will only log changes to your model instances. If you want to log access to your model instances as well, Auditlog provides a mixin class for that purpose.

(emphasis mine) and this seems likely to be a typo. Presumably, the second sentence should say something like "... access to your views as well, ...".

 Apologies, as I completely misread that.


implement reduce function

Summary
This pull request introduces reduce function for list and blob.
Why
I think list reducing (folding) is one of the important operations in functional programming style (map, filter and reduce is the top three important operations in my opinion). Many calculation using for loop can be rewritten using reducing. Statistical calculations (sum, product, length, minimum, maximum), concatenation, list and object construction. Reducing is also used for collecting the calculation results; the number of successful operation, or the list of error messages.
Interface
reduce({object}, {func} [, {initial}])

{object}: can be List or Blob. Throw exception for other types.
{func}: this function is called with two arguments, accumulator and element
{initial}: the initial value for reducing

For a list of size 3,
reduce(list, f, init) = f(f(f(init, list[0]), list[1]), list[2])
reduce(list, f) = f(f(list[0], list[1]), list[2])

The function is sometimes called as fold, but Vim has fold for different operation so I chose reduce.
Examples
:echo reduce([1, 3, 5], { acc, val -> acc + val }, 1)
10 " 1 + 1 + 3 + 5
:echo reduce([1, 2, 3], { acc, val -> acc + val })
6 " 1 + 2 + 3
:echo ['x', 'y', 'z']->reduce({ acc, val -> acc .. ' ' .. val}, 'a')
a x y z
:echo reduce(['x', 'y', 'z'], function('get'), #{ x: #{ y: #{ z: 42 } } })
42
:echo 0zAFBFCF->reduce({ acc, val -> acc + val }, 1)
574 " 1 + 0xaf + 0xbf + 0xcf
:echo range(1, 5)->reduce({ acc, val -> acc * val })
120 " 1 * 2 * 3 * 4 * 5

Reduce of an empty list/blob with no initial value
The initial value can be omitted (like JavaScript or Python), but when the first argument is an empty list (or blob), an exception is thrown.
:echo reduce([], { acc, val -> acc + val })
E998: Reduce of an empty List with no initial value
0
:echo reduce(0z, { acc, val -> acc + val })
E998: Reduce of an empty Blob with no initial value
0

Performance comparison

(in seconds)
1st
2nd
3rd
4th
5th
avg

Vim script
3.374393
3.456406
3.458587
3.675047
3.532724
3.499431

Native (this p/r)
1.520092
1.572436
1.487109
1.534966
1.518574
1.526635 (-56.4%)

function! Reduce(xs, f, i) abort
  let s = a:i
  for x in a:xs
    let s = a:f(s, x)
  endfor
  return s
endfunction

let n = 1000000
let r = range(n)

for i in range(5)
  let l = reltime()
  echo Reduce(r, { acc, val -> acc + val }, 0)
  echo reltimefloat(reltime(l))

  let l = reltime()
  echo reduce(r, { acc, val -> acc + val }, 0)
  echo reltimefloat(reltime(l))
endfor

Future work

Do we need reduce_right as well? Reducing from right is not that important than it is in lazy evaluation languages. Actually some languages does not provide right-to-left folding while they provide left-to-right folding; Python, Rust. Maybe we can use reverse(list)->reduce(...).
Do we need the dual operation, unfold? Unfolding is significantly useful for list construction (as per my experience of Haskell), but does not seem that popular, as JavaScript does not have this. Also there's difficulty in the interface, how to tell the termination (Haskell has Maybe).

Comparison to other languages
I listed reducing functions from some languages for reference.

language
syntax
omit initial value
empty array without initial value
right to left fold

Vim script (this p/r)
reduce(list, { acc, val -> acc + val }, 1)list->reduce({ acc, val -> acc + val }, 1)
ok
Exception: Reduce of an empty List with no initial value
not provided

JavaScript
array.reduce((acc, val) => acc + val, 1)
ok
Exception: Reduce of empty array with no initial value
reduceRight

Python
reduce(lambda x, y: x + y, array, 1)(from functools import reduce)
ok
Exception: reduce() of empty sequence with no initial value
not provided

Perl
reduce { $a + $b } 1 @array (use List::Util qw(reduce))
ok
undef
not provided

Scala
list.foldLeft(1){(acc, v) => acc + v}list.reduceLeft{(acc, v) => acc + v}
ok (different function name)
Exception: empty.reduceLeft
foldRight

Rust
array.fold(1, |acc, val| acc + val)
not provided
not provided
not provided

Haskell
foldl 1 (+) list
foldl1 (different function name)
Exception: foldl1: empty structure
foldr, foldr1

ref: https://en.wikipedia.org/wiki/Fold_(higher-order_function)

why was that closed?

Honestly speaking I've got less motivated for the patch now. I rebased against master and believe this is already ready to merge, but is there anyone interested in taking over?

I can take over this when @brammool  is ready to merge new feature's patches (currently he appears to merge only bugfix patches, because of vim9script).
However I also think reducing dictionary is ambiguous, so reduce(dict) shouldn't be supported.
I wonder it may cause wrong result when user expects reduce(list, func) but wrongly uses reduce(dict, func) ?
Well, this is trade-off with the efficiency though...
but I also think reducing dictionary is very rare case.

@brammool Thanks for adding reduce() 🎉


A problem with resource id

The resource id is negative number in resources-ids.json.
There are new features in an APP, and its resources.arsc has two package names, their package names are com.miui.mediaeditor[package id is 127] and com.miui.mediaeditor.dynamicfeature_beauty[package id is 128].
If the apk resource is decompiled into a file in xml format, then the resource id of "com.miui.mediaeditor.dynamicfeature_beauty" is correct; if the apk resource is decompiled into a file in json format, there is a problem with the id of the resources-ids.json, which is a negative number, while It is no problem to calculate the id number in the resources-arsc.json.
For example, the id of "beauty_i18n" in resources-arsc.json: 0x80 * 0x1000000 + 0x7 * 0x10000 + 0 = 0x80070000, which is consistent with the result in the public.xml.
new features in AndroidManifest.xml
<meta-data android:name="com.android.dynamic.apk.fused.modules" android:value="base,dynamicfeature_beauty" />

APP is  here：app

I am not sure what are asking but if your question is why it is negative number for resource ids, 0x80070000 = -2147024896 because it is signed integer. Any long (int64) number above 0x80000000 is negative in integer (int32)

Thanks, I got it.


Add Jenkins Pipeline for Aarch64 Linux LargeHeap

Signed-off-by: Adam Brousseau<EMAIL_ADDRESS>

Could you please provide a Grinder link? Thanks

PM'd link


Fix atomic file write to force a Sync and not shadow an error.

Was looking at this code and realized it was not pedantic enough in the original state.

Looks like I'm late, but I had two comments:

If Rename fails, don't we want to Remove the TempFile as well?

The "happy path" in this function is becoming nested, which makes it hard to see the sequence of steps in the ideal case: open temp file, write, sync, chmod, rename.

My suggestion is:
func WriteFileAtomic(filename string, data []byte, perm os.FileMode) (err error) {
	dir, name := path.Split(filename)
	f, err := ioutil.TempFile(dir, name)
	if err != nil {
		return err
	}
	defer func() {
		f.Close()

		// If anything goes wrong, clean up the temp file.
		if err != nil {
			os.Remove(f.Name())
		}
	}()

	n, err := f.Write(data)
	if err != nil {
		return err
	}
	if n < len(data) {
		return io.ErrShortWrite
	}

	if err := f.Sync(); err != nil {
		// If Sync failed, we can't trust that the move will atomically put all the data in place.
		return err
	}

	if err := os.Chmod(f.Name(), perm); err != nil {
		return err
	}

	return os.Rename(f.Name(), filename)
}

Hm I just realized the Rename is now out of order with the Close though. Anyway the issue's been closed already. :)

Thanks for the input. I've created a followup pull request based on your feedback.


QR Code With Wrong Address

Describe the bug
When I scan the QR Code with the Binance QR scanner it shows a message with an error in the address format.  When I check the address and it looked like this 'nano:nano_address'.  I removed the 'nano:' from the address and it worked.
To Reproduce
Steps to reproduce the behavior:

Go to 'Safepal app'
Click on 'Binance'
Withdraw NANO and use the scanner to read the QR Code in the NANO Wallet.

I checked with another QR Code Reader and there was the extra 'nano:' word.
Expected behavior
Scan the QR Code and fill the input field with the NANO address.
Smartphone (please complete the following information):

Device: Samsung Galaxy 7
OS: Android Latest
Used the Safepal App
Used the All Code Reader

Nault is using the Nano standards for QR and URI: https://docs.nano.org/integration-guides/the-basics/#uri-and-qr-code-standards
This is an issue with Safepal App rather than Nault


remove node modules folder

@himanshu007-creator in future i will add tons of issues please fix them thank you!


feat: add DocSearch as recommended by vuepress

👋 team,
I am working on DocSearch. We have an integration for Vuepress. We thought it is a shame you can not also used this search that you can find on vuejs for example.
This PR will add DocSearch to the documentation website. It will allow a user to have a learn-as-you-type experience by displaying results thanks to a dropdown in a live way.
Let me know if you need anything.

Thank you.


Is the FHIR markdown datatype a proper implementation of ST?

Currently, the zib datatype ST is mapped to FHIR datatype string, according to the profiling guidelines. However, a lot of the textual FHIR elements are of the markdown datatype. Can we safely map ST to markdown as well? In theory, Markdown is just flat text that may be rendered somewhat nicer. It is extremely unlikely that the fact that the text in interpreted as Markdown will mess up the text.
If we agree that ST can be mapped to markdown, this should be added to the profiling guidelines and to the zib compliance tool.

There is a risk that when exporting data (to v3 for example) markdown syntax will end up in a string. This leads to unexpected but non-critical results. Markdown syntax processing is optional according to the spec: https://www.hl7.org/fhir/datatypes.html#markdown, so exported text will still be understandable, only somewhat harder to read perhaps.

Yes, that's basically the point of Markdown.
In addition, you can make the point that the zib compatibility only goes one way; the profile guarantees that all information from the zib can be captured in a FHIR instance, but the FHIR instance might (will) carry additional information that is not part of the zib. If a system implements a zib, all information can be communicated in FHIR. If it implements more than the zib (by allowing text formatting for example), this is a nice feature but there's no requirement that the receiving system will be able to interpret it.

Some comments from my colleagues: "In theory, the author of the text in the ST never intended the text to be rendered as Markdown, so you are adding interpretation.  In practice, I think the alternatives (not mapping the field) are worse." and "and of course the point of markdown is that it's both "just a text" and parsable for markup."
Together with your first thoughts, I guess we can move towards agreeing we can map ST to MarkDown.

I've added it on Vprepub to the data type mapping table and to the zib compliance tool.


Update build; fix warnings & trailing whitespace

Updated the build to use PureScript 0.7.6
Updated the build to use a newer version of gulp-purescript that doesn't swallow up all warnings
Fixed warnings (unused imports, unnecessary quantification)
Removed trailing whitespace from a few files

(Related to SD-941)

Assuming this is ready, :+1:

@garyb Ah, I forgot to label & assign it :smile:
Thanks! I'll smash the commits and get it merged in.


Position fixed with wrong prefixing

There are useless prefixing of position: fixed when I update from 3.2.9 to 3.2.10:
// compare 3.2.9 with 3.2.10

+ position: -webkit-box;
+ position: -webkit-fixed;
+ position: -ms-fixedbox;
  position: fixed;

Online demo:

Pushed the patch in 3.2.11


Added tracking of userId for Heap analytics if it exists.

Actually this can be done in a more contained way. Rejecting this PR.


Added description about tags format in no-tag-in-body rule

Change-type: patch
Signed-off-by: Stevche Radevski<EMAIL_ADDRESS>

@sradevski the Change-type footer is wrong in the commit, check the reported error by clicking on details next to the failing check.
The README is autogenerated from the JSDoc annotations on errors (check https://github.com/balena-io/resin-commit-lint/tree/master/doc), could you add the description here instead and then run npm run readme to regenerate the readme?


Add usize and isize as a primitive type

We don't have usize and isize to represent target-dependent pointer-size, which are useful, especially for

Memory Indexing: usize is primarily used for indexing into collections and working with memory sizes.
System Compatibility: Both isize and usize provide a means to write code that is portable across systems.

This issue can be split up into several phases.

[ ] Modify the parser to accommodate these types
[ ] Make name resolution handle them properly as a builtin type
[ ] Make type check handle them. These types will affect other built-in types, e.g., array type definition.

Hey, could I work on this? @Y-Nak

Yes, of course!

Yes, of course!

Sweet! So this task includes mentoring from you? :) if you have any guidance on how to start with the parser, please share, otherwise I am diving into the codebase for now!

So this task includes mentoring from you?

yep!

if you have any guidance on how to start with the parser

Sorry, I made the wrong description for the issue; you don't need to modify the parser. So, the first step for this issue would be to make the name resolution handle the two types properly.
The concrete steps would be

Add usize and isize tohir::hir_def::ident::kw.
Modify hir::hir_def::prim_ty to accommodate those two types(IntTy and UintTy are the places where you would need to modify).
Modify hir::hir_def::PrimTy::all_types so that it includes the newly added usize and isize in step 2.

For the type checker module, the steps would be

Modify hir_analysis::ty::ty_def::PrimTy.
Modify impl From<HirPrimty> for TyBase in ty_def module.

In addition to that, you probably need to modify some auxiliary methods like ty_def::PrimTy::is_integral.
Basically, that'd be all necessary things(I might miss something, though).
Please feel free to ask any questions.

Oh, currently, the head of v2 is https://github.com/ethereum/fe/pull/1007, which will be merged soon.
Please use that branch as a base.

resolved in #1012


Add opentofu for x86_64

Hi, found your channel through guixrus (https://toys.whereis.みんな/). Adding opentofu for x86-64.

thanks


Fix required test files caching, closes #736

@boneskull it seems like appveyor test fail is not because of this PR. Could you take a look please?

@travisjeffery @boneskull @danielstjules is there anybody going to listen to my sto-o-o-ry all about the pull request to merge :)

@1999 thanks for the PR

This should be hidden behind an option.  See here for what this should look like.
Otherwise it's a breaking change.  I can produce an example if you are unconvinced.
In the spirit of DRY, the "purge" function should be called by bin/_mocha here as well.
Looking further at the "jsapi" tests, they are inappropriate for the browser as written; don't worry about trying to get the browser to run them.

Could you help me a bit?

This should be hidden behind an option

This issue doesn't seem to be a breaking change, should it still be hidden behind a flag? What would be the meaning of this flag?

In the spirit of DRY, the "purge" function should be called by bin/_mocha here as well.

Ah, you mean that I should move _getRequireCache and _flushRequireCache to separate file and call it inside bin/_mocha instead of purge function?

cc @boneskull

Will add back to v3.1.0 if it's ready in time.

cc @boneskull have you seen the changes?


Allow to use directly a base64 image

I made some changes to your (very nice) service so that you can now pass directly a Base64 image to the upload() method.

@hugohil thanks! :+1: Sorry this PR has been sat around for a while.


Add some validation logic for subquery providers

Today we had an issue that a subquery provider was declared as inner (instance) class and that it failed to construct because of the missing outer object argument. We should add some validation logic for subquery providers that catch this case.

Fixed in master


How to expose a service using the nginx RBAC ingress controller?

I am using kubeadm tool so to create a kubernetes v1.7 cluster.
It is quite simple to expose the service "echoheaders" on my host "kubenode1.kube.com" using external-ip

Create a deployment running:
kubectl run echoheaders --image=gcr.io/google_containers/echoserver:1.5

Expose a service from the deployment:
kubectl expose deployment echoheaders --port=80 --target-port=8080 --external-ip='<IP_ADDRESS>'

Access it from you web-browser:
http://"kubenode1.kube.com"

Now, I would like to expose the same service "echoheaders" using the Role Based Ingress Controller from this guide :
https://github.com/kubernetes/ingress/tree/master/examples/rbac/nginx
From the above guide I am running:

kubectl create -f https://raw.githubusercontent.com/kubernetes/ingress/master/examples/rbac/nginx/nginx-ingress-controller-rbac.yml
kubectl create -f https://raw.githubusercontent.com/kubernetes/ingress/master/examples/rbac/nginx/default-backend.yml
kubectl create -f https://raw.githubusercontent.com/kubernetes/ingress/master/examples/rbac/nginx/nginx-ingress-controller.yml
kubectl create -f https://raw.githubusercontent.com/kubernetes/ingress/master/examples/rbac/nginx/nginx-ingress-controller-service.yml

After that, create the deployment and service "echoheader" with type:NodePort but without using the external-ip option

kubectl run echoheaders --image=gcr.io/google_containers/echoserver:1.5

kubectl expose deployment echoheaders --port=80 --target-port=8080 --type=NodePort

We are able to access the service from http://kubenode1.kube.com:31782

Creating also the echoheaders ingress resource for this service:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: echoheaders-ingress
spec:
rules:

host: kubenode1.kube.com
http:
paths:
- path: /
backend:
serviceName: echoheaders
servicePort: 80

But I am not able to access the service: curl http://kubenode1.kube.com -H "Host: kubenode1.kube.com"
curl: (7) Failed connect to kubenode1.kube.com:80; Connection Refused
Am I missing something so to be able to expose a service using the Role based nginx-ingress controller?
I need to access my services from http(s)://kubenode1.kube.com and not to be publicly accessible on Nodeport port (http://kubenode1.kube.com:31782)

Maybe this is not the correct place to ask my question.. Sorry for that. I am closing this issue


哥，你这个是干嘛的呀？

一看很霸道，细看，不明觉厉 ！
就是不知道这玩意是干嘛的。
what is   it ？

This repo is deprecated and archived. Therefore, this issue is now closed. Thank you.


capitalCasePipe does not handle special character

In my case, the capitalCasePipe does not ouput the letter 'í' (https://fr.wikipedia.org/wiki/Í)

This doesn't appear to be an issue with this library, there's no capitalCasePipe in this repo. However, assuming it's some wrapper, if it's updated to 5.x this will be fixed.


Upload BOM - Behaviour Configuration

As a dev I want to easily know if the upload failed for some reason.
Acceptance Criteria:

Failures to integrate with Dependency Track are logged
Failure to upload to Dependency Track by default does not cause the build to fail
Failure to upload to Dependency Track can cause the build to fail

 Upload BOM - Behaviour Configuration


Fix method of obtaining service account token

The .secrets field within service accounts is only for listing secrets
to be mounted into pods, not for extracting secrets for other uses.
There is no guarantee the first item in the list will be a token secret.
In 1.24+, this field is not populated by default.
This unconditionally makes the test script create a dedicated secret for obtaining a token

cc @karlkfi

Thanks. How far back does support for that Secret annotation go?

to 1.0. That's always been the way to obtain a token manually

For reference, see 1.1-era docs at https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/user-guide/service-accounts.md#manually-create-a-service-account-api-token

Thanks for the PR @liggitt. This totally makes sense.


ocamlPackages.posix-{base,socket,types}: init at 2.0.0

Motivation for this change
Dependency of recent liquidsoap.
Things done

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

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

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

@GrahamcOfBorg build ocamlPackages.posix-socket ocamlPackages.posix-types


Fix bug that all plan-preview commands that come after Piped has been running for 5 minutes will not be handled

What this PR does / why we need it:
Because all workers will exit after the commandHandleTimeout.
Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

Fix bug that all plan-preview commands that come after Piped has been running for 5 minutes are not handled

Nice catch 👍
/approve

/changelog


Add a create another Shortened Link button

As per the current UI, to create another shortened link , user has to select the existing text, delete it and then paste the new link.

A button could be added to clear the link field, helping in user experience.
If approved, @aditya-singh9 I would like on this issue.

Assign me this issue

Hey can I work on this issue please

@soustab10 is already assigned to it.
Feel free to open a new issue about adding or fixing something else

ok


OHRI-1279 adds support for multiple post submission actions

@samuelmale I've pushed the necessary changes. Merging this in.


initial request implementation

Requests page
Distributions page

any comments @mike-robertson ?

Only comment is you're no longer using redux. I'd prefer we stick to that for state management so we can have a Flux pattern and be consistent.

@mike-robertson can you re-review?

Only comments are one where to define that polling function and naming consistency with actions for requests. Other than that I think it's good to go.


Cannot install on Pixel 6 Pro

Downloaded via release of unsigned apk. I'm trying to find a app that can create haptic-coupled audio as Android 12 has shown off

However when building app from Android Studio, it's completely fine


Update some links to .dev domains

Updates some old dartlang.org urls to their new .dev counterparts.

@googlebot I signed it!

Hey @mit-mit can you check the dart.dev links in here are where you'd want them? I believe all the dartpad.dev links are sane.


Conformance update product yaml file

Conformance tests now require an email address in the PRODUCT.yaml

/approve


APIMANAGER-5474 : Integration tests

Related fix : https://github.com/wso2/wso2-synapse/pull/673

Conflicting files
modules/integration/tests-integration/tests-backend/src/test/resources/testng.xml

Closing since a new PR opened for 2.1.x branch
https://github.com/wso2/product-apim/pull/1733


1.2.0 Fix: Concurrency issues

Chores

Separated the request manager code into multiple files to organize code
Upgraded the project settings to use iOS 13 as deployment target.

Changes

Uses the new NetworkMonitor approach instead of the old Reachability code.
Created a thread-safe requests queue that allows the manager to enqueue requests concurrently from multiple dispatch queues.
Created a Throttler that might be used in conjunction with the request manager if we want to change the 10 seconds approach. It uses an operation queue to throttle requests. This is not integrated yet, it needs Unit testing and to discuss if it is fully compatible with the offline request manager approach.

@patrickomalley this one might require to check out the project since the diffs are not very helpful


Is there another model that work in function call?

Hi, cool repo!
But  just only musabgultekin/functionary-7b-v1 works nowadays?
Does llama 2 13b or llama 34b work?

Hi, sorry for the late reply, but the model only works on our fine-tunes, as we have custom tokens and custom prompting style for function calls.


Cropper.js cropper('getCroppedCanvas') toBlob Work on firefox error in safari, chrome

It's duplicate to #483


Lighthouse PWA check returns no even though it passes in Chrome

Describe the bug
When I build my app or run bubblewrap validate, the Lighthouse pwa check always returns "no":

I don't know the reason for this because when I execute the Lighthouse PWA check in Chrome, it passes.
Lighthouse also reports a performance score so it does seem to work generally.
To Reproduce
Steps to reproduce the behavior:

Execute bubblewrap validate or init new project from existing PWA and build it

Expected behavior
bubblewrap returns a positive PWA check result as Chrome does.
Screenshots
See above.
Desktop (please complete the following information):

OS: Windows 10 building an Android App
Browser: Chrome
Version: 81

Smartphone (please complete the following information):
Not relevant
Additional context

Can you provide information on the start_url being validated?
We're using the PageSpeedInsights API (https://developers.google.com/speed/pagespeed/insights/) and results should be consistent to that.

@andreban with start_url you meant the PWA url, right?
Actually I have to admin I am a bit confused now about the PageSpeedInsights itself.
The PWA url is https://app.traggr.com, the manifest url is https://app.traggr.com/manifest.json.
For validation, I execute bubblewrap validate --url=https://app.traggr.com, results are as above (Lighthouse PWA check: No):

Just for reference, for init I use bubblewrap init --manifest https://app.traggr.com/manifest.json
Now when I check the PWA via https://developers.google.com/speed/pagespeed/insights/, it does not report anything regarding PWA. Just "regular" scoring:

But if I execute the Lighthouse Audit in Chrome 81 DevTools, it reports the PWA compatibility as follows:

I don't know if there is anything wrong with the PWA itself or with the PageSpeed Insights check that differs from the Lighthouse Check in Chrome DevTools. Do you have any idea what could be the reason for this?

On the Lighthouse audit, you do get the "Fast & Reliable" badge, but not the "Installable" badge, which is which the Bubblewrap check says "NO".
I your case, you are making an http request to googletagmanager.com. If you switch that to https (GTM should support that), you'll get full score.
The Lighthouse docs have more information on badging.
I think we can make the Bubblewrap validation better and breakdown those scores (and possibly link to the Lighthouse docs).

@andreban ah I see, thank you very much for your help and the insights.
Unfortunately, the http call to googletagmanager.com is resulting from this issue https://github.com/firebase/firebase-js-sdk/issues/2628 which is something out of our hands but this is definitely not an issue of bubblewrap. Still, it might affect a lot of PWAs (basically all using FB Analytics) and I will mention it over there.
And it's probably also a good idea to break the scores down better so users can better trace what's causing the "No".
Thanks again, from my point of view this can be closed.

Created another issue to track improvements for validation.

@andreban I too have the same issue
chrome checks my pwa is perfect but the lighthouse pwa checks no
Please let me know the things I can do

Bubblewrap does not block building the APK when it fails the Lighthouse validation. The score is advisory.


AMBARI-23256 Ambari-agent setting permission of .hash files to 666

What changes were proposed in this pull request?
AMBARI-23256 Ambari-agent setting permission of .hash files  to 666 (asnaik)
How was this patch tested?
Please test the permission of var/lib/ambari-agent/cache and .hash files after patch .

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/1179/
Test PASSed.

Hi @rlevas  , @jonathan-hurley
I have implemented your review comments, the permission 644 is working fine in my cluster .
Please review and approve the changes .

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/1316/
Test FAILed.
Test FAILured.


Accessing memory on BL602 RISCV Chip via FTDI/JTAG is very slow

Describe the bug
I'm trying to access memory on a BL602 RISCV chip via Sipeed JTAG adapter (https://www.seeedstudio.com/Sipeed-USB-JTAG-TTL-RISC-V-Debugger-p-2910.html)
It generally works fine but e.g. dumping memory via CLI is very slow compared to OpenOCD (same for writing memory programmatically)
To Reproduce
Steps to reproduce the behavior:

in CLI folder cargo run --features ftdi -- dump 22020000 1000 --chip "Riscv"

This takes 6.599846518s while it's very fast with OpenOCD (OpenOCD config for this chip: https://github.com/sipeed/bl602-rust-guide/blob/main/openocd.cfg )
I tried on two different host machines (Windows 11 and MacOS) and I see the exact same behavior on both. So I guess it's not a hardware / driver thing.
Expected behavior
I'd expected this to be speedier - even if it wouldn't be as fast as OpenOCD this is too slow to be useful.
Stacktrace
n/a
Desktop (please complete the following information):

macOS BigSur
Windows 10

Additional context
I tried to set the FTDI baudrate in code and also tried to set the JTAG clock divider in code. I can get it slower this way but I'm not able to speed things up - so I'm clearly looking into the wrong direction here.
I'd really like to help with this but I don't even have an idea where to look at.

The RISCV / JTAG code is not really optimized yet, so we should certainly be able to improve our speed here.
From experience with the ARM chips, there are two main areas where we can probably improbe:

Currently, the code for the FTDI uses one USB transfer to read / write a single JTAG register. USB transfers have quite a big latency, so one way to improve performance is to perfom multiple reads / writes with a single USB transfer.
The code which handles more high level access, so translating a memory access in the correct JTAG reads and writes, is probably not optimized for access of larger memory areas, but only for access of a single value.

If you're interested in working on this, I can give you some more pointers, depending on which part would interest you more.

Thanks for the detailed explanation.
My guess is that reducing the number of USB transfers might be the best bet to speed things up.
A brief look into the RISCV TAP spec makes me wonder a bit how such a bulk transfer can be done. An additional look into the OpenOCD code increased my confusion.
However, I will definitely look into this - not really confident if I can get this done but I'll try

If you look at the dmi register description, in appendix A.2 of the RISCV debug spec, you can see that batching is mentioned there.
The basic idea is that you write this register multiple times, and then you can check afterwards if an error occured. The op field of the dmi register is sticky, so as soon as an error occurs it will always return an error until you clear it.
If we want to write multiple registers in the debug module, we can now create a single USB transfer to write all these registers, and will get back the result of all these writes in the same USB transfers. The most tricky bit is probably the error handling, because we have to figure out where the error occured in this case, and then repeat the failed writes.
If you want we can also discuss this in Matrix, in the probe-rs channel or privately.

Thanks again! Since it seems I have to dive a bit deeper into the topic I started by extracting the relevant code into an own test application so I can make some experiments and get an idea how to speed things up.
Once I'm successful with that I will look into the actual code to see how I can integrate it into the probe-rs code base.
Probably at that point I will come back with additional questions here or on matrix.
Hope I can come up with something useful here

Here is an update: I'm still on it and it's still more work to do until I can create a PR but batching seems the way to go!
Current master: Read 1000 words in 6.6491235s
My fork with batching: Read 1000 words in 252.6971ms


DocsArchive-<IP_ADDRESS>Auto archive content

Auto archive content from https://github.com/opstest2/docs-archive-test-source.git

Docs Build status updates of commit 61de827:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error: RepositoryUnauthorizedWithSourceCommit] Git data access to 'https://github.com/opstest2/docs-archive-test-target' (branch: Release_Archive_main_2022-03-14-02-01-50) is not authorized.. It looks like this might be the first time user: v-alji submitted a pull request to this repo. Before user can run builds in a pull request, he/she can enable 'v-alji' GitHub account in Docs by visiting Docs Portal (https://ops.microsoft.com). After enabling his/her account (v-alji), close and then reopen this pull request to start another build.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
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.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Automated Package Upgrade

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


esp_http_client: allow no url and expose function to set user data (IDFGH-9221)

This is a feature request:
I'm implementing a c++ wrapper around esp_http_client that is loosely leaned on javascripts fetch APII. For that it would be very handy if the esp_http_client_init() would allow for no url to be set (currently there's an error showing when the user attempts this). The point is I want to be able to set the url in the method performing the actual http request, e.g client.GET(std::string url) so the url is reset anyway.
Second, as the my GET function invokes esp_http_client_perform(), it would be handy if you could somehow reset the user_data paremeter on the fly. This way I could pass a pointer to a stack-allocated string which is then filled in the event handler (events get the user_data parameter passed) and returned to the caller which would possibly allow for copy elision optimizations. The way I do it right now is I just pass the wrapper object as user_data at initialization, but that means I have to keep a member string object which is then moved out of the GET() function every time it is called, which also increases the object size unnecessarily.
I hope it was somehow understandable what I'm getting at, otherwise please feel free to ask!

Hello @MartyMcFlyInTheSky
I'm sorry for not getting back to you sooner.
For the first requirement, I think you can set the URL as '<IP_ADDRESS>' initially. This way you will not get the errors related to the URL not being set.
For the second requirement, there is a PR. Please check if that fulfills your requirements.

Hello @MartyMcFlyInTheSky
Support to access the user_data has been added https://github.com/espressif/esp-idf/commit/82cdcc5de5f12befe7fb8f959e410d59c95a63cf
Closing this issue. Please feel free to reopen.


Feature/bril 422 npm publish on new version tag

2 new CICD workflows:

when a branch 'feature/*' is merged into main, a new npm package version will be published ex (1.0.1, 2.0.0. 3.1.2 etc.)
when a new commit us pushed to main, a new npm package prerelease will be pushed (M.m.p-<prerelease= short commit ash>.0 (ex: 0..0.0-abc1234.0)


Example validates schema incorrectly

Describe the bug
Validating example gives unexpected warning regarding "exclusiveMaximum" being of invalid type which it is not according to specification.
To Reproduce
Steps to reproduce the behavior:

Given the redocly.yaml file (see OpenAPI definition section)
And the OpenAPI definition
When linting it via redocly lint test@v1
See Logs section for result

Expected behavior
No errors or warnings regarding "exclusiveMaximum" being of invalid type. According to OpenAPI specification 3.0.3 the "exclusiveMaximum" is taken from the JSON Schema and its description can be found here
Logs
validating apis/test.yaml...
[1] apis/test.yaml:28:17 at #/paths/~1examples/get/responses/default/content/application~1json/schema

Example validation errored: exclusiveMaximum value must be ["number"].

26 | "application/json":
27 |   schema:
28 |     type: object
29 |     properties:
 … |     < 5 more lines >
35 |         example: 403
36 |   examples:
37 |     example-response:

referenced from apis/test.yaml:27:15 at #/paths/~1examples/get/responses/default/content/application~1json

Warning was generated by the no-invalid-media-type-examples rule.

apis/test.yaml: validated in 55ms

Woohoo! Your OpenAPI definition is valid. 🎉
You have 1 warning.

OpenAPI definition
# redocly.yaml
extends:
  - recommended

rules:
  operation-4xx-response: off

apis:
  test@v1:
    root:
      apis/test.yaml

# apis/test.yaml
openapi: 3.0.3
info:
  title: My service
  description: My service
  version: 1.0.0
  contact:
    name: Contact name
    email<EMAIL_ADDRESS>    url: https://
  license:
    name: Licence
    url: https://
servers:
  - url: 'https://testing.com'
paths:
  /examples:
    get:
      summary: Example path
      security:
        - {}
      operationId: get-examples
      responses:
        default:
          description: Example response
          content:
            "application/json":
              schema:
                type: object
                properties:
                  rangedInteger:
                    type: integer
                    minimum: 100
                    maximum: 600
                    exclusiveMaximum: true
                    example: 403
              examples:
                example-response:
                  summary: Example response
                  value:
                    rangedInteger: 400

Redocly Version(s)
1.0.0-beta.120
Node.js Version(s)
v18.13.0
Additional context
If the specification is changed as per the warnings suggestion a different log (with error) is given.
# updated apis/test.yaml
openapi: 3.0.3
info:
  title: My service
  description: My service
  version: 1.0.0
  contact:
    name: Contact name
    email<EMAIL_ADDRESS>    url: https://
  license:
    name: Licence
    url: https://
servers:
  - url: 'https://testing.com'
paths:
  /examples:
    get:
      summary: Example path
      security:
        - {}
      operationId: get-examples
      responses:
        default:
          $ref: '#/components/responses/ExampleResponse'
components:
  responses:
    ExampleResponse:
      description: Example response
      content:
        "application/json":
          schema:
            $ref: '#/components/schemas/ReferencedSchema'
          examples:
            example-response:
              summary: Example response
              value:
                rangedInteger: 400
  schemas:
    ReferencedSchema:
      type: object
      properties:
        rangedInteger:
          type: integer
          minimum: 100
          exclusiveMaximum: 600
          example: 403

The log with expected (correct) error:
validating apis/test.yaml...
[1] apis/test.yaml:33:39 at #/paths/~1examples/get/responses/default/content/application~1json/schema/properties/rangedInteger/exclusiveMaximum

Expected type `boolean` but got `integer`.

31 |       type: integer
32 |       minimum: 100
33 |       exclusiveMaximum: 600
34 |       example: 403
35 | examples:

Error was generated by the spec rule.

apis/test.yaml: validated in 57ms

❌ Validation failed with 1 error.
run `openapi lint --generate-ignore-file` to add all problems to the ignore file.

Help for team: exclusiveMaximum changed from a boolean type to a number between 3.0 and 3.1, and this bug is probably related to that.

Side note @alexbrouwer I would recommend not using exclusiveMaximum for the same reason as the bug (change in meaning happened and it is likely to also confuse humans). To be compliant with 3.0, you can:
      properties:
        rangedInteger:
          type: integer
          minimum: 100
          maximum: 599
          example: 403

(This is not to say that we shouldn't fix the bug. I think this was a questionable design decision in JSON Schema to change the meaning without changing the name.)


Cannot set property 'fragmentReplacements' of undefined

this.fragmentReplacements = fragmentReplacements || [];
^
TypeError: Cannot set property 'fragmentReplacements' of undefined
I too face this error.
Repo:: https://github.com/abhijithvijayan/bug-graphql-yoga-backend

@schickling @timsuchanek Please do take a look at this.


Post the application process for workgroup members

We'll be modeling this after the application process for Code of Conduct workgroup members. See https://mail.python.org/pipermail/psf-community/2018-April/000488.html as an example

Any updates on this? Did this happen, and I missed it? :)

@pradyunsg We're in the final review of an application form to share with the community. We'll make sure to announce broadly when it is live to the community. Thanks for asking. :sunny:

Hiya! A gentle nudge on this. Anything I can do to help make this happen? :)
@pauleveritt reached out recently, expressing his interest in contributing to this WG/CPython documentation as well.

Yep, count me in.

This was discussed at some length in the May 2022 meeting for the documentation community team.
https://docs-community.readthedocs.io/en/latest/monthly-meeting/2022-05.html#the-vision-of-docs-wg-with-carol-willing


[release-v1.4] Metrics for KafkaChannel subscriptions

Cherry-pick of https://github.com/knative-sandbox/eventing-kafka-broker/pull/2651

/cherry-pick release-v1.5

/retest


Missing information about exact kernel patches for Stoneyridge devices.

Good evening,
I've got a problem with getting an exact information about what patches should be applied on the Linux kernel 6.1+ for Stoneyridge Chromebook devices.
The documentation of Known issues in the Stoneyridge devices section says:
Needs kernel compiled with AMDGPU=Y instead of =M and firmware built-in to get working audio

eMMC is only detected on a cold boot unless you have a patched kernel

although not linking any source to the patches for the Linux kernel as mentioned.
What patches should I use?

Additionally while reading dmesg for anything related to the problem of eMMC I've got:
[    0.000000] efi: EFI v2.7 by EDK II
[    0.000000] efi: SMBIOS=0xbf41a000 SMBIOS 3.0=0xbf418000 ACPI=0xbf533000 ACPI 2.0=0xbf533014 MEMATTR=0xbbf16c18
[    0.000000] efi: Remove mem97: MMIO range=[0xffbc0000-0xffbfffff] (0MB) from e820 map

I can add detailed info about stoney. The emmc issue is due to an update in the driver, which we have a patch for.

Thank you. By the way, is there a gist / repo of the patch already? I'm configuring the PKGBUILD for the kernel right now.

We have a repo but it's outdated. The person that is working on updating it will push the changes and make a pr sometime soon.

link?

https://github.com/chrultrabook/linux-build-scripts

@WeirdTreeThing I've patched the kernel for my system (source code | build log).
Although CONFIG_DRM_AMDGPU=y causes the kernel to freeze the screen, on the Stoneyridge device.
The rest of the system components (NetworkManager, sddm) is being loaded like nothing happened.

You also need to built the AMDGPU firmware into the kernel.

After a lot of troubleshooting, I have embeded the /lib/firmware/amdgpu/stoney* firmware into my kernel.
Although even if speakers / jack output is being recognized, there's no sound being played. A microphone is being shown, but there's a loud noise.
Camera isn't being recognized too. What might be the issue?

Additional dmesg logs containing errors:
[   22.350783] acp3x-alc5682-max98357 AMDI5682:00: DMIC gpio failed err=-2
[   22.350826] acp3x-alc5682-max98357: probe of AMDI5682:00 failed with error -2
[  100.740655] Failed to stop ACP DMA channel : 13
[  101.761572] Failed to stop ACP DMA channel : 9
[  142.557143] Failed to stop ACP DMA channel : 13
[  143.578814] Failed to stop ACP DMA channel : 9
[  144.610460] Failed to stop ACP DMA channel : 10
[  144.610460] acp_audio_dma acp_audio_dma.0.auto: ASoC: error at soc_component_trigger on acp_audio_dma.0.auto: -110

aplay error when trying to play sound to the soundcard provided by stoney* firmware:
aplay: pcm_write:2146: write error: Input/output error

6.5 is known to have issues, I just kinda reverted a few things until it worked.

Should I recompile under 6.1 kernel?

Try that, afaik it should work until we figure out what broke 6.5.

Your emmc.patch file works only under 6.4+ kernel versions. I'll try to compile under 6.4.16.

The camera is just usb so it's likely to be a hardware issue.

What to do about microphone?
dmesg reports:
[ 4754.381512] acp3x-alc5682-max98357 AMDI5682:00: DMIC gpio failed err=-2
[ 4754.382134] acp3x-alc5682-max98357: probe of AMDI5682:00 failed with error -2

Problem with the webcam was reported before to the MrChromebox, but the issue got refused.

That is not a real issue, that's a separate driver that loads automatically even though it isn't used on this platform.

How to deal with it?

Ignore it or blacklist the module.

Which one should I blacklist exactly?

I don't remember off the top of my head, look for acp3x in lsmod.

MrChromebox 4.21.1 firmware has released today, which fixes emmc on warm reboots on the firmware side. The kernel patch is no longer needed.

I don't remember off the top of my head, look for acp3x in lsmod.

lsmod doesn't show any type of acp3x module loaded. The nearest one might be snd_soc_acp_rt5682_mach what's being used for the audio ports / speakers.

I just checked on my careena and yeah that's the one you need to blacklist.

I've blacklisted and still no change in the Webcam detection.
modprobe loaded snd_soc_acp_da7219mx98357_mach - even after blacklisting this one too, there's no audio device detected.

snd_soc_acp_da7219mx98357_mach is the one that's supposed to load. Blacklisting snd_soc_acp_rt5682_mach on my careena didn't break audio.

Yeah, I meant, on both modules camera doesn't work

Camera is not part of audio.  Either something in coreboot is broken or the physical cable is damaged. You can rule out coreboot by testing stock. I can say that on my careena, the camera cable was damaged and only worked at certain angles.

Nothing bad happened to my camera when I was using ChromeOS so probably a firmware issue. Will try to compile the original kernel and see the difference.

The kernel isn't gonna prevent usb devices from being detected. You will need to flash stock and verify the camera works there.

Works on stock firmware, but only under ChromeOS.

but only under ChromeOS

As in you tried to boot a mainline distro on stock firmware?

yes

snd_soc_acp_da7219mx98357_mach

This is the correct module for Stoney.

What to do about microphone?
dmesg reports:
[ 4754.381512] acp3x-alc5682-max98357 AMDI5682:00: DMIC gpio failed err=-2
[ 4754.382134] acp3x-alc5682-max98357: probe of AMDI5682:00 failed with error -2

ACP3x == Picasso (Ryzen 3000).


string join function with list parameter in string format invocation is missing

The function string join (list <string>, delimiter <string>) is missing.
Example string join("a", ".")
This is not present in the specs, but there are a couple of TCK tests that require it, probably to manage the case of a single-item list.
Honestly, I don't see the need to manage such a case (i.e. a string join("a", ".") will produce "a") - Adding it just to fix the TCK tests.

The tooling side is probably fine, we offer such 'string join' variant in monaco autocompletions.


Error when applying content types in template

Apply-PnPProvisioningTemplate : Expected hex 0x in '{0}'.
At line:1 char:1

Apply-PnPProvisioningTemplate -Path .\schemas\lists\buspecific-list.x ...

  + CategoryInfo          : WriteError: (:) [Apply-PnPProvisioningTemplate], ServerException
  + FullyQualifiedErrorId : EXCEPTION,SharePointPnP.PowerShell.Commands.Provisioning.Site.ApplyProvisioningTemplate

Verbose last lines:
powershell.exe Information: 0 : 2019-12-12 16:34:52.9613        [Fields]        [14]    [Debug] Updating field {cc2e4b47-6e93-47eb-9fde-68ac4d47848c} in site   78147ms f193ea10-80c1-44af-97d2-67c4550f2e34
powershell.exe Information: 0 : 2019-12-12 16:34:54.4920        [Fields]        [14]    [Debug] Updating field {a92c2190-c11a-4153-8a6d-844e9c8ef7d5} in site   79677ms f193ea10-80c1-44af-97d2-67c4550f2e34
powershell.exe Information: 0 : 2019-12-12 16:34:55.6690        [Fields]        [14]    [Debug] Code execution scope ended      80855ms f193ea10-80c1-44af-97d2-67c4550f2e34
powershell.exe Information: 0 : 2019-12-12 16:34:55.6700        [ProvisioningTemplate WebHook Call]     [14]    [Debug] Code execution scope started    0ms     f193ea10-80c1-44af-97d2-67c4550f2e34
powershell.exe Information: 0 : 2019-12-12 16:34:55.6700        [ProvisioningTemplate WebHook Call]     [14]    [Debug] Code execution scope ended      0ms     f193ea10-80c1-44af-97d2-67c4550f2e34
powershell.exe Information: 0 : 2019-12-12 16:34:55.6710        [ProvisioningTemplate WebHook Call]     [14]    [Debug] Code execution scope started    0ms     f193ea10-80c1-44af-97d2-67c4550f2e34
powershell.exe Information: 0 : 2019-12-12 16:34:55.6710        [ProvisioningTemplate WebHook Call]     [14]    [Debug] Code execution scope ended      0ms     f193ea10-80c1-44af-97d2-67c4550f2e34
powershell.exe Information: 0 : 2019-12-12 16:34:55.6720        [Content Types] [14]    [Debug] Code execution scope started    0ms     f193ea10-80c1-44af-97d2-67c4550f2e34
powershell.exe Information: 0 : 2019-12-12 16:34:56.9719        [Content Types] [14]    [Debug] Code execution scope ended      1300ms  f193ea10-80c1-44af-97d2-67c4550f2e34
powershell.exe Information: 0 : 2019-12-12 16:34:56.9729        [ProvisioningTemplate WebHook Call]     [14]    [Debug] Code execution scope started    0ms     f193ea10-80c1-44af-97d2-67c4550f2e34
powershell.exe Information: 0 : 2019-12-12 16:34:56.9729        [ProvisioningTemplate WebHook Call]     [14]    [Debug] Code execution scope ended      0ms     f193ea10-80c1-44af-97d2-67c4550f2e34
powershell.exe Information: 0 : 2019-12-12 16:34:56.9739        [Provisioning]  [14]    [Debug] Code execution scope ended      83830ms f193ea10-80c1-44af-97d2-67c4550f2e34

It could be problem with content type ID that should have proper format.
Could you please share part of your template that is causing problem?


boot - Add polyfills for Bangle.load and Bangle.showClock

These are minimal polyfills, just delegating the new calls to load(). Is this enough or should they mimic more of the new calls?

Simple polyfills are not enough for #2264, is it better to work around this in the app or should the polyfills be functionally identical to the firmware methods? This should only be a problem for code depending on Bangle.load/showClock/showLauncher actually fastloading.

Thanks! I think that's ok for now - if all looks good I'll probably release 2v16 this week so hopefully it won't be a big issue.


add explanation and justification for metaclasses and conventions to docs

metaclasses are used extensively in Carousel, so I think it's a good idea to document how they are used and to set some ground rules for their usage.
metaclasses
Here are some reasons to use metaclasses in Carousel:

to form a simple API for modelers to quickly create layer subclasses (ie: data, formulas, calcs) without having to write redundant dunder classes (ie: __init__)
to create a consistent class structure to all underlying operations. EG: w/o metaclasses, there could be several paradigms:

write parameters as arbitrary attributes for every subclass - this would be error prone to scrape these parameters from the class, without knowing a priori what the parameters were, and would be double duty since Carousel would have to collect the parameters into a parameters attribute anyway
instantiate subclass and then update parameter attribute either manually or with a carousel method like add_parameter() - not a bad alternative and I see other models like Keras do this

to pattern established frameworks that are already successful and well known like Django, DRF and Marshmallow

conventions
Since metaclasses are altering the way that classes are created before they are even instantiated, this leads to magic that can be confusing at runtime because it is implicit. The Zen of Python says that explicit is better so rather than inferring objects at runtime, there should be only published objects. All inferred objects should be in dictionaries that are mutable at runtime. For example, in the same way that monkey patching is considered by some a code smell, even though it is sometimes necessary, but editing a dictionary at runtime is fair game.

class attributes should be published. there should be no inferred objects in class instances.
any objects that are created dynamically at runtime should be collected in a dictionary or list or other mutable container.

Actually, you could build a model up component by component using the add and edit features in layers.Layer just like Keras and other models (eg: the modelchain in PVLIB), but it still requires subclasses and sources, like Data to be defined. But this could be an interesting alternative for some people?


Updated accounts and categories management

Added logo
The splash screen now should be entirely visible and not cropped by a white circle (it is an android 12 and newer behaviour, so it looks a bit small on the latest android versions)
Added accounts and categories management (insert/update/delete) with new styling
Improved homepage
Settings page with new layout

Known Issues:

If you delete the main account or deselect it, it throws an error because as of now, the main account is mandatory. We should decide if it can stay as is, maybe automatically setting the main account as the most used (in last year or something like that).

Great job! I tried the app a little bit and noticed a few things:

For some reason the app icon is a bit weird when you look all the backgrounded apps

I am able to submit a transfer without the second account selected, when I comeback to the home then I see an error in the last transactions section.
https://user-images.githubusercontent.com/24766687/235299507-b55753ff-c0eb-439d-b74d-02c447a58f3a.mov
This is not related to your PR but is something that I noticed. Although I can create new transactions the values for the accounts don't get updated.
The categories for income and expenses should be separated (ex. this means that when I am submitting a new expense I shouldn't see "income")

I noticed that color is an integers used as the index for a list of default colors. Wouldn't it be better to save the HEX code instead and convert it directly to the Color class? With the current solution, if we were to edit the list of colors, we'd have to change all indexes across the database.

Super cool! I'm merging this. As discussed on Discord, we will take care of issues raised by @theperu and @GBergatto on other PRs.