Feature: Auto Match Scheduler and Manual Match Scheduler

Feature

Implement Round Robin scheduling:

Each player faces every other player exactly once.
Schedules generated based on the total number of players.
Matches created and added to the tournament's schedule.

Implement Playoff scheduling:

Single-elimination format where winners advance.
Handles initial pairings and subsequent rounds.

Extend Match API for custom match creation:

Allows manual creation of matches with specific player pairings.
Validates player registration in the tournament.
Supports adding matches to both Round Robin and Playoff schedules.

Added Tournament Details API

Tournament Details API will have Player Details like the following:

"playerDetails": [
   	{
   		"firstName": "Hello",
   		"lastName": "World",
   		"id": "6547c93471ab176017026fe8"
   	},
   	{
   		"firstName": "Hello",
   		"lastName": "World",
   		"id": "65645b55f8001c7b381024ce"
   	}
   ],

Tournament Details API (api/tournament/{tournamed_id}/details/) will also have MatchSchedule Details like the following:

{
   		"timerStartedTimestamp": null,
   		"elapsedTime": 0,
   		"type": "group",
   		"players": [
   			{
   				"points": [],
   				"color": "red",
   				"id": "6547c93471ab176017026fe8"
   			},
   			{
   				"points": [],
   				"color": "white",
   				"id": "65645b55f8001c7b381024ce"
   			}
   		],
   		"admin": null,
   		"officials": [],
   		"id": "65660f9605c5a74aa4482ca6",
   		"playersDetails": [
   			{
   				"id": "6547c93471ab176017026fe8",
   				"firstName": "Hello",
   				"lastName": "World"
   			},
   			{
   				"id": "65645b55f8001c7b381024ce",
   				"firstName": "Hello",
   				"lastName": "World"
   			}
   		],
   		"winnerDetails": null
   	}

Tournament Details is an expensive API. It will only be called when the Tournament is in detailed view. In other cases, a Tournament (get tournament by ID) (/api/tournament/{tournamed_id}/) is enough.

Major things to consider:

Unnecessary database queries

There are multiple places where you are making database requests inside a loop. At least all of these should be replaced with bulk operations, like batch updates or inserts, which can significantly improve efficiency.

More stricter types

Don't try to have objects where all of the properties can have multiple different values. Either they exist or no. I can't think of any use case where we need to map null's and empty strings on properties. It's best to avoid using nulls and empty strings where possible.

Remove unnecessary comments, e.g., private utility function.

Remove unnecessary comments that don't provide meaningful insights. Comments should focus on explaining complex logic or documenting important details. Conversely, consider adding comments in areas where the code might be challenging for others to understand (the tournament generation is at least one example)

Try to see if you can utilize query population.

I know it is a bit of a hassle with Typescript (Mongoose overall sucks with Typescript), but using it would reduce a lot of redundancy and would simplify things a lot. For example, if you use population on the tournament document, you can fetch the match data, player data AND the tournament data in a single query, rather than looping over everything and making a couple dozen round trips to the database.

@vilbedawg
nearly every issue has been fixed. Apart from generating new match after a match is completed, everything else has been taken care of. As per discussion. I couldn't implement the populate to the core. I could populate up to MatchSchedule but couldn't fetch the data of each players, admin and officials. Maybe you can look into it, if u have time.
There are some merge errors, which I couldn't fix. I will take a look at them later. I will implement the new match generate for playoff later .

@vilbedawg nearly every issue has been fixed. Apart from generating new match after a match is completed, everything else has been taken care of. As per discussion. I couldn't implement the populate to the core. I could populate up to MatchSchedule but couldn't fetch the data of each players, admin and officials. Maybe you can look into it, if u have time.
There are some merge errors, which I couldn't fix. I will take a look at them later. I will implement the new match generate for playoff later .

Looks good thus far. We can move forward with this once all of the issues have been addressed. :)


V003:Stuck at initializing UartTx with PC0 pin

I'm using CH32V003F4P6.
let p = ch32_hal::init(Default::default());
println!("initialize uart tx");
let mut uart = UartTx::new(p.USART1, p.PC0, Default::default()).unwrap();
println!("finished initializing uart");

This prints only initialize uart tx.
Note that it's not due to panic caused by unwrap() that finished initializing uart is not printed.
I tested code and found it stuck at this line in UartTx::new_inner().
And I also found PD5 works fine.
let p = ch32_hal::init(Default::default());
println!("initialize uart tx");
let mut uart = UartTx::new(p.USART1, p.PD5, Default::default()).unwrap();
println!("finished initializing uart");

This code prints.
initialize uart tx
finished initializing uart

