New database setup connect to #275

This PR will setup new MLAB dbs. With this change we will need a Heroku admin to update the prod db with the new keys. Please contact @hoop71 (me) for the new dev and admin keys.
Updated the database keys, routing and README

Closing PR. Been open 3 months and we have moved away from Mongo.


Optionally Configure Table Alias in @Table

We have a lot of queries that do a lot of joining.  To remove any ambiguity between columns, especially id columns, we always use withTable() on each property and as() for each table.  To shorten the generated SQL we see in our logs, we pass a NameAlias to withTable() and as().  This ends up cluttering our code quite a bit, so this PR makes it so we can optionally add a table alias in the @Table configuration that would get used in all queries, etc.  It can of course still be overridden case by case using the withTable() and as() functions.  If it is not provided in @Table, then it's business as usual.
Thoughts @agrosner?

Just following up @agrosner on this and the other 2 or 3 PRs I submitted.  Thanks

thanks for your PR. I think this might be not needed. I mean you can just write a Kotlin extension function that does what you need:
fun From<MyTable>.fromMyAlias() = from(MyTable::class.java).as("SomeAlias")

And then in queries:
val list = select.fromMyAlias() where ...

or if you're in Java, just write a utility method that wraps the select from:

public static From<MyTable> selectAliasFromMyTable() {
  return SQLite.select().from(MyTable.class).as("MyAlias");
}

Thanks for looking at it!  Yes, utility/extension methods can be written, which we do in various cases, but I think this PR makes it more flexible and requires the user of this library to write less code.  Especially in complex joins, I think this is pretty nice and let's you focus on the actual query.  Do you have any concerns with the change?  Thanks again for your consideration, and for DBFlow!

Consider this java example joining 3 tables:
String firstAlias = "fa";
NameAlias first = NameAlias.of(firstAlias);
String secondAlias = "sa";
NameAlias second = NameAlias.of(secondAlias);
String thirdAlias = "ta";
NameAlias third = NameAlias.of(thirdAlias);

