adding the '.md' extension will tag the repo.

I didn't know that! Thank you 👏

Sorry for the trouble, but I was mistaken.
https://help.github.com/articles/adding-a-license-to-a-repository/
I think it's not being recognized because it's modified with the company name.


Not Working When cookies are disabled

Your solution is supposed to work without cookies enabled, but when I turn on the Block all cookies flag on Safari I am getting an endless redirect loop on demo.supercookie.me and on my local nodejs project.
It looks like you are highly reliant on cookies.

Yes, you‘re right! To identify the user while the Read/Write process, supercookie makes use of temporary cookies.
Please note that these cookies wouldn‘t be necessary for this attack scenario at all. Some similar practice like identifying clients via IP header would also work.

A great idea is to document if this solution would work on third-party iframes.
I wasn't able to get a favicon request from an iframe in Safari for example (and I've tried with HTML favicon as well as with JS)
Have you tried that?

Yeah I already tested a solution via iframes - but it didn't seem to work.
By the way: When loading favicons via JS, your browser does not access the local F-cache, but sends a GET request to the webserver. Fingerprinting becomes impossible here (except a workaround I've found that is just working fine in Chrome)!
Another approach I'm working on is favicon-fingerprinting based on portals. I'm going to check this out!

Nice! I am testing some stuff too on iframes, kind of hard with ITP.
If you want to work together on leads I would love to.
I am checking Web Bluetooth and Proximity Sensor

Sure feel free to contact me on Twitter or via email.

Email was sent.


Add Support for Defining Rules Without Lambda and the DSL

Rules and Decisions can be very nicely wired up with lambda. But [eventually] there should be support for wiring rules up without lambda and without the DSL (even though, this is very cool :).
What if given(), when() and then() methods could take in Facts, Predicates and Functions, respectively, but also be defined in a Rule class (by the developer)? That might be pretty cool. So, it could be an either/or situation. And thenRules or Decisions could then be added to a Book or mixed with other Rule types.

I think the basic approach will be defining classes that define given, when and then methods. Each of those methods will be injected into a Rule (e.g. default to StandardRule) as the definition of the functional interfaces which can be passed into the when() and then() methods. The given() method will convert the state defined into Facts. Anyway, that's the thought right now.


Update dependencies, add code coverage, update linting, add snyk

Update dependencies to latest versions,
tell travis to test on node 4 and 6,
add editorconfig to standardise editor settings,
add istanbul code coverage,
enforce code coverage to at least current values,
update linting to use eslint and correct some code linting issues,
update example form to use i18n-future instead if i18next

This looks fine to me. @easternbloc are you happy with the file dependency for hmpo-form-wizard in the example?

from slack:

easternbloc [2:52 PM] yeah agree with you guys i think its not made to be copy pasted so its fine using file:..

Sorry yes happy happy


Deleting a ServiceAssurance CR doesn't result in all objects being deleted

For some reason when you delete the cloud1 instance of a ServiceAssurance object, the Operator doesn't seem to know what objects to delete, so your SAF Cluster ends up remaining even after the ServiceAssurance object is no longer in memory.

Was an issue with OLM. New instance of development server resolved this.


Default View Mode 如何才能使用闪光灯（手电筒），场景：用于夜间扫码

Android  系统 Default View Mode 如何才能使用闪光灯（手电筒），场景：用于夜间扫码

求大佬抽空看一下

如何才能使 闪光灯（手电筒）的打开/关闭 按钮一直显示在页面上？

Hi,
It is not possible to make any changes to the Default View. It is used based on the "View" model. "Customized View" is already available to make changes. In order for Flash Light to be visible all the time, it will always be visible when you use the code below by removing it from the "if" structure.

flushBtn.setVisibility(View.VISIBLE);
You can make the flash button always visible by changing the location of this line in the DefinedActivity.java class. I hope it was useful.


[BUG] [Remote Store] Remote store restore fails for shards intermittently while reading/parsing segment metadata files

Describe the bug
While doing a restore from Remote Store for an index, the restore fails intermittently while parsing segment metadata files. We have observed this happening on large indices and works for indices with 100-200 docs.
To Reproduce
Steps to reproduce the behavior:
Since this is intermittent, reproduction might not work with following steps. But if you index size is large then its highly likely you'll be able to reproduce.

Create an index with 0 replica and remote store enabled
Index few GBs of data
Kill one of the nodes where any one shard is assigned for this index
Close the index
Try to restore from Remote store. Few shards would fail with following exception

[2023-03-23T10:52:12,653][INFO ][o.o.i.s.RemoteStoreRefreshListener] [node-2] Exception while deleting stale commits from remote segment store, will retry delete post next commit
org.apache.lucene.index.CorruptIndexException: misplaced codec footer (file extended?): remaining=63, expected=16, fp=16247 (resource=BufferedChecksumIndexInput(metadata__1__4__KwQRDocBjhV-QdRrrU7C))
        at org.apache.lucene.codecs.CodecUtil.validateFooter(CodecUtil.java:578) ~[lucene-core-9.5.0.jar:9.5.0 13803aa6ea7fee91f798cfeded4296182ac43a21 - 2023-01-25 16:44:59]
        at org.apache.lucene.codecs.CodecUtil.checkFooter(CodecUtil.java:432) ~[lucene-core-9.5.0.jar:9.5.0 13803aa6ea7fee91f798cfeded4296182ac43a21 - 2023-01-25 16:44:59]
        at org.opensearch.common.io.VersionedCodecStreamWrapper.checkFooter(VersionedCodecStreamWrapper.java:84) ~[opensearch-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.opensearch.common.io.VersionedCodecStreamWrapper.readStream(VersionedCodecStreamWrapper.java:53) ~[opensearch-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.opensearch.index.store.RemoteSegmentStoreDirectory.readMetadataFile(RemoteSegmentStoreDirectory.java:138) ~[opensearch-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.opensearch.index.store.RemoteSegmentStoreDirectory.deleteStaleSegments(RemoteSegmentStoreDirectory.java:424) ~[opensearch-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.opensearch.index.shard.RemoteStoreRefreshListener.deleteStaleCommits(RemoteStoreRefreshListener.java:236) [opensearch-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.opensearch.index.shard.RemoteStoreRefreshListener.afterRefresh(RemoteStoreRefreshListener.java:103) [opensearch-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.apache.lucene.search.ReferenceManager.notifyRefreshListenersRefreshed(ReferenceManager.java:275) [lucene-core-9.5.0.jar:9.5.0 13803aa6ea7fee91f798cfeded4296182ac43a21 - 2023-01-25 16:44:59]
        at org.apache.lucene.search.ReferenceManager.doMaybeRefresh(ReferenceManager.java:182) [lucene-core-9.5.0.jar:9.5.0 13803aa6ea7fee91f798cfeded4296182ac43a21 - 2023-01-25 16:44:59]
        at org.apache.lucene.search.ReferenceManager.maybeRefreshBlocking(ReferenceManager.java:240) [lucene-core-9.5.0.jar:9.5.0 13803aa6ea7fee91f798cfeded4296182ac43a21 - 2023-01-25 16:44:59]

Expected behavior
Remote store restore should not fail and all shards should be assigned and initialized after restore
Host/Environment (please complete the following information):

OS: Linux
Version OS_2.5

@linuxpi This issue will be marked for next-release v2.8.0 on (Apr 17) as that is the code-freeze date for v2.7.0. Please let me know if otherwise.

@linuxpi Is this issue still on track to be merged for v2.7.0. If so, can you please create a backport of #6931 to 2.x line and get it merged by EOD today (code-freeze for 2.7)?

https://github.com/opensearch-project/OpenSearch/issues/6824
Already backported. Closing the bug


Cannot find module './rateLimiter.mjs'

Hey I tried to use this together with your throttled-queue but got this error:
 Cannot find module './rateLimiter.mjs' from<EMAIL_ADDRESS>
    Require stack:
<EMAIL_ADDRESS>
Do you know what it could be?
Thanks

It looks that there was an error when using the module with require (rather than import).
Please try the newly released version v1.1.6.

Thanks - that solves that.
I'm now having a problem with throttled-queue:
 Cannot find module '@dutu/throttled-queue' or its corresponding type declarations.

    import ThrottledQueue from "@dutu/throttled-queue"

Would it be something similar?

have done an update and included a note if you are using the package as CommonJS module (require)
https://github.com/dutu/throttled-queue/blob/master/README.md#installation


Proposal : new votes allocation

This proposal aims at finding a response to the question "What do I do when I used all my votes?"
Some of the system design behind our first release of Sovereign is directly inspired by the Satoshi Nakamoto's economics of Bitcoin. One example is vote scarcity, when a collective start its collective it can parameter the number of votes allocated to each user when they signup. Votes are not tied to a particular proposal and a user can cast more than one vote on them (intensity voting).
In such condition members of the collective not only have to position themselves according to the proposal but also be smart on how they allocate their voting resources. (Game theory, cost opportunity).
As we've been experimenting in this particular environment really interesting member behaviors have emerged and the feeling we have is that this setting makes voting much more interesting and dynamic for the users as it becomes more complex (not binary).
The problem with this is that it doesn't work in the long run because people will eventually run out of votes. We've been thinking of ways to allocate new votes :

New votes are issued as new proposals are created

New votes are issued periodically (d/w/m/y)

We even starting doubting about users being able to allocate multiple votes on a single ballot. At one point we started thinking, "why don't we fully embrace Satoshi Nakomoto's design principles of Bitcoin for our governance system". And that's how we think we might have cracked it, here is how.
Bitcoin economics are very simple its basically the same as gold extraction. There is finite amount of gold on earth and to benefit from it you have to extract it form the soil mining. There are is finite amount of Bitcoin and to create Bitcoins miners have to solve complex cryptographic problems use computational power. A number of Bitcoins (plus transaction fees) (12,5 BTC currently, halves every four years) are allocated for them miners who solve the complex cryptographic problem and installs and brings consensus to the rest to the networks allowing to create a new block that is link to the rest of the chain. One particular thing that is interesting with the Bitcoin protocal is that the complexity of cryptographic problem it gives for solving to the miner is bound to the numbers of computers competing to solve it, so if less people mine Bitcoin it will give easier problems to solve to make Bitcoin mining interesting again and vice versa.
So how can we apply this to Sovereign's votes allocation system?

When a collective creates an instance a finite number of votes are available in the system, votes are thus made a scarce resource that has to be used carefully by the users.

Just like with Bitcoin new votes are created when a problem is solved, hence a decision is made, consensus is reached.

When vote get scarce more consensual proposals can be made by members of the group so decision can be made, leading to the creation of new votes (forcing the group to come together on smaller issues to later tackle more controversial ones).

The limited number of votes in the system guarantees that members abuse (overuse) this easy vote creation features.

Feedback is most welcome :)
We started discussing this on a sovereign instance a few weeks ago : https://sovereign.opensourcepolitics.eu/vote/votes-allocations-in-the-long-run-for-sovereign-satoshi-nakamotos-way

This is brillant. How would new votes be allocated fairly to users ? Would mining votes be a thing ?

Admittedly, I don't understand much about cryptocurrency. However, mining votes seems to favor people with computational resources, e.g. server farms, botnets, etc.. It seems to favor a technological elite.

@brylie I think in this case, mining vote is not related with computer power, is related with voter consensus among one proposal.
The missed piece here is that this scenario is for "open discussions", which means that at the beginning there is not a list of proposals to vote.The main idea is to have a topic to get a collective decision. Example: user A creates a new proposal A, 65% of all users agree with proposal A, all users get 65 extra votes (mining), user B creates a new proposal B, 75% of all users agree with proposal B, all users get 75 extra votes (mining), user C creates a new proposal C, 35% of all users agree with proposal C, no consensus, no mining, no new votes.

Thanks, Virgile.  Good puzzle.  Santi is back in SF Sunday .. and we will be meeting Mon/Tue and will discuss this.  Meanwhile .. have you considered sending out a block of shares to each voter .. and limiting the ‘spend’ to (let’s say) 10%?  For a ‘YES’ vote, one would send 10% back to the sending address. (others would do the same…so when 5% of voting round total is his…have a majority)  Otherwise, to propose an alternative, one would generate a PK and send 10% to that new address. Others in the voting registry can do the same. [send 10% to either 1) original or 2) new.]  And so forth.  Something like this work possibly work for the issue?  -Herb

On Dec 28, 2016, at 10:06 AM, virgile-dev<EMAIL_ADDRESS>wrote:
This proposal aims at finding a response to the question "What do I do when I used all my votes?"
Some of the system design behind our first release of Sovereign is directly inspired by the Satoshi Nakamoto's economics of Bitcoin. One example is vote scarcity, when a collective start its collective it can parameter the number of votes allocated to each user when they signup. Votes are not tied to a particular proposal and a user can cast more than one vote on them (intensity voting).
In such condition members of the collective not only have to position themselves according to the proposal but also be smart on how they allocate their voting resources. (Game theory, cost opportunity).
As we've been experimenting in this particular environment really interesting member behaviors have emerged and the feeling we have is that this setting makes voting much more interesting and dynamic for the users as it becomes more complex (not binary).
The problem with this is that it doesn't work in the long run because people will eventually run out of votes. We've been thinking of ways to allocate new votes :
New votes are issued as new proposals are created
New votes are issued periodically (d/w/m/y)
We even starting doubting about users being able to allocate multiple votes on a single ballot. At one point we started thinking, "why don't we fully embrace Satoshi Nakomoto's design principles of Bitcoin for our governance system". And that's how we think we might have cracked it, here is how.
Bitcoin economics are very simple its basically the same as gold extraction. There is finite amount of gold on earth and to benefit from it you have to extract it form the soil mining. There are is finite amount of Bitcoin and to create Bitcoins miners have to solve complex cryptographic problems use computational power. A number of Bitcoins (plus transaction fees) (12,5 BTC currently, halves every four years) are allocated for them miners who solve the complex cryptographic problem and installs and brings consensus to the rest to the networks allowing to create a new block that is link to the rest of the chain. One particular thing that is interesting with the Bitcoin protocal is that the complexity of cryptographic problem it gives for solving to the miner is bound to the numbers of computers competing to solve it, so if less people mine Bitcoin it will give easier problems to solve to make Bitcoin mining interesting again and vice versa.
So how can we apply this to Sovereign's votes allocation system?
When a collective creates an instance a finite number of votes are available in the system, votes are thus made a scarce resource that has to be used carefully by the users.
Just like with Bitcoin new votes are created when a problem is solved, hence a decision is made, consensus is reached.
When vote get scarce more consensual proposals can be made by members of the group so decision can be made, leading to the creation of new votes (forcing the group to come together on smaller issues to later tackle more controversial ones).
The limited number of votes in the system guarantees that members abuse (overuse) this easy vote creation features.
Feedback is most welcome :)
We started discussing this on a sovereign instance a few weeks ago : https://sovereign.opensourcepolitics.eu/vote/votes-allocations-in-the-long-run-for-sovereign-satoshi-nakamotos-way https://sovereign.opensourcepolitics.eu/vote/votes-allocations-in-the-long-run-for-sovereign-satoshi-nakamotos-way
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/DemocracyEarth/sovereign/issues/100, or mute the thread https://github.com/notifications/unsubscribe-auth/AKjRVrlATiW7rmBjyE9_yEI7UE62hOYzks5rMqUggaJpZM4LXFzN.

I love this thread, I've been thinking along this direction.
@brylie regarding mining it all varies on the kind of algorithm being used. Proof of Work rewards computing power while Proof of Stake is less intensive as it uses current stakeholders to act as validators. PoW is core to Bitcoin while PoS is being transitioned into in Ethereum.
But within Proof of Work you can implement the hashing using scrypt that will use memory rather than processing to perform the proof. This is the implementation made by Litecoin (hence its name and the reason that can be easily mined with average computers).

Hey @herbstephens,
I'm not sure I get the "10% of a share block idea". Could you try to break it down for me?

= Basic Income
On Fri, Jan 6, 2017 at 3:08 AM virgile-dev<EMAIL_ADDRESS>wrote:

Hey @herbstephens https://github.com/herbstephens,
I'm not sure I get the "10% of a share block idea". Could you try to break
it down for me?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/DemocracyEarth/sovereign/issues/100#issuecomment-270882801,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKjRVqMwGf1iv0A57R9DwRgwaGyIZYUpks5rPiCqgaJpZM4LXFzN
.

Hey Virgile .. sorry, I misunderstood the 10% question .. when I answered with ‘basic income’.  Ha .. probably best to chat through what I was thinking…

On Jan 6, 2017, at 3:08 AM, virgile-dev<EMAIL_ADDRESS>wrote:
Hey @herbstephens https://github.com/herbstephens,
I'm not sure I get the "10% of a share block idea". Could you try to break it down for me?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/DemocracyEarth/sovereign/issues/100#issuecomment-270882801, or mute the thread https://github.com/notifications/unsubscribe-auth/AKjRVqMwGf1iv0A57R9DwRgwaGyIZYUpks5rPiCqgaJpZM4LXFzN.

This has been largely discussed in the paper https://github.com/democracyEarth/paper hence closing


Exported Layer doesn't color based on score and Layer Title ignored

I exported a layer with these settings

The custom Layer Title I used was ignored and since I didn't specify a layer color I would expect the cells to be colored based on their score and the default color gradient.

Hi, thank you for reporting these issues! Just wanted to acknowledge that we've seen them and will work on getting them fixed.


Add support for Nreal Light and Rokid Air

Hi,
The current API supports only the Air. What would you need to add support for the Light and Rokid Air? Both use a very similar HID magic packet to switch from 2D to SBS 3D mode.
I have a USB 2.0 sniffer. I have some dumps that I could share of you want. They were taken with (an old) Lecroy USB Analyzer, and require Lecroy's USB Protocol suite
I'm not able to record new ones as Nebula refuses to open now asking me to update, but Nreal hasn't made Nebula available in the Netherlands :\ I don't currently have the Rokids with me. I'm not sure if I have any dumps from them either.
The Light's HID device VID is 0x0486 and the PID is 0x573C.
The Rokid's HID VID is 0x04D2 and the PID is 0x162F.

Hello!
I would love to take a look at whatever you have. Me and a few others have
been working on this for a few months now. We have done a lot of reverse
engineering and packet captures but with a dedicated tool you might have
some easier data to work with.
As for support for the lights, this can be done, I think we have some idea
of the commands but I don't have access to a pair so it's hard to develop
for it.
Same pretty much goes for the rokid, if you have the commands and can
figure out the HID protocol that too could also be added. But it would be
hard to calibrate them without having like the lights.
I would still be willing to try but we are mainly trying to get the sensor
fusion stable on the Airs first as most of us have them.
Thanks for reaching out.
Matt
On Sat, Apr 22, 2023, 11:43 AM iraqigeek @.***> wrote:

Hi,
The current API supports only the Air. What would you need to add support
for the Light and Rokid Air? Both use a very similar HID magic packet to
switch from 2D to SBS 3D mode.
I have a USB 2.0 sniffer. I have some dumps that I could share of you
want. They were taken with (an old) Lecroy USB Analyzer, and require
Lecroy's USB Protocol suite
I'm not able to record new ones as Nebula refuses to open now asking me to
update, but Nreal hasn't made Nebula available in the Netherlands :\ I
don't currently have the Rokids with me. I'm not sure if I have any dumps
from them either.
The Light's HID device VID is 0x0486 and the PID is 0x573C.
The Rokid's HID VID is 0x04D2 and the PID is 0x162F.
—
Reply to this email directly, view it on GitHub
https://github.com/MSmithDev/AirAPI_Windows/issues/8, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKPHYBGJCCDGJQ5K3X2LBW3XCP4CDANCNFSM6AAAAAAXH5C64U
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

I have two pairs of light (dev kits) so I am happy to help out. I'm also a programmer (although mostly web) but not afraid to get into lower level code (I've picked up a bit of Zig recently) if that helps too. If I have some guidance on what to do, I can help out.

The Light and the Air share the same sensor fusion code in Nebula. Whatever works on one will work on the other :)

We are working on improving some of the code, we will try and add support for the lights in the next version


Tflite failing to close

My program gets caught on await Tflite.close() as such when i want to load the model again it causes this error
Attempt to invoke virtual method 'boolean java.util.Vector.add(java.lang.Object)' on a null

Hello,
The only Vector used in Java code is labels. labels is set to null in Tflite.close(), but when you load a new model, loadLabels() will be called and a new Vector is created.
You can set a breakpoint to check if new Vector is created correctly.
https://github.com/shaqian/flutter_tflite/blob/master/android/src/main/java/sq/flutter/tflite/TflitePlugin.java#L225-L228
Thanks,
Qian

Archiving the thread. Feel free to reopen if you have further questions.
Thanks,
Qian


There is no package "microturtle" on Docs > Packages

Repro steps:
• Navigate to https://makecode.microbit.org/packages to look all packages
Except result:
There should show all packages
Actual result:
There is no package "microturtle"

@pelikhan how do we decide what shows on that page? is it a manual step?

Closed as fixed


Changes "void_value" into "no_body" for req/responses with no body

Follow-up to https://github.com/elastic/elastic-client-generator/pull/391#discussion_r626069633
This PR changes the way we represent no-body responses (and requests) in schema.json:

the body property is now required
it can now be a NoBody in addition to the existing PropertyBody | ValueBody
the void_value value kind has been removed (it doesn't make sense for a property to be of type void)

We also formalize the the close relation between body type and inheritance: when a request or response extends a class, the parent class defines body properties inherited by the child class. The child class therefore has to have a PropertyBody.
The body is required in the schema but is still optional in the spec (ultimately we should enforce it), and a simple heuristic is used to find the correct body type when it's not present in the TS spec:

if the request extends a parent class, the body is set to a PropertyBody with an emptu list of properties
otherwise it is set to NoBody

New validations verify this.
Aside:

The only exception to the above is RequestBase which is actually a marker class that also links to the CommonRequestParameter behavior. IMHO we should get rid of RequestBase entirely and have requests directly implement the behavior. This is out of scope of this PR.

There are changes in the schema with the new body type, but the TS output has no change except some formatting that is a side effect of body now being required.

@philkra

Can we also directly add a specific Response class to extend from in no body cases? Thanks in advance

Unfortunately no. Parent classes in responses are regular interfaces and not responses (i.e. they don't have this nested structure with body) and so can only be used to defined body properties that are shared among responses extending them.


Updated: wnr 1.13.2

${}

676b2d28-ea84-4706-a6ef-d745a5910272

Newer version of wnr (1.14.0) is now available in master. 8bf131db66db9e9dbe00b883979b7b1221d69326


Added a YouTube Badge

As per the #564, added the  YouTube badge to the main repo.
If this is okay, we can add it to other applicable repos.

Yes, beautiful!  Please go ahead and add to the other repos as well.  Any other badges we should add?
Please also close the Issue where I assigned this to you.

Yes, beautiful!  Please go ahead and add to the other repos as well.  Any other badges we should add?
Please also close the Issue where I assigned this to you.


A game I made with Raylib

Just wanted to say thank-you for making a very easy to use game development library. I finally made a mini game using Raylib, it is not amazing though just wanted to share it.
YouTube - https://www.youtube.com/watch?v=ovN4NAODOEw&t=4s
itch.io - https://nicholasimon.itch.io/snyk

@nicholasimon Wow! Very nice game! It's a great twist of the classic Snake! 👍😄
You should publish it in https://github.com/raysan5/raylib/discussions/1326


ci: merge staging to master

This is an automatic PR generated by the pipeline CI/CD. This will be automatically fast-forward merged if successful.

Pipeline Attempt on 998663592 for f9c00b8f9436de76d4b0b76116c682a52da7ec20
https://gitlab.com/MatrixAI/open-source/js-timer/-/pipelines/998663592

Pipeline Succeeded on 998663592 for f9c00b8f9436de76d4b0b76116c682a52da7ec20
https://gitlab.com/MatrixAI/open-source/js-timer/-/pipelines/998663592


typeAlias = type, however, definition to convert types resolution into a hierarchy(Tree) for enhanced display, granularity control

The ability to allow type resolution of typescript for design time behaviour to not always resolve down to its base primitives, would help in communicate which type names should be used at the different layers of code composition. It would be nicer to see a modules type or an alternative internal named type instead of a primitive type. Currently this can be achieved by using interface names, however, I do feel it can be clumb some and potentially with structural typing not always a good thing.
It would be great to just define alias type using 'typeAlias', instead other more detail methods previously mention and similar to other languages, which is used to control the granularity.
When a type is resolved I would imagine that it would be presented in graphical tree eventually,
were the first typeAlias or interface token/node encountered would be the top level entry. Their after any typeAlias definitions on the path to resolving a type to its primitive are added as child elements.
This would allow the operator to decide the level of detail nessary to resolve his typing issues and peel back as many type layers as required, by expanding the child items.
[] Square brackets communicate this is a resolved type and their are potentially many types between this and the primitive.
It may still be useful to show all type redefinition for debugging purposes, in which case a different tree child symbol could be used, which is clickable on to communicate this. !->
Examples:
Case 1
Code
type A = boolean
type B = A
type C = B
interface/class D implemented/extends C {}
typeAlias E = D
type F = E
type G = F
typeAlias H = G
type I = H

Tree:
! H = G [boolean] // In Square brackets the most base type
 -> E  = D  [C] // Here present in square brackets, last successive child item type, probably too verbose
     !-> D = C
            |-> A = boolean

Case 2
Code
type A = string
type B = A
typeAlias C = B

Tree:
! C = [string] //square brackets communicate this is resolved type.

Case 3
Code
interface/class D implements/extends C
type A = string
type B = A
typeAlias C = B

Tree:
D = C [string]
   |->C = [string]

My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript / JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. new expression-level syntax)

Type aliases are just that, aliases. the compiler aggressively inline their values when using them. that is why for instance a type alias can not reference itself. This is a design choice that we have made a while back, this allows the compiler to save memory storing an additional object of every type alias, but more importantly save time, since comparing two type does not have to delve through their alias chain.

you might find https://github.com/Microsoft/TypeScript/issues/15807 interesting for your use case.

@mhegazy Thanx I will take a look into that, unique structural wrappers, identifier and a random symbols for safety.
When you say design limitation, would be not be able to write additional integration tools, to inspect AST for VSCode? I am were the limitation would be determine at which layer and stage the AST be being consumed/interrogated by VSCode?
A littler bit off topic here:
Out of interest I have pulled and start poking around in typescript repository.. Is their a drop in manual for getting on up to speed with normiculture and conventions of normiculture used to describe certain patterns of characters for tokenisation as well project architecture layout..
I have my own interest in getting into it as I have some other features of interest and language enhancements for literal type validation and potentially a new GUI Event based programming language to deal with complicated issues that arise, which needs both language and framework support.
Is the a drop in manual for getting upto speed with the internals of the typescript repository?

to inspect AST for VSCode?

this is not the AST. this is the type that the compiler inferred.

. Is their a drop in manual for getting on up to speed with normiculture and conventions of normiculture used to describe certain patterns of characters for tokenisation as well project architecture layout..

take a look at https://github.com/Microsoft/TypeScript/wiki/Architectural-Overview and https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API


You must specify an IP address when mapping to a non-VPC instance ? Fog::Compute::AWS::Error

vagrant.d/gems/gems/excon-0.45.4/lib/excon/middlewares/expects.rb:6:in `response_call': InvalidParameterCombination => You must specify an IP address when mapping to a non-VPC instance (Fog::Compute::AWS::Error)
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/middlewares/response_parser.rb:8:in `response_call'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/connection.rb:372:in `response'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/connection.rb:236:in `request'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/middlewares/idempotent.rb:26:in `error_call'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/middlewares/base.rb:10:in `error_call'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/middlewares/base.rb:10:in `error_call'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/connection.rb:256:in `rescue in request'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/connection.rb:204:in `request'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/middlewares/idempotent.rb:26:in `error_call'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/middlewares/base.rb:10:in `error_call'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/middlewares/base.rb:10:in `error_call'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/connection.rb:256:in `rescue in request'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/connection.rb:204:in `request'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/middlewares/idempotent.rb:26:in `error_call'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/middlewares/base.rb:10:in `error_call'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/middlewares/base.rb:10:in `error_call'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/connection.rb:256:in `rescue in request'
	from /Users/sshilko/.vagrant.d/gems/gems/excon-0.45.4/lib/excon/connection.rb:204:in `request'
	from /Users/sshilko/.vagrant.d/gems/gems/fog-xml-0.1.2/lib/fog/xml/sax_parser_connection.rb:35:in `request'
	from /Users/sshilko/.vagrant.d/gems/gems/fog-xml-0.1.2/lib/fog/xml/connection.rb:7:in `request'
	from /Users/sshilko/.vagrant.d/gems/gems/fog-aws-0.7.6/lib/fog/aws/compute.rb:525:in `_request'
	from /Users/sshilko/.vagrant.d/gems/gems/fog-aws-0.7.6/lib/fog/aws/compute.rb:520:in `request'
	from /Users/sshilko/.vagrant.d/gems/gems/fog-aws-0.7.6/lib/fog/aws/requests/compute/associate_address.rb:42:in `associate_address'
	from /Users/sshilko/.vagrant.d/gems/gems/vagrant-aws-0.6.0/lib/vagrant-aws/action/run_instance.rb:227:in `do_elastic_ip'
	from /Users/sshilko/.vagrant.d/gems/gems/vagrant-aws-0.6.0/lib/vagrant-aws/action/run_instance.rb:151:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /Users/sshilko/.vagrant.d/gems/gems/vagrant-aws-0.6.0/lib/vagrant-aws/action/elb_register_instance.rb:16:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /Users/sshilko/.vagrant.d/gems/gems/vagrant-aws-0.6.0/lib/vagrant-aws/action/warn_networks.rb:14:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/synced_folders.rb:86:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/provision.rb:80:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builder.rb:116:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/call.rb:53:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /Users/sshilko/.vagrant.d/gems/gems/vagrant-aws-0.6.0/lib/vagrant-aws/action/connect_aws.rb:43:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/handle_box.rb:56:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builder.rb:116:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:214:in `action_raw'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:191:in `block in action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:516:in `lock'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:178:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:178:in `action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/batch_action.rb:82:in `block (2 levels) in run'

any tips? i'm using 99% default configuration from puphpet
         provider:
             aws:
                 access_key_id: xxx
                 secret_access_key: yyy
                 keypair_name: vagrantkeypair
                 ami: ami-b82176d2
                 region: us-east-1
                 instance_type: m3.medium
                 security_groups:
                     - 'production something servers'
                 subnet_id: ''
                 elastic_ip: ''
                 iam_profile_name: 'namehere1'
                 elastic_ip: true
                 associate_public_ip: true
                 tags:
                     Source: Puphpet

closing.. there seems to be some caching issues while changing config.yaml ruby does not immediattely recognize the changes


misc fixes and backwards compatibility with new registry types for brochure

hm I'm not sure why these tests are failing on this type, locally it compiles fine. Does the tests action need updated sdk types @dr-bonez ?

@MattDHill This is ready to be merged pending approval.


Propose to use orjson as the preferred backend

simplejson is used by jsonpickle as a fast backend for JSON encoding. This was true back when jsonpickle was created, but as of now, there are multiple Python JSON libs that are way faster than simplejson. Among which, orjson is fastest.
Benchmark: https://github.com/ijl/orjson#performance
Its fast performance is backed by several other benchmarks, including one done by its competitor ujson:

https://github.com/ultrajson/ultrajson#benchmarks
https://pythonspeed.com/articles/faster-json-library/

So I propose to replace simplejson with orjson as the preferred backend, or we can keep simplejson and just add orjson.
If any of the approaches makes sense to you, I'm happy to make a PR. Please let me know what you think.

Never mind, orjson is not compatible with stdlib json.


Update versioning.gradle to allow an empty patch

0.x will work, and one will not have to put in an extra "0" for the patch.

@blair1618 give it a look. Once this is in, will start 0.4 versioning process.

LGTM


OSX High Sierra: Can't open device: no devices found

Issue Summary
When running the examples from the library the device is not found.
The Kinect device is plugged in.
The same Kinect works using the openKinect Processing library.
The same Kinect works fine on Windows as well.
Processing Output
SimpleOpenNI Error: Can't open device: DeviceOpen using default: no devices found
Can't init SimpleOpenNI, maybe the camera is not connected!

Type of Issue
Device not found
Your System Configuration
macOS High Sierra 10.13.4
Processing 3.5.3
Kinect v2

Were you able to find a solution to this problem? I'm having the same issue.

i have same problem :(
El Capitan
Kinect V1
Processing 3.5.3

Same
Mojave 10.14.6
Kinect V2
Processing 3.5.4

Same
macOS High Sierra 10.13.6
Kinect V1
Processing 3.5.3

me too..
OS Mojave
Kinect_V1 1473
Processing 3.5.4
Processing 4.0b


Fix Hyperlink in README

Fix link to f_128.rs example program in usage section of https://github.com/itzmeanjan/multimixer-128#usage.

There's nothing to fix, it seems it was some temporary Github issue !


Add cyberpunk-red-core system speed provider

The goal of this PR is to add a a SpeedProvider for the CyberpunkRED-Core system (https://gitlab.com/JasonAlanTerry/fvtt-cyberpunk-red-core).
Current known issues that I could use help with:

The SpeedProvider is not selected as default when freshly added to a CyberpunkRED-Core world.
The colors are not automatically set for Walk/Dash/Inaccessible. I missed where those could be added.

Thanks!

Apologies, if I wasn't clear enough. The idea of adding Speed Providers isn't by getting them merged into the Drag Ruler code itself. The idea is to put the speed provider for a game system into a separate module (or even into the game system itself). That module can then interface with Drag Ruler via Drag Ruler's API. Doing so will also cause Drag Ruler to select the Speed Provider shipped by the Module/System by default. The advantages of this are on one hand that you can then independently develop that integration without me interfering and on the other hand that I don't have to worry about code for game systems that I don't know.
There are already a few examples of how to do this available. I've got a small example module, that does the integration for the PF1 game system. If you want to integrate the Speed Provider directly into the game system (doing so won't add any hard dependency to Drag Ruler - if Drag Ruler isn't installed the integration will just lie dormant until it's needed), you can take a look at how Pathfinder 1 and Cypher System do this. If you have any further questions, feel free to ask (either here in the PR or you can also reach me in discord as Stäbchenfisch#5107)

Ah, okay. I was misunderstanding where the implementation should occur. That's good to know! Thanks for all of the details in the verbose reply!
I'll work with the CPR-Core team to try to get the Speed Provider logic baked into the system.


Hide information above the name

Is your feature request related to a problem? Please describe.
Is there any way to hide the information above the name of the air purifier? I couldn't find anything like that in the documentation. This information is simply duplicated in my configuration and disturbs the aesthetics of my panel.
Describe the solution you'd like
Option to hide the entire top bar
Describe alternatives you've considered
Option to hide individual elements on the left or right side of the top bar or the whole thing
Additional context

This is not yet possible.


Issue 48056: More list indexing fixes, Issue 47886: Poor performance truncating large lists

Rationale
Issue 48056: More list indexing fixes
Issue 47886: Poor performance truncating large lists
Changes

Detect changes to document title, template, and sub-settings like metadata vs. data.
Combine indexItems() and indexAttachments(); and use post-commit.
Issue 47886 related change - Skip discussions (if disabled), attachments (if none), and indexing options (if turned off) when truncating Lists

See BVT failures as well

@labkey-bpatel This PR is close. One more requested change (use Objects.equals()). Please also review my recent commit for sanity. I'm out for a while today, but will be able to review again this afternoon.

@labkey-bpatel This PR is close. One more requested change (use Objects.equals()). Please also review my recent commit for sanity. I'm out for a while today, but will be able to review again this afternoon.

Requested change is in. Thanks for those updates, much cleaner.


fix: ci

Codecov Report

Merging #433 (9d13d42) into master (7c9698a) will decrease coverage by 0.54%.
The diff coverage is 80.00%.

@@            Coverage Diff             @@
##           master     #433      +/-   ##
==========================================
- Coverage   60.23%   59.70%   -0.54%
==========================================
  Files          40       40
  Lines        2837     2797      -40
==========================================
- Hits         1709     1670      -39
+ Misses        998      996       -2
- Partials      130      131       +1

Impacted Files
Coverage Δ

core/server.go
63.73% <26.66%> (-1.88%)
:arrow_down:

core/context.go
93.68% <90.00%> (+0.30%)
:arrow_up:

core/ylog/logger.go
78.84% <91.66%> (+4.84%)
:arrow_up:

core/connection.go
89.74% <100.00%> (ø)

core/ylog/slog_handler.go
96.38% <100.00%> (ø)

core/client_type.go
100.00% <0.00%> (+40.00%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


npm install error

Hi,
I'm running this on OSX. Running 'npm install' result so the following error:
warn Error on download for github:systemjs/systemjs
     Bad response code 404

err

err  Error downloading loader files.

So systemjs is not reachable. What should I do to fix it?
Best

Providing GitHub credentials worked for me.


[Feature Request]: Support ClickHouse

Topic
Support new SQL
Description
Any plan to support clickHouse?

clickhouse antlr

sorry, no plans at the moment


MyCarePlanner - validateDOMNesting warning -  cannot apear as a descendant of

Minor thing, but I wanted to log it for tracking.
It looks like MyCarePlanner's UI is trying to embed an HTML header tag within an HTML paragraph tag, which is creating some verbose warnings in the console.
Probably a super easy thing to fix.

That's correct, here is the code from Home - 2 examples. Easy fix. Thanks:

Shared Health Records

                  <Link to={{ pathname: '/provider-login', state: { fhirDataCollection: this.props.fhirDataCollection } }}>Retrieve records from additional healthcare providers</Link>

              {typeof sdsurl !== 'undefined' ? (

Share your health data

                  <Link to={{ pathname: '/share-data' }}>Share your health data</Link>

              ) : (

)}

Note: We should be using/moving forward with MUI now anyway (typography) vs HTML elements like p h5 etc. So, suggest we do that as part of the fix. This is defintley very low priority though, as you implied. Thanks.

@swmuir to check code to make sure this is resolved

Opened a new card for the MUI typography. #451


Jwt authenication

What and why?
This add a authentication header to all the endpoints (bar info). It also implements the UAA check, although that needs further work and expanding on another card as requirements are limited on this story.
How to test?
With UAA up  start this application, now with something like postman call an endpoint which has the decorator on. and provide an Authorization header

Try the following and see the results
Standard token eyJhbGciOiJIUzI1NiIsInR5cCI6Imp3dCJ9.eyJwYXJ0eV9pZCI6ImNlMTJiOTU4LTJhNWYtNDRmNC1hNmRhLTg2MWU1OTA3MGEzMSIsInJvbGUiOiJpbnRlcm5hbCJ9.ULiRp2GGO94Ax1S4r6vjU3ryBCa_VX6FyXZHIKWSt5E
Missing JWT claims missing role
eyJhbGciOiJIUzI1NiIsInR5cCI6Imp3dCJ9.eyJwYXJ0eV9pZCI6ImNlMTJiOTU4LTJhNWYtNDRmNC1hNmRhLTg2MWU1OTA3MGEzMSJ9.pREGeyWz7xbCBpYNJ8uakDYWQh7sL2MYUy9mIDY2dUQ
JWT claims missing party_id
eyJhbGciOiJIUzI1NiIsInR5cCI6Imp3dCJ9.eyJyb2xlIjoiaW50ZXJuYWwifQ.iH-5qNb4z_4Y7mB2QrlzHxC3o37DzH4_BSotKKiWXww
The JWT token could not be decoded (wrong key)
eyJhbGciOiJIUzI1NiIsInR5cCI6Imp3dCJ9.eyJwYXJ0eV9pZCI6ImNlMTJiOTU4LTJhNWYtNDRmNC1hNmRhLTg2MWU1OTA3MGEzMSIsInJvbGUiOiJpbnRlcm5hbCJ9.xQ3fzB55Dev3B3oPJsCnre-5-hIsL9HCZOqZRGrvypw
You can also try it with no Authorization header to get "Authorization header is missing" and give it a token that is gibberish that will give a "The JWT token could not be decoded" error

/deploy pricem

/deploy scorfs

RAS-1211 has been created to complete the work on UAA integration delivered so far in this PR 👍

Signed commits removed just for this pr due to the auto increment, it will be put back on afterwards


Update/fcitx5 5.1.1

Description of changes
changelog

Things done

Built on platform(s)

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

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

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

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

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

[X] Fits CONTRIBUTING.md.

The following command work for me.
nix build --impure --expr 'with (builtins.getFlake "/home/vonfry/repos/nixpkgs").outputs.legacyPackages.x86_64-linux; fcitx5-with-addons.override { addons = [ fcitx5-rime ]; }'

Result of nixpkgs-review pr 258161 run on x86_64-linux 1

21 packages built:

fcitx5
fcitx5-anthy
fcitx5-chewing
fcitx5-chinese-addons
fcitx5-configtool
fcitx5-gtk
fcitx5-hangul
fcitx5-lua
fcitx5-m17n
fcitx5-mozc
fcitx5-rime
fcitx5-skk
fcitx5-skk-qt
fcitx5-table-extra
fcitx5-table-other
fcitx5-unikey
fcitx5-with-addons
libime
libsForQt5.fcitx5-qt
mlterm
mlterm-wayland


readthedocs.org build taking ~two days

It's been about two days since I triggered a build of our (relatively small) documentation, and it's still pending. We're fairly new to Read the Docs -- are these wait times normal?

Build IDs are #3540076 and #3540091. Standard Sphinx project. The only plugin is Mathjax. The docs themselves are here

Go ahead and re-build the project. Our builders time out after 10 minutes, so there was likely a bug that stopped them from properly updating the status on the servers.

Just ran into this myself with https://readthedocs.org/projects/nodemcu/builds/3539907/. Was a bit surprised to find no option to cancel or delete those triggered zombie builds.
Re-building works fine, though.

Thanks, a rebuild worked. It'd be super awesome if there was a way to cancel triggered and in-progress builds, like you can on CIs such as Travis :)


Registry tool: review default timeouts and make timeouts configurable if needed.

Follow up on #900 and gapic-generator-go#1206.
TODO: clarify criteria for closing.

Looks like this may be merged soon: https://github.com/googleapis/gax-go/pull/259


Add support for HTTPS

Adds HTTPS support to dhttpd.
Thanks to the original author of PR #32  that this is based on.
Fixes: #1

@kevmoo when you get a chance, would you be able to approve running the workflows for this PR please.

@maks - still some tests to fix!


api docs: Document message-related endpoints.

Testing Plan: test-api and lint checks passed locally. Made sure that the docs display properly.
GIFs or Screenshots:

I left a couple comments in https://github.com/zulip/zulip/commit/fcf1e3cd88e238a052cabb927e7d709112b9eb18. It's the first time I comment a commit, so please let me know if you get any notifications, just for future reference.

Fixed both the conflicts and the missing examples issue. Thanks for reviewing, @timabbott!

I spent half an hour editing various bits of English, and adding descriptions at the top of these endpoints on what they're for.  I'd appreciate further review from you, but I've merged this as the 4 commits ending with 78f85ef96071376f2c1289425df36b0ba7f02300.

For follow-ups:

https://github.com/zulip/python-zulip-api/issues/476 would be really good to provide a more extended example for how to use the get API.
I'm increasingly convinced we should invest in support for using the OpenAPI descriptions in the YAML files (or delete them); it's super confusing that the content is duplicated.  So far I've just been ignoring the YAML descriptions when fixing things (so they're often out of sync) under the assumption that we'll delete that content or copy it back in from the markdown templates.
https://github.com/zulip/zulip/issues/10446


update docs for apigateway and other minor changes

additions for apigateway for swagger file configuration
additions to let the user know to use openwhisk npm package
Other changes for formatting and typos.

@mdeuser thanks for the review, please the changes I made base on it 9206dd320415fcaba1d1b3822ac4e1b574de46cc

@mdeuser I think I got them all now, please review this commit  ec6ee1cc6c7099dfecd18f431a0a893b151e3966

Doc changes LGTM

@mdeuser I rebase and squash

@csantanapr - merged


Error running abap2ui5 samples with gantt chart

Hi there,
I tried to test the gantt chart samples

Z2UI5_CL_DEMO_APP_076

I got following error:
"openui5 SDK is loaded, module: 'sap/gantt/simple/GanttChartContainer.js' is not availabe in openui5"
With sample

Z2UI5_CL_DEMO_APP_179
I got following error:

"openui5 SDK is loaded, module: 'sap/gantt/simple/ContainerToolbar.js' is not availabe in openui5".
Other samples are running without problems.
Can you help please.
Axel

openui5 sdk soes not have gantt chart control, only the ui5 sdk does

Okay. But how can I use gantt in abap2ui5? Do I need some special 'view->_generic_property( ... )' calls during initialization?
I tried it that way but I failed.
Thank you

in the local http handler u created you need to reference the ui5 sdk

I close this, can be solved with the mentioned solution, just reopen if you have further questions @schocker4. thank you for your help @choper725


Incorrect response code when invalid attribute values provided for username recovery

Description
When an invalid attribute value is provided to recover a username (ex: wrong email address is provided) the response code appearing is '202 Accepted'. A proper response code should be return as '404 -NotFound'
https://localhost:9443/api/identity/recovery/v0.9/recover-username/
[{"uri": "http://wso2.org/claims/givenname","value": "nuwa"},{"uri": "http://wso2.org/claims/emailaddress", "value"<EMAIL_ADDRESS>
Tested Environment
IS 5.8.0 m6

Thank you for your contribution!
We are closing this issue since it has not been prioritized for a long time. Chances are that it has already been solved in more recent versions. If not, we will be re-evaluating this when it becomes a priority.


Copying containers results in old hostname reported by hostname -A in new container

Required information

Distribution: Ubuntu
Distribution version: 14.04 LTS
The output of "lxc info" or if that fails:

apicompat: 0
auth: trusted
environment:
  addresses: []
  architectures:
  - x86_64
  - i686
  certificate: ...
  certificatefingerprint: ...
  driver: lxc
  driverversion: 2.0.3
  kernel: Linux
  kernelarchitecture: x86_64
  kernelversion: 3.13.0-91-generic
  server: lxd
  serverpid: 8005
  serverversion: 2.0.3
  storage: zfs
  storageversion: "5"
config:
  storage.zfs_pool_name: lxd
public: false

Issue description
Copying a container seems to leave the old container's hostname lingering in various places, including being reported by hostname -A.
Steps to reproduce
# lxc list
+--------------------+---------+-------------------+------+------------+-----------+
|        NAME        |  STATE  |       IPV4        | IPV6 |    TYPE    | SNAPSHOTS |
+--------------------+---------+-------------------+------+------------+-----------+
| CONTAINER-SKELETON | STOPPED |                   |      | PERSISTENT | 0         |
+--------------------+---------+-------------------+------+------------+-----------+
# lxc copy CONTAINER-SKELETON test2
# lxc start test2
# lxc exec test2 bash
root@test2:~# hostname
test2
root@test2:~# hostname -A
CONTAINER.lxd
root@test2:~# cd /
root@test2:~# grep -rl CONTAINER-SKELETON * 2>/dev/null
etc/aliases.db
etc/postfix/main.cf.bak
etc/postfix/main.cf
etc/emacs23/site-start.d/00debian-vars.elc
proc/2690/task/2690/cmdline
proc/2690/cmdline
usr/share/emacs23/site-lisp/debian-startup.elc
var/log/upstart/pollinate.log
var/log/dmesg
var/log/mail.log
var/log/mysql/error.log
var/log/auth.log
var/log/cloud-init.log
var/log/syslog
var/log/cloud-init-output.log
var/log/kern.log
var/log/apt/term.log
var/log/dmesg.0
var/cache/debconf/config.dat
var/cache/debconf/config.dat-old
var/lib/mlocate/mlocate.db
var/lib/cloud/data/previous-instance-id
var/lib/cloud/instances/CONTAINER-SKELETON/obj.pkl
var/lib/dhcp/dhclient.leases
var/lib/dhcp/dhclient.eth0.leases
var/lib/mysql/ibdata1
var/lib/mysql/wordpress/wp_options.ibd
var/lib/mysql/wordpress/wp_posts.ibd
var/lib/mysql/ib_logfile0

The CONTAINER-SKELETON machine has various things installed including postfix, MySQL, and Wordpress.
This is causing me problems, because the Wordpress running in the test2 container is getting very confused. I've fixed mentions of CONTAINER-SKELETON in the Wordpress MySQL database, but various other PHP calls are fetching the hostname in various ways, some of which return "CONTAINER-SKELETON" instead of "test2".
I can probably fix most of this, but the output of hostname -A concerns me.
I'm unsure if this is a bug exactly, or can be fixed by passing some config options on creation of the new container?
Information to attach

[ ] any relevant kernel output (dmesg)
[x] container log (lxc info NAME --show-log)

See https://gist.github.com/austinjp/731442a445e22de27760206b27d5d17a#file-lxc-info-test2-show-log-log

[x] main daemon log (/var/log/lxd.log)

See https://gist.github.com/austinjp/731442a445e22de27760206b27d5d17a#file-var-log-lxd-lxd-log

[ ] output of the client with --debug
[ ] output of the daemon with --debug

Okay the Wordpress stuff was a red-herring, just entries in the MySQL db that needed fixing.
I'm still concerned by the hostname -A output though. What's causing that?

What source image did you use to create CONTAINER-SKELETON?
The fact that it shows "CONTAINER" hints that it may be coming from the "images:" remote as that's the placeholder string we use in there.

Ah! Didn't think of that string CONTAINER coming from upstream :) To create the CONTAINER-SKELETON I believe I simply ran:
lxc launch ubuntu:14.04 CONTAINER-SKELETON

I've just launched a new container with lxc launch ubuntu:14.04 test and get the following:
ubuntu@host:~$ lxc exec test -- hostname -A
ubuntu.lxd
ubuntu@host:~$ lxc exec test -- hostname
test

Is that as you'd expect?
Could I change the hostname by using a config file at container creation time? I've tried passing in a config with lxc launch -c but I'm not sure what property could specify the hostname, lxc.utsname didn't work, for example.

The "CONTAINER" string would have come from using images:ubuntu/trusty/amd64 for example, ubuntu:14.04 doesn't have it.
As for "ubuntu.lxc" instead of "test.lxd", that's coming from the way cloud-init works, which is a bit unfortunate. The dhcp client is run before cloud-init sets the hostname, so the initial hostname "ubuntu" is sent and used for the reverse DNS record.
Rebooting the container should then cause another dhcp request to be sent with the right hostname and may fix your problem. See https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1574963

Many thanks Stéphane.
I'm pretty sure I used ubuntu:14.04 rather than images:* and my bash history confirms this. However, anything could have happened while I was tinkering so I'm happy to write this down to PEBKAC for now.
I'll look into rebooting to fix hostname, thanks.

I'll check if there's any file that contains CONTAINER which we should be templating and currently aren't.


Add new CAM articles to public KB

Updated Architecture Components KB to include MSA requirements.  Created new article for MSA networking requirements/diagram.  Included new image of MSA Networking diagram for MSA Networking KB.

@gsanchezu @DiegoSanjuan would you guys mind taking a look at the Architecture-components doc?


#6 Fix to Issue:  Handle if no error field is present

Hi @aroller ,
Thank you for maintaining the package.
Would it be possible to review and ideally merge this PR, and release a new version?
Thank you in advance for the consideration, it is greatly appreciated!

@Szasza The tests failed when I merged it.  See the Actions.  I have reverted. run test/all.sh and check for a return code = 0. Update the tests if they are incorrect or not useful.

@aroller we are on it, thank you for the ultra-quick response and apologies for not being more thorough.


Does pyGAM support multi-class classification?

@zhangxz1123
wow you read my mind! i was just thinking about this yesterday!
no. currently pygam does not support multiclass classification.
however you can quickly extend pygam to do so.
if you have M classes, then you can train M one-vs-all models. when you predict, keep the label for the model that outputs the highest probability.
this is a little less efficient, but about the same as the softmax activation.

@jolespin
oh wow, i forgot about that class!
right, does that work? i havent tried it out.

@dswah I couldn't get it to work:
from pygam import LogisticGAM
from sklearn.ensemble import OneVsRestClassifier

base_estimator = LogisticGAM(n_splines=20)
ensemble = OneVsRestClassifier(base_estimator, n_jobs=1)
ensemble.fit(X_iris, y_iris)
model_selection.cross_val_score(ensemble, X=X_iris, y=y_iris, cv=10)
# ---------------------------------------------------------------------------
# AttributeError                            Traceback (most recent call last)
# ~/anaconda/envs/python3/lib/python3.6/site-packages/sklearn/multiclass.py in _predict_binary(estimator, X)
#      94     try:
# ---> 95         score = np.ravel(estimator.decision_function(X))
#      96     except (AttributeError, NotImplementedError):

# ~/anaconda/envs/python3/lib/python3.6/site-packages/pygam/terms.py in __getattr__(self, name)
#     978
# --> 979         return self._super_get(name)
#     980

# ~/anaconda/envs/python3/lib/python3.6/site-packages/pygam/terms.py in _super_get(self, name)
#     899     def _super_get(self, name):
# --> 900         return super(MetaTermMixin, self).__getattribute__(name)
#     901

# AttributeError: 'LogisticGAM' object has no attribute 'decision_function'

blah, well thats annoying.
@jolespin thank you for trying!

this PR (https://github.com/dswah/pyGAM/pull/213) appears to do the trick

Should this be a default for multiclassification case?

@jolespin do you mean that pygam should import scikit-learn?

Since this is still open, is it a good approach to have your target split into 'n' 1vsAll class manually and fit 'n' GAMs? I understand it can be tedious for a large number of classes but for example, if you have 3 classes = [1,2,3], you can have 3 GAMs where each GAM is a binary classifier of class 'i' vs. rest=0. This is assuming that splitting your target is simple enough.


Updated to 3.0.0, Character Sheets cannot open now for me (GM).

Just updated to new version, can't open my players character sheet's. I can open the NPC sheet, but it doesn't show the Armor Class or the Modifier & Saving Throw bonuses on them

Encountered this issue as well. The console log states:
TypeError: An error occurred while rendering ActorSheet5eCharacter2 167. attributes.encumbrance is undefined [Detected 1 package: system:dnd5e]
However I can't open the character sheet to define encumbrance. This applies to any encumbrance option defined in config as well

Please disable all modules until you've verified that they've been updated to be compatible with the new release.

Yep, disabled all modules and reactivated one by one. It looks like it's libWrapper that's the culprit for me. Will wait until other modules have updated before moving over

Yep, disabled all modules and reactivated one by one. It looks like it's libWrapper that's the culprit for me. Will wait until other modules have updated before moving over

Probably not libwrapper, but a module that relies on it. If you figure out what module it actually is you might want to mention it on their repo so it can be fixed and you can keep playing :)

Worked for me when I disabled Dynamic Active Effects if that's of any use.

Verified error occurs when libwrapper is active.

Worked for me when I disabled Dynamic Active Effects if that's of any use.
Did this on my own, also worked for me. Probably the culprit, or one of em

Worked for me when I disabled Dynamic Active Effects if that's of any use.

This worked for me, thanks!

Worked for me when I disabled Dynamic Active Effects if that's of any use.

I can also confirm that DAE is the problem. That was the only module I had to disable to get the sheets working again.

Ready Set Roll also seems to be broken. Rolls do not work with it active.

Folks we don't need to know about all the modules that don't work. :)

I still have this issue with zero modules enabled

Please head over to the Foundry discord (and the #dnd5e channel) for general troubleshooting.


Feature:  Auto-Hide

There is a 'Hide' feature but it is not as desired, the bar can disappear from the top and when we move the mouse to the part of the layout where it is set, it becomes visible and when we move it away it hides back, so we gain more space on the screen.

You can set the size to 5px in css and to 50px (or your size) on hover.


Support auto gen of the changelog.md

gradlew gitChangelogTask
to rebuild the CHANGELOG.MD from the tags on github.
it will be more accurate next release, since we are using github releases (and maven) moving forward.

Can we customise this or have chunks of text in there that allows us to add additional info?
I've just added an "overview blurb" on top of the file and it'd be great if we had a way to combine generated issue lists with more manual content.

I agree.  I don't' think that is supported with the current one I grabbed.
There's one written in ruby which does:
https://github.com/skywinder/github-changelog-generator
I was trying to keep it simple.  But it does need to be useful too

Just looking into this now. I'll give this Ruby gem a go and see how it goes. It'd be slightly annoying as it won't be nicely integrated into Gradle.
And option might be to just continue to use the existing plugin and add a few lines of "commentary" - non-generated - to README.

Ok, this is possible to do.
After installing the package, updating ruby and gem and whateverelse...
It would need to be run with:
github_changelog_generator -u cflint -p CFLint --token <githubtoken> --output CHANGELOGNEW.md --base CHANGELOG.md --no-unreleased --since-tag <previousTag> --header-label
Essentially it'll then just keep everything from CHANGELOG (including manual additions and overview/summaries for a release) and prepend the file with the new information, write it to CHANGELOGNEW. Then, the manual bits get added to CHANGELOGNEW, rename and put in place, commit etc for release.
Still a manual step involved, but I guess as soon as we'd want to have a more humanised overview instead of just a list of issues fixed, that's unavoidable.
I'm happy to do it for the 1.3 release, let me know what you think.

@TheRealAgentK
Ideally the changelog gen is just be another step in the (gradle) deploy process.
If github_changelog_generator works well for us, go for it.  I like the consistency of something mostly automated.

I've got in (somewhat clunky) integrated with Gradle in a feature branch. Because it executes binaries/shell scripts from Gradle, I can't really build/test it for Windows and my OS X solution relies on tools like awk, tail and a proper shell to be there.
Will bundle it up and push with an initial changelog (containing the "old" manual commentary) in that branch.
The old solution is still there, moved it from "other" into "documentation" group in Gradle, though.

This has been merged into dev - please have a look... Some more commentary in the PR ticket:
https://github.com/cflint/CFLint/pull/512

That's pretty high class documentation for a couple of part-timers like us.  👍

@ryaneberly did you just take over the changelog from dev and rename/change the links from 1.3.0-RC2 to 1.3.0 for the first section? I think that's caused a bunch of stuff to be missed because of when I ran the changelog in the 382 branch, it wouldn't have had access to certain thing that happened in the meantime in the master and dev branches.
I think the process has to be:

Decision to "release" a certain master changeset as x.y.z
Be on this changeset with an empty working copy
Run changelog script before creating the x.y.z tag
Commit the new changelog file
Tag with x.y.z.

Currently any deviation from this process will cause inconsistencies. Also - I think tags for releases or betas/rc always should be done on master - I think that's what we've been doing anyway though.
I'm transplanting the 382 changes into master manually now and will re-run the changelog in there.

The new changelog generator is now independent of hardcoded paths in the code/gradle file and relies on a not-to-be-committed (and already .gitignored in master/dev) user.properties file in the project root.
Content needs to be:
user.githubChanglogGeneratorBinary=<absolute path to github_changelog_generator binary>
user.githubToken=<your github token>

In my case (Using rbenv to manage multiple Ruby/Gem setups on my Mac) this looks like (redacted my Github token for obvious reasons) :
user.githubChanglogGeneratorBinary=/Users/kai/.rbenv/shims/github_changelog_generator
user.githubToken=<kai's token>

@TheRealAgentK, you up for generating the changelog for 1.4.0?


Editor interface bug

Godot version:
Godot 3.0.3 RC 1
OS/device including version:
Windows 7 x64 bit
8 GB Ram
Nvidia GTX 980
Issue description:
Godot sometimes do this thing ( not always )

Godot sometimes do this thing ( not always )

When does it do it?

@akien-mga i don't know .. sometimes i play games .. then i decide to work on the project
when i open Godot and try to start coding .. this happen ... 3D and 2D are ok but the Script tab have this problem

Any nvidia drivers addons or Steam overlay or other stuff that gets launched when you play games that might mess up resolution or I don't know, drivers themselves?

did this happen after the recent geforce driver update by chance?

@CCODE05B Do you still have this issue with latest release Godot v3.0.6?

@ordigdug nope , Godot now work really really well

@CCODE05B Great, can you please close this issue?

I closed this as the issue seems to be resolved.


No character constant output?

Hi,
When using FortranRecordWriter, I can't seem to find a way to include Character Constant Outputs.
Is this feature supported?

You can use the apotrophe edit descriptor, e.g.
(F8.2, ' Is greater than ', F8.2)


The last table only opens in case of export more than one table

System information:

Operating system (distribution) and version win10
DBeaver version 21.0.5

Describe the problem you're observing:
In case of export more than one table to database (Open table editor on finish option is enabled) only the last table opens in editor.

The problem is present only if we create new tables during the export.

Verified


'Add' plugin adds an empty line

I'm constructing a schema.graphql file with the AST plugin and also want to add a comment to the top. This is from my codegen.yml:
generates:
  schema.graphql:
    schema:
      - schema-source.ts
    plugins:
      - schema-ast
      - add:
          content: '# Generated - DO NOT EDIT'

Besides prepending the content, it also appends an empty line which feels like a bug to me:

Are you using the v2 of the add plugin? or v1?

It's v2, according to my yarn.lock.

Thanks @borekb ! I think I managed to reproduce it and fix it. Pushed to a PR with some other minor bugs: https://github.com/dotansimha/graphql-code-generator/pull/4554

Fixed in<EMAIL_ADDRESS>


neo-tree vim keybindings

Hi,
It'd be great to have vim keybindings for navigating through the neo-tree filebrowser hjkl - those doesn't seem to be working at the moment.
Thanks!

hello mate,
i think j and k are working already ( at least mine works)
what actions should h and l do ?
maybe h like <BS> should go updir?
and l like <CR> should open dir?

Hey there,
correct, j and k are already working to navigate the tree.

maybe h like  should go updir?
and l like  should open dir?

Yes - that's what I would suggest :)

fixed via https://github.com/abzcoding/lvim/commit/aedeed1daaf278703418ddfe0a9e04015866ef52

thanks a lot !


Running the Unity builder action on a self-hosted M1 Mac

The stable release of the unity-builder action only supports building on Ubuntu runners, as far as I know. We currently have an M1 mac machine which we want to set up as a self-hosted runner for running our builds, partly because the GitHub runners are quite slow, and partly because we've started running out of space on their machines when we try to build our projects.
With the merge of https://github.com/game-ci/unity-builder/pull/326, does this mean that we can use the runner to build our projects on Mac machines? We do not need IL2CPP for now, as long we can continue to build Mono projects, that works for us as well.

Yes, it should now be possible to run on mac machines. However, it's unclear if it works across all macs, or just intel, or just apple silicon.
@vinaysshenoy Have you tried it out? Please let us know if you are able to try it out and if it works or doesn't for you.

We tried it out on an M1 Mac self-hosted runner, and it worked! We needed to do a little work around installing some software on the runner (like gh), but once that happened, we got it running.
The difference is massive. We went from needing ~20m to build on the GitHub Ubuntu runners to ~3m on the M1 mac. This is with the Library and LFS caching on both runners.

Awesome! Closing this issue then.

Hey @vinaysshenoy Sorry to ping you here, can you remember what you had to do to make it work on self hosted runner ? Having big troubles here..
Thanks !

Hey! We actually stopped using GameCI and just started using Unity directly via the Editor Command line. The GameCI code was a big help in getting it setup.
We set up an M1 Mac Mini with Unity on it and things are really decent now. Builds are significantly faster than the default GitHub runners, although the machine does require a little babysitting now and then with macOS updates.

@vinaysshenoy are you be able to (partially) share your solution so we can learn from it?

@webbertakken @antoiner77 The way we have set it up is that the core builder workflow is extracted into a discrete file, which is then invoked in the primary workflow files with parameters specific to the platform we are building on. This is what our core unity build workflow looks like:
name: Build Unity3D application

on:
  workflow_call:
    inputs:
      buildTarget:
        required: true
        type: string
      buildType:
        required: true
        type: string
      buildOutputDir:
        required: true
        type: string
      buildPlatformResources:
        required: true
        type: string
      buildArtifactQualifier:
        required: true
        type: string
      buildName:
        required: true
        type: string
    secrets:
      unityEmail:
        required: true
      unityPassword:
        required: true
      unitySerial:
        required: true
      qweebiApiToken:
        required: true
      acceleratorEndpoint:
        required: true
    outputs:
      buildId:
        description: "The generated build ID"
        value: ${{ jobs.build_project.outputs.buildId }}
      artifactName:
        description: "The generated artifact name uploaded for packaging"
        value: ${{ jobs.build_project.outputs.artifactName }}
      buildVersion:
        description: "The app version read from config"
        value: ${{ jobs.build_project.outputs.buildVersion }}

jobs:
  build_project:
    name: Build the Qweebi MVP application
    runs-on: [self-hosted, macOS]
    outputs:
      buildId: ${{ steps.record_step_outputs.outputs.buildId }}
      artifactName: ${{ steps.record_step_outputs.outputs.artifactName }}
      buildVersion: ${{ steps.record_step_outputs.outputs.buildVersion }}
    env:
      BUILD_TARGET: ${{ inputs.buildTarget }}
      BUILD_NAME: ${{ inputs.buildName }}
      BUILD_TYPE: ${{ inputs.buildType }}
      BUILD_OUTPUT_DIR: ${{ inputs.buildOutputDir }}
      BUILD_PLATFORM_RESOURCES: ${{ inputs.buildPlatformResources }}
      BUILD_ARTIFACT_QUALIFIER: ${{ inputs.buildArtifactQualifier }}
      BUILD_NUMBER: ${{ github.run_number }}
      QWEEBI_API_TOKEN: ${{ secrets.qweebiApiToken }}
    steps:
      - name: Clean repository
        run: |
          git clean -fdx --exclude="*Library/" && git reset --hard HEAD

      # Checkout the repository
      - name: Checkout repository
        uses: actions/checkout@v2
        with:
          lfs: true
          clean: false

      - name: Read app version from config
        run: |
          appVersion=$(jq -r '.appVersion' build-config/release/config.json)
          commitHash=$(echo ${{ github.sha }} | cut -c 1-16)
          buildId="$appVersion.$commitHash.${{ github.run_id }}"
          echo "App version: $appVersion, Build ID: $buildId"
          echo "APP_VERSION=$appVersion" >> $GITHUB_ENV
          echo "BUILD_ID=$buildId" >> $GITHUB_ENV
          echo "ARTIFACT_NAME=dist-$BUILD_ARTIFACT_QUALIFIER-$buildId" >> $GITHUB_ENV

      # Prepare the project for release
      - name: Prepare release build
        if: ${{ env.BUILD_TYPE == 'release' }}
        run: |
          echo $(jq --arg buildId $BUILD_ID '. + { "buildId": $buildId }' build-config/release/config.json) > ./build-config/release/config.json
          echo $(jq -s '.[0] * .[1]' qweebi-unity/Assets/Resources/Config/config.json build-config/release/config.json) > ./qweebi-unity/Assets/Resources/Config/config.json
          jq '.' qweebi-unity/Assets/Resources/Config/config.json

      # Decide custom build parameters based on build type
      - name: Generate custom parameters
        id: generate_custom_parameters
        run: |
          ./build-config/scripts/generate_custom_build_parameters.sh $BUILD_TYPE

      - name: Install required software
        run: |
          arch -arm64 brew install jq gh

      - name: Set Unity3D editor path
        run: |
          ./build-config/scripts/extract_unity_version.sh ./qweebi-unity/ProjectSettings/ProjectVersion.txt

      - name: Build project
        run: |
          ${UNITY_EDITOR_PATH}/Unity \
          -batchmode \
          -EnableCacheServer -cacheServerEndpoint ${{ secrets.acceleratorEndpoint }} -cacheServerEnableDownload -cacheServerEnableUpload \
          -projectPath ./qweebi-unity \
          -executeMethod UnityBuilderAction.BuildScript.Build -buildTarget $BUILD_TARGET \
          -customBuildPath "$(pwd)/build/$BUILD_TARGET/$BUILD_NAME" \
          ${{ steps.generate_custom_parameters.outputs.custom_parameters }} \
          -logFile - \
          -quit

      # Needed to retain the executable flag on the binary
      - name: Zip distribution for signing
        run: |
          mkdir -p "$BUILD_OUTPUT_DIR/build_resources"
          cp -r "./build/$BUILD_TARGET/." "$BUILD_OUTPUT_DIR"
          cp -r "$BUILD_PLATFORM_RESOURCES/." "$BUILD_OUTPUT_DIR/build_resources"
          zip -r "./qweebi-dist-unsigned.zip" "$BUILD_OUTPUT_DIR"

      - name: Record workflow outputs
        id: record_step_outputs
        run: |
          echo "::set-output name=buildId::$BUILD_ID"
          echo "::set-output name=artifactName::$ARTIFACT_NAME"
          echo "::set-output name=buildVersion::$APP_VERSION"

      # Output (Retain only for 1 day since we want the final signed and notarized app to be the final artifact)
      - name: Upload unsigned artifact for signing
        uses: actions/upload-artifact@v2
        with:
          name: ${{ env.ARTIFACT_NAME }}
          path: ./qweebi-dist-unsigned.zip
          retention-days: 1

The -executeMethod UnityBuilderAction.BuildScript.Build -buildTarget $BUILD_TARGET line here is mostly the same as the one from the Game CI build script, modified a bit to our needs. I can go over that and share it later, if you like.
Here's our workflow script which we use to upload our builds to the App Store, as a reference:
name: Build macOS application for App Store deployment

on:
  workflow_dispatch:
    inputs:
      buildType:
        description: 'Build Type'
        required: true
        default: 'release'
        type: choice
        options:
          - development
          - release

jobs:
  build_project:
    name: Build the Qweebi MVP application
    uses: ./.github/workflows/_build_unity3d_app.yml
    with:
      buildTarget: StandaloneOSX
      buildName: "Qweebi - Virtual Makerspace"
      buildType: ${{ github.event.inputs.buildType }}
      buildOutputDir: ./dist
      buildPlatformResources: ./build-config/release/macOS
      buildArtifactQualifier: macos
    secrets:
      unityEmail: ${{ secrets.UNITY_EMAIL }}
      unityPassword: ${{ secrets.UNITY_PASSWORD }}
      unitySerial: ${{ secrets.UNITY_SERIAL }}
      qweebiApiToken: ${{ secrets.QWEEBI_API_TOKEN }}
      acceleratorEndpoint: ${{ secrets.UNITY_ACCELERATOR_ENDPOINT }}

  upload_app:
    name: Upload the package to the App Store
    needs: build_project
    runs-on: [self-hosted, macOS]
    if: ${{ github.event.inputs.buildType == 'release' }}
    env:
      MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_DISTRIBUTE_CERTIFICATE_PWD }}
      KEYCHAIN_NAME: qweebi-codesign.keychain
      KEYCHAIN_PWD: ${{ secrets.MACOS_KEYCHAIN_PASSWORD }}
      ARTIFACT_NAME: ${{ needs.build_project.outputs.artifactName }}
      BUILD_ID: ${{ needs.build_project.outputs.buildId }}
      ALTOOL_USERNAME: ${{ secrets.MACOS_APPSTORE_ALTOOL_USERNAME }}
      ALTOOL_PASSWORD: ${{ secrets.MACOS_APPSTORE_ALTOOL_PASSWORD }}
      PROVISIONING_PROFILE_ID: <PROVISIONING PROFILE ID>
      APPSTORE_TEAM_ID: <APPSTORE TEAM ID>
      BUNDLE_CERT: <DIST CERT NAME>
      INSTALLER_CERT: <INSTALLER CERT NAME>

    steps:
      - name: Download built application
        uses: actions/download-artifact@v2
        with:
          name: ${{ env.ARTIFACT_NAME }}

      - name: Extract unsigned application
        run: |
          unzip ./qweebi-dist-unsigned.zip -d ./dist_out
          ls -a ./dist_out

      - name: Download and extract signing certificates
        run: |
          wget -O certs.7z "${{ secrets.CERT_ARCHIVE_URL }}"
          7z -p"${{ secrets.CERT_ARCHIVE_DECRYPTION_PASSWORD }}" x certs.7z -aoa
          find ./certs

      - name: Copy the provisioning profile to the system profiles directory
        run: |
          mkdir -p ~/Library/MobileDevice/Provisioning Profiles
          mv "./certs/macOS/appstore.provisionprofile" ~/Library/MobileDevice/"Provisioning Profiles"/$PROVISIONING_PROFILE_ID.provisionprofile

      - name: Prepare signing keychain
        id: prepare-signing-keychain
        run: |
          security create-keychain -p $KEYCHAIN_PWD $KEYCHAIN_NAME
          security list-keychains -d user -s "${KEYCHAIN_NAME}" $(security list-keychains -d user | tr -d '"')
          security unlock-keychain -p $KEYCHAIN_PWD $KEYCHAIN_NAME
          security import ./certs/macOS/appstore_dist.p12 -k $KEYCHAIN_NAME -P $MACOS_CERTIFICATE_PWD -T /usr/bin/productbuild -T /usr/bin/codesign -T /usr/bin/xcodebuild
          security import ./certs/macOS/appstore_installer.p12 -k $KEYCHAIN_NAME -P $MACOS_CERTIFICATE_PWD -T /usr/bin/productbuild -T /usr/bin/codesign -T /usr/bin/xcodebuild
          security set-key-partition-list -S apple-tool:,apple:,productsign:,codesign:,xcodebuild:,productbuild: -s -k $KEYCHAIN_PWD $KEYCHAIN_NAME
          security default-keychain -s $KEYCHAIN_NAME
          security find-identity -p codesigning -v
          security default-keychain

      - name: Build the XCode archive
        run: |
          cp ./dist_out/dist/build_resources/qweebi.entitlements ./dist_out/dist/"Qweebi - Virtual Makerspace"/
          xcodebuild archive \
            -project ./dist_out/dist/"Qweebi - Virtual Makerspace"/"Qweebi - Virtual Makerspace.xcodeproj" \
            -scheme "Qweebi - Virtual Makerspace" \
            -configuration "Release" \
            -destination 'generic/platform=macOS' \
            -archivePath ./dist_out/dist/build/"Qweebi - Virtual Makerspace.xcarchive" \
            CODE_SIGN_ENTITLEMENTS=./qweebi.entitlements \
            CODE_SIGNING_ALLOWED=YES \
            CODE_SIGN_IDENTITY="$BUNDLE_CERT" \
            CODE_SIGN_STYLE="Manual" \
            CODE_SIGN_KEYCHAIN=$KEYCHAIN_NAME \
            DEVELOPMENT_TEAM=$APPSTORE_TEAM_ID \
            PROVISIONING_PROFILE_SPECIFIER="$PROVISIONING_PROFILE_ID" \
            OTHER_CODE_SIGN_FLAGS="--options runtime --keychain $KEYCHAIN_NAME --verbose"

      - name: Generate env variables
        run: |
          echo "PACKAGE_NAME=Qweebi - Virtual Makerspace.pkg" >> $GITHUB_ENV
          echo "EXPORT_OPTIONS_PLIST=./dist_out/dist/build_resources/export.plist" >> $GITHUB_ENV

      - name: Update export options plist
        run: |
          export PATH="/usr/libexec:$PATH"
          plistbuddy -c "Add :teamID string $APPSTORE_TEAM_ID" $EXPORT_OPTIONS_PLIST
          plistbuddy -c "Add :signingCertificate string \"$BUNDLE_CERT\"" $EXPORT_OPTIONS_PLIST
          plistbuddy -c "Add :installerSigningCertificate string \"$INSTALLER_CERT\"" $EXPORT_OPTIONS_PLIST
          plistbuddy -c "Add :provisioningProfiles dict" $EXPORT_OPTIONS_PLIST
          plistbuddy -c "Add :provisioningProfiles:com.virtuallearning.makerspace string $PROVISIONING_PROFILE_ID" $EXPORT_OPTIONS_PLIST
          plistbuddy -c "Print" $EXPORT_OPTIONS_PLIST

      - name: Export archive
        run: |
          xcodebuild -exportArchive \
            -archivePath ./dist_out/dist/build/"Qweebi - Virtual Makerspace.xcarchive" \
            -exportOptionsPlist $EXPORT_OPTIONS_PLIST \
            -exportPath ./dist_out/dist/build/
          pkgutil --check-signature "./dist_out/dist/build/$PACKAGE_NAME"

      - name: Upload archive to App Store
        run: |
          xcrun altool --upload-app -f "./dist_out/dist/build/$PACKAGE_NAME" -t osx -u $ALTOOL_USERNAME -p $ALTOOL_PASSWORD --output-format json

      - name: Revert to default keychain
        if: always() && steps.prepare-signing-keychain.outcome == 'success'
        run: |
          security default-keychain -s login.keychain
          security delete-keychain $KEYCHAIN_NAME

For completeness, here are the other shell scripts we use in the workflows:

./build-config/scripts/extract_unity_version.sh

#!/bin/bash
echo "Read Unity3D version from $1"
unityVersion=$(head -n1 $1 | cut -d ' ' -f 2 | xargs)
echo "Project Unity3D version: $unityVersion"
echo "UNITY_EDITOR_PATH=/Applications/Unity/Hub/Editor/$unityVersion/Unity.app/Contents/MacOS" >> $GITHUB_ENV

generate_custom_build_parameters.sh

echo "Setting build type to $1"
if [ $1 == "release" ]
then
  echo "custom_parameters=-buildVersion $APP_VERSION -buildNumber $BUILD_NUMBER -iOSProvisioningProfile $IOS_TEST_PROVISIONING_PROFILE_ID -qweebiApiToken $QWEEBI_API_TOKEN" >> $GITHUB_OUTPUT
else
  echo "custom_parameters=-Development -buildVersion $APP_VERSION -buildNumber $BUILD_NUMBER -iOSProvisioningProfile $IOS_TEST_PROVISIONING_PROFILE_ID" >> $GITHUB_OUTPUT
fi

We switched to building an XCode archive instead of an app bundle for mac because it was just simpler to let XCode manage signing and notarization for us. This requires a bit more effort to implement since it's a bit invasive and deeply tied to the macos ecosystem and workflow, so we can move that conversation to a separate topic if it's something that might be useful since it's specific to macos built targets only.
This has mostly been working well for us, but there are some annoyances with occasionally managing the keychain for the mac machine, as well as needing to manually restart it occasionally. Would not recommend going this route unless you have physical access to the device and can secure it.
Let me know if there is anything else that I can help with.
Note that we moved away from GameCI mostly because it was faster since we could have Unity preinstalled on a runner and didn't need to spend time downloading it all over again. Cannot think of any other reason at the moment.
Although we have done a lot of stuff after that may not be possible with GameCI that is with a self hosted machine. Nothing jumps to my mind specifically at the moment.


Lock mismatch when locked to a non-tip revision for a branch constraint

What version of Go (go version) and dep (git describe --tags) are you using?
go version go1.8.3 darwin/amd64
v0.1.0-240-g6c5ebb9
What dep command did you run?
dep status
What did you expect to see?
PROJECT                CONSTRAINT     VERSION        REVISION  LATEST   PKGS USED
github.com/pkg/errors  branch master  branch master  ff09b13   c605e28  1

What did you see instead?
Lock inputs-digest mismatch. This happens when Gopkg.toml is modified.
Run `dep ensure` to regenerate the inputs-digest.

The output for dep hash-inputs is the same after I write a new lockfile by running dep ensure. I'm not sure what else is being looked at though to determine the hash.
-CONSTRAINTS-
github.com/pkg/errors
b-master
-IMPORTS/REQS-
github.com/pkg/errors
-IGNORES-
-OVERRIDES-
-ANALYZER-
dep
1

Configuration Files
main.go
package main

import _ "github.com/pkg/errors"

func main() {
}

Gopkg.toml
[[constraint]]
  branch = "master"
  name = "github.com/pkg/errors"

Gopkg.lock
[[projects]]
  name = "github.com/pkg/errors"
  packages = ["."]
  revision = "ff09b135c25aae272398c51a07235b90a75aa4f0"

[solve-meta]
  analyzer-name = "dep"
  analyzer-version = 1
  inputs-digest = "b9666cf94a3cd7bce37b6931b5321d3dbe1d07c0043886167c3b194453bcbec0"
  solver-name = "gps-cdcl"
  solver-version = 1

Easiest way to debug this will be to insert something that dumps gps.HashingInputsAsString() just before whichever inputs-hash comparison check is failing - that should give a more honest picture to compare against dep hash-inputs output.

Below is dep status for both cases, with the inputs printed. The strings are exactly the same.
$ dep status
-CONSTRAINTS-
github.com/pkg/errors
b-master
-IMPORTS/REQS-
github.com/pkg/errors
-IGNORES-
-OVERRIDES-
-ANALYZER-
dep
1

Lock inputs-digest mismatch. This happens when Gopkg.toml is modified.
Run `dep ensure` to regenerate the inputs-digest.

Run dep ensure to rewrite the lock then...
$ dep status
-CONSTRAINTS-
github.com/pkg/errors
b-master
-IMPORTS/REQS-
github.com/pkg/errors
-IGNORES-
-OVERRIDES-
-ANALYZER-
dep
1

PROJECT                CONSTRAINT     VERSION        REVISION  LATEST   PKGS USED
github.com/pkg/errors  branch master  branch master  c605e28   c605e28  1

🤦♂ i'm not sure what the deal here would be...but status has been lacking love for a long time. i can look again more seriously after #489, and then @darkowlzz and i can hopefully get things like this squared away.

@carolynvs Your initial lock file does not contain branch.
[[projects]]
  name = "github.com/pkg/errors"
  packages = ["."]
  revision = "ff09b135c25aae272398c51a07235b90a75aa4f0"

Usually when branch is specified in manifest, the generated lock includes branch name too. I think that's causing this issue.
I created Gopkg.toml:
[[constraint]]
  name = "github.com/pkg/errors"
  branch = "master"

and Gopkg.lock:
[[projects]]
  branch = "master"
  name = "github.com/pkg/errors"
  packages = ["."]
  revision = "ff09b135c25aae272398c51a07235b90a75aa4f0"

[solve-meta]
  analyzer-name = "dep"
  analyzer-version = 1
  inputs-digest = "a5785f91e34c6888b78d77a1937bcd00ba051ca6e3927b0b9a119bcbf5a1a325"
  solver-name = "gps-cdcl"
  solver-version = 1

The input-digest seems to be different from the one you posted. Maybe because of the branch constraint.
If I edit my manifest to
[[constraint]]
  name = "github.com/pkg/errors"
  revision = "ff09b135c25aae272398c51a07235b90a75aa4f0"

and run ensure, then I get the same input-digest as you posted above, b9666cf94a3cd7bce37b6931b5321d3dbe1d07c0043886167c3b194453bcbec0.
So, maybe your lock was created with revision locked, not branch.

The lock got in that state after running dep ensure github.com/pkg/errors@ff09b135c25aae272398c51a07235b90a75aa4f0.
Now that ensure has been rewritten, I'm not even sure this is a valid bug anymore. Can you specify a specific version/branch/revision anymore during dep ensure -update?

gonna close this out - we can reopen if it turns out to be valid in the new ensure world.


HealthSystemChangeParameters event has no effect when asked to update BedDays policy

When the HealthSystemChangeParameters event is called/scheduled to update the behaviour of the bed-days allocations, it does not change the behaviour of the bed-days allocations in the HealthSystem.
The HealthSystemChangeParameters event which changes the availability of bed days currently changes the BedDays.availability property when it runs:

The BedDays.availability value is only used by the BedDays class in set_scaled_capacity
set_scaled_capacity itself is only used in the initialise_beddays_tracker method.
initialise_beddays_tracker is only called once in the initial setup of the simulation (specifically in the initialise_simulation step for each module).

As such, changing the BedDays.availability property when an event fires after the simulation begins has no effect.
If we really only need to set the properties of the BedDays tracker before the simulation, we don't need an event to handle changing them. Otherwise, presumably the correct action that should be taken is that the availability property should be updated, and the internal trackers for maximum capacities should also be updated? This might lead to issues with the current and forecast allocations though (since EG setting the availability to 0 will mean that any currently scheduled occupancies have to end).
If anyone knows what the intended behaviour is meant to be (or whether we need this feature at all), advice would be appreciated!

Ping @tbhallett

Thanks for spotting this, @willGraham01
The intended behaviour is that, mid-way through a simulation, the total numbers of bed available can be changed (either up or down).
So, I agree with you that this is a bug.

We let them stay. They will eventually be discharged and then we accept no others.
Sent from Outlook for iOShttps://aka.ms/o0ukef

From: Will Graham @.>
Sent: Tuesday, May 14, 2024 2:47:55 PM
To: UCL/TLOmodel @.>
Cc: Hallett, Timothy B @.>; Mention @.>
Subject: Re: [UCL/TLOmodel] HealthSystemChangeParameters event has no effect when asked to update BedDays policy (Issue #1346)
This email from @.*** originates from outside Imperial. Do not click on links and attachments unless you recognise the sender. If you trust the sender, add them to your safe senders listhttps://spam.ic.ac.uk/SpamConsole/Senders.aspx to disable email stamping for this address.
What should the intended behaviour be if the number of beds is reduced below what's currently occupied?
Say I have 5 beds occupied at a facility, then the availability changes to none - do all the patients have to be kicked out immediately or do we let them stay but accept no others?
—
Reply to this email directly, view it on GitHubhttps://github.com/UCL/TLOmodel/issues/1346#issuecomment-2110292653, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJRDOFC2PISJGRYOCNEOZ4TZCIIYXAVCNFSM6AAAAABHV5XLJWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMJQGI4TENRVGM.
You are receiving this because you were mentioned.Message ID: @.***>