And it works fine for me now.
CH32V003F4P6 pinouts diagram from datasheet p.10 says PC0 can be UTX_(I don't know what this _ means, though), so I think it can be used for UartTx(and it can compile with PC0, so you expect it to be used?).
Let me correct if I'm wrong:)

I don't know what this _ means, though
Underline means "available as REMAP function", then you should check "AFIO" part in the RM pdf.

I'm on vacation without a CH32V003 dev board at hand. I'll check this later.
A few hints:

use wlink dump 0x40013800 0x10 to debug the registers.
use wlink regs to dump current status (PC, mstatus are helpful)
use cargo objdump --release --bin demo -- -d to dump the assembly code, the "PC" aligns with address here
you can also add as many crate::println! in the hal crate to debug.

Thanks for your great hints!
Hmm...as far as I can tell, everything do as what it should be but it stucks at calling set_remap().
Trying to initializing UartTx with PC0, I added println!("{}", REMAP); into UartTx::new_inner(), then it prints 3.
3 completely matches what datasheet says to remap PC0 as UART.
After it got stucked, I did $ wlink dump 0x40013800 0x10.
11:14:19 [INFO] Connected to WCH-Link v2.11(v31) (WCH-LinkE-CH32V305)
11:14:19 [INFO] Attached chip: CH32V003 [CH32V003F4P6] (ChipID: 0x00300500)
11:14:19 [INFO] Read memory from 0x40013800 to 0x40013810
Length: 16 (0x10) bytes | printable whitespace ascii_other non_ascii
40013800:   c0 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00   ×000000000000000

And here result of wlink regs
11:25:54 [INFO] Connected to WCH-Link v2.11(v31) (WCH-LinkE-CH32V305)
11:25:54 [INFO] Attached chip: CH32V003 [CH32V003F4P6] (ChipID: 0x00300500)
11:25:54 [INFO] Dump GPRs
dpc(pc):   0x00000cac
x0   zero: 0x00000000
x1     ra: 0x00000992
x2     sp: 0x200007d4
x3     gp: 0x20000800
x4     tp: 0x1c28040d
x5     t0: 0x00000436
x6     t1: 0x00000cdc
x7     t2: 0x00080000
x8     s0: 0x40021000
x9     s1: 0xffffbfff
x10    a0: 0xe00000f4
x11    a1: 0x40013810
x12    a2: 0x00000000
x13    a3: 0x4001380c
x14    a4: 0x00000001
x15    a5: 0x200007d4
marchid  : 0xdc68d841
mimpid   : 0xdc688001
mhartid  : 0x00000000
misa     : 0x40800014
mtvec    : 0x00000000
mscratch : 0x21410bd1
mepc     : 0x00000436
mcause   : 0x00000007
mtval    : 0x00000000
mstatus  : 0x00001888
dcsr     : 0x400000c3
dpc      : 0x00000cac
dscratch0: 0xe00000f4
dscratch1: 0x40013810
gintenr  : 0x00000000
intsyscr : 0x00000003
corecfgr : 0x00000000

So, nothing had been changed.
Maybe datasheet description bug??

mcause   : 0x00000007

macuse[31] = 0, means it's an exception.
Refer QingkeV2 Processor Manual: exception id=7: it's a StoreFault.
Then you need to diagnose what causes the StoreFault exception.

This is caused by complex remap rules in USART1.

Confirmed that it works on my chip!!
Thanks.


Optimize tile.rs::tile_log2()

Not that useful since tile computation is only done once as far as I know, but this turns tile_log2() into a one-liner, and in test benchmarks it is several times faster.

Test results for reference (this PR is of course, the fastest version):
tiles/normal            time:   [4.3147 ns 4.3292 ns 4.3466 ns]
Found 9 outliers among 100 measurements (9.00%)
  6 (6.00%) high mild
  3 (3.00%) high severe
tiles/smart             time:   [930.76 ps 932.84 ps 935.71 ps]
Found 5 outliers among 100 measurements (5.00%)
  3 (3.00%) high mild
  2 (2.00%) high severe
tiles/smarter           time:   [764.55 ps 765.84 ps 767.24 ps]
Found 6 outliers among 100 measurements (6.00%)
  4 (4.00%) high mild
  2 (2.00%) high severe

Tests caught the inverted comparison in the if statement, hopefully fixed...

It looks like the tests include block_size and target parameters that are not powers of 2. Do you know if this is valid, @rom1v (or anyone else)? According to @lu-zero resolutions should be restricted to powers of 2. I am seeing a block size of 2304, which seems oddly large, and a target of 3.

After looking at how this function is used I think non-powers of 2 are legal, and supporting them in this PR might not be worth the additional effort, so I will close this for now.

I misunderstood the question, the tiles are in number of power of 2, not their dimension ^^;

This should do the right thing.
fn tile_log2(blk_size: usize, target: usize) -> usize {
    let t = target.leading_zeros() as usize;
    let b = blk_size.leading_zeros() as usize;

    if t > b {
        0
    } else  {
        1 + b - t
    }
}

@lu-zero Here is a Playground link comparing the two.

If someone has a working post-condition to fix off-by-one errors, feel free to leave a comment and re-open, but I have not found the right one and do not want to spend a lot of time on a function that is only called a few times at the start of an encode.


Add rachelyen to Google Storage Plugin.

Description

Jenkins community account name: rachelyen
Repositories: google-storage-plugin
Existing maintainers: @craigdbarber
Submitter checklist for changing permissions

Always

[x] Add link to plugin/component Git repository in description above

When adding new uploaders (this includes newly created permissions files)

[x] Make sure to @mention an existing maintainer to confirm the permissions request, if applicable
[x] Use the Jenkins community (LDAP) account name in the YAML file, not the GitHub account name
[x] All newly added users have logged in to Artifactory at least once

Approved


Documentation for aspnet core 3.0 incomplete

It seems that most of the documentation for aspnet core 3.0 is not there at all, or at least not displayed on docs.microsoft.com. That is most namespaces are not there at all or are partial. I believe the only complete thing that is shown there is extensions.

ASP.NET Core 3.0 is no longer supported.

ASP.NET Core 3.0 is no longer supported.


time scale: "time.format" is deprecated. Please use "time.parser" instead

tried 3.0.0 alpha version as well with chartjs-plugin-streaming but error still remains.

3.0 is not backwards compatible with 2.0. Plugins will not work with it until they've been updated. You would need chartjs-plugin-streaming to be updated before you can use it with 3.0

@benmccann Any work around to use 2.9.3 and not getting this error?

It sounds like the issue is in that plugin and you should ask there


Fix potential data loss when leader come back at an unlucky time.

The fear is that a leader comes back exactly when the failover to
a different leader is happening, it could accept writes too early,
report success to the coordinator and then the client, and the failover
leads then to the writes being lost.
Measures taken:

After a restart, only accept writes once TakeoverShardLeadership has
run.
In FailedServer (failover code), add precondition that the chosen
failover candidate has not been deleted in the meantime.

Some of these problems have been observed in chaos runs but are not
easily reproducible.

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/11489/

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/11490/

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/11491/


Removing signals

Hello,
Can you add feature of copying and removing signals? (with all properties like description etc). I need to prepare script, which will modify dbc file, but currently I'm not able to remove signals from "old" message to "new".

I've no interest in this functionality myself, and it's very unlikely I'll implement it. You're welcome to implement it yourself and submit a PR.


Add support for LFOs

@jpcima already provided the LFO generation in #43 which allows to generate the waveforms from opcodes. What is needed now:

[ ] Plumbing to have Regions store this information (with quick tests)
[ ] Add either an LFOPool or a preallocation in the synth so that Voices can have the necessary allocated space to handle LFO operation
[ ] Add CC/pitch modulation to LFO targets
[ ] Add monophonic aftertouch event tracking in the midi state, LV2 and VST plugins
[ ] Add aftertouch modulation to LFO targets
[ ] Add LFO modulation to LFO targets

Some questions remaining:

Are LFOs on different voices/regions supposed to be synchronized somehow?
Since LFOs can modulate LFOs, there needs to be a way to avoid cycles in this modulation graph. Either we force an evaluation order (the preferred, simpler approach) with a cycle check. Maybe verify/ask what other implementations are doing.

LFOs synchronize with the start of note of their region.
That includes their phase, their start delay, etc..

@paulfd there was a discussion to allow voice LFO's to have a free running setting.
I'm assuming that such setting would lock the LFO to global time. Hence it would act differently for LFOs defined by beat- or freq.


Fix to avoid absolute path to be converted to relative.

This fixes #223
DCO 1.1 Signed-off-by: Alan Souza<EMAIL_ADDRESS>

Hey @alansouzati - thanks for the PR. Makes sense to me - @Snugug Thoughts?

I'd prefer to always resolve to an absolute path. We can use https://nodejs.org/api/path.html#path_path_isabsolute_path to check to see if the path is absolute and, if it is not, go through the process we have now in full.

On Sep 27, 2015, at 12:02 AM, Ben Griffith<EMAIL_ADDRESS>wrote:
Hey @alansouzati - thanks for the PR. Makes sense to me - @Snugug Thoughts?
—
Reply to this email directly or view it on GitHub.

I agree with @Snugug

Fine with me, do you want me to go ahead and add this check in the code?

If you wouldn't mind @alansouzati
Thanks!

I've incorporated your feedbacks in this PR.


Scanning library is slow

When audiobooks and other non-comic books are together, the software will search all book-type file libraries, which will cause slow scanning. If I have a lot of books, the scanning time will be at least ten minutes or more, unless I put all Delete all the book libraries and only create the comic book library, which makes me unable to manage other book files. When I use another software Moon+ Reader to add Jellyfin books, I fill in the local IP address as http:// <IP_ADDRESS>:8096/opds can display my comic books very well. I don’t know because my comic format is CBZ or what, Moon+ Reader can recognize my comics very well, although Moon+ Reader is connected to Jellyfin The book library has some defects, such as not being able to search, etc., but it can also be downloaded to the mobile phone for viewing, but it does not support streaming and watching comics. In fact, when JellyBook connects to Jellyfin, it can first display the entire media library, and then let the user Manually select the only comic library to add to JellyBook instead of letting JellyBook search all the spine libraries. This will search all the book libraries that are not comics, which greatly wastes the search time.

Hi, in 1775361 (#63) I fixed it up to not have audioBooks asked for to the server. This should fix the long time for unnecessary files. As per the you having large amounts of books and that slowing the app down, that may still be a issue but I think it should be mitigated by only having it do so when requested or on a initial connection to the server

Hi, has the latest release fixed it?

你好，请问最新版本修复了吗？

I will download and try it right away, and, my dear author, when will streaming media be supported, I hope streaming media can read comics.

Hi, like I mentioned this in the other issue but it is on the todo list but its not the #1 priority. I cant provide a exact timeline on it but will hopefully be in the near future

Scanning is much faster than before, but you can see the folder of audiobooks.

Audiobooks will be added in next update


Merge dev branch into master.

The dev branch now has a complete Python worker implementation along with unit and integration tests.
Features:

full support for the following bindings: httpTrigger, timerTrigger, queueTrigger, blobTrigger, http, blob, queue;

support for context argument;

transparent support of the logging module; the worker implementation makes sure that invocation_id is attached to RpcLog messages when possible;

out bindings;

asynchronous (async def) functions are fully supported;

synchronous functions are executed in a thread-pool, which allows the worker to be responsive to requests from WebHost and execute asynchronous functions in parallel;

functions are thoroughly validated when loaded: argument names must match those in function.json; type annotations, if present, are checked to match binding types in function.json;

the docs directory contains the documentation (buildable by Sphinx or ReadTheDocs) for all datatypes as well as usage examples;

python setup.py can be used to automatically download the WebHost image, as well as for generating gRPC Python bindings and running tests;

integration tests launch a WebHost instance and test against it using AzureWebHostStorage keys;

unittests include a mock-WebHost gRPC server that allows to test scenarios that otherwise are not possible to test with real WebHost (like logging, timerTrigger, and graceful handling of unsupported gRPC messages);

azure.worker package hosts the worker implementation; azure.functions package hosts ABCs and concrete implementations of types like HttpResponse.

the code is type annotated and automatically checked with mypy in unit tests;

the code is PEP 8, which is enforced by a flake8 unit test;

fully configured AppVeyor and Travis CI integrations.

Please also check out these two wiki entries: Setting up development environment and Worker Architecture.

@christopheranderson @pragnagopa as we discussed yesterday on the call, I've created this PR for todays code review.
Also, please do not use the "Squash and merge" option.  We'd like to preserve individual commits for git blame and git log to work.

@christopheranderson Please take a look, I've done the renames.
I also squashed a few commits and removed merge commits so the commit number went down from 68 to 54.

🚢!

@christopheranderson Chris, could you please take another look at this PR? I need merge it in order to continue working in the dev branch.


AD&D 1e Revised - fix for attack matrix drop-down

fixed class/monster attack matrix drop-down selector to be less confusing.

[x] The pull request title clearly contains the name of the sheet I am editing.

[x] The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).

[x] The pull request makes changes to files in only one sub-folder.

[x] The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)

Character Sheet Info Roll20 Internal Use only.

Not sure why this PR is getting the "New Sheet" label and causing "All checks have failed"...


[Feature Request] Make ButtonBarViewCell support attributed strings

Currently the ButtonBarViewCell only uses plain text

I just finished making some changes to my project to allow attributed strings to work. Certainly the library is flexible enough to make this happen, but you end up having to override (at the very least), configureCell (for setting the appropriate initial values) + changeCurrentIndexProgressive/changeCurrentIndex (for updating the attributed string when items are selected) + buttonBarItemSpec (for making sure the labels calculate the proper width)

I was able to support attributed strings they way my app needed by customizing the changeCurrentIndexProgressive closure.
Would also like to see this feature in the future.
Thank you for the library by the way.
Saved me a lot of time implementing this the hard way. :)