SQLite.select(
    First_Table.someProperty.withTable(first),
    Second_Table.someProperty.withTable(second),
    Third_Table.someProperty.withTable(third)
)
.from(First.class).as(firstAlias)
.join(Second.class).as(secondAlias)
    .on(First_Table.secondId.withTable(first).eq(Second_Table.id.withTable(second))
.join(Third.class).as(thirdAlias)
    .on(Second_Table.thirdId.withTable(second).eq(Third_Table.id.withTable(third)))

Each property in the projection comes from a different table.  I could have many different queries joining these and other tables, projecting different columns, or whatever.  Note the withTable() calls on each property in the projection as well as in the joins.  Also note the as() calls on each table.  All of this goes away with the model's @Table annotation including the tableAlias parameter from this PR.  I'm not sure how I could have a utility method do this that I could write once and use everywhere.
So the above becomes:
@Table(database = MyDatabase::class, tableAlias = "fa")
class First {
 // same setup for Second and Third classes
...

SQLite.select(
    First_Table.someProperty,
    Second_Table.someProperty,
    Third_Table.someProperty
)
.from(First.class).
.join(Second.class)
    .on(First_Table.secondId.eq(Second_Table.id)
.join(Third.class)
    .on(Second_Table.thirdId.eq(Third_Table.id))

I hope that makes sense.  Thanks again for taking a look.

you can use the name attribute on the @Table object if the class name is not what you wanted originally.  Use an AlterTableMigration, rename table, and then keep it as intended.
make static method that returns the proper alias or kotlin extension.

It really just offloads the work to the annotation processor, and by using a general alias, you have to understand that immediately that an alias for table is used, thus if you wanted original table name, you will have to .as("tableName") on all of them anyways if you're not careful.

Sorry, I don't understand how renaming the table is related.  The alias here is to prevent column ambiguity.
Your example static method / kotlin extension functions don't solve generically or flexibly what this PR is solving, but they do give me an idea.  Perhaps I can wrap the dbflow wrapper language with my own versions of select(), from(), join(), on(), etc that always qualifies using the table name.  Seems it would be a nice feature to have built-in, but perhaps that would work for us.

Yes, it does offload the work to the annotation processor, which is intended.  Less work for coder.  Yes, if tableAlias is used, the coder must be aware of that, and one could argue it may not be so obvious, which is why I made it optional and it is not used by default, but I can see the argument there.
Thanks again for your consideration.

ah for 1. you mean just prefixing alias so it always contain something unique in a query between multiple columns? yeah I can do that. its a breaking change, which I can introduce in 5.0 to always include table prefix in queries so that an alias is not necessary.
2. Yeah makes sense now that I understand it more. I think by doing (1) adding table prefix to all generated Property objects, this issue will go away
what do you think?

so a normal property say @Column var name: String? = null will generate a property that represents itself by default as MyTable.name in SQLite translation?


"tracer": "callTracer" not showing correct trace info

"tracer": "callTracer" not showing correct trace info
Description
call debug_traceTransaction can't process my parameter {"tracer": "callTracer"}
Your environment

OS and version.
Linux version 5.10.118-111.515.amzn2.x86_64 (mockbuild@ip-10-0-43-203) (gcc10-gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1), GNU ld version 2.35-21.amzn2.0.1) #1 SMP Wed May 25 22:12:19 UTC 2022
The version of the Polygon Edge.
(Confirm the version of your Polygon edge client by running the following command: polygon-edge version --grpc-address GRPC_ADDRESS)
v0.6.2
The branch that causes this issue.
tag v0.6.2
Locally or Cloud hosted (which provider).
aws
Please confirm if the validators are running under containerized environment (K8s, Docker, etc.).
no

Steps to reproduce

Tell us how to reproduce this issue.
Where the issue is, if you know.
Which commands triggered the issue, if any.
Provide us with the content of your genesis file.
Provide us with commands that you used to start your validators.
Provide us with the peer list of each of your validators by running the following command: polygon-edge peers list --grpc-address GRPC_ADDRESS.
Is the chain producing blocks and serving customers atm?

I send this request to my rpc
curl --location --request POST 'https://rpc.pioneer.etm.network' \
--header 'Content-Type: application/json' \
--data-raw '{
    "jsonrpc":"2.0",
    "method":"debug_traceTransaction",
    "params":[
        "0xfadf70d43fb9757ad0a9319fd1e79f511ddeb395c9a32b93ac43eeb3e6ba14b3",
        {"tracer": "callTracer"}
    ],
    "id":1
}'

Expected behavior

Tell us what should happen.
It should return trace info. but return all data.my parameter {"tracer": "callTracer"} didn't work.
Tell us what happened instead.
It return result.json
result.json.zip

Logs
Provide us with debug logs from all of your validators by setting logging to debug output with: server --log-level debug
Proposed solution
we use go-ethereum's tracers module add into polygon-edge v0.5.0,had solved this issue.But this time I update to v0.6.2 I dropped my tracers,then encounter this issue again.
There's my old solution: https://github.com/ETM-Proterozoic/etmp-chain/tree/master/tracers

@LuxesOwen
Thank you for providing all the details about the issue you encountered, and please know that we're reviewing them now.

👀

@LuxesOwen
Unfortunately, the parameter callTracer is not supported in the latest release, and we will have to let you know in the next few days if and when it will be supported once again.

@LuxesOwen Unfortunately, the parameter callTracer is not supported in the latest release, and we will have to let you know in the next few days if and when it will be supported once again.

OK.Thanks for reply.
We Looking forward to your updates.

Hi @LuxesOwen
Because this is actually a custom endpoint, this is something that we're not responsible for fixing, and it's required to be adjusted on the third-party side.
We will close this issue request.

@ivanbozic21 It is very regrettable,If more people and app use this way in the future,I wish you will consider supporting it.


What does this plugin do ?

What does this plugin do?

Hello @AlliSite! Our plugin is currently in the development stage.
We just wanted to release a first version, the 1.0.0-alpha. And as the name suggests, it's in the alpha version.
And indeed, there's nothing concrete available with the plugin other than a simple /swiftutils command to get various information or reload configuration files.
What's more, we'll soon be able to set up an update checking system for our plugin.
Once we release our beta version, the plugin will probably be published initially on the SpigotMC platform.
We hope we've answered your question. Also, if you have any suggestions for our plugin, we invite you to join our discord, or to open a new issue.


Standard: support wait for subscriber for client tests in standard address space

Please implement support for method waitForSubscribers for standard address space.

https://github.com/EnMasseProject/enmasse/pull/854

done


[9.x] Do not trim the request URL in testing

URLs with and without a trailing slash are technically different routes according to the browser, so we should not be auto trimming the trailing slash here.
I've recently been trying to setup a middleware to redirect all non-root URLs that end in a trailing slash to be redirected to their non-trailing-slash counterpart. While trying to setup feature test for this behavior, I discovered this was impossible due to the fact all test URLs are having their trailing slashes trimmed automatically.
Looking back through the history of this line of code, it appears the trim() has been there since the beginning, so it's difficult to discern the reasoning behind having the trim().
I'm not sure how other people feel if this is a breaking change or not, but it's currently targeting 9.x, so let me know if that's not correct.

Well, turns out this doesn't actually solve the problem. The url() function also does its own trimming of trailing slashes, but changing that has farther reaching implications.  I think this PR is still okay, since the trim() I removed is repetitive.
One interesting thing to note about the url() function, if you provide a fully valid absolute URL it will not trim the trailing slash, but if you provide a relative path it will.
url('testing/');                          // http://mysite.test/testing

url('http://mysite.test/testing/');       // http://mysite.test/testing/

I'm not sure I want to mess with this on a patch release.


Error logging

Is your feature request related to a problem? Please describe.
Currently the errors aren't logged anywhere and are printed to the console.
Describe the solution you'd like
It's much better to send them in a log channel

Added logging in commit ebc7aed89c8eba684ac634874555b7b9919db938


Crash during calling os.exit()

lua -v output: Lua 5.4.4  Copyright (C) 1994-2022 Lua.org, PUC-Rio.
local uv = require('luv')

local function setTimeout(callback, ms)
    local timer = uv.new_timer()
    timer:start(ms, 0, function()
        timer:stop()
        timer:close()
        callback()
    end)
    return timer
end

setTimeout(function()
    os.exit(5, true)
end, 1000)

uv.run()

coredumpctl debug:
gdb bt
#0  luv_close_cb (handle=0x55c11a041190) at /home/kevin/WorkSpaces/lua/luv/src/handle.c:80
#1  0x00007f7bb506d809 in uv__finish_close (handle=0x55c11a041190) at /home/kevin/WorkSpaces/lua/luv/deps/libuv/src/unix/core.c:308
#2  uv__run_closing_handles (loop=0x55c11a0439c8) at /home/kevin/WorkSpaces/lua/luv/deps/libuv/src/unix/core.c:322
#3  uv_run (loop=loop@entry=0x55c11a0439c8, mode=mode@entry=UV_RUN_DEFAULT) at /home/kevin/WorkSpaces/lua/luv/deps/libuv/src/unix/core.c:401
#4  0x00007f7bb505cba2 in loop_gc (L=<optimized out>) at /home/kevin/WorkSpaces/lua/luv/src/luv.c:788
#5  0x000055c118105cf6 in precallC (f=<optimized out>, nresults=<optimized out>, func=<optimized out>, L=<optimized out>) at ldo.c:506
#6  luaD_precall (L=L@entry=0x55c11a0362a8, func=0x55c11a036a10, nresults=0) at ldo.c:572
#7  0x000055c1181060f7 in ccall (inc=65537, nResults=<optimized out>, func=<optimized out>, L=0x55c11a0362a8) at ldo.c:607
#8  luaD_callnoyield (L=0x55c11a0362a8, func=<optimized out>, nResults=<optimized out>) at ldo.c:627
#9  0x000055c118104f1a in luaD_rawrunprotected (L=L@entry=0x55c11a0362a8, f=f@entry=0x55c118107770 <dothecall>, ud=ud@entry=0x0) at ldo.c:144
#10 0x000055c118106470 in luaD_pcall (L=L@entry=0x55c11a0362a8, func=func@entry=0x55c118107770 <dothecall>, u=u@entry=0x0, old_top=272, ef=ef@entry=0) at ldo.c:926
#11 0x000055c118107736 in GCTM (L=L@entry=0x55c11a0362a8) at lgc.c:915
#12 0x000055c118109508 in callallpendingfinalizers (L=0x55c11a0362a8) at lgc.c:945
#13 luaC_freeallobjects (L=L@entry=0x55c11a0362a8) at lgc.c:1510
#14 0x000055c11810ec8f in close_state (L=0x55c11a0362a8) at lstate.c:276
#15 0x000055c11810f420 in lua_close (L=<optimized out>) at lstate.c:414
#16 0x000055c118122778 in os_exit (L=0x55c11a0362a8) at loslib.c:401
#17 0x000055c118105cf6 in precallC (f=<optimized out>, nresults=<optimized out>, func=<optimized out>, L=<optimized out>) at ldo.c:506
#18 luaD_precall (L=L@entry=0x55c11a0362a8, func=0x55c11a0369e0, nresults=0) at ldo.c:572
#19 0x000055c118113e57 in luaV_execute (L=L@entry=0x55c11a0362a8, ci=<optimized out>) at lvm.c:1680
#20 0x000055c118106110 in ccall (inc=65537, nResults=<optimized out>, func=<optimized out>, L=0x55c11a0362a8) at ldo.c:609
#21 luaD_callnoyield (L=0x55c11a0362a8, func=<optimized out>, nResults=<optimized out>) at ldo.c:627
#22 0x000055c118104f1a in luaD_rawrunprotected (L=L@entry=0x55c11a0362a8, f=f@entry=0x55c1181008f0 <f_call>, ud=ud@entry=0x7ffc23225130) at ldo.c:144
#23 0x000055c118106470 in luaD_pcall (L=L@entry=0x55c11a0362a8, func=func@entry=0x55c1181008f0 <f_call>, u=u@entry=0x7ffc23225130, old_top=192, ef=<optimized out>) at ldo.c:926
#24 0x000055c118102c4c in lua_pcallk (L=L@entry=0x55c11a0362a8, nargs=nargs@entry=0, nresults=nresults@entry=0, errfunc=errfunc@entry=1, ctx=ctx@entry=0, k=k@entry=0x0) at lapi.c:1067
#25 0x00007f7bb505266e in luv_cfpcall (L=0x55c11a0362a8, nargs=0, nresult=0, flags=0) at /home/kevin/WorkSpaces/lua/luv/src/luv.c:671
#26 0x00007f7bb5069dee in uv__run_timers (loop=loop@entry=0x55c11a0439c8) at /home/kevin/WorkSpaces/lua/luv/deps/libuv/src/timer.c:178
#27 0x00007f7bb506d6ae in uv_run (loop=0x55c11a0439c8, mode=mode@entry=UV_RUN_DEFAULT) at /home/kevin/WorkSpaces/lua/luv/deps/libuv/src/unix/core.c:382
#28 0x00007f7bb5065acc in luv_run (L=0x55c11a0362a8) at /home/kevin/WorkSpaces/lua/luv/src/loop.c:36
#29 0x000055c118105cf6 in precallC (f=<optimized out>, nresults=<optimized out>, func=<optimized out>, L=<optimized out>) at ldo.c:506
#30 luaD_precall (L=L@entry=0x55c11a0362a8, func=0x55c11a0369a0, nresults=0) at ldo.c:572
#31 0x000055c118113e57 in luaV_execute (L=L@entry=0x55c11a0362a8, ci=<optimized out>) at lvm.c:1680
#32 0x000055c118106110 in ccall (inc=65537, nResults=<optimized out>, func=<optimized out>, L=0x55c11a0362a8) at ldo.c:609
#33 luaD_callnoyield (L=0x55c11a0362a8, func=<optimized out>, nResults=<optimized out>) at ldo.c:627
#34 0x000055c118104f1a in luaD_rawrunprotected (L=L@entry=0x55c11a0362a8, f=f@entry=0x55c1181008f0 <f_call>, ud=ud@entry=0x7ffc232254e0) at ldo.c:144
#35 0x000055c118106470 in luaD_pcall (L=L@entry=0x55c11a0362a8, func=func@entry=0x55c1181008f0 <f_call>, u=u@entry=0x7ffc232254e0, old_top=80, ef=<optimized out>) at ldo.c:926
#36 0x000055c118102c4c in lua_pcallk (L=L@entry=0x55c11a0362a8, nargs=nargs@entry=0, nresults=nresults@entry=-1, errfunc=errfunc@entry=3, ctx=ctx@entry=0, k=k@entry=0x0) at lapi.c:1067
#37 0x000055c1180ffb06 in docall (L=L@entry=0x55c11a0362a8, narg=narg@entry=0, nres=nres@entry=-1) at lua.c:160
#38 0x000055c1181005b2 in handle_script (argv=<optimized out>, L=0x55c11a0362a8) at lua.c:256
#39 pmain (L=0x55c11a0362a8) at lua.c:644
#40 0x000055c118105cf6 in precallC (f=<optimized out>, nresults=<optimized out>, func=<optimized out>, L=<optimized out>) at ldo.c:506
#41 luaD_precall (L=L@entry=0x55c11a0362a8, func=0x55c11a036910, nresults=1) at ldo.c:572
#42 0x000055c1181060f7 in ccall (inc=65537, nResults=<optimized out>, func=<optimized out>, L=0x55c11a0362a8) at ldo.c:607
#43 luaD_callnoyield (L=0x55c11a0362a8, func=<optimized out>, nResults=<optimized out>) at ldo.c:627
#44 0x000055c118104f1a in luaD_rawrunprotected (L=L@entry=0x55c11a0362a8, f=f@entry=0x55c1181008f0 <f_call>, ud=ud@entry=0x7ffc23225830) at ldo.c:144
#45 0x000055c118106470 in luaD_pcall (L=L@entry=0x55c11a0362a8, func=func@entry=0x55c1181008f0 <f_call>, u=u@entry=0x7ffc23225830, old_top=16, ef=<optimized out>) at ldo.c:926
#46 0x000055c118102c4c in lua_pcallk (L=L@entry=0x55c11a0362a8, nargs=nargs@entry=2, nresults=nresults@entry=1, errfunc=errfunc@entry=0, ctx=ctx@entry=0, k=k@entry=0x0) at lapi.c:1067
#47 0x000055c1180ff64b in main (argc=2, argv=0x7ffc23225988) at lua.c:671
gdb p data
$2 = (luv_handle_t *) 0x55c11a041
gdb p data->ctx
Cannot access memory at address 0x55c11a051
gdb

Look like data stored in LUA_REGISTRYINDEX have been free after on_exit and before loop_gc.

Seems related to https://github.com/luvit/luv/issues/437


Maybe-typed object properties are not allowed to be undefined

The docs for Maybe Types state:

Maybe types accept the provided type as well as null or undefined. So ?number would mean number, null, or undefined.

But leaving a maybe-typed object property undefined results in a Flow error:
const obj: { foo: ?number } = {}

Cannot assign object literal to `obj` because property `foo` is missing in object literal [1] but exists in object type [2].

OK, then the issue is that the docs don't make this clear. Can you reopen it?


⚠ Samsung has degraded performance

In f266db6, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2685 ms

Resolved: Samsung performance has improved in fd04bd0.


Folder path filter not working as expected

Expected Behavior
QUERY: path include "DIARY/DAYS/"

Will list all task inside daily notes that are stored in path DIARY/DAYS/

Current behaviour
There are 0 tasks listed.
Steps to reproduce
Query
path include "DIARY/DAYS"
sort by path

Obsidian files
DIARY/DAYS/2022-28-9.md (3 tasks inside)
DIARY/DAYS/2022-29-9.md (3 tasks inside)
DIARY/DAYS/2022-30-9.md (3 tasks inside)
Which Operating Systems are you using?

[ ] Android
[ ] iPhone/iPad
[ ] Linux
[X] macOS
[ ] Windows

Obsidian Version
1.03
Tasks Plugin Version
1.16
Checks

[ ] I have tried it with all other plugins disabled and the error still occurs

Possible solution
No response

You need to remove the quotes, and it should be "includes", not "include":
path includes DIARY/DAYS

Thank you! Sorry me


Test workflow release 1209am

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (0f1c05a) 100.00% compared to head (725215c) 100.00%.
Report is 1 commits behind head on release.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##           release       #29   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines            4         4
=========================================
  Hits             4         4

Flag
Coverage Δ

generic
100.00% <ø> (ø)

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

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


fix Angel's Sword of Heaven

Heavenly Host now applies buffs to all party members
Angel Cloak no longer uses Aeon Cloak features
Angel Cloak now applies correct dice to weapon attacks
Angel Cloak now applies correct dice to healing

I am going to wait for 1.2 before looking at merging this in since there is supposed to be a lot of Mythic work in the patch.


test: fix test utils import

Fix test error:
	Error detected while processing /home/runner/work/octo.nvim/octo.nvim/lua/tests/minimal_init.vim:
	line   13:
	     E5108: Error executing lua [string ":lua"]:2: Vim(luafile):E5112: Error while creating lua chunk: cannot open ./tests/test_utils.lua: No such file or directory
	    stack traceback:
	    [C]: in function 'cmd'
	    [string ":lua"]:2: in main chunk
========================================

I don't see where this is failing? Was it ci cd or locally?

I don't see where this is failing? Was it ci cd or locally?

The process doesn't return with a failure but the error gets logged both in CI and locally when running tests (see link)

I don't see where this is failing? Was it ci cd or locally?

The process doesn't return with a failure (perhaps a separate issue?) but the error gets logged both in CI and locally when running tests.

Got it. I see the difference. Amazing lets push this through then
Thanks!


DDD link for PNW Names

Provisional Names of the form "pnw-nn" and the like should link to Miller, D., Danny’s DNA Discoveries.
That site is an ongoing attempt to document all of the mushrooms species that occur in the Pacific Northwest based on DNA analysis. (PNW == WA, OR, ID and southern BC).

Issue: which page to link to:
Danny’s DNA Discoveries is work-in-progress which is being built out.

It doesn't have links to every genus, family, order, class ... or even phylum. E.g., there's no link yet for Ascos.
Picking the correct page therefore might involve

a chron job which would create a list the currently available DDD pages
something in Name which would scan that list and link to the most detailed available DDD page for the provisional name.

Simple first step:

Link to top-level page.


Documentation Updates

I tried to run the project with Node 12 and it went pop

Added link to GQL docs.


TypeError when API returns null on getMyCurrentTrack

I am writing an application that tracks what song I am currently listening to. When I stop playing music and exit the desktop app, I get the below TypeError exception because the API is returning a null response but the function is declared to only allow array|object as return types. Right now, when I wrap the code in a try/catch, it doesn't even run the caught exception. When playing music, I get no error.
Exception:
Type: TypeError
Code: 0
Message: SpotifyWebAPI\SpotifyWebAPI::getMyCurrentTrack(): Return value must be of type object|array, null returned
File: D:\Dropbox\Web Work\joey\vendor\jwilsson\spotify-web-api-php\src\SpotifyWebAPI.php
Line: 1149

I have my code setup like this:
$options = [
	'auto_refresh' => true,
	'return_assoc' => true
];
$api = new SpotifyWebAPI\SpotifyWebAPI($options, $session);

try {
	$spotify = $this->container->get('spotify');
	$currentTrack = $spotify['api']->getMyCurrentTrack();
	// TODO: Exception when no music is playing. Null value comes forward, but function throws exception because not expected
} catch (\Exception $e) {
        // we don't even reach this exception
	$this->logger->error('Exception encountered while accessing current track');
	$this->logger->error($e);
}

Composer version:
"jwilsson/spotify-web-api-php": "^6.0",

Expectation:
Ideally, when SpotifyAPI returns null because the player is fully exited and the music isn't technically "paused" or "playing", then I should be allowed to check getMyCurrentTrack() for null value(s) and handle my code based around that.

Hey!
I totally agree, looks like the Spotify docs doesn't reflect reality. The endpoint returns a HTTP 204 with an empty body when nothing is playing which of course will cause null to be returned.
I'll update the function declaration to reflect this and I've posted on Spotify's developer forum asking them to update the docs.

@jwilsson many thanks for fixing the issue! I tried again with the new version, and the issue is resolved. Working as expected.


Copy from gmem to smem

[x] Left and right inverse
[ ] Test async copy
[x] Test vectorized copy
[ ] adapt the apply(op, args...) syntax

It seems that GPUCompiler doesn't like @nospecialize.


Breaks on TypeScript 4.7 with ts-node

Trying to run a project using yatsl on TypeScript 4.7 using ts-node seems to make it complain:
Debug Failure. False expression: Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself.

Removing yatsl from the code seems to let it run just fine.

Seems to be a quirk specific to my configuration since it works on a different system. Adding a wontfix until I have a better idea what exactly is broken.

I can't seem to be able to replicate it anymore on my system, so closing the issue.


Fix parsing of merge commits

Description
The current solution for #322 has a problem: if a secret is found in a merge commit, ggshield crashes because it does not know how to parse merge patches. These patches are different from plain single-parent patches: there is one column per parent on the left side and the chunk header (the @@ -a,b +c,d @@ line) contains one -a,b entry per parent too.
What has been done
Extending the parser was a lot of work, but it turns out git show and git diff can turn merge commits into multiple single-parent commits when called with the -m option.
Handling these commits required some changes to the scannable.Files class: its files property uses to expose the affected files as a dict of filename => File instance. This was not adapted anymore because when a merge commit is turned into multiple single-parent commits, the same file will appear more than once, so scannable.Commit (which inherits from scannable.Files) must be able to return multiple changes for each file.
I fixed this by turning the files property into a list of File instances instead of a dict.
Issue
Fixes #322

Codecov Report

Merging #333 (e3e4179) into main (e2d0f38) will increase coverage by 0.07%.
The diff coverage is 91.89%.

@@            Coverage Diff             @@
##             main     #333      +/-   ##
==========================================
+ Coverage   94.15%   94.22%   +0.07%
==========================================
  Files          75       75
  Lines        3028     3032       +4
==========================================
+ Hits         2851     2857       +6
+ Misses        177      175       -2

Flag
Coverage Δ

unittests
94.22% <91.89%> (+0.07%)
:arrow_up:

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

Impacted Files
Coverage Δ

ggshield/scan/scannable.py
92.98% <91.66%> (+1.01%)
:arrow_up:

ggshield/iac/utils.py
100.00% <100.00%> (ø)

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


Enable editing / dropdown CLI

Added support for dropdown (up/down) and auto completion. Editing is not supported. CLI input needs major rework.


Private Key is null in CertificateBundle

Hello,
I'm trying to update from Spring Vault 3.0.2 to 3.1.0 (through spring-cloud-starter-vault-config) and I'm having an issue where, having created an instance of the CertificateBundle, I get null when I try to get the private key back.
Here's a simple test case to illustrate.
@Test
  void shouldNotThrowNullPointerExceptionWhenGettingPrivateKey() {
    var serialNumber = "aserialnumber";
    var certificate = "certificate";
    var caCertificate = "caCertificate";
    var privateKey = "aprivatekey";

 var certificateBundle =
        CertificateBundle.of(serialNumber, certificate, caCertificate, privateKey);
    Assertions.assertThat(certificateBundle.getPrivateKey()).isNotNull();
  }

I had a look at the code and it seems to me that the order of arguments is transposed on this line https://github.com/spring-projects/spring-vault/blob/74ff3b648dae1f6eedc403b782db003dec575aaf/spring-vault-core/src/main/java/org/springframework/vault/support/CertificateBundle.java#L98
That is, it's passing null as the privateKey argument and passing the intended private key to the privateKeyType argument.
Does that look/sound like it makes sense? Thanks for your assistance.

This is a regression from an earlier change. As a workaround, please use a different factory method until this is fixed.


Where can we find old documentation?

I found a gist that might be useful in my case, but it is not compiled. When I searched for the erroneous keyword in the livescript.net, I realized the where keyword is depreciated. OK, now I want to update the code to the current version of livescript, but how can I find what where keyword does?

It's on the gh-pages branch on git, you can go back in the history

Thank you.


Deployment Marker Section - Limited Apps Return in Dropdown Selection

While on site with a customer we noticed that within the Deployment Marker section when viewing potential apps to configure only a certain amount of apps return in the dropdown (Application ID).
This customer has over 2,000+ apps with APM wanting to leverage this for their Prod apps. Wondering if the code may need tweaked to paginate the results so customers that have a large APM footprint can return all their monitored entities.
Appreciate the help, thanks!

Resolved by PR #15


Filter sold artworks

Most of the plumbing was already in place, but wasn't getting used because of stringly-typed code. Snapshots updated due to antialiasing differences.
This is a WIP because I want to test in an environment where some sale artworks get sold and some are still for sale.

Confirmed this works. The Kiosks sync every sixty seconds, so there will be a slight lag. Still remains to be seen if we need something for users already in the bidding flow.

Failures are at https://eidolon-ci.s3.amazonaws.com/207/index.html , looks like more antialiasing problems. Will take a look later today.

Yep, this looks 👍


Only run accessibility tests when requested by the user

Before
Running gulp test ran lots of tests including our new accessibility tests. This is annoying because it reports a lot of accessibility problems that we won't have time to address anytime soon.
After
Running gulp test doesn't include the accessibility tests. Run gulp test --a11y to include them.
Review

@chosak
@richaagarwal

Notes

It kills me to create a second config file (a11y_conf.js) but it was the only way I could figure out how to modify the plugins property via a command line option. Only the onPrepare method seems to have access to the protractor globals and by then it's too late to add a plugin.

Nice approach. It's too bad that you can't modify the config object somehow once you're in that method.
Some gulp lint errors:
cfgov-refresh/gulp/tasks/test.js
   24:21  error    Unexpected use of process.env                     no-process-env
   82:38  error    ["a11y"] is better written in dot notation        dot-notation

(Although these don't actually fail the build for some reason.)
Minor request: update TEST.md here to mention this command-line param?

@chosak Gulp lint errors aren't supposed to fail the build, afaik.
Other than Andy's comments, 👍

Fixed the lint warning and update the docs. Thanks!

Thank you @contolini! 👍


Vectorize dispatch with gather in DeepLabV3

The following dispatch from DeepLabV3 is not vectorized:
hal.executable private @main_dispatch_78 {
  hal.executable.variant public @embedded_elf_riscv_64, target = <"llvm-cpu", "embedded-elf-riscv_64", {cpu_features = "+m,+a,+f,+d,+v", data_layout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128", native_vector_size = 64 : index, target_triple = "riscv64-unknown-unknown-eabi-elf"}> {
    hal.executable.export public @main_dispatch_78_generic_1x257x257x21 ordinal(0) layout(#hal.pipeline.layout<push_constants = 0, sets = [<0, bindings = [<0, storage_buffer, ReadOnly>, <1, storage_buffer>]>]>) {
    ^bb0(%arg0: !hal.device, %arg1: index, %arg2: index, %arg3: index, %arg4: index):
      %x, %y, %z = flow.dispatch.default_workgroup_count %arg1, %arg2, %arg3, %arg4
      hal.return %x, %y, %z : index, index, index
    }
    builtin.module {
      func.func @main_dispatch_78_generic_1x257x257x21() {
        %c0 = arith.constant 0 : index
        %cst = arith.constant 1.250000e-01 : f32
        %cst_0 = arith.constant 0.000000e+00 : f32
        %c1_i32 = arith.constant 1 : i32
        %c32_i32 = arith.constant 32 : i32
        %cst_1 = arith.constant 1.000000e+00 : f32
        %c0_i32 = arith.constant 0 : i32
        %0 = hal.interface.binding.subspan set(0) binding(0) type(storage_buffer) offset(%c0) alignment(64) : !flow.dispatch.tensor<readonly:1x33x33x21xf32>
        %1 = hal.interface.binding.subspan set(0) binding(1) type(storage_buffer) offset(%c0) alignment(64) : !flow.dispatch.tensor<writeonly:1x257x257x21xf32>
        %2 = flow.dispatch.tensor.load %0, offsets = [0, 0, 0, 0], sizes = [1, 33, 33, 21], strides = [1, 1, 1, 1] : !flow.dispatch.tensor<readonly:1x33x33x21xf32> -> tensor<1x33x33x21xf32>
        %3 = linalg.init_tensor [1, 257, 257, 21] : tensor<1x257x257x21xf32>
        %4 = linalg.generic {indexing_maps = [affine_map<(d0, d1, d2, d3) -> (d0, d1, d2, d3)>], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} outs(%3 : tensor<1x257x257x21xf32>) {
        ^bb0(%arg0: f32):
          %5 = linalg.index 1 : index
          %6 = linalg.index 0 : index
          %7 = affine.apply affine_map<(d0, d1) -> (d0 + d1 * 257)>(%5, %6)
          %8 = linalg.index 2 : index
          %9 = linalg.index 3 : index
          %10 = arith.index_cast %7 : index to i32
          %11 = arith.index_cast %8 : index to i32
          %12 = arith.uitofp %10 : i32 to f32
          %13 = arith.uitofp %11 : i32 to f32
          %14 = arith.mulf %12, %cst : f32
          %15 = arith.mulf %13, %cst : f32
          %16 = arith.addf %14, %cst_0 : f32
          %17 = arith.addf %15, %cst_0 : f32
          %18 = math.floor %16 : f32
          %19 = math.floor %17 : f32
          %20 = arith.subf %16, %18 : f32
          %21 = arith.subf %17, %19 : f32
          %22 = arith.fptosi %18 : f32 to i32
          %23 = arith.fptosi %19 : f32 to i32
          %24 = arith.addi %22, %c1_i32 : i32
          %25 = arith.addi %23, %c1_i32 : i32
          %26 = arith.cmpi slt, %22, %c0_i32 : i32
          %27 = arith.select %26, %c0_i32, %22 : i32
          %28 = arith.cmpi sgt, %22, %c32_i32 : i32
          %29 = arith.select %28, %c32_i32, %27 : i32
          %30 = arith.cmpi slt, %24, %c0_i32 : i32
          %31 = arith.select %30, %c0_i32, %24 : i32
          %32 = arith.cmpi sgt, %24, %c32_i32 : i32
          %33 = arith.select %32, %c32_i32, %31 : i32
          %34 = arith.cmpi slt, %23, %c0_i32 : i32
          %35 = arith.select %34, %c0_i32, %23 : i32
          %36 = arith.cmpi sgt, %23, %c32_i32 : i32
          %37 = arith.select %36, %c32_i32, %35 : i32
          %38 = arith.cmpi slt, %25, %c0_i32 : i32
          %39 = arith.select %38, %c0_i32, %25 : i32
          %40 = arith.cmpi sgt, %25, %c32_i32 : i32
          %41 = arith.select %40, %c32_i32, %39 : i32
          %42 = arith.index_cast %29 : i32 to index
          %43 = arith.index_cast %33 : i32 to index
          %44 = arith.index_cast %37 : i32 to index
          %45 = arith.index_cast %41 : i32 to index
          %46 = tensor.extract %2[%c0, %42, %44, %9] : tensor<1x33x33x21xf32>
          %47 = tensor.extract %2[%c0, %42, %45, %9] : tensor<1x33x33x21xf32>
          %48 = tensor.extract %2[%c0, %43, %44, %9] : tensor<1x33x33x21xf32>
          %49 = tensor.extract %2[%c0, %43, %45, %9] : tensor<1x33x33x21xf32>
          %50 = arith.subf %cst_1, %21 : f32
          %51 = arith.mulf %46, %50 : f32
          %52 = arith.mulf %47, %21 : f32
          %53 = arith.addf %51, %52 : f32
          %54 = arith.mulf %48, %50 : f32
          %55 = arith.mulf %49, %21 : f32
          %56 = arith.addf %54, %55 : f32
          %57 = arith.subf %cst_1, %20 : f32
          %58 = arith.mulf %53, %57 : f32
          %59 = arith.mulf %56, %20 : f32
          %60 = arith.addf %58, %59 : f32
          linalg.yield %60 : f32
        } -> tensor<1x257x257x21xf32>
        flow.dispatch.tensor.store %4, %1, offsets = [0, 0, 0, 0], sizes = [1, 257, 257, 21], strides = [1, 1, 1, 1] : tensor<1x257x257x21xf32> -> !flow.dispatch.tensor<writeonly:1x257x257x21xf32>
        return
      }
    }
  }
}

I haven't looked into it but it's likely that the gather operation (tensor.extract) is not supported right now. This is currently the main hotspot in the model on RISC-V.

@pzread, I think this could be related to the vector gather work that you are doing. Would you mind taking a look?

I'll take a look. But from the first glimpse,  tensor.extract %2[%c0, %42, %44, %9] is using 2 computed indices (%42, %44) to get the value, which is the hard case to be handled. I'll first find which front-end op generates this generic op.

@MaheshRavishankar, would it make sense to prevent fusion of non-vectorizable gathers for now? We have quite a few ops here that are not being vectorized so it might be an interesting intermediate step to consider.

It would be preferable not to do that. AFAICS, this is an issue with RISC-V only. Having such escape hatches for individual cases will result in a death by thousand cuts....

To ask another way, lets say we dont fuse, there is still a gather op which is not vectorized... that is still going to be almost as expensive as the fused op?

Looks like those tensor.extract come from tosa.resize https://mlir.llvm.org/docs/Dialects/TOSA/#tosaresize-mlirtosaresizeop, which is the last case we want to handle in the original plan...

One of the low-hanging fruit is adding the canonicalization pattern for the identity tosa.resize for the op below:
%233 = "tosa.resize"(%232) {mode = "BILINEAR", offset = [0, 0], offset_fp = [0.000000e+00 : f32, 0.000000e+00 : f32], output_size = [33, 33], shift = 0 : i32, stride = [0, 0], stride_fp = [1.000000e+00 : f32, 1.000000e+00 : f32]} : (tensor<1x33x33x21xf32>) -> tensor<1x33x33x21xf32>

I believe in this case we can simply replace the output with the input. This will eliminate one of three tosa.resize in DeepLabV3

AFAICS, this is an issue with RISC-V only.

This is not a RISC-V specific issue. This is a limitation in the vectorizer that impacts all the backends using it.

that is still going to be almost as expensive as the fused op?

We would be vectorizing ~40 ops more that currently remain scalar so I would expect to see some improvement. The dispatch is quite big.
The change doesn't sound like a hack to me since we would just be filtering out ops that we can't vectorize right now.

AFAICS, this is an issue with RISC-V only.

This is not a RISC-V specific issue. This is a limitation in the vectorizer that impacts all the backends using it.

that is still going to be almost as expensive as the fused op?

We would be vectorizing ~40 ops more that currently remain scalar so I would expect to see some improvement. The dispatch is quite big.
The change doesn't sound like a hack to me since we would just be filtering out ops that we can't vectorize right now.

To start with you can try to make the change to see the difference (at least to evaluate the impact on all backends). No gaurantees though if we can land such a heuristic... This is really a backend codegen issue....

To start with you can try to make the change to see the difference (at least to evaluate the impact on all backends). No gaurantees though if we can land such a heuristic... This is really a backend codegen issue....

Sure! Any pointers? I haven't looked into IREE's fusion at all.

The fusion can be controlled here :  https://github.com/iree-org/iree/blob/7cb032c9a84be7b0d5d8c082d2a09fb2d4e4a025/compiler/src/iree/compiler/Dialect/Flow/Transforms/FusionOfTensorOps.cpp#L34
You can try avoiding fusion if the producer or consumer is not vectorizable.

Actually, most of the ops in the dispatch are part of the tosa.resize lowering so this is not a fusion problem.

One of the low-hanging fruit is adding the canonicalization pattern for the identity tosa.resize for the op below:

That would be great since all those ops will go away! @rsuderman, do you think you could help with this?

I hit the same issue when profiling deeplabv3 on Pixels. The dispatch dominates the e2e performance in this case (19%). There are two issues:

The first level tiling sizes are bad, which introduces tiny dispatches.
The op is not vectorize.

@rsuderman is looking into the canonicalization problem here: #10412

We at Arm are also looking at how tosa.resize is being lowered and ways to vectorise it. So this is not specific to a particular architecture and/or LLVM backend :)
I'd hope that a bit more powerful vector.gather could help here (I also brought it up in  https://github.com/iree-org/iree/issues/9198). However, as @pzread points out, the access pattern here is a bit tricky - both x and y coordinates change in every iteration. I was wondering whether it would help if tosa.resize was instead lowered into two linalg.generic ops:

one linalg.generic across the x axis,
one linalg.generic  across they y axis.

What do you think? I am relatively new to IREE, so any pointers would be much appreciated! It would be super helpful to better grasp the amount of work required here. That would make volunteering easier ;-)

Hi @banach-space! Let me reply to you in #9198 since this issue is already fixed by just canonicalizing away tosa.resize ops that are actually no-ops.

There should be some performance improvements landed at IREE head including the broadcast case and the pass-through canonicalization. I have a patch that handles single broadcasting in flight but it shouldn't be relevant to these cases.

After talking to @rsuderman, the main tosa.resize and hottest dispatch in DeepLabV3 can't be optimized away, as we initially thought. Therefore, the only option to optimize it is improving gather support, covered by #9198. Closing this issue then.


Triggering cluster reload on config change

Making sure a config change will be applied on the cluster.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for this and your other PRs @burandobata ! In the meantime I see the CLAassistant says you haven't signed the contributor agreement, could you do that? I'll take a look at the PRs and provide any feedback soon.

Hi @burandobata . I was just added to the repo and am now able to review PRs. I'm trying to ensure this PR works as expected and unable to get the config updated. It's possible I'm using commands that are different from what you tested with. I'm running helm upgrade redpanda redpanda after modifying the redpanda section of values.yaml hoping to see the new config be applied to the redpanda cluster, but that doesn't happen.
I modify enable_usage_stats to false, and then use the following command to check config values in the first node of the cluster:
kubectl exec -it redpanda-0 -- rpk redpanda admin config print --host redpanda:9644