Example code:
buttonBarPagerTabStripViewController.changeCurrentIndexProgressiveBlock = ^(XLButtonBarViewCell *oldCell,
XLButtonBarViewCell *newCell,
CGFloat progressPercentage,
BOOL indexWasChanged,
BOOL fromCellRowAtIndex) {
NSNumber *trackingAmount = @(.5f);
oldCell.label.attributedText
    = (oldCell)
      ? [[NSAttributedString alloc] initWithString:oldCell.label.text
                                        attributes:@{NSKernAttributeName: trackingAmount}]
      : nil;
newCell.label.attributedText
    = (newCell)
      ? [[NSAttributedString alloc] initWithString:newCell.label.text
                                        attributes:@{NSKernAttributeName: trackingAmount]
      : nil;

};
Checking for nil is necessary because the block can be called while they are nil. [NSAttributedString initWithString] crashes on nil arguments.

As @ftvs said,  this is somewhat supported by setting the attributedText in the changeCurrentIndexProgressive block.
Cheers


How to disable kube:container:redirector?

Hi,
I am using the logging component to connect K8 with Splunk and in general everything works fine.
I'm using Azure AKS and here are the generated sourcetypes:

kube:container:redirector	209,236	75.796%
kube:container:main	19,837	7.186%
fluentd:monitor-agent	18,504	6.703%
kube:container:tunnel-front	14,700	5.325%
kube:container:azureproxy	11,913	4.316%
kube:container:pinkcloud-server	593	0.215%
kube:container:tiller	557	0.202%
kube:container:heapster	331	0.12%
kube:container:splunk-fluentd-k8s-logs	309	0.112%
kube:container:heapster-nanny

The first one is generating tons of logs so my main question is how to disable the logging forwarder for a specific component?
Thanks,
Greg

You can absolutely filter at the pod level using the filters in the configMap of the logging pod.
We monitor /var/log/containers/* as a default, and you could look at fluentd’s exclude_path option, or if you think you’ll have a lot of these, I would make the tail settings more granular, perhaps leveraging the namespace values.
The nullqueue is another option, though personally I prefer getting the config right at the source.

@matthewmodestino yeah that does it. Thank you. Quick question... what's the neat way of overwriting only a part of the config that I need? I guess I need to include the whole source.containers.conf section?


Artifacts with test model AC11-FZK-Haus-IFC

The test model AC11-FZK-Haus-IFC looks a little bit strange
There's no lighting on the model (are the normals broken?)
The colors are pure white and pure black which is hard to comprehend
Also there appears to be some strange backface culling?

Might be fixed, will have to check. Replaced this with issue #52 - we need to do some general testing with various models


Fetch extra ignition config

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

Is this PR still relevant or can we close this @5kt ?

This is no longer relevant, closing.


Gap between keyword and ability box if there is no Effect defined

Honestly, I'm not sure this needs a fix, as it only occurs in an ability with no Effect defined, which shouldn't be possible.  But...
If you create an ability, and leave the Effect field empty and add an ability Keyword, the Keyword box will not be attached to the ability box; there will be a gap between them.

You will need to add a banner/text anyways so I'm going to pass on fixing this.


Boundary System does not work correctly

I tried to visualize Boundaries but instead I get warning "Failed to calculate boundary bounds." and just Spatial Mesh.

Failed to calculate boundary bounds.
UnityEngine.Debug:LogWarning(Object)
Microsoft.MixedReality.Toolkit.Boundary.MixedRealityBoundarySystem:CalculateBoundaryBounds() (at Assets/MixedRealityToolkit.Services/BoundarySystem/MixedRealityBoundarySystem.cs:932)
Microsoft.MixedReality.Toolkit.Boundary.MixedRealityBoundarySystem:Initialize() (at Assets/MixedRealityToolkit.Services/BoundarySystem/MixedRealityBoundarySystem.cs:45)
Microsoft.MixedReality.Toolkit.<>c:<InitializeAllServices>b__57_0(IMixedRealityService) (at Assets/MixedRealityToolkit/Services/MixedRealityToolkit.cs:865)
Microsoft.MixedReality.Toolkit.MixedRealityToolkit:ExecuteOnAllServices(IEnumerable`1, Action`1) (at Assets/MixedRealityToolkit/Services/MixedRealityToolkit.cs:972)
Microsoft.MixedReality.Toolkit.MixedRealityToolkit:ExecuteOnAllServicesInOrder(Action`1) (at Assets/MixedRealityToolkit/Services/MixedRealityToolkit.cs:953)
Microsoft.MixedReality.Toolkit.MixedRealityToolkit:InitializeAllServices() (at Assets/MixedRealityToolkit/Services/MixedRealityToolkit.cs:865)
Microsoft.MixedReality.Toolkit.MixedRealityToolkit:InitializeServiceLocator() (at Assets/MixedRealityToolkit/Services/MixedRealityToolkit.cs:430)
Microsoft.MixedReality.Toolkit.MixedRealityToolkit:InitializeInstance() (at Assets/MixedRealityToolkit/Services/MixedRealityToolkit.cs:535)
Microsoft.MixedReality.Toolkit.MixedRealityToolkit:RegisterInstance(MixedRealityToolkit, Boolean) (at Assets/MixedRealityToolkit/Services/MixedRealityToolkit.cs:674)
Microsoft.MixedReality.Toolkit.MixedRealityToolkit:Awake() (at Assets/MixedRealityToolkit/Services/MixedRealityToolkit.cs:568)

It happens in both editor and Hololens 1st gen.
To reproduce
I encountered this in empty unity project with only MRTK.Foundation installed.
My settings:

Expected behavior
Boundary Visualization
Setup
I tested it with Unity 2018.4.4f1(.NET) and Unity 2019.1.3f(IL2CPP).
MRTK v2.0.0
Target Platform

Unity editor
HoloLens 1st gen

@KrasnovPavel ,
The message your are receiving "Failed to calculate boundary bounds" indicates that either a boundary is not configured (vr device) or that the device does not support the concept of boundaries (Microsoft HoloLens).
The boundary system utilizes Unity's support for virtual reality devices and their configured boundaries (ex: tracing your play space via a Windows Mixed Reality immersive headset or an HTC Vive).
Spatial awareness is designed for devices such as the Microsoft HoloLens that have environmental sensors that provide mesh data matching the observed environment.
Hope this helps.

@davidkline-ms , thank you for quick response. It looks like I misunderstood the documentation. I thought Boundary System is replacement for Spatial Understanding form HoloToolkit.
Is there replacement for Spatial Understanding mechanism in MRTK like it was in HoloToolkit?
I found Scene Understanding but looks like Hololens (1st gen) goes not support it.

There currently is no replacement for Scene Understanding from the HoloToolkit. We are investigating the work required to update the required components and do not yet have a timeline for release.

Opened #6246 to track the request


Sidenav opens in the new version

sidebar opens if you press on the left side of the page after reloading it, lets say, you realod the page, put your curson in the left of the screen (at the end of the left side, when you can't go further) and press once there. The sidebar will pop and leave in a sec, you'll need to reload the page for it not to happen again!

Closed due inactivity, feel free to reopen it if it is still necessary.


wasm-bindgen: imported JS function that was not marked as catch threw an error: Cannot read property 'width' of undefined

🐛 Bug description
I can't access a property of an HtmlCanvasElement with rust, I'm having trouble using the "photon_rs" library with javascript, because of this bug, so I thought it was a bug with the "photon_rs" lib, so I decided to clone the lib code "photon_rs" and analyze it to find the error, that's when I came across this problem and decided to create a small simple project "hello world", then I could determine that the problem is not in the lib "photon_rs", it seems that the problem is in the "wasm-pack"
wasm-bindgen: imported JS function that was not marked as `catch` threw an error: Cannot read property 'width' of undefined

Stack:
TypeError: Cannot read property 'width' of undefined
    at http://<IP_ADDRESS>:8080/teste.js:132:34
    at logError (http://<IP_ADDRESS>:8080/teste.js:44:18)
    at imports.wbg.__wbg_width_9eb2c66ac9dde633 (http://<IP_ADDRESS>:8080/teste.js:131:68)
    at web_sys::features::gen_HtmlCanvasElement::HtmlCanvasElement::width::hc1421e5da4eb229c (<anonymous>:wasm-function[215]:0xdb55)
    at teste::greet::hea5b9587a566489d (<anonymous>:wasm-function[33]:0x6085)
    at greet (<anonymous>:wasm-function[257]:0xe7cb)
    at http://<IP_ADDRESS>:8080/:19:24
teste.js:132 Uncaught TypeError: Cannot read property 'width' of undefined
    at teste.js:132
    at logError (teste.js:44)
    at imports.wbg.__wbg_width_9eb2c66ac9dde633 (teste.js:131)
    at web_sys::features::gen_HtmlCanvasElement::HtmlCanvasElement::width::hc1421e5da4eb229c (<anonymous>:wasm-function[215]:0xdb55)
    at teste::greet::hea5b9587a566489d (<anonymous>:wasm-function[33]:0x6085)
    at greet (<anonymous>:wasm-function[257]:0xe7cb)
    at (index):19

🤔 Expected Behavior
access all properties of HTML elements
👟 Steps to reproduce
lib.rs
mod utils;
use wasm_bindgen::prelude::*;
use web_sys::{HtmlCanvasElement};
//for production use: wasm-pack build --target no-modules --release
//for dev use: wasm-pack build --target no-modules --debug

// When the `wee_alloc` feature is enabled, use `wee_alloc` as the global
// allocator.
#[cfg(feature = "wee_alloc")]
#[global_allocator]
static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT;

#[wasm_bindgen]
extern "C" {
    fn alert(s: &str);
}

#[wasm_bindgen]
extern "C" {
    // Use `js_namespace` here to bind `console.log(..)` instead of just
    // `log(..)`
    #[wasm_bindgen(js_namespace = console)]
    fn log(s: &str);

    // The `console.log` is quite polymorphic, so we can bind it with multiple
    // signatures. Note that we need to use `js_name` to ensure we always call
    // `log` in JS.
    #[wasm_bindgen(js_namespace = console, js_name = log)]
    fn log_u32(a: u32);

    // Multiple arguments too!
    #[wasm_bindgen(js_namespace = console, js_name = log)]
    fn log_many(a: &str, b: &str);
}

macro_rules! console_log {
    // Note that this is using the `log` function imported above during
    // `bare_bones`
    ($($t:tt)*) => (log(&format_args!($($t)*).to_string()))
}

#[wasm_bindgen]
pub fn greet(canvas: HtmlCanvasElement) {
    //alert("Hello, teste!");
    console_log!("greet {:?}", canvas.width());
}

Cargo.toml
[package]
name = "teste"
version = "0.1.0"
authors = ["insinfo<EMAIL_ADDRESS>edition = "2018"

[lib]
crate-type = ["cdylib", "rlib"]

[features]
default = ["console_error_panic_hook"]

[dependencies]
wasm-bindgen = "0.2.74" #0.2.63
js-sys = "0.3.51"

# The `console_error_panic_hook` crate provides better debugging of panics by
# logging them with `console.error`. This is great for development, but requires
# all the `std::fmt` and `std::panicking` infrastructure, so isn't great for
# code size when deploying.
console_error_panic_hook = { version = "0.1.6", optional = true }

# `wee_alloc` is a tiny allocator for wasm that is only ~1K in code size
# compared to the default allocator's ~10K. It is slower than the default
# allocator, however.
#
# Unfortunately, `wee_alloc` requires nightly Rust when targeting wasm for now.
wee_alloc = { version = "0.4.5", optional = true }

[dev-dependencies]
wasm-bindgen-test = "0.3.24"
wasm-bindgen-futures = "0.4.24"

[dependencies.web-sys]
version = "0.3.51"
features = [
  "Document",
  "Element",
  "HtmlElement",
  "Node",
  "Window",
  "CanvasRenderingContext2d",
  "ImageData",
  "HtmlCanvasElement",
  "HtmlImageElement",
  "console",
  'CssStyleDeclaration',
  'EventTarget',
]

[profile.release]
# Tell `rustc` to optimize for small code size.
opt-level = "s"

index.html
<!DOCTYPE html>

    <title>teste</title>

teste

    <canvas id="canvas" width="640" height="480"></canvas>

generated index.js with:  wasm-pack build --target no-modules --debug
let wasm_bindgen;
(function() {
    const __exports = {};
    let wasm;

    const heap = new Array(32).fill(undefined);

    heap.push(undefined, null, true, false);

function getObject(idx) { return heap[idx]; }

let heap_next = heap.length;

function dropObject(idx) {
    if (idx < 36) return;
    heap[idx] = heap_next;
    heap_next = idx;
}

function takeObject(idx) {
    const ret = getObject(idx);
    dropObject(idx);
    return ret;
}

let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });

cachedTextDecoder.decode();

let cachegetUint8Memory0 = null;
function getUint8Memory0() {
    if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {
        cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);
    }
    return cachegetUint8Memory0;
}

function getStringFromWasm0(ptr, len) {
    return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));
}

function logError(f, args) {
    try {
        return f.apply(this, args);
    } catch (e) {
        let error = (function () {
            try {
                return e instanceof Error ? `${e.message}\n\nStack:\n${e.stack}` : e.toString();
            } catch(_) {
                return "<failed to stringify thrown value>";
            }
        }());
        console.error("wasm-bindgen: imported JS function that was not marked as `catch` threw an error:", error);
        throw e;
    }
}

function addHeapObject(obj) {
    if (heap_next === heap.length) heap.push(heap.length + 1);
    const idx = heap_next;
    heap_next = heap[idx];

    if (typeof(heap_next) !== 'number') throw new Error('corrupt heap');

    heap[idx] = obj;
    return idx;
}
/**
* @param {HTMLCanvasElement} canvas
*/
__exports.greet = function(canvas) {
    wasm.greet(addHeapObject(canvas));
};

function _assertNum(n) {
    if (typeof(n) !== 'number') throw new Error('expected a number argument');
}

async function load(module, imports) {
    if (typeof Response === 'function' && module instanceof Response) {
        if (typeof WebAssembly.instantiateStreaming === 'function') {
            try {
                return await WebAssembly.instantiateStreaming(module, imports);

            } catch (e) {
                if (module.headers.get('Content-Type') != 'application/wasm') {
                    console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);

                } else {
                    throw e;
                }
            }
        }

        const bytes = await module.arrayBuffer();
        return await WebAssembly.instantiate(bytes, imports);

    } else {
        const instance = await WebAssembly.instantiate(module, imports);

        if (instance instanceof WebAssembly.Instance) {
            return { instance, module };

        } else {
            return instance;
        }
    }
}