flv vod seek/resume issue

Seek/resume doesn't seem to work for .flv vod stream. The playback always resets to the start.

(＞﹏＜) I used VLC media player, and seek/resume does not seem to work for vod. And flvs have been indexed by yamdi.


Adding parameter to child router causes navigation to fail

Taking the navigation skeleton project and adding a parameterized route causes navigation to fail.
export class ChildRouter{
  heading = 'Child Router';

  configureRouter(config, router){
    config.map([
      { route: ['','welcome'], name: 'welcome',      moduleId: './welcome',      nav: true, title:'Welcome' },
      { route: 'flickr/:id',       name: 'flickr',       moduleId: './flickr',       nav: true, title:'Flickr' },
      { route: 'child-router', name: 'child-router', moduleId: './child-router', nav: true, title:'Child Router' }
    ]);

    this.router = router;
  }
}

Clicking on the Child Router link will cause the url to flicker, but it won't navigate to the page, it will say on the current page. I also tried adding id to the activate parameter.
  activate(id){

Also, there are no logs in the console to indicate any error.

You can't use nav: true on a parametrized route unless you specify an href to use in the nav link.
What version of the router are you using? There was a bug in a recent version that prevented errors from being logged to the console. The bug has been fixed in the most recent release. Could you check that you're up to date? If you already are I'll try to investigate tomorrow-- we definitely should be logging an error message when navigations fail like that.

Makes sense.
I was on 0.10.0 and just did jspm update and it pulled 0.10.2. The issue is in the error message!
Thanks, sorry for wasting your time. Odd I didn't have latest though, I just started playing around with this yesterday.
Thanks again.


remove export , as that breaks on newer versions of docker-compose

As per this bug report at the docker-compose repo the export statement causes problems with (I guess) docker-compose version 1.25 and later.

Anything in the .env file will be loaded and exposed within the environment when you run docker-compose. There's never been a need to export those vars.
With that said, it's often convenient to export variables here for other things. [...]

(https://github.com/docker/compose/issues/6838#issuecomment-524908500)

Wait, nevermind, this change caused the next problem I ran into.


Support comma in environmentProperty value

We are using spring.cloud.deployer.kubernetes.environmentVariables to set default environment variables to a pod.
This works well, except when you need to add a list of values to a environment variable (which also splits on comma).
For example; we are unable to add more than one broker to the spring.cloud.stream.kafka.binder.brokers property due to this limitation.
A workaround for this is to add the property to each app in a stream, but it is tedious and requires more configuration than what should have been necessary.

Comma delimited property values will need to be wrapped in single quotes.


about true

In a sense, xAI company is the true "openAI"！

Please move to close this issue and move to:
https://github.com/xai-org/grok-1/discussions
Reason:
https://github.com/xai-org/grok-1/issues/69


[WIP] QPY schedule serialization

Summary
This PR adds qiskit.qpy that covers qpy serialization of both QuantumCircuit and ScheduleBlock which is requirement of Qiskit Experiments.
Details and comments
Currently only basic component for MVP
from qiskit import pulse, circuit
from qiskit.qpy.objects.schedules import _write_instruction, _read_instruction
import io

freq = circuit.Parameter("freq")
ch = circuit.Parameter("ch0")
inst = pulse.SetFrequency(freq, pulse.DriveChannel(ch))

container = io.BytesIO()
_write_instruction(container, inst)

container.seek(0)
container.read() # b'\x00\x0c\x00\x00\x00\x02SetFrequencyp\x00\x00\x00\x00\x00\x00\x00\x16\x00\x04\x84\xc4\x06\x13\x0e(G\x1d\x8b\xd0\xf3\xc9D\xd7\x1dXfreqd\x00\x00\x00\x00\x00\x00\x00&\x00\x0cp\x00\x15DriveChannel\x00\x03R\x89\xb3\xf3x2G\xbe\x86\xf8\xddX\xea\xcbe\x85ch0'

container.seek(0)
read_inst = _read_instruction(container); read_inst  # SetFrequency(freq, DriveChannel(ch0))

inst == read_inst  # True

Because in pulse schedule representation (in contrast to QuantumCircuit), parameterizable operand values exit across multiple layers from alignment context parameter to pulse values. To eliminate boilerplate code in each layer, parameter value serialization logic is isolated without changing data structure so that it can be reused.
TODO

[x] ScheduleBlock serialization
[x] Frame change instructions () serialization
[x] Play serialization
[ ] Call serialization
[x] Context serialization
[x] Discriminator/Kernel serialization
[x] Circuit QPY migration
[ ] Unittest
[x] release note

QuantumCircuit.calibrations field serialization will be done in follow-up.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 275 (0.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.4%) to 82.292%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

qiskit/qpy/common.py
0
82
0.0%

qiskit/qpy/objects/schedules.py
0
87
0.0%

qiskit/qpy/objects/parameter_values.py
0
106
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.4%

Covered Lines:
49763

Relevant Lines:
60471

💛  - Coveralls

I thought that schedules, and openpulse in general, was to be deprecated in favor of pulse-gates.  If this is still the case, do we actually need this?

We do because this is to serialize the underlying Schedule or ScheduleBlock objects which define the pulses for pulse gates. All pulse gates do is add the mapping of gates to those pulse schedules. We still need to be able to serialize the pulse definitions so we can serialize a circuit with pulse gates

Ahh ok, got it.

Yes, we also need this for Qiskit Experiments because calibration module there needs serialization of underlying schedules to deal with the database.


[Polish] Improve transitions between Narrow and wider VisualStates

If we're sizing from a Wide State -> the Narrow State:

If we have a Trip Result open, navigate to the Trip Result page with the current details.
If we don't have a Trip Result open, just shrink it.

If we're sizing from a Narrow State -> Wide State

If we're on the Trip Result page, navigate back to MainPage, but keep the Trip Result's state
If we're on the Main Page, just shrink it

Update: Let's change this, and push it to 1.2: Let's rework the Wide design a little bit, to match Jarno's mockup:
I.E, the following are individual controls with their own viewmodels:

TripPlanForm
TripPlanResult
TripPlanResultDetails

and maybe the TripPlanResultDetails map gets to live in its own blade if the screen is wide enough.
In the narrow view we navigate between these as separate pages
OR
they're all hosted on the same page, but are separate controls with separate ViewModels, not crammed together the way that TripPlanResult and TripPlanDetails are today.


Multiple components in the same file

It appears to be a bug, but when I have multiple components on the same file, the docgen info is not beeing attached to the component's class.
I'll try and investigate further.

Actually,  that how docgen works.
They only works when you have a single component in the file.

@madushan1000 BTW react-docgen supports multiple classes if it only export a single class.
Do we cover that case?

I notice this issue when having two stateless components, only one of them being exported, and this one being exported as the default.
import React, { PropTypes } from 'react'

const Second = () => (

Sample

)

const First = ({ children }) => (

    { children }
    <Second />

)

First.propTypes = {
  children: PropTypes.node
}

export default First

I think this is indeed a missing functionality, but by far it is not the most relevant one. I guess adding it to the README might be fine for most users. I'll see if this happens with other situations as well.
Thanks for the quite reply! I'll leave it open for you guys to decide how to proceed ;)

I think we should only add docs for the default export. (Which is First in this case).
If that's not, we should fix it.
@madushan1000 check about this, when you have some time.
Of course, we need to mention this on the README.

There should be a way to see if a class if exported or not. I'll take a look.

I think this issue has been fixed already. Leave a comment if it hasn't been.

I see that when exporting multiple components from a single file. Docs aren't rendered at all—even for the default exported component. Based on the comments above, it seems the expected behavior would be that docs are rendered the default export only, but no docs are rendered.
This can be tested by exporting a component in addition to the default export. For example, in `test/fixtures/case5/actual.js:
import React, { PropTypes } from 'react'

export const Second = () => (

Sample

)

const First = ({ children }) => (

    { children }
    <Second />

)

First.propTypes = {
  children: PropTypes.node
}

export default First

Note the export const Second
In this case, First.__docgenInfo does not exist.


Adds our own button component.

This mirrors whatever is on figma

yeah I can see why this might be concerning from a dev perspective because we're circumventing the mui conventions. I designed this from a design standpoint; there should be one single primary button that pops out more on a page, and the rest can be secondary buttons so they dont distract from the primary action.
As for color, actions are either positive or negative so 🤷♂
For positive/negative as props yeah we should probably can substitute it with a single field but I was too lazy to come up with a name for it; any thoughts?

check figma to see the buttons and see if it makes sense; i literally threw this together in like 5 minutes so I have 0 problems throwing this out

I still don't really get what "positive" and "negative" really means. Like "positive" = button is being clicked on and "negative" = button not clicked on?
Also, maybe we should use some other prop names for the variant field, just to avoid potential confusion? I'm not sure what those names should be tho, and this is just a small thing.

positive = submit, confirm
negative = cancel, delete

essentially instead of exposing the entire mui library we only let the developer choose between 2 things: connotation and emphasis level

I see. Looks good to me then.

I'll add some documentation surrounding this stuff before merging in since it looks like the prop names aren't exactly transparent

this is what happens when you don't work on something for a while and don't keep your branches clean :)))) I guess my code's gone

and carelessly force push -_-


Captcha Is Too Hard/Doesn't Work

Whenever I try to post on /k/, I can never get the Captcha right. I've even had friends try, but we can never get it to work. I think it might be broken.

I've noticed it too. Every once in a while it'll work, but never consistently.

Since google implemented photo captcha it no longer possible to post because photo captcha is not displayed properly.

This really needs to be fixed. Can't post at all anymore


Bug: PrimaryNav and useSupabaseAuth collision

Describe the bug
PrimaryNav.tsx is hosting multiple components that are not based on screen size, coupled in the same file for the useSupabaseAuth argument passing - this has no inherent benefit and is creating a lot of duplication.
These components should be split into multiple files following the existing code structure and the hooks don't need to be passed around, effectively removing those lines from primary navigation and implementing them where we have the sign in/out buttons would be best.
Steps to reproduce

Clone the project
Check src/components/PrimaryNax.tsx

Affected services
hot.opensauced.pizza
Platforms
No response
Browsers
No response
Environment
No response
Additional context
introduced in #210
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Contributing Docs

[X] I agree to follow this project's Contribution Docs

.take


Document PrimInt

It took me a bit to realize that PrimInt is the trait that provides the bit manipulation operations on primitive types (nothing more, nothing less). The methods are documented but the Trait itself is not documented.

PrimInt corresponds to the unique methods of rust's old Int trait (removed in rust-lang/rust@eeb94886adccb3f13003f92f117115d17846ce1f), with the methods that were already covered in traits like Zero and One now added by inheritance.  Because of the broad inherited traits, it's not really "just" a bit-twiddling trait though, so it should be documented as being a generic primitives trait.

This issue was moved to rust-num/num-traits#11


xds: define precedence between TLS cert fields

Commit Message: api: define precedence between TLS cert fields
Additional Description: Instead of requiring fields to be mutually exclusive as was originally done in #17201, define precendence between them, to be consistent with the API guidance updated in #30851.  Note that this should not affect Envoy's implementation, since Envoy does not yet support CertificateProviders.
Risk Level: Low
Testing: N/A
Docs Changes: Included in PR
Release Notes: N/A
Platform Specific Features: N/A

@markdroth looks like a legitimate formatting error: s/precendence/precedence


[MX-462] - Disable idfa access by Facebook sdk

The type of this PR is: Chore
This PR resolves MX-462
Description

Updates Facebook sdk to version that supports disabling access to idfa
Adds plist value to disable access
Removes access to idfa in admin menu

PR Checklist (tick all before merging)

[x] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[x] I have added tests for my changes, or my changes don't require testing, or I have included a link to a separate Jira ticket covering the tests.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added an app state migration, or my changes do not require one. (What are migrations?)

Looks good 👍 I'm surprised the Facebook SDK update wasn't more onerous, that's great.
I've checked the Bolts changelog and they removed UIWebView in 1.9.1 so we should be set for the UIWebView transition 🎉

Yeah I was pleasantly surprised that it just worked!


OpenSUSE Leap 15.5 support

So apparently 15.5 version of my OpenSUSE Leap is the latest one and uses glibc of version 2.31
The required version as it seems from console is 2.34.
lwp: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by lwp)
How can I run this app?

I assume You're trying to run compiled version of the program (?)
Try compiling it yourself, it should link glib version, that Your OS has installed.


[BUG] Bookmarks not loading

Describe the bug
Private and public bookmarks do not load
To Reproduce
Steps to reproduce the behavior:

Go to profile icon
Click on bookmarks
Scroll to Private or Public
See error (bookmarks do not appear/load)

Expected behavior
I have bookmarked various posta and expected to see them appear under Private and Public Bookmarks
Video and Screenshots
Device (please complete the following information):

Phone Brand/Model [e.g. Pixel 7 Pro]: pixel 7 pro
Android Version [e.g. 33]: 14
App Version [e.g. v0.20.3]: 0.83.7

Bounty (in Bitcoin sats) offered for a solution

Can you provide a screenshot of your relays?

Not long after i posted this to github, my public bookmarka began to show. I did not change the relays or anything
Feb 3, 2024, 7:33 AM by @.***:

Can you provide a screenshot of your relays?
—
Reply to this email directly, > view it on GitHub https://github.com/vitorpamplona/amethyst/issues/747#issuecomment-1925360242> , or > unsubscribe https://github.com/notifications/unsubscribe-auth/BBDEKT5PMXPGNDDWJHQRDMTYRZKEHAVCNFSM6AAAAABCC7W2RWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMRVGM3DAMRUGI> .
You are receiving this because you authored the thread.> Message ID: > <vitorpamplona/amethyst/issues/747/1925360242> @> github> .> com>

Glad to hear that. Can you please close this bug?


Fix division by zero in [z]rotg

 Fix division by zero.
With that if condition, the division by da_r corresponds to a division by zero.
https://github.com/OpenMathLib/OpenBLAS/blob/bb2f1ec3b01d76c44017bb65cdbf03b05e644cb4/interface/zrotg.c#L63-L68
Fixed to such that S = conjg(db)/|db|

  Remove redundant branch.
With the algorithm change in reference LAPACK, the case da == ZERO is a special branch.
https://github.com/OpenMathLib/OpenBLAS/blob/bb2f1ec3b01d76c44017bb65cdbf03b05e644cb4/interface/rotg.c#L34
https://github.com/OpenMathLib/OpenBLAS/blob/bb2f1ec3b01d76c44017bb65cdbf03b05e644cb4/interface/rotg.c#L51-L56
Consequently, there is no longer the need to check.
https://github.com/OpenMathLib/OpenBLAS/blob/bb2f1ec3b01d76c44017bb65cdbf03b05e644cb4/interface/rotg.c#L69
The commit removes the branch.

Add missing check for zero.
https://github.com/OpenMathLib/OpenBLAS/blob/bb2f1ec3b01d76c44017bb65cdbf03b05e644cb4/interface/rotg.c#L72-L73
does not have a check c != 0 in the long double code. The float/double version does have this check. The new code is essentially identical to the float/double version

@vladimir-ch You have commented on rotg before and may want to have a look

Thanks for the notification @angsch. I've checked and our Gonum BLAS already has this fix.


New Device and Edit Device Sections

The text and images need to be updated to reflect what is available in the current VS2017 15.8.0, Preview 5

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

ID: a7a62dcf-aba5-fd75-f6dd-187b03dade95
Version Independent ID: 4d403c76-8620-c803-8f84-ed0675f401ce
Content: Managing Virtual Devices with the Android Device Manager - Xamarin
Content Source: docs/android/get-started/installation/android-emulator/device-manager.md
Product: xamarin
GitHub Login: @mgmclemore
Microsoft Alias: mamcle

Hello @JNickVA1, thank you for your feedback! I've added a task to our backlog to update this topic accordingly.


Lilygo S3 won't upload known working sketch...on CPU that programs many of these.

INO, Cable, USB port, etc. all the same as usual. I program lots of these with the same code.
When it finally says connecting, the screen does NOT go blank, it reloads the demo sketch and never takes the code. Here is the error I am getting.
Connecting....Traceback (most recent call last):
File "esptool.py", line 34, in
File "esptool_init_.py", line 1004, in main
File "esptool_init.py", line 646, in main
File "esptool_init_.py", line 895, in get_default_connected_device
File "esptool\loader.py", line 631, in connect
File "esptool\loader.py", line 572, in _connect_attempt
File "esptool\loader.py", line 435, in sync
File "esptool\loader.py", line 365, in command
File "esptool\loader.py", line 317, in write
File "serial\serialwin32.py", line 325, in write
serial.serialutil.SerialTimeoutException: Write timeout
[16916] Failed to execute script 'esptool' due to unhandled exception!
An error occurred while uploading the sketch
I am on the right port, and it shows that it's there.
I only see ONE button, the RST one, and not sure how to get it into a loading mode. (I saw people mention another button...I don't see one on the S3)
Let me know if it's defective or?

that all reads like an esptool issue. They have had an issue with the latest arduino esp32 upgrade. It was -re-released two days later. Esptool had to be upgraded. I am not seeing anythin chip related there

I have programmed about 10 S3's today. This is the only one that is not taking the same code as the other 10!

D) In the Port Selection, if the USB flickers on and off and you cannot upload, you may have to
manually enter "Upload Mode".
This can be caused by a faulty sketch that is running at high speed with no delay at the
end of the loop, or working with Dual Cores.
To enter Upload Mode:
press Boot and hold, press reset and release, then release Boot and go it into "Upload Mode"
The Boot button is above or to the left of the USB, “GPIO 0”.
From my LilyGO T-Display S3 setup and example repository here:
https://github.com/teastainGit/LilyGO-T-display-S3-setup-and-examples/blob/main/LilyGO T-Display-S3 Setup.txt
Hope this helps, Terry

That actually let it upload but nothing on display now. I will try that again, and see if doing it again makes it stick.

That worked! Thank you to everyone.


[all] Build out Comprehensive Test Suite for Each Package

Walkthrough tests
Unit tests

auth done!

checkouts done!

Auth errors

checkouts


Make possible to suppress displaying pending (skipped) specs in RSpec

Displaying tests that are pending is cluttering output, without way to hide them.
According to my googling (leading among other to http://stackoverflow.com/questions/29906229/how-to-suppress-displaying-pending-skipped-specs-in-rspec) it seems currently impossible.

You can do this by implementing a formatter that doesn't display output for pending specs, see the documentation for custom formatters and #2377 for some background on this.

I agree that this would be extremely useful and it would be great if this were available out of the box. Other things I'd love to see are display of file and line for each test as it runs, and a timing of how long each test takes. I don't mean to be greedy, I realize that this is open source and rspec is already a great tool. I wish I had time to do this myself.


Fix receiver bug

This fixes issue https://github.com/leanprover-community/lean-client-python/issues/1 and includes a test (again using the new testing framework in PR https://github.com/leanprover-community/lean-client-python/pull/3).

This is now rebased on top of #3 (the testing framework).  So once that is merged, this should be ready to review next (and merge if it looks good).


Fix wsclientWebapp by configuring client auth against STS

17e8c07f37de0529b94b63199a92f4044f4aa3ff has changed the STS configuration so that it requires client cert authentication for its Transport port.
This port is also used by the wsclientWebapp sample for its "on-behalf-of" usecase. This pull request modifies the sample webapp so that it authenticates against the STS with a client cert for which it uses its SSL server certificate. The certificate is als added to the STS truststore .
The documentation of the necessary keystore modifications has been modified accordingly in the HowToGenerateKeysREADME.html.

Could you instead supply this as a pull request for master? I'll then backmerge it into 1.1.x.
Thanks,
Colm.

Yes, will do so later.

This pull request is superseded by #5 which is a pull request for master, as requested by Colm.


🎉 2.0.4

ℹ About this release

Version: 2.0.4
Type: patch
Last Release: 2.0.3 (10/18/2022, 8:53:49 AM) [?]
Commits to merge: 15 [?]

📦 Dependencies

Update vestaboard-api from ^1.1.2 to ^1.1.3

📦 Development Dependencies

Update @sebbo2002/semantic-release-docker from ^2.0.1 to ^2.1.0
Update @types/node from ^18.7.16 to ^18.11.9
Update @typescript-eslint/eslint-plugin from ^5.40.0 to ^5.42.0
Update @typescript-eslint/parser from ^5.40.0 to ^5.42.0
Update eslint from ^8.25.0 to ^8.26.0
Update eslint-plugin-jsonc from ^2.4.0 to ^2.5.0
Update mocha from ^10.0.0 to ^10.1.0
Update typedoc from ^0.23.16 to ^0.23.20

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

v2.0.4
GitHub release
Docker container (sebbo2002/vestaboard2mqtt:2.0.4)
v2.0.4

Your semantic-release bot :package::rocket:


expose error for failing activity with retry policy

Currently, if an activity is failing and has retry policy, there is no easy way for user to know what is going on until it finally give up and write the final result/error to history.
This cause lots of hard time in debugging/investigation especially if the retry has long expiration time.
We need a way to expose this error info, probably via DescribeWorkflow?

Duplicate of https://github.com/uber/cadence/issues/698


I believe the open source build should have been fixed by various commits:
https://github.com/facebook/mariana-trench/commit/19ce8e6ffa5711ca85479b27ea757b17611fc0fc
https://github.com/facebook/mariana-trench/commit/bb3845ecae470e0dbba27dbec50cf68fdc0e7b1d
etc.
Will close this out, but do re-open if you're still running into issues. Thanks!


pipeline(ticdc): fix table actor cyclic node bug

What problem does this PR solve?

Issue Number: close #5599
What is changed and how it works?
Cyclic Node is not initialized correctly in table actor mode, this pr will fix it
Check List
Tests

Unit test
Integration test

Release note
`None`.

/run-all-tests

/run-all-tests

/check-issue-triage-complete

/run-leak-test

/run-dm-integration-test

/check-issue-triage-complete
/run-dm-integration-test

/run-dm-integration-test

/run-dm-compatibility-test

/merge

/run-all-tests

Codecov Report

Merging #5600 (ada40e9) into master (fcea4d5) will increase coverage by 0.1168%.
The diff coverage is 60.4081%.

Flag
Coverage Δ

cdc
61.5570% <62.1827%> (+0.4089%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
@@               Coverage Diff                @@
##             master      #5600        +/-   ##
================================================
+ Coverage   56.0768%   56.1936%   +0.1168%
================================================
  Files           535        528         -7
  Lines         70143      69700       -443
================================================
- Hits          39334      39167       -167
+ Misses        27078      26810       -268
+ Partials       3731       3723         -8

/run-verify-test

/run-verify-test


SKAM videos on Facebook fail as "unsupported"

Please follow the guide below

[X] I've verified and I assure that I'm running youtube-dl 2018.04.16
[X] At least skimmed through the README, most notably the FAQ and BUGS sections
[X] Searched the bugtracker for similar issues including closed ones
[X] Checked that provided video/audio/playlist URLs (if any) are alive and playable in a browser

What is the purpose of your issue?

[X] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

$ youtube-dl --verbose 'https://www.facebook.com/SKAMaustin/'
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'--verbose', u'https://www.facebook.com/SKAMaustin/']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2018.04.16
[debug] Python version 2.7.10 (CPython) - Darwin-16.7.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 3.4.2, ffprobe 3.4.2, rtmpdump 2.4
[debug] Proxy map: {}
[generic] SKAMaustin: Requesting header
WARNING: Falling back on generic information extractor.
[generic] SKAMaustin: Downloading webpage
[generic] SKAMaustin: Extracting information
[redirect] Following redirect to https://www.facebook.com/SKAMaustin/?_fb_noscript=1
[generic] ?_fb_noscript=1: Requesting header
WARNING: Falling back on generic information extractor.
[generic] ?_fb_noscript=1: Downloading webpage
[generic] ?_fb_noscript=1: Extracting information
ERROR: Unsupported URL: https://www.facebook.com/SKAMaustin/?_fb_noscript=1
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/generic.py", line 2216, in _real_extract
    doc = compat_etree_fromstring(webpage.encode('utf-8'))
  File "/usr/local/bin/youtube-dl/youtube_dl/compat.py", line 2542, in compat_etree_fromstring
    doc = _XML(text, parser=etree.XMLParser(target=_TreeBuilder(element_factory=_element_factory)))
  File "/usr/local/bin/youtube-dl/youtube_dl/compat.py", line 2531, in _XML
    parser.feed(text)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1642, in feed
    self._raiseerror(v)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1506, in _raiseerror
    raise err
ParseError: not well-formed (invalid token): line 3, column 1530
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 789, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 440, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/generic.py", line 3166, in _real_extract
    raise UnsupportedError(url)
UnsupportedError: Unsupported URL: https://www.facebook.com/SKAMaustin/?_fb_noscript=1

For some reason, these Facebook videos fall back to "generic extractor" / "UnsupportedError" even though Facebook is generally supported by youtube-dl.

OK, I found out that the problem is the videos are embedded in the feed, with no direct link available to the user. The videos later were posted with their own URL, and then the downloading works as normal. So the request would be to support downloads from the feed, in the form of "playlist download", which I suppose would be useful to people who want to stay updated on all videos posted in a feed.


Update scalatest to 3.1.0

Updates org.scalatest:scalatest from 3.0.8 to 3.1.0.
Release Notes/Changelog
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalatest", artifactId = "scalatest" } ]

Applied Migrations

https://raw.githubusercontent.com/scalatest/autofix/e4de53fa40fac423bd64d165ff36bde38ce52388/3.0.x/rules/src/main/scala/org/scalatest/autofix/v3_0_x/RenameDeprecatedPackage.scala
https://raw.githubusercontent.com/scalatest/autofix/e4de53fa40fac423bd64d165ff36bde38ce52388/3.1.x/rules/src/main/scala/org/scalatest/autofix/v3_1_x/RewriteDeprecatedNames.scala

labels: semver-minor, scalafix-migrations

Pull Request Test Coverage Report for Build 36

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.4%) to 87.692%

Totals

Change from base Build 35:
0.4%

Covered Lines:
57

Relevant Lines:
65

💛  - Coveralls


How to pass different args to pods in StatefulSets

I can deploy the ha demo "prod1k-persist-ha-provisionPvc.yaml" but the 3 pods are created with the same cpu and memory configuration (request and limits). I'd like to set different args (CPU & Memory) for the monitor pod as the customer required. So how can I pass different args to pods in StatefulSets template? Can I based on their ordinal index?

In this current version using StatefulSets, all HA nodes are treated the same so this is unfortunately not possible. It is a known limitation and a planned feature

Got it, thank you.


Revise our handling of Camunda Modeler patch releases in user communication and rollout

Is your feature request related to a problem? Please describe.
We got updating the release info as part of a patch release in our patch release checklist. It does not really make sense to do so, though: Rather than understanding that one particular bug has been fixed in a patch users remain interested in what has been shipped with the last minor, especially when they simply unwittingly download the "v4.11" release promoted on camunda.com and end up with a patch release (v4.11.1 for example).
Then again, when looking into the what's new communication without an updated release info it looks like all these features got added with the patch release:

Then again, the update server / staged rollout does not distinguish between patch releases and a stable release, it may very well promote v4.11.0 to a user while v4.11.1 is already out, fixed and ready to install.
Describe the solution you'd like

[ ] What's new communication for patch releases is revised :arrow_right: we talk about minor releases only
[ ] Update server is patch release aware :arrow_right: does not offer unpatched versions if a patch is available
[ ] Release checklist is updated to reflect what's new communication and update server related changes for patch releases :arrow_right: we do not update the release info during a patch release.

Describe alternatives you've considered
Keep things as awkward as they are, given that only few patch releases are anticipated. We'd love to not have them, if we could.
Additional context
Popped up during the https://github.com/camunda/camunda-modeler/issues/2499 release.

cc @andreasgeier

@andreasgeier Maybe you could share your async feedback here if the proposed solution makes sense to you, too.

I would like to avoid a situation in which users download a new Modeler version, get a patch release, and the What's new dialog shows only a patch message. All the information about the main release would be lost.
Proposal:
Let's combine messages from the same minor releases, for instance, everything about 4.11.x
I assume this could be done as a quick fix by including the minor release information into the patch release information?
Example of overlay:
What's New

Modeler 4.11.1
- bla

Modeler 4.11.0
- bla
- bla
- bla
- bla

My suggestion was to not mention the patch at all, i.e. continue to talk about the minor only. Patches do rarely ship with noteworthy items (major new capabilities). If we settle down on that we could go so far to not enable the what's new dot in case nothing changed with a patch.
Your proposal would be an alternative to that, offering details for individual patch releases, if I understand correctly?

My suggestion was to not mention the patch at all, i.e. continue to talk about the minor only.

I would be fine with this as well because we would not lose the minor information in a patch release overlay.

Your proposal would be an alternative to that, offering details for individual patch releases, if I understand correctly?

Yes, similar to this example:


Add source to has assoc

resolve #478
Please review @josevalim . There's a problem: source must implement Ecto.Queryable, but I don't know how to judge this. Is there a way for this? Or should we just limit source to be a string?

Hrm, @tony612, this is the wrong approach to the problem. As the issue says, we need to first make {"source", model} queryable, this way, adding support for associations is really easy. Making it queryable requires some steps:

implementing the queryable protocol for it
ensure the query planner knows how to cope with this new format
ensure the inspector knows how to distinguish and prints such queryable properly

Just then it makes sense for them to be part of the association.

Btw, the original issue is marked as advanced exactly because it requires going through a couple places in ecto internals. :)

@josevalim So should we implement it in both formats({"source", Model} & Model, source: "source"), right? I just thought we can pick one format :sweat_smile:
All right, I'll look into this problem again according to your guide :)

@tony612 first we need to make it work in queries and the only syntax that makes sense in queries is {"source", Model}. We can discuss the association syntax later.

@josevalim I rewrite my code after reading more doc and code. But I have two problems:

My implement broke some Inspect tests.
Inspecting from p in Post will become from p in {"posts", Post} because query.from of query Post will be expanded to {"posts", Post}. I'm not sure if we should keep the original way. If so, I need to find another way to inspect {"source", model}.
I read the code of Planner module, but can't find where to modify. Current Planner seems to work well with new {"source", Model} query.

Any idea?

I just think of one way to solve problem 1: compare from's source with model.__schema__(:source). It works, but I'm not sure it's a good enough

I just think of one way to solve problem 1: compare from's source with model.__schema__(:source). It works, but I'm not sure it's a good enough

Yup, I think this is the way to go indeed. Good to know no changes are required in the planner. To be generally sure, do a search on model.__schema__(:source) and see if there are places assuming lack of source or model.

For example, once we support this in joins too, this code is wrong (as it assumes there is no model when there is a source):
https://github.com/elixir-lang/ecto/blob/master/lib/ecto/query/planner.ex#L237

Good job btw! This is a tricky feature and you are progressing well! :D

@josevalim I implemented this in joins and added more test/doc. I think it's time to review :)


Fix azure-cosmos-spark Reademe issue

Fix issue https://github.com/Azure/azure-sdk-for-java/issues/21047
@jongio for notification.

@moderakh - Could you help us merge this PR?


D415 not recognised in Windows 10, Surface Pro 4

Required Info

Camera Model
D415

Firmware Version
<IP_ADDRESS>

Operating System & Version
{Win 10 / Also tried with Ubuntu 18

Kernel Version (Linux Only)
Not applicable

Platform
PC

SDK Version
<IP_ADDRESS> }

Language
Target: Python

Segment
Others

Issue Description
Windows doesn't recognise my RealSense D415. I'm using a Surface Pro 4 with the camera connected to the USB 3.0 port and while the Device Manager reports no "Imaging devices" at all, although the RealSense is discovered under "Universal Serial Bus devices" (see attached screenshot).
I've updated the firmware and streamed RGB and depth from Ubuntu using the realsense-viewer without problems. Do you know what's causing the problem in Windows? Thanks! :)

Historically, RealSense cameras have experienced problems in the past with Surface Books and Surface Pro 4's, apparently related to the USB ports.  The problems seem random - some owners have had problems whilst others haven't.
I note though that you have been able to use the camera successfully in Ubuntu, suggesting that if you were running Ubuntu on the Surface Pro 4, in this case it is more a Windows issue than a general USB issue.
Could you please try opening the Settings window of Windows.  you can find this by typing Settings into the text box at the bottom of your Windows screen, next to the button where you shut the PC down.  On the Settings window, please go to the Privacy option, then the Camera option, and check if 'Allow access to the camera on this device' is set to On.

Hi @MartyG-RealSense thanks for the quick response! Actually I have a dedicated Windows box and although it runs WSL, I had been accessing the camera from Ubuntu running on another machine. So you might be right about it being a USB issue.
I checked my settings and apps have access to my camera, so that doesn't seem to be the problem.
When you say that the USB access problems seem to be random, is there any kind of diagnostic I could perform to find out if I should expect the RealSense to run on my Surface? One of the parameters of the project I'm working on is that it should be a tablet, so I'd really like to be able to develop it on the Surface if possible.

RealSense 400 Series cameras have the advantage of being able to work with any Intel or ARM processor.  So problems that occur tend to be related to the USB or the computer's operating system.
The SDK has a debug tool called 'rs-enumerare-devices' that can be used to provide information about the camera in a console window.  It can be found pre-built in the RealSense SDK 2.0 > Tools folder of the SDK.
https://github.com/IntelRealSense/librealsense/tree/master/tools/enumerate-devices

You could also try the camera in a USB 2.0 port on the Surface Pro 4 if you do not have a second USB 3 port to try the camera in.  The 400 Series camera can work in a USB2 port, though with lesser capabilities.  If it works in a USB 2.0 port, it would strengthen the evidence for the problem being related to the USB 3.0 port.

OK, thanks for the tip. Unfortunately the troubleshooter wasn't able to find any problems... I'll keep looking.

The complicating factor with the Surface Pro 4 is that it only has a single USB 3.0 port and no USB 2.0 ports unless you use the device with a dock.  So a USB problem might typically be corrected by using a mains-powered USB port with the camera instead of plugging the camera directly into the computer.  However, a mains-powered hub would tether the computer to the proximity of the mains plug, greatly reducing portability.

Alright. Maybe I'll give it a shot with a hub tomorrow then. Thanks!

[Realsense Customer Engineering Team Comment]
@Erget Did you get chance to try with hub? And do you still have the issue? Looking forward to your update. Thanks!

Sorry, I haven't had a chance to obtain a hub yet, and I'll be out of town on the weekend. I hope that I get a chance to take a look next week. Sorry for moving so slow on this!

[Realsense Customer Engineering Team Comment]
@Erget Any good news with hub? Looking forward to your update.

Hi, sorry, today we made the decision to use a ZED camera instead (not really related to the hub issue, but it's one of the reasons this was pending for so long). That means that this issue will be mothballed from our side at least for a while. Sorry about the long wait and thanks for the patience.


"References" to structs, etc. in comments are no longer distinguishable

After updating to the latest version, there is no color distinction in the comments when it's a reference to a, for example, structure /in Go) or when it's a comment to describe the structure below.
The following screenshot shows how it's in the default theme vs the updated Catppuccin theme:

JetBrains Dark Theme
Catppuccin Mocha Theme

It is obviously affecting all flavors.

As quicky discussed with Hammy it was never intentionally put in the theme before and appeared because JetBrains decided to do so. So would be something to add to the theme so that now it's officially there ^-^


Reduce code duplication

Reduce code duplication
There is currently a lot of code duplication between Tree and TreeDeque implementations.
A good idea would be to have something akin to :
enum Tree<T, Container = Vec<Tree<T, Container>>> {
    Leaf(T),
    Branch(Container)
}

type TreeDeque<T> = Tree<T, VecDeque<TreeDeque<T>>>

After experimentation here are the conclusion :
The envisaged idea is possible but not as presented in the issue.
In fact, this code oes not compile :
enum Tree<T, Container = Vec<Tree<T, Container>>> {
    Leaf(T),
    Branch(Container)
}

generic parameters with a default cannot use forward declared identifiers
defaulted generic parameters cannot be forward declared

and the type aliases idea two isn't possible either :
type TreeDeque<T> = Tree<T, VecDeque<TreeDeque<T>>>

cycle detected when expanding type alias controller::TreeDeque
...which immediately requires expanding type alias controller::TreeDeque again
type aliases cannot be recursive

The solution is to use a wrapping struct like this :
struct VecTree<T>(Tree<T, Vec<VecTree<T>>>);

An example implementation of VecTree is available on this branch but given that this adds nesting to the generated structure (each tree being nested in a VecTree) I decided to give up on this idea and stay with the current implementation.


Merge a command group with only one command with other group

Description
There's no need to create a group if the group only have one command. For example, I have a command group local-user-key which have one command list, and another group local-user with command create/delete/update/list/show.
I want to merge local-user-key with group local-user and rename to command name to list-key(as there already exist list command in local-user group). But after rename using directive, client factory cf_local_user_key is also renamed as cf_local_user, which cause confusion.
Expected
Before
Group local-user:
> az storage account local-user -h

Group
    az storage account local-user : Storage account local-user. Command group swagger
    name=LocalUsers.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    create   : Create the local user properties of the storage account. Command group swagger
               name=LocalUsers, Command swagger name=CreateOrUpdate#Create.
    delete   : Deletes the local user associated with the specified storage account. Command group
               swagger name=LocalUsers, Command swagger name=Delete.
    list     : List the local users associated with the storage account. Command group swagger
               name=LocalUsers, Command swagger name=List.
    show     : Get the local user of the storage account by username. Command group swagger
               name=LocalUsers, Command swagger name=Get.
    update   : Update the local user properties of the storage account. Command group swagger
               name=LocalUsers, Command swagger name=CreateOrUpdate#Update.

Group local-user-key:
> az storage account local-user-key -h

Group
    az storage account local-user-key : Storage account local-user-key. Command group swagger
    name=LocalUserKeys.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    list : List the local user keys. Command group swagger name=LocalUserKeys, Command swagger
               name=List.

After
> az storage account local-user -h

Group
    az storage account local-user : Storage account local-user. Command group swagger
    name=LocalUsers.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    create   : Create the local user properties of the storage account. Command group swagger
               name=LocalUsers, Command swagger name=CreateOrUpdate#Create.
    delete   : Deletes the local user associated with the specified storage account. Command group
               swagger name=LocalUsers, Command swagger name=Delete.
    list     : List the local users associated with the storage account. Command group swagger
               name=LocalUsers, Command swagger name=List.
    list-key : List the local user keys. Command group swagger name=LocalUsers, Command swagger
               name=ListKeys.
    show     : Get the local user of the storage account by username. Command group swagger
               name=LocalUsers, Command swagger name=Get.
    update   : Update the local user properties of the storage account. Command group swagger
               name=LocalUsers, Command swagger name=CreateOrUpdate#Update.

now it can be done with cli-directive.
Put to backlog for support it automatically


Allow for class aliases to be specified in plugin/module class loader

This provides an addAliases method to the module/plugin class loader, allowing modules and plugins to provide aliases on initialization. This will assist with rebranding. Aliases are lazy-loaded, so that they won't be needed unless some functionality specifically requests them.
Usage:
use Winter\Storm\Support\ClassLoader;

app(ClassLoader::class)->addAliases([
    Winter\Test\Model\Test::class => OldLab\Test\Model\Test::class
]);

@bennothommo looks good, any way to add a unit test for this?

@LukeTowers tests added :)


AL Language Extension v6.6.425415 get an error when loading

Since the AL Language Update v6.6.425415, the error messages appear when starting Visual Studio Code:

Could not start the language service: [Error: spawn EPERM at ChildProcess.spawn (internal/child_process.js:394:11) at Object.spawn (child_process.js:549:9) at h:\vscode-extension\ms-dynamics-smb.al-6.6.425415\node_modules\vscode-languageclient\lib\main.js:376:40] { errno: 'EPERM', code: 'EPERM', syscall: 'spawn' }

Couldn't start client AL

This means that the extension is not loaded correctly and does not work.
I have to use the earlier AL Language Extension v6.5.413786

dupe of https://github.com/microsoft/AL/issues/6508

Thank you for reporting this issue. Closing it as duplicate of #6508 to keep the discussion in one thread.


Issues after upgrade to UCD 7.2

After upgrading to UCD <IP_ADDRESS> DP steps would fail with the below error. This is do to UCD now using groovy 3.
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
file:/opt/IBM/ibm-ucd/agent/var/plugins/com.ibm.datapower_21_c161d6fcc56f21d3ce0c76843d79fb8938d175ab1c312601b59cce03dd6d456d/classes/com/urbancode/air/AirPluginTool.groovy: 49: The variable [inputPropsStream] is declared final but is reassigned
. At [49:13]  @ line 49, column 13.
inputPropsStream = new FileInputStream(inputPropsFile);
^
1 error

Removed a few final from AirPluginTool.groovy and got this working. Created pull request.
https://github.com/ibm-datapower/datapower-configuration-manager/pull/130


xdebug

Hello @vgocoder ,
Could you please add support for xdebug?

@Lapinskas  , I have added xdebug supported.
Please update to the latest version.

Cool, @vgocoder , looks fine, thank you!


ng generate --help is slow

Bug Report or Feature Request (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request

ng generate component --help takes about 6 seconds for me to show the help output.
For others on my team, I've seen it take as much as 15 seconds.
Seems odd that showing help content would be so slow.
Command (mark with an x)
- [ ] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [x] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

Versions

Angular CLI: 7.0.2
Node: 8.11.2
OS: win32 x64
Angular: 7.0.0
... animations, common, compiler, compiler-cli, core, elements
... forms, http, language-service, platform-browser
... platform-browser-dynamic, router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.10.2
@angular-devkit/build-angular     0.10.2
@angular-devkit/build-optimizer   0.10.2
@angular-devkit/build-webpack     0.10.2
@angular-devkit/core              7.0.2
@angular-devkit/schematics        7.0.2
@angular/cli                      7.0.2
@ngtools/webpack                  7.0.2
@schematics/angular               7.0.2
@schematics/update                0.10.2
rxjs                              6.3.3
typescript                        3.1.3
webpack                           4.19.1

Windows 10

Thanks for reporting this issue. This issue is now obsolete due to changes in the recent releases. Please update to the most recent Angular CLI version.
If the problem persists after upgrading, please open a new issue, provide a simple repository reproducing the problem, and describe the difference between the expected and current behavior.


eq 295 , new schema, including employment

Changes
Generate Json for question type 0215 (multiple blocks)
How to test
Run and select 0215 in /dev. Check it works
Who can test
Anyone but @LJBabbage

Is there any more context for this change?

It's to help us with the navigation work, as it's a multi-paged survey

LGTM 👍


Unrecognized option: --cubical-compatible

When running via precompiled version of Agda <IP_ADDRESS> for Windows type-checking errors with:
\plfa\src\plfa\part1\Naturals.lagda.md:263,8-51
Unrecognized option: --cubical-compatible
when scope checking the declaration
  import Relation.Binary.PropositionalEquality as Eq

The solution was to install agda via cabal: cabal install Agda-2.6.3
The fact that Agda 2.6.3 is required should be probably clearly documented in the readme.
Hope this helps anyone else running in to the error.

Closing, as the fact that Agda 2.6.3 is required is documented in the README.


GetEstimatedFee & TryGetEstimatedFee methods

This PR is for issue https://github.com/MetacoSA/NBitcoin/issues/209 and marks EstimateFee and EstimateFeeAsync as Obsolete methods. It also creates the three new methods:  GetEstimatedFee, TryGetEstimatedFee  and GetEstimateFeeAsync.

just a nit, what about EstimateFeeRate and TryEstimateFeeRate, instead of get?

ha and InvalidOperationException should not be used.
The following sections show how some common cases in which in InvalidOperationException exception is thrown in an app. How you handle the issue depends on the specific situation. Most commonly, however, the exception results from developer error, and the InvalidOperationException exception can be anticipated and avoided.
But here it can't be anticipated by the dev. I would say, create a new excpetion in RPC namespace like EstimatedFeeNotFoundException()

But here it can't be anticipated by the dev. I would say, create a new excpetion

Agreed.

in RPC namespace like EstimatedFeeNotFoundException()

Is there any way to know the specific reason why it could not be estimated? If there are many possible reasons (instead of just one), ideally we would have different exception types for each.

@knocte  only reason is that Bitcoin Core does not have enough data for it. Maybe we should say it in error message.

Ok, but to not encourage ex.Message parsing, I would also add it on the exception name. Something like NotEnoughDataForEstimationException.

@knocte there is only one reason the fee can t be estimated

If it was not the case we would have details as prop of the exception,

or subclass of EstimatedFeeNotFoundException so we don t break existing code.

or subclass of EstimatedFeeNotFoundException so we don t break existing code.

Ok but "estimated fee not found" doesn't seem correct wording. Either you can estimate or you cannot, but you don't "find" an estimation.

How about EstimationNotPossibleException

Strange, what about NoEstimationException() with error message saying "Try a lower estimation target or wait for Bitcoin Core to get more data."

Ok, sounds better than EstimatedFeeNotFound


Flashing flickering input fields on iOS and MAC

Hi all,
I have this crazy issue I can't figure out.
I had datetimepicker working fine few days ago. I updated to the new jQ 3.6.0 and since that I got this flickering going on on all browsers on iPhone and on Safari.
You can see the effect here
In Win Chrome, Android it's working fine as usual.
reverting to older jQuery is not an option. What could have gone wrong here.
Here is the part of the code running this.
It looks like all the field are opening and closing one by one from top to bottom real fast.
`$(document).ready(function () {
     $('#date_from').datetimepicker({
         theme:'light',
          timepicker:false,
           formatDate:'Y/m/d',
            mask:true,
              format:'Y-m-d'
     });
       $('#date_to').datetimepicker({
         theme:'light',
          timepicker:false,
           formatDate:'Y/m/d',
            mask:true,
             format:'Y-m-d'
     });

      $('#date_from_time').datetimepicker({
         theme:'light',
          timepicker:true,
          datepicker:false,
            mask:true,
            format:'H:i'
     });

        $('#date_to_time').datetimepicker({
         theme:'light',
          timepicker:true,
          datepicker:false,
            mask:true,
            format:'H:i'
     });

});`

This im my first gitHub post, so if I wrote something wrong I apologize in front.

 I was changing something and somehow changed the order of loading scripts so this datetimepickes js was loading before jQuery. I just switched order and it works.