async function init(input) {
    if (typeof input === 'undefined') {
        let src;
        if (typeof document === 'undefined') {
            src = location.href;
        } else {
            src = document.currentScript.src;
        }
        input = src.replace(/\.js$/, '_bg.wasm');
    }
    const imports = {};
    imports.wbg = {};
    imports.wbg.__wbg_alert_96651bef84688e4c = function() { return logError(function (arg0, arg1) {
        alert(getStringFromWasm0(arg0, arg1));
    }, arguments) };
    imports.wbg.__wbg_log_cc87b1cd273573ca = function() { return logError(function (arg0, arg1) {
        console.log(getStringFromWasm0(arg0, arg1));
    }, arguments) };
    imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
        takeObject(arg0);
    };
    imports.wbg.__wbg_width_9eb2c66ac9dde633 = function() { return logError(function (arg0) {
        var ret = getObject(arg0).width;
        _assertNum(ret);
        return ret;
    }, arguments) };
    imports.wbg.__wbindgen_throw = function(arg0, arg1) {
        throw new Error(getStringFromWasm0(arg0, arg1));
    };

    if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {
        input = fetch(input);
    }

    const { instance, module } = await load(await input, imports);

    wasm = instance.exports;
    init.__wbindgen_wasm_module = module;

    return wasm;
}

wasm_bindgen = Object.assign(init, __exports);

})();

🌍 Your environment
Windows 10
wasm-pack version: wasm-pack 0.9.1
rustc version: rustc 1.53.0 (53cb7b09b 2021-06-17)
https://github.com/insinfo/photon-test
https://github.com/silvia-odwyer/photon/issues/99

after a lot of brainstorming, I found out where the problem was, the "wasm-pack" is generating the javascript with error on this line: "wasm_bindgen = Object.assign(init, __exports);"
so to solve the problem I replace this line, so:
   //wasm_bindgen = Object.assign(init, __exports);
   wasm_bindgen = init;

   /**
     * Overwrites obj1's values with obj2's and adds obj2's if non existent in obj1
     * @param obj1
     * @param obj2
     * @returns obj3 a new object based on obj1 and obj2
     */
    function merge_options(obj1, obj2) {
        var obj3 = {};
        for (var attrname in obj1) { obj3[attrname] = obj1[attrname]; }
        for (var attrname in obj2) { obj3[attrname] = obj2[attrname]; }
        return obj3;
    }

and this line "return wasm;" that is why
 //return wasm;
 return merge_options(wasm, __exports);

this should ideally be fixed in a patch release.

Hi, I tried your code, can get the width
example: https://github.com/lencx/learn-wasm

react: https://github.com/lencx/learn-wasm/blob/main/src/views/teste.tsx
rust: https://github.com/lencx/learn-wasm/tree/main/@rsw/teste

website: https://wasm.nofwl.com/#/rsw/issues/teste
use vite to quickly start a wasm project: https://github.com/rustwasm/wasm-pack/issues/1016

@lencx
I didn't understand what you meant exactly?
More my code on github is already with the correction that I informed here.
I don't use npm , webpack, react or anything like that.
Of the 20 projects I work on at the company, 15 are AngularDart and others are pure Javascript or Flutter
My web frontend projects are done with AngularDart or pure javascript, both my personal projects and my projects in the company where I work.

Sorry, because just looking at the code example you gave, I don’t know if you don’t use npm, webpack, etc.

encountered the same issue: https://github.com/GopherJ/webgpu-shaders/actions/runs/10552008970/job/29230223976


[Debugging Trick] Use Build Scheme ENAScreenshots with specific Launch Arguments to test the user interface on the simulator

[x] None of the other issue templates apply to this issue.

Problem:
With the simulator you are able to test and debug a lot of the cwa code.
However, a lot of code pathes are not easy to cover.
Examples are: What happens after a green or a red warning? After a red antigen test result? After a red PCR test result?
If you are mainly interested in testing and debugging of the user interface, the following trick may help you.
Let's start with an example: You are interested to test the user interface after a green warning.
Recipe for this specific use case:

in Xcode, select scheme ENAScreenshots (instead of ENACommunity), and Build for Testing

open file ENAUITests/Home/ENAUITests_01a_Home
search function test_homescreen_riskCardLow_riskMultipleDays
The implementation sets several launch arguments, followed by the line app.launch()
set a breakpoint after this line app.launch()

click the small triangle at the function definition to start the test, and wait till the breakpoint hits and the simulator device has launched
you see the green risk card, showing exposures with low risk on 4 days (according to the launch arguments).
But the amazing part is: you can now take over, and manually test what you want (e.g. have a look at the explanations for the risk card, at the contact journal, etc)

Note: the supported launch arguments are defined in ENAUITests/LaunchArguments.swift
Do not forget:
The Scheme ENAScreenshots are configured with a focus to test the user interface.
Most of the processing "below the surface" is mocked, so you will not be able to debug the true code here.

If you want to explore a little more freely, you can also create a custom Scheme (which is not shared) to trigger some of the mocks.

Thanks for sharing @whiskey - such tricks are always useful 👍😅😎🎉

Hey @whiskey Do you happen to know if I can also "fake" having a positive test result in the app using this feature (launch arguments)?
I want to test https://github.com/corona-warn-app/cwa-app-ios/pull/4331.

@Ein-Tim I can check in the evening after work

@ndegendogo
That would be great! You can also write me a DM via Slack, if that's easier for you :D

if I can also "fake" having a positive test result in the app

Yes. Try my original procedure with this test


V5: Fix extra space in roll template name

@clevett the most recent update apparently broke the roll templates for all the VtM 5th edition sheet. I took a quick look at it and it is easy to fix. I don't know if you can do anything about getting this live before next Tuesday.

Good find.
Thank you.


Set call_p.multiple_results to True

Not sure about the use internally in JAX, but I use it for testing in my own code. It's the simplest instance of a call primitive and is useful for debugging too.


Maybe compatible issues with other mods below?

Log:
[COP+CompanionShareSpells] [Exception] CompanionShareSpells_Patch.GetTargetAnchor: NullReferenceException - Object reference not set to an instance of an object
System.NullReferenceException: Object reference not set to an instance of an object
at MicroscopicContentExpansion.NewContent.Classes.AbilityData_AlchemistInfusion_Patch.Postfix (Kingmaker.UnitLogic.Abilities.AbilityData __instance, System.Boolean& __result) [0x00016] in :0
at (wrapper dynamic-method) Kingmaker.UnitLogic.Abilities.AbilityData.Kingmaker.UnitLogic.Abilities.AbilityData.get_AlchemistInfusion_Patch1(Kingmaker.UnitLogic.Abilities.AbilityData)
at CharacterOptionsPlus.MechanicsChanges.CompanionShareSpells+CompanionShareSpells_Patch.GetTargetAnchor (Kingmaker.UnitLogic.Abilities.AbilityData __instance, Kingmaker.UnitLogic.Abilities.Blueprints.AbilityTargetAnchor& __result) [0x00022] in <09179ce675874bc3a5fca6fe03f8753f>:0
[BubbleBuffs] finding spells
[BubbleBuffs] System.NullReferenceException: Object reference not set to an instance of an object
at MicroscopicContentExpansion.NewContent.Classes.AbilityData_AlchemistInfusion_Patch.Postfix (Kingmaker.UnitLogic.Abilities.AbilityData __instance, System.Boolean& __result) [0x00016] in :0
at (wrapper dynamic-method) Kingmaker.UnitLogic.Abilities.AbilityData.Kingmaker.UnitLogic.Abilities.AbilityData.get_AlchemistInfusion_Patch1(Kingmaker.UnitLogic.Abilities.AbilityData)
at (wrapper dynamic-method) Kingmaker.UnitLogic.Abilities.AbilityData.Kingmaker.UnitLogic.Abilities.AbilityData.get_TargetAnchor_Patch2(Kingmaker.UnitLogic.Abilities.AbilityData)
at BubbleBuffs.BufferState.AddBuff (Kingmaker.EntitySystem.Entities.UnitEntityData dude, Kingmaker.UnitLogic.Spellbook book, Kingmaker.UnitLogic.Abilities.AbilityData spell, Kingmaker.UnitLogic.Abilities.AbilityData baseSpell, UniRx.IReactiveProperty1[T] credits, System.Boolean newCredit, System.Int32 creditClamp, System.Int32 charIndex, System.Boolean archmageArmor, BubbleBuffs.Category category) [0x000f8] in :0    at BubbleBuffs.BufferState.RecalculateAvailableBuffs (System.Collections.Generic.List1[T] Group) [0x002a4] in :0

Should be (at least partially) fixed in 1.9.1
Now errors are handled properly and logged (which means you might see them in logs), but game shouldn't break.
If you continue to see errors in logs, please try to identify which mods cause them. I have BubbleBuffs and Character Options+ (Share Spells enabled) and I'm not hitting any errors on my side.

Issue fixed. Thanks for your fixing in time.


Upgrade to Docusaurus 3

Checklist

[x] I have read the How to Contribute.
[x] I have run yarn build after adding my changes without getting any errors.
[x] I have not committed any changes to yarn.lock (or have removed these changes).

I've made quite a few changes, and everything seems to be working now, including the previously broken Changelog.
The main issue was with pulling markdown files such as CIPS and others. Some of the files didn’t follow the correct formatting, which caused breaks on our side. Creating a special case for each file would have been a nightmare since every file that was pulled had its own missing comma or bracket that was really hard to track.
Since the biggest issue with upgrading to Docusaurus 3.0 was the transition to MDX, one of the biggest game-changers that helped was Experimental Commonmark. That quickly took care of the issue.
I added the following code to docusaurus.config.js:
  markdown: {
    format: "detect"
  },

However, this ended up breaking some of our markdown files, specifically those using the <Tabs> element. The solution I came up with was to transition those files from .md format to .mdx. I've decided to leave the decision of transitioning all the files to .mdx up to everyone else.
Please feel free to test it out locally and check if I've missed anything, thank you!

@rphair

I don't know what to make of this, since I can personally guarantee the CIP editors have been rigorous about following Markdown formatting conventions, and have been fixing linking & other formatting issues that caused things to break on the Dev Portal for the 2+ years I've been involved in both projects. Any real breach of Markdown rules would have been identified on the previous version of Docusaurus.

Regarding that, I've ran npx docusaurus-mdx-checker (suggestion from here

I don't get why you cut out all the truncate comments in the blog posts, we need them for the preview.
Also the md to mdx seems to be not necessary, what's the reasoning behind that? Thanks.

This PR contains too many problems, assumptions and decisions that will cause us problems in the near future. In this state it should be converted in a draft.

I don't get why you cut out all the truncate comments in the blog posts, we need them for the preview.
Also the md to mdx seems to be not necessary, what's the reasoning behind that? Thanks.

I've stated above the reasoning behind converting certain files from .md to .mdx, you are more than welcome to test out those files in .md format and see it for yourself.

I've added back truncates and fixed most of the warnings. At the moment the only warnings are CIP files related.

At the moment the only warnings are CIP files related.

@fill-the-fill it's true: the broken rendering of the CIP content from GitHub still generates a lot of spurious warnings.  Are you suggesting that the Markdown content of the CIPs themselves is the true reason for this?  If so, can you give an example in the actual CIP content?

@rphair
For example, in CIP-0001, line 338 in sentence:
Once a proposal has reached all requirements for its target status (as explained in [Statuses](#Statuses)) and has been sufficiently and faithfully discussed by community members, it is merged with its target status.
[Statuses](#Statuses)) should be [Statuses](#statuses))
I've managed to remove most of the warnings this morning by adjusting CIP and CPS scripts, but here is the list of warnings that should probably be taken care of on CIP repo instead:
- Broken anchor on source page path = /docs/governance/cardano-improvement-proposals/CIP-0001:
   -> linking to #Statuses (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0001#Statuses)
- Broken anchor on source page path = /docs/governance/cardano-improvement-proposals/CIP-0002:
   -> linking to #requested-output-set (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#requested-output-set)
   -> linking to #initial-utxo-set (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#initial-utxo-set)
   -> linking to #maximum-input-count (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#maximum-input-count)
   -> linking to #coin-selection (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#coin-selection)
   -> linking to #remaining-utxo-set (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#remaining-utxo-set)
   -> linking to #utxo-balance-insufficient (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#utxo-balance-insufficient)
   -> linking to #utxo-not-fragmented-enough (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#utxo-not-fragmented-enough)
   -> linking to #utxo-fully-depleted (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#utxo-fully-depleted)
   -> linking to #maximum-input-count-exceeded (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#maximum-input-count-exceeded)
   -> linking to #available-utxo-list (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#available-utxo-list)
   -> linking to #unpaid-output-list (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#unpaid-output-list)
   -> linking to #accumulated-coin-selection (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#accumulated-coin-selection)
   -> linking to #cardinality-1 (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#cardinality-1)
   -> linking to #available-utxo-set (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#available-utxo-set)
   -> linking to #accumulated-coin-selection-1 (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#accumulated-coin-selection-1)
   -> linking to #phase-1-random-selection (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#phase-1-random-selection)
   -> linking to #phase-2-improvement (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#phase-2-improvement)
   -> linking to #termination-1 (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#termination-1)
   -> linking to #rationale-how-does-this-cip-achieve-its-goals (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#rationale-how-does-this-cip-achieve-its-goals)
   -> linking to #motivating-principles (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#motivating-principles)
   -> linking to #goals (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#goals)
   -> linking to #selected-utxo-set (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#selected-utxo-set)
- Broken anchor on source page path = /docs/governance/cardano-improvement-proposals/CIP-0026:
   -> linking to #special-case--phase--1-monetary-policies (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0026#special-case--phase--1-monetary-policies)
- Broken anchor on source page path = /docs/governance/cardano-improvement-proposals/CIP-0071:
   -> linking to #Creation-of-Ballot-Without-Casting-a-Vote (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0071#Creation-of-Ballot-Without-Casting-a-Vote)
   -> linking to #Ballot-Box---Smart-Contract (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0071#Ballot-Box---Smart-Contract)
   -> linking to #Motivation (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0071#Motivation)
   -> linking to #Ballot---Plutus-Minting-Policy (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0071#Ballot---Plutus-Minting-Policy)
   -> linking to #Ballot-Counter---Authorized-Wallet (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0071#Ballot-Counter---Authorized-Wallet)
- Broken anchor on source page path = /docs/governance/cardano-improvement-proposals/CIP-0086:
   -> linking to #rationale (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0086#rationale)
- Broken anchor on source page path = /docs/governance/cardano-improvement-proposals/CIP-0088:
   -> linking to #6--cip-specific-information (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0088#6--cip-specific-information)
- Broken anchor on source page path = /docs/governance/cardano-improvement-proposals/CIP-0095:
   -> linking to #acknowledgements (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0095#acknowledgements)
- Broken anchor on source page path = /docs/governance/cardano-improvement-proposals/CIP-0108:
   -> linking to #acknowledgements (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0108#acknowledgements)
- Broken anchor on source page path = /docs/governance/cardano-improvement-proposals/CIP-0119:
   -> linking to #Acknowledgements (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0119#Acknowledgements)
   -> linking to #paymentAddress (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0119#paymentAddress)

thanks @fill-the-fill - I'd be ready to post an issue on the CIPs repo to decide on a standard for anchor links that will be most portable outside of GitHub, including Docusaurus.  But first I need to understand exactly what this version of Docusaurus does not "like" about these links.
I thought it might be a matter of capitalisation (with all lowercase being canonical), but while that explains the first warning (CIP-0001) it's not an issue with the second (CIP-0002 first item): since the anchor Docusaurus "likes" is also used everywhere in the CIP-0002 source.
And at the end you see Docusaurus selecting "canonical" links that have initial or camel capitalisation, so it can't be as simple as that (see here, where GitHub generates a lowercase link while Docusaurus says it wants initial capitalisation).
So unless you can explain the rules that links in the source documents are expected to follow, we may need more verbose information about how the warnings are being flagged... we'd need a line number and/or other precise context, not just the file that link is in.  (Could you set an option in the build script that's more verbose about where the warning is?)
Once we can put those rules into an issue on the CIPs repository then we might start making these corrections preemptively.  Authors might not be able to write their documents that way, but we've talked about adding a GitHub CI for the CIPs repo that will do some format massage & file updates when checking in pull requests & we could add something there when that is set up.

@rphair thanks for your reply. It seems like the issue with the example in CIP-2 is that some of the links are broken and can't be read, look at the example bellow:

Here is another issue, those should be redirecting to a specific part of the page, but they're not recognized, in the example bellow you can see I'm clicking on the link, usually it goes to that part of the page, in this example nothing happens:

So unless you can explain the rules that links in the source documents are expected to follow, we may need more verbose information about how the warnings are being flagged... we'd need a line number and/or other precise context, not just the file that link is in. (Could you set an option in the build script that's more verbose about where the warning is?)

In my opinion, this is not needed, but I could be wrong, for example:
 -> linking to #accumulated-coin-selection (resolved as: /docs/governance/cardano-improvement-proposals/CIP-0002#accumulated-coin-selection)
Easily can be found by searching #accumulated-coin-selection. I don't believe there are any duplicates in the warnings.

Easily can be found by searching #accumulated-coin-selection. I don't believe there are any duplicates in the warnings.

There are aren't duplicate warnings, but the links which generate the warnings are duplicated in individual CIP documents.  See #requested-output-set in CIP-0002 (as quoted in https://github.com/cardano-foundation/developer-portal/pull/1335#issuecomment-2399291533) for a good example: this anchor appears 20 times in the document, so without a line number you'd have to investigate all of them to find which was generating the warning.  😬

Easily can be found by searching #accumulated-coin-selection. I don't believe there are any duplicates in the warnings.

There are aren't duplicate warnings, but the links which generate the warnings are duplicated in individual CIP documents. See #requested-output-set in CIP-0002 (as quoted in #1335 (comment)) for a good example: this anchor appears 20 times in the document, so without a line number you'd have to investigate all of them to find which was generating the warning. 😬

I will come back to you very soon

thanks @fill-the-fill - that's very helpful.  I do think eventually we should have diagnostics from yarn build itself about where the exact problems are, but for these I'll address them upstream after finishing some work deadlines this week or two (referring back here & marking up the outline above) and then file an issue if these problems have common elements, so that other editors & maybe authors can be aware of them (cc @Ryun1 @perturbing).

Ok looks like build broke again, I will check it soon

Thanks for the effort again @fill-the-fill and everyone that is participating here. What I'm concerned about is: the list of compromises is getting longer and longer to maintain this. We are at a point where it is questionable not to remove the CIP from the portal. cips.cardano.org has been greatly improved in the last few months, you could try to index that so that you can still search for CIP content with the Developer Portal search but then land directly on cips.cardano.org.

@rphair We will very soon be updating cips.cardano.org to be automatically rebuilt once a push is made to the cips repo.

Unfortunately a bit offtopic but helps me to substantiate my argument above: build breaks now because of CIP-127

no @katomm that's a welcome comment & not really off topic because it was the basis for just referring the CIP other editors again back here in a parallel thread.  Here's the other one of the 2 with the same breakage:
10:matangi$ grep ^Title: */README.md | grep \`
CIP-0101/README.md:Title: Integration of `keccak256` into Plutus
CIP-0127/README.md:Title: `ripemd-160` hashing in Plutus Core

I'll push through a PR to fix these upstream right away & have asked the others for opinions about https://github.com/cardano-foundation/developer-portal/pull/1335#issuecomment-2419216985.

https://github.com/cardano-foundation/developer-portal/pull/1335#issuecomment-2420391244 fixed in https://github.com/cardano-foundation/CIPs/pull/930.

Builds should no longer be failing for this reason, as of https://github.com/cardano-foundation/CIPs/commit/e4c5f485c3047dda53ef8ea3ef31c42f7e3cc5d0.


SAKIII-4552 Content title in the entity widget should be threedotted and floated next to the mimetype icon

https://jira.sakaiproject.org/browse/SAKIII-4552

Merged via squash


Server sync v2 : Resume presence handling

We remove here the specific request used during catch-up sync v1 to handle separately the presence.
The presence are handled by the server sync v2 request when the event stream is resumed.

LGTM


HTTP client customizations

Hi Daniel,
I am interesting in setting certain options to the HTTP client this crate uses, but currently this is not supported. Would be useful to customise stuff such as timeouts, etc. Perhaps a new constructor could be added where a client could be passed? I think that would offer the greater degree of flexibility, but perhaps this is something that could be problematic for maintenance. Alternatively, perhaps we could a way to configure timeouts as it seems like the most necessary addition as of now?
Let me know, happy to send a PR! 😄

Hey @javierhonduco , yeah, I currently treat the actual HTTP client in use as an implementation detail and would like to keep it that way. That being said, I think we can just introduce some kind of builder infrastructure to make construction more configurable (similar to what reqwest already provides).
Feel free to open a pull request if you want to take a stab at the implementation.

Actually, perhaps the more appropriate solution would be to interface with the HTTP client via a trait only. Basically,
trait HttpClient {
  fn get(&self, url) -> /* whatever */
}

impl HttpClient for reqwest::Client {
  fn get(&self, url) -> ... {
    self.execute(Request::new(Method::GET, url))
  }
}

Or something like that. This way, we'd leave all configurability with the creator and would be more flexible when it comes to "backends" being used. Haven't fully thought that through, but it may be better down the line. It may also make adding async support more straight forward.

I thought about it some more. I think for the time being the best thing would be to just introduce some Builder infrastructure and stick with the current Client as I mentioned. The trait thing we can do once it truly becomes necessary. I think the latter will be more flexible and all, but the problem I see is that now it becomes kind of weird to have a "default" client (after all, all impls are basically equal), which means that out of the box usage would be more problematic (now users have to choose an HTTP client crate etc). At least I don't see a good way around this issue right now.
I think we may still introduce such a trait for use internally, just to have a clearer defined interface of what functionality we expect the HTTP client to provide.

Makes sense, thanks for sharing your thoughts! Will keep you updated. As of now being able to change the various timeouts and the user agent would probably go a long way. I don't expect any other changes needed for my use cases at least.

Good news, it seems that reqwest sets a 30s default timeout. We might want to make it configurable still, but it's not as high priority for me at least. I've used other HTTP clients in the past that had no timeout by default and was afraid it was the case here too.


Wrap Text

Is it possible to specify an option to wrap the text for special days in monthly view (i.e., go to a new line)?

Hi @ApexHeel,
at this moment it is possible to add text with several lines with \n, as shown in the following example:
calendR(month = 7, year = 2022,
        special.days = c(1, 5, 12, 28),
        text = "Line 1\nLine 2\nLine 3",
        text.pos = c(1, 5, 12, 28))

Resulting into:

However, it the text is too big it might overflow. In that scenario, you should increase the size of the calendar or make the font smaller.

That's perfect for my needs. Thank you!


Possibility to disable Microphone

When starting SoundCleod I get a dialog saying "SoundCleod is using your Microphone Allow/Stop". Pressing Stop also stops SoundCleod. This is identical to what happens with Chrome when a website requires Microphone.
Would it be possible to have an option (any kind of Option will do) to disable Microphone if there is no need for it?

Hi @jsi-p, thanks for reporting this issue! Sounds very weird as SoundCleod does (should) not need the microphone at all. What operating system (and what version of it) are you using? What is your version of SoundCleod?

I have macOS 10.13.6. SoundCleod version is 1.4.0.

That sounds very weird. If you installed SoundCleod from https://soundcleod.com/ this should not happen.
Do you get prompted for microphone access if you use SoundCloud in Chrome?

Well actually Chrome doesn't ask when going to soundcloud.com. And seems like now SoundCleod doesn't ask it anymore. I did reinstall SoundCleod, though, so I'm not sure if soundcloud.com stopped asking for the microphone, or whether reinstall helped :)
Thanks anyways. I think this issue can be closed, since the problem disappeared.

I just realized it was Sophos which warned about Chrome (and SoundCleod) using the microphone. And now the popups have returned. I even got a screenshot of one, so I can paste it here.

https://support.home.sophos.com/hc/en-us/articles/360000163143-Setting-Privacy-Guard-exceptions
"Privacy Guard is a Sophos Home Premium feature that protects against unwanted use of the webcam and microphone of your computer. Sophos Home notifies you when a non-Apple signed application that uses a camera and microphone is launched."

@jsi-p thanks for the update! I think this is a false alarm from Sophos. SoundCleod is indeed signed with a non-Apple certificate (which would cost me $99 / year) and the underlying engine (Electron) is potentially capable of using the microphone. However I think it is not able to use the microphone without an explicit permission request, which means if SoundCleod or soundcloud.com would ever actually try to use the microphone you will have to allow or deny that.
As I am 99.9% sure SoundCleod is currently not using the microphone (ie. listening or recording any audio) I suggest you reach out to Sophos to refine their warning to something like "SoundCleod is capable of using the Microphone". I believe it is also fine to permanently deny microphone access in this case.

I figured it is actually impossible to capture audio with Electron:
https://electronjs.org/docs/api/desktop-capturer#caveats


Deriving TryFromBytes warns about non_camel_case_types

When you derive TryFromBytes on an enum like this:
#[repr(u32)]
#[allow(non_camel_case_types)]
#[derive(TryFromBytes)]
pub enum Code {
    I32_ADD,
    I32_SUB,
    I32_MUL,
}

You get warnings about non_camel_case_types from the expanded code:
// ...
#[repr(u32)]
#[allow(dead_code)]
enum ___ZerocopyTag {
    I32_ADD,
    I32_SUB,
    I32_MUL,
}
// ...

Adding #[allow(non_camel_case_types)] to the ___ZerocopyTag will fix this.

Thanks for reporting this! I've opened a fix in #2057.

Closed in #2057


Unsolicited reboot and subsequent application fault on Windows 10

While working, the Keybase GUI popped-up for a split second and then I got Windows' "Restaring" screen.
Upon restart I checked the Event Logs and saw this (some identifiers anonymized):
The process C:\Users\user\AppData\Local\Temp\{905BDD7E-09B8-4E65-9A16-4A7D2B0C601F}\.cr\Keybase_1.0.22-20170502065015+f384d79.386.exe (PCNAME) has initiated the restart of computer PCNAME on behalf of user domain\user for the following reason: Application: Installation (Planned)
 Reason Code: 0x80040002
 Shutdown Type: restart
 Comment:

Also, the Keybase GUI doesn't start now, and the Event Log contains this event (some identifiers anonymized):
Faulting application name: Keybase.exe, version: <IP_ADDRESS>, time stamp: 0x584ba0b4
Faulting module name: Keybase.exe, version: <IP_ADDRESS>, time stamp: 0x584ba0b4
Exception code: 0x80000003
Fault offset: 0x00264ef9
Faulting process id: 0x2c4c
Faulting application start time: 0x01d2c3ea9600ef39
Faulting application path: C:\Users\user\AppData\Local\Keybase\Gui\Keybase.exe
Faulting module path: C:\Users\user\AppData\Local\Keybase\Gui\Keybase.exe
Report Id: fa111c7c-5fb2-4aa1-9999-d2d8b64ef204
Faulting package full name:
Faulting package-relative application ID:

Thanks for the report, sorry for the hassle.
Please could you try running keybase log send from inside the Keybase Shell terminal app?
CC @zanderz

@cjb: Done!
Log ID: 78fc4ceec1793d298ae7091c

I'm going to re-install keybase. I'm just waiting for your feedback to make sure there's nothing else you may need before I do this.
BTW: Will I have to add as new device?
TIA

Hi, it'll be a few hours before we can look into the logs and get back to you -- if you need to use Keybase before then I'd say go ahead and reinstall, otherwise it might be useful to have your system still in the bad state.

No hurry. I'll wait.

On Windows, the silent update sequence is supposed to launch our package with the /quiet option, which in turn uninstalls the current version and installs the new one. Your log shows that the silent uninstall failed because some GUI process was still running, holding files:
Info 1603.The file C:\Users\cdokolas\AppData\Local\Keybase\Gui\ffmpeg.dll is being held in use by the following process: Name: slack, Id: 8808, Window Title: '(not determined yet)'.  Close that application and retry.

...
Info 1603.The file C:\Users\cdokolas\AppData\Local\Keybase\Gui\node.dll is being held in use by the following process: Name: slack, Id: 8808, Window Title: '(not determined yet)'.  Close that application and retry.

 Do you have any idea why it might be holding those files?
Files in use is one of the many conditions under which our installer will say a reboot is required, which unfortunately in silent mode will just happen immediately, unprompted. We will try to address this case as well. Meanwhile, it should work if you use the control panel to uninstall Keybase first, then re-install from the website.

https://keybase.atlassian.net/browse/CORE-5110

Update: Re-installation fixed it. No re-registering of client needed.

Same problem happened here a few minutes ago:
The process C:\Users\user\AppData\Local\Temp\{36FE3061-C174-4F9C-9B60-D07E6D1EAD0F}
\.cr\Keybase_1.0.22-20170515071844+b608f0e.386.exe (pcname) has initiated the restart
of computer pcname on behalf of user pcname\user for the following reason: Application:
Installation (Planned)
Reason Code: 0x80040002
Shutdown Type: restart

Logged at 15/05/17 18:00:32 (GMT-3). keybase log send is failing with Client.Timeout exceeded while awaiting headers. Version is 1.0.22-20170515071844+b608f0e.

The auto-reboot happened again a few minutes ago as I was working on a remote virtual machine doing recovery on a database.
The new installation started without problems.
Guys, this auto-reboot thing has to be fixed!

@cdokolas Can you do a Keybase log send at the Keybase she'll?

Log ID: a9300331b8f299ee4e312c1c

@cdokolas Thanks for the log. We have made a change to prevent this, but it was not in your updater yet, but now it is:
https://github.com/keybase/go-updater/pull/133/commits/3faa5de16ed2f2815238c852787ca520c44f90ec
Please let us know if it happens again with this update, we don't like silent reboots either and would never do it on purpose.


Allow only signed commits to be proposed downstream

Merge commits created by Zuul are signed with the GitHub key. Allow only
such commits to be proposed downstream by configuring
allowed_gpg_keys. The list can be extended with other keys if needed.
Signed-off-by: Hunor Csomortáni<EMAIL_ADDRESS>

What's the benefit?

One is that only commits created by a verified identity are proposed as an update to dist-git.
The other one is to have this feature be used by us, so that we can notice if it's broken :)

Okay, let's discuss this within the team, before merging this. Adding it to arch.


Sleepypoint

Shall we immediately enable it?

This sounds very odd / surprising. If open shift is the one doing the routing and the one sending the SIGTERM, why isn't this synced on their side? I obviously know nothing, but would be interested in learning more about the problem. Is this a known issue? Were there any discussions/reports about it?

This sounds very odd / surprising. If open shift is the one doing the routing and the one sending the SIGTERM, why isn't this synced on their side? I obviously know nothing, but would be interested in learning more about the problem. Is this a known issue? Were there any discussions/reports about it?

Good questions! Back story: I was running 22 parallel osbuildImage jobs running against staging AOC composer. FTR, koji-osbuild queries the job status every 2 seconds. If it fails to query composer, if fails the job. Everything went smoothly until stage got redeployed. During the next 15 seconds, all of these jobs failed because of GenericError: Failed to get the compose status: upstream connect error or disconnect/reset before headers. reset reason: connection failure.
That basically points at the fact that our redeployments aren't zero-downtime. I googled and found the following articles:

https://deepsource.io/blog/zero-downtime-deployment/
https://engineering.rakuten.today/post/graceful-k8s-delpoyments/

Quoting the first article:

Once a new pod is alive and ready, Kubernetes will take an old one out of service and thus update the pod’s status to Terminating, remove it from the endpoints object, and send a SIGTERM. The SIGTERM causes the container to shutdown, in a (hopefully) graceful manner, and to not accept any new connections. After the pod has been evicted from the endpoints object, the load balancers will route the traffic to the remaining (new) ones. This is what caused our availability gap in our deployment; the pod was being deactivated by the termination signal, before, or rather while the load balancer notices the change and can update its configuration. This re-configuration happens asynchronously, thus makes no guarantees of correct ordering, and can and will result in few unlucky requests being routed to the terminating pod.

Both articles suggest adding a bit of sleep before stopping accepting new connections, so k8s/oc has time to realize that this pod is going down and remove it from its routing tables. I even found a project that had to do the same thing: https://github.com/open-policy-agent/opa/pull/2834
Happy to find a better solution, but my (limited) research showed that this is what people are apparently doing. :shrug:
BTW, we should also make koji-osbuild's behavior better. It should probably tolerate a bit of a downtime when querying the status? Or maybe implement yet another retrying mechanism? Curious to hear your thoughts.

Thanks for the details! Sounds like the best call, though might be worth investigating further to see if there really is no other way, or if this should be in the AppSRE guidelines?
How about we don't consider a missing status as failure in koji? Just ignore it?

@Gundersanne Would you mind making the PR title more expressive? That would help make the release notes more useful - thanks <3


ci: add tests workflow

Add a workflow that runs nimble build and test.
The tests currently fail, ~so make the workflow indicate success even if the tests fail for now. This workflow is still useful because it ensures that nimble build succeeds - that command errored on Linux until recently (https://github.com/crashappsec/con4m/pull/128).~
Closes #121

To-do:

[x] Consider either:

[ ] requiring a PR to push to the jtv/v2 branch
[x] or running this tests workflow on push to jtv/v2

[ ] Consider not running on push to dev if we won't use that branch in the future

v2 is not a protected branch. as such there are no merge requirements here


Please add AES 256 Encryption

Please add AES 256 Encryption I would very much like.
Danke schön habibi

duplicate of #11


port to SwiftNIO

Co-Authored-By: Ben Langmuir<EMAIL_ADDRESS>Motivation:
SwiftNIO offers a lot of functionality that can be used to make the
sourcekit-lsp code more straightforward and more testable.
Modifications:
Replace DispatchIO with SwiftNIO, specifically NIO's PipeChannel which
allows two UNIX pipes / terminals / ... to be used as the input/output
file descriptors for a Channel.
Result:
More straightforward code.

@swift-ci please test

@swift-ci please test

Heads up @gmittert.  As we discussed, I'm okay with keeping around the DispatchIO implementation temporarily for Windows until someone has time to port NIO there.  Since I am not setup to test this on Windows, my suggestion is that we remove the DispatchIO code in this PR, with the understanding we will accept a PR to add it back in a way that works on Windows.  I'd rather not #if out the code until someone is actively making sure it works.

@swift-ci please test

@benlangmuir I rebased this against the latest master now

@swift-ci please test

@swift-ci please test

@benlangmuir the testIndexShutdown fails for me on master too, any known issues?

Sorry missed your question: no, I'm not aware of any issues there.  This test is passing in CI and in other PR tests, so I'm surprised you saw it fail on master.  Maybe it's non-deterministicly failing on master?  On the other hand, I am not surprised it could be affected by this PR, since it tests behaviour during shutdown calling the close handler, including the case where shutdown is triggered by closing the pipes.

@swift-ci please test

Sorry missed your question: no, I'm not aware of any issues there. This test is passing in CI and in other PR tests, so I'm surprised you saw it fail on master. Maybe it's non-deterministicly failing on master? On the other hand, I am not surprised it could be affected by this PR, since it tests behaviour during shutdown calling the close handler, including the case where shutdown is triggered by closing the pipes.

Thanks, fixed now, see https://github.com/apple/sourcekit-lsp/pull/187/files#r353803507

@swift-ci please test

@benlangmuir green now :)

@swift-ci please test

@swift-ci please test

@swift-ci please test

The Swift project moved the default branch to main and deleted master branch, so GitHub automatically closed the PR. Please re-create the pull request with main branch.
More detail about the branch update - https://forums.swift.org/t/updating-branch-names/40412


Using maps in for loops

The docs indicate you can use maps in for loops but there are no examples. For the time being I'm using map.values.

Yeah such syntax would be great to have:
{% for key,value in map %}

The syntax for iterating over a map is as follows:
{% for entry in map %}
  {{ entry.key }} - {{ entry.value }}
{% endfor %}

The documentation is definitely needing an update; I'm doing that right now. Thanks.

Awesome, thanks!


MYSQL Bug

Here:
http://minilebenmc.de/Bugs/pex/1.png
http://minilebenmc.de/Bugs/pex/2.png

Try deleting all the tables related to PEX (permissions, permissions_entity and permissions_inheritance). Let the plugin remake the tables

Unfortunately PermissionsEx is currently unmaintained and no further updates are planned. Because of this, all pull requests are being closed. If you are looking for an actively maintained permissions plugin, take a look at LuckPerms. It is compatible with major server platforms and can import data from PEX.


[Discuss] Use coffeelint

Closes #325
Are there any rules you want to add or remove?

I'd like to set line_endings, missing_fat_arrows, max_line_length, no_tabs, no_trailing_whitespace, no_unnecessary_fat_arrows, and cyclomatic_complexity.
I would set all of the checks to error level, except maybe missing_fat_arrows and cyclomatic_complexity.
I've been using no_this for a while and I'm starting to get annoyed with it, because it forces me to use standalone @.

I would split 2d6c229 into one commit per file, otherwise it's going to be painful to merge.
Or at least, it'd be nice to have the creation of coffeelint.json on it's own commit.

The missing_fat_arrows rule isn't working for me, if I change the arrows according to coffeelint I get a lot of errors like this one:
Uncaught TypeError: _this.runAndMoveDown is not a function

We can use no_this along with no_stand_alone_at  to prevent standalone @

On 09/07/16 13:33, Lukas Geiger wrote:

The |missing_fat_arrows| rule isn't working for me, if I change the arrows according to |coffeelint| I get a lot of errors like this one:
|Uncaught TypeError: _this.runAndMoveDown is not a function |

I'm using:
  "missing_fat_arrows": {
    "level": "error",
    "is_strict": false
  },

and
$ coffeelint --version
1.15.0

We can use |no_this| along with |no_stand_alone_at| http://www.coffeelint.org/ to prevent standalone |@|

+1

@n-riesco > I'm using:
  "missing_fat_arrows": {
    "level": "error",
    "is_strict": false
  },

This rule breaks functionality in kernel-manager.coffee.
I'm using the linter-coffeelint atom package which uses coffeelint 1.9.7.

The coffeelint website says this about missing_fat_arrow:

Warns when you use this inside a function that wasn't defined with a fat arrow. This rule does not apply to methods defined in a class, since they have this bound to the class instance (or the class itself, for class methods). The option is_strict is available for checking bindings of class methods. It is impossible to statically determine whether a function using this will be bound with the correct this value due to language features like Function.prototype.call and Function.prototype.bind, so this rule may produce false positives.
default level: ignore

I think we should remove this rule.

On 09/07/16 14:20, Lukas Geiger wrote:

The coffeelint website says this about |missing_fat_arrow|:
I think we should remove this rule.

I find it very convenient with callbacks.
The README.md in https://github.com/AtomLinter/linter-coffeelint says that it is possible to use alternative coffeelint versions by specifying the version in our project's package.json.

Coffeelint 1.15.7 highlights the same errors as version 1.9.7

I don't have a problem with the rule. If I change the arrows in kernel-manager according to coffeelint Hydrogen fails.
I'm still new to coffescript. @n-riesco Can you take a look why after fixing the missing_fat_arrow errors hydrogen fails?

On 09/07/16 14:49, Lukas Geiger wrote:

Coffeelint 1.15.7 highlights the same errors as version 1.9.7

Could you run node_modules/.bin/coffeelint --rules coffeelint.json lib/main.coffee in the terminal?
I've tried both 1.9.7 and 1.15.7 without problems.
I'm gonna try linter-coffeescript next.

On 09/07/16 14:55, Lukas Geiger wrote:

I don't have a problem with the rule. If I change the arrows in |kernel-manager| according to |coffeelint| Hydrogen fails.
I'm still new to coffescript. @n-riesco https://github.com/n-riesco Can you take a look why after fixing the |missing_fat_arrow| errors hydrogen fails?

The rule missing_fat_arrows gets confused with KernelManager (with Hydrogen too), because KernelManager is not defined as a class.
I've been meaning to re-write KernelManager a class for a while, so I guess this could be a good time.
I'm not sure about Hydrogen, though.
The examples in the Atom documentation use plain objects to define a package. This works just fine as long methods are always invoked using the dot notation; i.e. this works:
Hydrogen.activate(state)

but this wouldn't:
activate = Hydrogen.activate
activate(state)

I'm not going be able to look at this until the evening.
I will convert KernelManager to a class and see what the rule missing_fat_arrows reports.
Then, we can continue the discussion.

I rebased this PR and did some additional refactoring of the run commands


Use https protocol to load prebuild mongodb image

It's better to use https protocol to load mongodb binary
e.g.
current load url  is:
http://downloads.mongodb.org/linux/mongodb-linux-x86_64-debian71-latest.tgz
but resource is available via
https://downloads.mongodb.org/linux/mongodb-linux-x86_64-debian71-latest.tgz
as well
it may help to use this library for unit tests on free plans on service CI or cycle CI
currently it hungs with error like this
  mongodb-download-MongoDBDownload isDownloadPresent() location missing: false +0ms
(node:111) UnhandledPromiseRejectionWarning:
Unhandled promise rejection (rejection id: 2): Error: Protocol "http:" not supported. Expected "https:"
Too long with no output (exceeded 10m0s)

We has solved this problem by following workaround: fix mongodb-download package version in package.json to 2.2.3 - after it works very well
"mongo-unit": "^1.2.0",
"mongodb-download": "2.2.3",
"mongodb-prebuilt": "^6.3.4",

But of course problem still faced and should be fixed by mongodb-prebuild maintainers

Should be fixed by winfinit/mongodb-download#27


Latency metrics and monitoring

We should introduce new metrics to monitor latency between agents, server and preferably some external hosts:

ncagent_server_latency - gauge type. Network delay (in ms) between agent and server. Labels: agent - agent name, similar to existing counters
ncagent_host_latency - gauge type. Network delay between agent and external host. Labels: agent - agent name, similar to existing counters, host - host/IP we're checking latency for. List of external hosts for this check should be passed to netchecker agents via ENV variables or CLI arguments.

Fixed by https://github.com/Mirantis/k8s-netchecker-server/pull/96


In any scene, after touching a wall the player will flicker as if they're are jumping

Found:
In any scene, after touching a wall the player will flicker as if they're in jumping when only moving on the ground
Repro Steps:
1 - Open Game using pressing Play from the preloader scene
2 - Reach a scene with walls
3 - Touch a wall
4 - Move around
Actual Result:
The player flickers and becomes invisible when standing still, issue stops upon jumping
Expected Result:
The player be visible while simply walking/running
Build:
Commit 80
a088790
https://gyazo.com/39f5f1b37c75651a9d0262811b4af40e

I've adjusted the script to take account how many surface the player has made contact with so the player will remain visible during lateral movements after hitting a exiting from a second wall.
Please verify on Commit 81.


new feature: support network node that need to deal with heart beat or keep alive on the same socket

Currently the network node are bound with a certain protocol, this prohibits the usage of
rammbock from end/terminal that equipped with alive detection mechanism.
Since alive detection packet normally are not compatible with interaction protocol on the same socket,
we need to do some ugly hacking in _receive_msg_ip_port function in _NetworkNode class in order to involving rammbock in that kinds of scenario.
I come from Nokia, and our team hopes that our test cases can keep synchronized with robot and rammbock update.

Could you please submit this to Rammbock's issue tracker?

ok. Sorry for the misinformation.


NumericConversion: improve support for DateOnly and TimeOnly

Presently DateTime is supported in many generic plotting methods. Adding support for these types should allow them to be plotted easily as well...

I think this has been done
https://github.com/ScottPlot/ScottPlot/blob/56bb973600994ecda607ac430bf7ce20acad9e63/src/ScottPlot5/ScottPlot5/NumericConversion.cs#L56
https://github.com/ScottPlot/ScottPlot/blob/56bb973600994ecda607ac430bf7ce20acad9e63/src/ScottPlot5/ScottPlot5/NumericConversion.cs#L126-L127


using "throw" to prevent undefined but ts still says it is possibly undefined

Bug Report

🔎 Search Terms
typescript throw doesn't return
🕗 Version & Regression Information
Typescript: Version 4.9.3
Node: v16.16.0
⏯ Playground Link
The code required will be too long, github source: https://github.com/oniiichannnn/Seika/blob/main/src/Util/Discord/Basic Utils.ts#L363
💻 Code
Reproduced code:
function dosumthingpls (v:number|string|undefined, options: {d: boolean}):number {

    if (v === undefined && options.d) {

    } else
    if (v === undefined) throw internal({m:"undefined"});

    return dosumthing(v);

    function dosumthing (value: number|string):number {
        return 0
    };

    function internal (e: {m: string}) {
        return new Error(e.m);
    }
}

If you remove the else then the error goes away
🙁 Actual behavior
Typescript is saying that source will be undefined despite there being a if statement to validate if source is undefined. It ignores the throw.
🙂 Expected behavior
The error is supposed to not happen because if source is undefined then the code will be throwed and not executed further. So theoretically there shouldn't be a possibly of source being undefined.

if (v === undefined && options.d) {
    // no throw here
} else if (v === undefined) throw internal({m:"undefined"});
return dosumthing(v);

Assuming this repro code is representative, then if v is undefined and options.d is truthy, the else case will not be reached and control will fall through to dosumthing(v) -- with v = undefined.  The error is correct.


Reference implementation

As the WoT reference implementation you are refering to Webthings from Mozilla which features a great software stack, however not completely compliant with the W3C WoT recommendation. If you want to reference an implemenation that follows W3C you might want to add: https://github.com/eclipse/thingweb.node-wot

@wiresio oops, just noticed this issue now. Not sure why I didn't get a notification on it.
Thank you kindly for the correction. I'll update the documentation.


raftstore: modify the boot order of raft batch system

What have you changed? (mandatory)
TiKV may panic if StoreFsm receives a message and uses StoreFsm.store.start_time before it was initialized. So this PR modifies the boot order of raft batch system to make sure Msg::Start is the first message each FSM received.
What are the type of the changes? (mandatory)

Bug fix (change which fixes an issue)

How has this PR been tested? (mandatory)
Integration tests.
Does this PR affect documentation (docs) update? (mandatory)
No.
Does this PR affect tidb-ansible update? (mandatory)
No.

/run-integration-tests


format print rust_decimal equest

Hello, could you make formatter for rust_decimal?
So I can see a float number, and not like this:
{
      flags =<PHONE_NUMBER>
      hi = 0
      lo = 1
      mid = 0
    }

No, but you can do it yourself: https://github.com/vadimcn/codelldb/wiki/Custom-Data-Formatters


Expose tablet OutputSize

Resolves #6150
Related to https://github.com/ppy/osu/issues/12098
Required by https://github.com/ppy/osu/pull/31141
Description
Exposes new bindables OutputAreaSize and OutputAreaPosition, so that absoluteOutputMode.Output can be updated from osu.Game. This is used by https://github.com/ppy/osu/pull/31141 to scale the tablet output when screen scaling is set to "Everything".

Seems like a duplicate of https://github.com/ppy/osu-framework/pull/6166?

Seems like a duplicate of #6166?

That's a good catch. I can close this and instead use @Feodor0090's osu-framework changes as a base for https://github.com/ppy/osu/pull/31141 if that would be preferable. Their PR is more complete as it also includes the output position, which may be useful for future configurability.

#6166 is too outdated to work off of directly due to conflicts with osu.Game. So I've:

merged @Feodor0090's changes into this branch
updated https://github.com/ppy/osu/pull/31141 accordingly
Updated some wording and simplified logic

Apologies, this has made the commit history a little messy. I can rebase if desired, but I'll leave it as-is for now since CONTRIBUTING.md discourages rebasing.

aside from the above this looks roughly correct, but was there even any testing done here? no changes to test scenes to even add sliders to play with this or anything, so i question whether this was tested to work at all.

I assumed cross-testing with https://github.com/ppy/osu/pull/31141, which looks to be working well for at least the user. I haven't personally tested, if we can have some minimal framework tests that definitely would be appreciated.

but was there even any testing done here?

I've cross-tested with https://github.com/ppy/osu/pull/31141 and included a video in that PR demonstrating the new behaviour. I included a note in that PR asking for advice on how to do testing (since automated testing would require a way to mock tablet input). But I should have included that note on this PR as well.
I'll look into adding some sliders to the test framework, so that it can be tested manually.


IIt seems that ImageGen can only generate 10000 combined images,

is there a way user can specify the number of images or create a combined image for all images in render log?

Did you set the number of images with the command line argument -n, e.g., -n 20000?
10000 images is the default number in case somebody forgot to set the argument.
I just created > 10000


fix the wrapping of callable function in attack initialization

Issue: https://github.com/tensorflow/cleverhans/issues/361
Proposed Fix: If the model argument is not an instance of model.Model, first wrap it with model.CallableModelWrapper and then pass initialization to base class

LGTM assuming tests pass


fix: REST API broken links, Int testing devcontainer upgrade

Type of PR

Code changes
Test changes

Purpose

Fixing temporarily the REST API parking sensors broken links
Upgrading devcontainer for integration testing - debian version 12 and msodbcsql18
removing delete databricks cli line from main docker files as it fails on the rebuild container

Does this introduce a breaking change? If yes, details on what can break
Author pre-publish checklist

[ ] Added test to prove my fix is effective or new feature works
[X] No PII in logs
[ ] Made corresponding changes to the documentation

Validation steps

Launch devcontainer
deploy sample (deploy.sh)
configure git with adf
run ADF pipelines successfully

Issues Closed or Referenced

References #852

Thanks @LiliamLeme! As discussed in the phone - the devcontainer.json is the one running the post-create command. Also it is supposed to run when rebuilding as per the docker documentation here: https://code.visualstudio.com/docs/devcontainers/create-dev-container#_rebuild. Please if you find again the problem let me know and we open a specific issue for this one. Thanks again!


disable distracting suggestion text which appears as I'm typing in v7.3.0

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
I updated to v7.3.0 yesterday and suddenly every time I type something Powershell prints some "suggestion" text on the line in front of my cursor.
I guess that's what it is. It doesn't seem to function the way I would expect. Typing <tab> doesn't autocomplete the suggestion, and instead inserts some other text. Is it a preview of what <F8> would do?
I have no idea, but it is immensely distracting. Most of the time I am typing a new command; if I wanted to press <F8>, I would press <F8>.
Even worse on a color scheme such as the embedded shell inside VS Code, I can hardly tell the difference between what I'm typing and this new "suggestion text".
How can I turn this off?
Expected behavior
PS> foo|

Actual behavior
PS> foo| blah blah blah blah and other distracting stuff

Error details
No response
Environment data
Name                           Value
----                           -----
PSVersion                      7.3.0
PSEdition                      Core
GitCommitId                    7.3.0
OS                             Microsoft Windows 10.0.19044
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Visuals
No response

I don't even know what this thing is called! I searched the v7.3.0 changelog, but I couldn't find anything relevant for "preview" or "auto" or "type" or "text".

It's technically a PSReadline thing, 7.3 just happens to include a newer version of PSReadline where it's enabled by default. You can disable it by adding this to your $profile: Set-PSReadLineOption -PredictionSource None

Thank you thank you thank you! What a relief (even though it already wasted an hour of my morning). I was seriously this close to downgrading to v7.2.x.
I appreciate the info very much. Thanks for responding so quickly.

/cc @daxian-dbw for information.

How can I accept a displayed suggestion? Neither Tab nor Enter work for me

How can I accept a displayed suggestion? Neither Tab nor Enter work for me

F8 works for me.

cc @theJasonHelmick

How do I disable this inside VS Code? At the moment, if I issue the command Set-PSReadLineOption -PredictionSource None at the integrated terminal in VS Code it disables it, which is what I want. But when I start/kill a terminal, it's back. I created a Microsoft.VSCode_profile.ps1 and placed this command inside C:\Users\MyUserName\Documents\PowerShell but nothing changes. I search in Settings and couldn't find anything there no feedback elsewhere.

VS code has two versions of PowerShell - the integrated console and normal PowerShell in a window.
$profile.CurrentUserAllHosts  gives the file which is used for all  both
C:\Users\me\Documents\PowerShell\Microsoft.VSCode_profile.ps1 will be the one if the terminal window is labelled "PowerShell Extension" but not if is simple "Pwsh"

Hey! Here's some additional documentation on working with predictors if helpful: https://learn.microsoft.com/en-us/powershell/scripting/learn/shell/using-predictors?view=powershell-7.3

Hey! Here's some additional documentation on working with predictors if helpful: https://learn.microsoft.com/en-us/powershell/scripting/learn/shell/using-predictors?view=powershell-7.3

This helps, so thanks!

How can I accept a displayed suggestion? Neither Tab nor Enter work for me

By default right arrow. I have added this to my profile to allow ctrl-right-arrow to complete a word at a time or move over existing words depending on the context (I can't remember which kind member of the team provided it I didn't write it).
    Set-PSReadLineKeyHandler -Key Ctrl+RightArrow -ScriptBlock {
       param($key, $arg)
       $line = $null
       $cursor = $null
       [Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState([ref]$line, [ref]$cursor)
       if ($cursor -lt $line.Length) {
             [Microsoft.PowerShell.PSConsoleReadLine]::ForwardWord($key, $arg)
       }
       else {[Microsoft.PowerShell.PSConsoleReadLine]::AcceptNextSuggestionWord($key, $arg)}
    }

How do I change the default right arrow to tab key?

Hi, it was somehow enabled on another pc for no reason, I like it
I've seen it's called "predictors" and not autocompletion, (doc here : https://learn.microsoft.com/fr-fr/powershell/scripting/learn/shell/using-predictors?view=powershell-7.3 )
but I don't know how to enable it again, i'm in the reverse situation, how to enable it ?
I've tried the two commands Install-Module -Name PSReadLine and  Install-PSResource -Name PSReadLine but it says commandnotfoundexception
I have tried to install the PowerShellGet v3 but it kept saying commandnotfoundexception and the nupkg file is not a .exe nor a .msi I could execute to install.

It seem that the powershell i had with conda isn't the same as the one i can download on the store.
Impossible to know where is located the one on the store on my hard-drive tho, i'll won't be able to edit json config of terminal to open conda with last version of powershell if I can't know where it install it.