Source code viewer build process and webpack optimizations

This PR does the following:

Creates a source viewer build process as a standalone script. Generates rawSources.json file and puts it in /public.
Updates package.json build scripts to call this new source viewer build script.
Fixes a minor bug with the drop-down in the source viewer.
Cleans up older webpack loader code that originally generated the rawSources.json file.
Modifies the Fluid Playground link that displays in the upper-left corner
Updates Fluid packages to 0.26.0
Added new source viewer build script into webpack so it 'll run anytime webpacks rebuilds /src

Does the CI/CD process still work with the latest move from SWA to blob storage? Wasn't sure if the same blob storage was being used for both or if things changed there.
Verification Steps
Clone this branch and run:

npm start (app should load fine and you should see a rawSources.json in /public that's been updated).
npm run build:hugo (storybook-static folder that's generated should have a rawSources.json file). I normally run npx http-server from within the storybook-static folder to try it.

Thanks to Captain Jokiel (@skylerjokiel) for the initial look at optimizations, the main.js webpack contribution, and for triggering the idea for this new build/optimization approach.

BTW, to my tests:
Before:
51.6 MB all up in static folder (all assets, not a great metric
main.a95189b9a8d29ba93d03.bundle.js (590 KiB)
vendors~main.a95189b9a8d29ba93d03.bundle.js (16.1 MiB)
rawSources.json (245 KiB)
main (16.7 MiB)
After:
24.7 MB all up in static folder
main.505ab70d388cb9a8d7b7.bundle.js (245 KiB)
vendors~main.505ab70d388cb9a8d7b7.bundle.js (5.82 MiB)
main (6.09 MiB)

Thanks for your help guys!


export-generate: rollingPeriod does not default to 144

export-generate fails if rollingPeriod keys are not present in keys.json:
$ git diff examples/export/keys.json
diff --git i/examples/export/keys.json w/examples/export/keys.json
index 86db896..50619a3 100644
--- i/examples/export/keys.json
+++ w/examples/export/keys.json
@@ -3,13 +3,11 @@
     {
       "key": "Fy/EgOWYSQw0F3YEM5sVQw==",
       "rollingStartNumber": 2649980,
-      "rollingPeriod": 1,
       "transmissionRisk": 8
     },
     {
       "key": "K2MFOsSDI43hdhaehh89zQ==",
       "rollingStartNumber": 2649866,
-      "rollingPeriod": 114,
       "transmissionRisk": 1
     }
   ]
$ go run ./tools/export-generate --signing-key=./examples/export/private.pem --tek-file=./examples/export/keys.json
2020/05/21 12:53:33 Using TEKs provided in: ./examples/export/keys.json
2020/05/21 12:53:33 invalid exposure key: invalid interval count, 0, must be >= 1 && <= 144
exit status 1

The rollingPeriod should probably default to 144, as per the Server Functional Requirements.

/cc @gurayAlsac

The value is requred, but values < 144 are expected if an exposure is repored mid day

Hi there. I'm going to close this as I think it's been answered. Please comment and we can re-open if you disagree.


feat(ci): add parallel testing for ci

With the above changes, the CI will take only 8-9 min/PR

is not testing the cli


how to restart once task wdt is triggered (IDFGH-6577)

Hello,
I used blow codes before to restart device once task wdt is triggered, we found some times  'wifi' task will be always busy to trigger the task wdt, but once esp_task_wdt_isr_user_handler called esp_restart(), it will cause another panic due to ungracefully shutdown of the wifi.
void esp_task_wdt_isr_user_handler(void)
{
esp_restart();
}
so I am told to code like below, the handler will send to release a semaphore and then in turn, in another task (named restart task) which is waiting for this semaphore, there are codes to restart device, however, due to the cpu is occupied by the 'wifi' task, I guess the 'restart' task’won't get chance to execute, thus, the device won't be restarted though the wdt handler is called for muliple times. so how to solve it?
void esp_task_wdt_isr_user_handler(void)
{
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
xSemaphoreGiveFromISR( restart_semaphore_handle, &xHigherPriorityTaskWoken );
}
E (1753869) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (1753869) task_wdt:  - IDLE (CPU 0)
E (1753869) task_wdt: Tasks currently running:
E (1753869) task_wdt: CPU 0: wifi
E (1753869) task_wdt: Print CPU 0 (current core) backtrace
Backtrace:0x400C3CD6:0x3FFCDFA0 0x40027132:0x3FFCDFC0 0x400DF8ED:0x3FFE0D60 0x400DBA89:0x3FFE0D90 0x400DBF09:0x3FFE0DD0 0x400DC05F:0x3FFE0E00 0x400DC17B:0x3FFE0E30 0x4003A199:0x3FFE0E70
0x400c3cd6: adc_gpio_init at D:/project/esp32/idf-v4.3.1/components/driver/adc_common.c:279 (discriminator 4)
0x40027132: _xt_lowint1 at D:/project/esp32/idf-v4.3.1/components/freertos/port/xtensa/xtensa_vectors.S:1105
0x400df8ed: rcUpdatePhyMode at ??:?
0x400dba89: ic_set_trc at ??:?
0x400dbf09: lmacInit at ??:?
0x400dc05f: lmac_record_txtime at ??:?
0x400dc17b: lmacRetryTxFrame at ??:?
0x4003a199: ppResortTxAMPDU at ??:?

Using menuconfig, enable CONFIG_ESP_TASK_WDT_PANIC so that the watchdog timer will panic when it triggers. Depending on your panic behavior configuration (e.g., CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT), a panic will print some debug information then do a restart. If you want to debug further, you can also trigger GDB on a panic using CONFIG_ESP_SYSTEM_PANIC_GDBSTUB`.

@achao1104 As mentioned above, enabling CONFIG_ESP_TASK_WDT_PANIC will reset on a task WDT timeout. Closing this issue. Please feel free to reopen in necessary.


refresh() not reflecting changes in query

I'm attempting to implement a 'Load More' button in my app, and for the life of me I cannot figure out how to get useSanityQuery to see the change to end.value upon refresh().
<script setup>
let end = ref(1);
let query = groq`*[_type == "product"]|order(orderRank) [0..${end.value}]`;
let { data: products, refresh } = useSanityQuery(query);

function getMoreProducts() {
  end.value++;
  refresh();// I want this to refresh my products list with the updated value of end in the query.
}
</script>

Do I need to somehow make query reactive?
Am I doing something wrong here? Am I way off in my thinking on how to accomplish this?

Your query is a string. Changing the value of end doesn't make a difference as the string is already 'fixed' at that point.

Your query is a string. Changing the value of end doesn't make a difference as the string is already 'fixed' at that point.

That makes sense, thank you.
Can you suggest how I might be able to accomplish this instead? I just want to update the parameters in the query and then refresh() to retrieve the updated dataset.
Honestly any pointers at all would be greatly appreciated!

I think we can support this in this module by passing in a ref/computed to the params in useSanityQuery(query, params)...

This should now be resolved in<EMAIL_ADDRESS>const end = ref(1);
const query = groq`*[_type == "product"]|order(orderRank) [0..$end]`
const { data: products, refresh } = useSanityQuery(query, { end })

function getMoreProducts() {
  // this shoud automatically refresh the query
  end.value++
}


[Refactor] Nil ternary operators

Refactor nil ternary operators to use one of the following techniques:
From object.nil? ? nil : object.method_name to object.try(:method_name)
From object.nil? ? nil : some_method(object) to object && some_method(object)

https://github.com/ManageIQ/manageiq/issues/11953


Get-KPCredential Allows for invalid Parameter Combination with UseNetworkAccount Switch

Get-KPCredential Needs to be updated to handle if only the database file is passed.
New-KeePassDatabaseConfiguration Needs to be updated to handle this as well.

Fixed both Functions.


add Flask logo

Adding Python-based framework - Flask's Logo
please allow me with this issue with relevant tags

Same as #825: go for it!

@Sameeratweb can you please assign me this issue with hacktoberfest tag

@Smit1610 please confirm you have read the contributing file?

yes @edent

@Smit1610 Go for it! Remember to ask questions if you're not sure.


Form submit redirect

So, I've noticed weird behavior and I think it's caused by how you handle redirects.
When you make a POST request and the response has a redirect, you make a new request to the redirect URL, however this is again a POST request (with body), while instead it should be a simple GET request.

I'm using the require version

Hey, sorry for the late reply, this got lost in my github inbox.
Is is possible the status code is a 307? The spec for a 307 says the client should use the same method and body to make a request at the new location?

The 307 (Temporary Redirect) status code indicates that the target resource resides temporarily under a different URI and the user agent MUST NOT change the request method if it performs an automatic redirection to that URI.

https://httpwg.org/specs/rfc9110.html#status.307

It's 302

This wrapper doesn't automatically replay requests on redirection, that's all handled by got. For 302, the spec uses "may change to GET" instead of "should" or "must", I guess this was a choice made by got developers to keep the same method for 302s as well.

Note: For historical reasons, a user agent MAY change the request method from POST to GET for the subsequent request. If this behavior is undesired, the 307 (Temporary Redirect) status code can be used instead.

https://httpwg.org/specs/rfc9110.html#status.302

In my case, the site breaks if you redirect using POST instead of GET.


Finish translating composition vs inheritance

@shakib609 Can you please fix the build so that we can merge it

I checked the test logs. It seems like some packages could not be fetched from yarn. That's why the tests did not pass.
11:28:54 PM: error An unexpected error occurred: "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz: ETIMEDOUT".
11:28:54 PM: failed during stage 'building site': Build script returned non-zero exit code: 1
11:28:54 PM: info If you think this is a bug, please open a bug report with the information provided in "/opt/build/repo/yarn-error.log".

I tried re-running the test but it is not working. Should I make a small commit to trigger the build?

Let's make a small commit. if it doesn't work we can open a new PR


Problems founded with jcache license file

Hi!
In your application you use jcache 1.0.0 version. This version has not correct license file. This page https://github.com/jsr107/jsr107spec/commits/master/LICENSE.txt shows that license was change on Oct 11, 2015 and than was corrected from JSR-000107 JCACHE 2.9 Public Review - Updated Specification to Apache License, Version 2.0 on Oct 14, 2016.
Release jcache 1.0.0 was on 18 March 2014. LICENSE file version was: https://github.com/jsr107/jsr107spec/blob/v1.0.0/LICENSE.txt
This causes some problems with other users using your application. Using jcache 1.1.0 version or higher will help to resolve this problem.

In cache-api-1.0.0.jar reference to the license is in META-INF\MANIFEST.MF file.
Bundle-License: https://raw.github.com/jsr107/jsr107spec/master/LICENSE.txt
current content of this file is Apache License, Version 2.0

I know that, and our OSS department writes:  "The license of a released third party artifact remains constant, even if there is a later release which re-licenses it to a different license."

I have updated the lib.

Thank you


Rename AudioStreamSample to a more discoverable name

Supersedes #60953 and implements godotengine/godot-proposals#4532, which is now approved.
Closes https://github.com/godotengine/godot-proposals/issues/4532
Applies https://github.com/godotengine/godot-proposals/issues/4532

Marked as Draft for discussion, please check godotengine/godot-proposals#4532

This is now ready

Redone in order to fix conflicts.
I also realized I forgot to rename AudioStreamPlaybackSample to AudioStreamPlaybackPCM.

@YuriSizov This has been ready like 2 weeks ago, and your tweet kinda made me anxious. This is just me attempting to get in touch 😕 sorry for the inconvenience.

I don't think it was Yuri's fault that this didn't get looked at, that's just me being too stressed with a job search to work on Godot. :) Looks fine to me if Nathan's comment was resolved. Does anyone have objections (keeping in mind that the proposal was approved)?

I just mentioned Yuri because of the tweet but again, sorry for the inconvenience.

Makes sense. I'm going to approve this for the audio team but I'll let someone else decide whether that's sufficient to merge.

@DeeJayLSP As mentioned in the blog post, the feature freeze on August 3 is for new PRs. This one is already open so there's no worry to have.
The change itself is trivial, what's pending here is to decide if we actually want to do this rename.

We've discussed it again in a review meeting and this time agreed that calling it WAV would be more discoverable for the end user. Sorry for the inconvenience, can you re-rename it?

I am not willing to reopen the pull request that precedes this one (in fact, it's extremely outdated) so I'm going to work on this one.

Accidentally commited using my work account

Accidentally commited using my work account '-'

The icon for it doesn't seem to work despite having the file renamed.

The icon for it doesn't seem to work despite having the file renamed.

Did you recompile the editor after renaming the icon?

The icon for it doesn't seem to work despite having the file renamed.

Did you recompile the editor after renaming the icon?

I downloaded the build artifact from Actions and ran it.

Tested locally and it works, might be a cache issue.

Thanks!

How ironic.
Everything started as a PR that renamed it to AudioStreamWAV.
Then, it ended in a PR that renamed it to AudioStreamWAV.

Hehe yeah, that's why this kind of change is best evaluated on the proposal than on multiple alternative PRs. When the change is trivial to make but up for bikeshedding, what needs to come first is the decision, not the ready-to-merge PR.

Why was OGG recased to Ogg #62164, when WAV was not? Ogg is the official name, and Wave is the official name.
AudioStreamOggVorbis names both a container (ogg) and a codec (vorbis) with official names. Yet AudioStreamWAV only has a nickname for the container (wav) and not the codec (PCM). PCM is an acronym so should be capitals, like AudioStreamMP3. But WAV is not an acronym.
This makes the API look sloppy. Sample wasn't good so it's good to update these names. However, for consistency and correctness, AudioStreamOggVorbis should have been named AudioStreamOgg, and AudioStreamWAV should be renamed AudioStreamWave. Vorbis doesn't belong, and WAV is not the correct name.
Separate things:
Ogg
https://www.xiph.org/ogg/
Vorbis
https://xiph.org/vorbis/

The name AudioStreamWAV was picked after a lot of back and forth because it makes the class easier to discover to a layperson who is unlikely to know beyond the file extension. PCM is not something most people are familiar with.

Well, that's my point. It was renamed to WAV because of the familiarity, and consistency wasn't the goal. Wave can also be confusing, just as PCM, though likely less so.


Add support for extra mount

Description:
Add "extra-mount" params for add volumes to docker

Also, merging in from the upstream branch should fix the test failure


Virtual: true doesn't prevent from writing to object

Virtual attributes don't really virtual. Reform returns them in save block.
Adding writeable: false helps. That's weird because virtual: true sets both writeable and readable to false.
Here is a test to reproduce.

This is because to activate the new :virtual behaviour, you need to call reform_2_0!: https://github.com/apotonick/reform/wiki/Migration-Guide#migration-guide-for-new-20-semantics-optionally-available-since-12

I call it in the test https://github.com/apotonick/reform/pull/221/files#diff-833e6ed7dedaccdacdd19698f62fdda1R107

Aaaah, sorry, now I got it: According to you, the virtual attribute should not be in the nested hash when calling #save with a block? I decided that I want this in this hash, that's why it's there.
Reason for this is that you might need those values when saving or further processing the form, the only clean way to retrieve this is via the nested hash.
Maybe something like this?
form.save(include_virtual: false) do .. end

At first it's a bit inconsistent because adding writeable: false removes these properties from the hash.
At second I think that if the property is virtual you should not expect to get it in the hash. If you want to use it, you should make it writeable.


assert 'NoFrameskip' in env.spec.id

Thanks for your great work.
I'm facing a problem when I change the evn-name
I can run the PongNoFrameskip-v4 environment successfully by
python main.py --env-name "PongNoFrameskip-v4" --algo ppo --use-gae --lr 2.5e-4 --clip-param 0.1 --value-loss-coef 0.5 --num-processes 8 --num-steps 128 --num-mini-batch 4 --log-interval 1 --use-linear-lr-decay --entropy-coef 0.01
However, when I change the env-name to other name (AirRaid-ram-v0, DemonAttack-ram-v0, DemonAttack-v0 ...),
there is an error :
Traceback (most recent call last):
  File "/home/lq/pytorch-a2c-ppo-acktr-gail/main.py", line 240, in <module>
    main()
  File "/home/lq/pytorch-a2c-ppo-acktr-gail/main.py", line 68, in main
    args.gamma, args.log_dir, device, False)
  File "/home/lq/pytorch-a2c-ppo-acktr-gail/a2c_ppo_acktr/envs.py", line 89, in make_vec_envs
    envs = ShmemVecEnv(envs, context='fork')
  File "/home/lq/pytorch-a2c-ppo-acktr-gail/baselines/baselines/common/vec_env/shmem_vec_env.py", line 36, in __init__
    dummy = env_fns[0]()
  File "/home/lq/pytorch-a2c-ppo-acktr-gail/a2c_ppo_acktr/envs.py", line 43, in _thunk
    env = make_atari(env_id)
  File "/home/lq/pytorch-a2c-ppo-acktr-gail/baselines/baselines/common/atari_wrappers.py", line 268, in make_atari
    assert 'NoFrameskip' in env.spec.id
AssertionError

Can you give me some suggestions?
Thanks a lot!

It works well.

At the moment this repository doesn't support RAM observations.


Colors

Hey @LukeAskew -
I would like to get your input on the way the color swatches are set up right now and suggest a possible solution that I have found that makes the workflow a lot better.
The way the current workflow works in regards to colors is this:
Create New Color Swatch

Edit toolkit.scss and add new color. By doing this, it updates the color swatches on the overview page.

Use Color in Sass

Add color as a variable or as hardcoded (not recommend) inside Sass.

This might seem alright at first, but once you have to add several colors, this can become cumbersome quickly. One thing that I would like to suggest is streamlining this process. We have done this on our own projects by:

Bringing the colors out of toolkit.yml and placing it in a color.yml file inside the data directory. By doing this you separate your content from your colors.
Creating a gulp task that takes the data inside color.yml and outputs to the overview page as it does now, but it also creates a _colors.scss file that stores all the colors in color.yml as Sass variables.

What do you think of this and do you think this would be something you would like to add to core Fabricator? If so, I will make a PR.
Thanks!

I like the idea. This is one of those things I've not been happy with, but left as-is in favor of giving the dev more control.
A few things to consider if you make a PR:

Sass variable structures are not always straightforward. Some people like simple $blue: rgb(0, 0, 255);, but I sometimes use nested maps to drive color selection.
Give user control over where _colors.scss is written. Some people like styles/vars/_colors.scss, others styles/base/_variables.scss - possibilities are endless. Give people control.
Listen to changes on color.yml and recompile onchange.

I'd like to see this issue addressed, but in a way that offers the same amount of flexibility as the current (no) solution.

I like your additional thoughts. That is great. I will work on a PR this week and get back to you by EOD Friday.

@jonorherrington I'd love to get a copy of the relevant code you're using for this and I can also have a go at adding the customisation suggested by Luke for a PR.

Actually, I just noticed the PR for https://github.com/fbrctr/fabricator/pull/221 - which should achieve this well enough. @jonorherrington don't worry about it.


MyFirstRocketServer Error

some how when i start the program it look like this it looks like a error and i can't start it plz help
http://prntscr.com/atzt38

Dont use the Rocketstarter use the shortcut you have created if not search up tutorials does not need to be the right version there all the same.


Fix broken Keycloak link in documentation

Description
Fixed broken Keycloak link in documentation
Self Check:
Strike through any lines that are not applicable (~~line~~) then check the box

[ ] Attached issue to pull request
[ ] Changelog entry
[ ] Type annotations are present
[ ] Code is clear and sufficiently documented
[ ] No (preventable) type errors (check using make mypy or make mypy-diff)
[ ] Sufficient test cases (reproduces the bug/tests the requested feature)
[ ] Correct, in line with design
[ ] End user documentation is included or an issue is created for end-user documentation (add ref to issue here: )
[ ] If this PR fixes a race condition in the test suite, also push the fix to the relevant stable branche(s) (see test-fixes for more info)

Processing this pull request

Merged into branches master in e9387f0a7b9565e624d278139b0e2d8f9976551d

Processing #8162.

Processing #8162.


xExchAutoMountPoint - Test-TargetResource fails in some scenarios due to invalid parameter name

Details of the scenario you tried and the problem that is occurring
When using the xExchAutoMountPoint DSC Resource to configure storage for the Exchange Databases this applies the configuration without a problem.
If you try to re-apply the DSC Resource using Start-DscConfiguration -UseExisting this will throw an error for each disk that had previously been configured during the run of the Test-TargetResource function.
The error is generated at this line of code:
if ((DBHasMountPoint -AutoDagDatabasesRootFolderPath $AutoDagDatabasesRootFolderPath -DB $db) -eq $false)
I've identified the root cause is the DBHasMountPoint sub-function, which uses '-DB' as a parameter to specify the database.
As 'DB' is an alias for the 'Debug' parameter this generates an error message that a parameter name conflicts with an alias.
If the 'DB' parameter is renamed to 'Database' this error goes away.
The DSC configuration that is using the resource (as detailed as possible)
$ConfigurationData = @{
    AllNodes = @(
        @{
            NodeName    = 'SVREXCH1601'
            DiskToDBMap = @(
                'DB-01,DB-03',
                'DB-02,DB-04'
            )
        }

        @{
            NodeName    = 'SVREXCH1602'
            DiskToDBMap = @(
                'DB-03,DB-01',
                'DB-04,DB-02'
            )
        }
    )
}

Configuration ConfigureExchangeDatabaseMountPoints {
    Import-DscResource -Module PSDesiredStateConfiguration, xExchange

    Node $AllNodes.NodeName {
        File ExchangeDatabasesFolder {
            DestinationPath = 'D:\ExchangeDatabases'
            Ensure          = 'Present'
            Type            = 'Directory'
        }

        File ExchangeVolumesFolder {
            DestinationPath = 'D:\ExchangeVolumes'
            Ensure          = 'Present'
            Type            = 'Directory'
        }

        xExchAutoMountPoint ExchangeMountPoints {
            Identity                       = $Node.NodeName
            AutoDagDatabasesRootFolderPath = 'D:\ExchangeDatabases'
            AutoDagVolumesRootFolderPath   = 'D:\ExchangeVolumes'
            DiskToDBMap                    = $Node.DiskToDBMap
            SpareVolumeCount               = 0
            VolumePrefix                   = "$($Node.NodeName)-ExchVol"
            DependsOn                      = @('[File]ExchangeDatabasesFolder','[File]ExchangeVolumesFolder')
        }

        File ExchangeLogsFolder {
            DestinationPath = 'L:\ExchangeLogs'
            Ensure          = 'Present'
            Type            = 'Directory'
        }

        #Create a Logs folder for each database.
        foreach ($Database in ($Node.DiskToDBMap | ForEach-Object {$_.Split(',')})) {
            $ItemString = $Database.Replace('-','_')
            File "ExchangeLogsFolder_$ItemString" {
                DestinationPath = "L:\ExchangeLogs\$Database"
                Ensure          = 'Present'
                Type            = 'Directory'
                DependsOn       = '[File]ExchangeLogsFolder'
            }
        }
    }
}

Version of the operating system and PowerShell the target node is running
Caption                                 OSArchitecture Version    MUILanguages $PSVersionTable.PSVersion
-------                                 -------------- -------    ------------ -------------------------
Microsoft Windows Server 2016 Standard  64-bit         10.0.14393 {en-US}      5.1.14393.2311

Exchange Server edition and version the target node is running
Exchange Server 2016 CU10
Version of the DSC module you're using, or write 'dev' if you're using current dev branch
Name      Version  Path
----      -------  ----
xExchange <IP_ADDRESS> C:\Program Files\WindowsPowerShell\Modules\xExchange\xExchange.psd1

Labeled this as a bug an help wanted so that anyone in the community can run with it.

Hi @DelectableMechanisations , do you want to handle the fix for this? If not, I can take this. If you do want to take it, it would be good to create a new Unit test file for xExchAutoMountPoint, which has a test that reproduces the issue.

On second thought, I'm not sure that this issue is testable both before and after the fix. I think we could test for it before the fix by manually call the function with the -DB switch, but that test won't be the same after we rename the DB parameter to Database. Unless someone has an idea of how to test this before and after, we'll probably have to omit a new test.

If you make a unit test that test the call to this function, with the new parameter name, then that will be the regression test.
You could make a regression test that calls the function with the current (old) parameter name and make sure it throws the correct error message (that PowerShell throws when missing a parameter). But that really seems unnecessary?

Yeah, I'm thinking a Unit Regression test may not be that informative, and may not be easy to accomplish. Before the change, we'd have to use parameters AutoDagDatabasesRootFolderPath and DB, but Database would not be an option. After the change, we could test with AutoDagDatabasesRootFolderPath, Database, and Debug, but that's not really telling us anything we don't already know.
I think an Integration test may be better for doing Regression testing on this. It looks like if we setup the correct number of mount points, and then called Test-TargetResource with valid parameters, it should hit this code block. That would be a test that could still be performed both before and after the fix, and we can test to make sure no exception is thrown when calling Test-TargetResource.
There's currently no tests whatsoever for AutoMountPoint, but I can start putting a test file together if the above Integration test sounds useful.


Installed @serverless-guru/prettier-plugin-import-order; setup import order rules

Current dependencies on/for this PR:

main

PR #515   👈

PR #516

This comment was auto-generated by Graphite.


$httpBackend leaks memory in IE8 by not cleaning up event handler reference

An application that makes many $http requests will experience memory leaks over time in IE8. Based on this advice, I was able to prevent the leak by adding
xhr.onreadystatechange = (typeof CollectGarbage === 'undefined' ? null : CollectGarbage);

to the end of the if (xhr.readyState == 4) block in the onreadystatechange event handler in httpBackend.js. Without this line, IE8 memory usage grows on each request without (apparent) limit. (A very simple test that makes approximately one $http request per second, when run overnight, increased IE8 memory usage to more than 1GB.)
IE9 does not appear to exhibit this issue. Not tested in IE10.
In Chrome, the above line assists the GC in cleaning up the event handler so that the event listener count stays low. Without it, when running the simple test described above, Chrome's dev tools timeline shows the event listener count as growing in stairstep fashion until a GC event cleans up the old handlers.
I apologize for not being able to provide a Fiddle or other example; firewall restrictions here are preventing me from doing so.

Does look like this has been resolved.


Add non-participating moderator

Moderators should be configurable to not have pixels on the yard in order to have a moderation window and a yard window open at the same time without spamming the yard with additional pixels.

This is fixed by the new spectator mode in 4a801812eef9bd66161c815ef5e9e5946dca360d.


Make MatmulMultiCoreReuseMultiCastDRAMShardedProgramConfig work with BH

MatmulMultiCoreReuseMultiCastDRAMShardedProgramConfig assumes 12 DRAM banks.
However, BH has 8 DRAM banks.
Therefore, need to update the logic to handle 8 DRAM banks as well.

closing as merged


betteruptime_monitor - monitor_type expected_status_code is missing

It's possible to configure a monitor with expected status codes via the web page.

original issue: https://github.com/BetterStackHQ/deprecated-terraform-provider-betteruptime/issues/7

This was added in https://github.com/BetterStackHQ/terraform-provider-better-uptime/commit/ce3496bd1be3dfe1b45360559dca58deee9b65f0
However if configured, terraform wants to update in-place the resource each time it's run even if there is no change.

Closing this, as the issues with expected_status_code should be now fixed on the API side.

@adikus, just tested and still the same issue.

@hydrapolic which version of the plugin are you using? I just tested this with the latest one, and creating / updating a monitor with an expected_status_code worked as I would expect.
If you're on the latest version (0.3.8), could you please share your terraform config at<EMAIL_ADDRESS>so that we can have a look?

@adikus I'm using version 0.3.8.
When issuing terraform plan, it's stated that the monitors will be updated in place. Of course there's nothing wrong with it, but in fact the value of expected_status_codes haven't changed at all so it should state "no change".

Just checked the output again. It seems like it only happens for monitors that had expected_status_codes defined previously but then we turned it off (for example we started monitoring a service that returned 404 for url /, but later it was changed to 200 so expected_status_codes was unnecessary).

How to reproduce:

set up a monitor with monitor_type = expected_status_code and fill in expected_status_codes (for example 200/404)
change monitor_type to status

# terraform apply
  # monitor will be updated in-place
  ~ resource "betteruptime_monitor" "monitor" {
      ~ expected_status_codes = [
          - 200,
          - 404,
        ]
      ~ monitor_type          = "expected_status_code" -> "status"

terraform apply
  # monitor.monitor will be updated in-place
  ~ resource "betteruptime_monitor" "monitor" {
      ~ expected_status_codes = [
          - 200,
          - 404,
        ]
        # (21 unchanged attributes hidden)
    }

An alternative to that is to ignore changes in expected_status_codes once they are applied:
lifecycle {
  ignore_changes = [
    expected_status_codes
   ]
}

@hydrapolic We rolled out a change to the API, so when you completely remove expected_status_codes it will get correctly propagated.

@adikus works like a charm, thanks!


docs: fix dead link

Fix dead link in docs page
Change-type: patch
Signed-off-by: Aaron Shaw<EMAIL_ADDRESS>

@AlexProgrammerDE if you use it from GitHub it works, but if you try the link from the docs pages here...
https://sound.balenalabs.io/docs/customization/
https://sound.balenalabs.io/docs/device-support/#recommended
It tries to take you to the following link which doesn't work as it has duplicated the docs part:
https://sound.balenalabs.io/docs/docs/usage#modes-of-operation

@AlexProgrammerDE looking at this again, this actually isn't the only link with the same issue. A lot of the relative links on the docs have this same problem.
I guess because on landr it has auto built the site to have the docs pages as directories. Whereas on GitHub they are files.
Maybe there is a better way to handle this by some configuration change in landr or somewhere else, I'm not sure.

@shawaj may you please contact the balena landr team then? Landr itself has some bugs and it would be nice if it was reported. I can't do it myself due to it going closed source for some time (i didn't check how it is now, but i assume it still is) and im not a official balena member with access.

@AlexProgrammerDE sure thing! Will leave this unmerged for now as I think maybe landr needs to be able to handle relative links better perhaps.
For example the getting started page here:
https://sound.balenalabs.io/docs/
The link at the bottom under having trouble, point 1, gives an error.
However if you access the same page from here:
https://sound.balenalabs.io/docs/getting-started/
The same link works.
Anyway I'll see what can be done and report back 👌

Closing this PR and will add any required changes to #393

Closing this PR and will add any required changes to #393


Sync eng/common directory with azure-sdk-tools for PR 1032

Sync eng/common directory with azure-sdk-tools for PR https://github.com/Azure/azure-sdk-tools/pull/1032 See eng/common workflow

This PR has been superseded.


remove background location permission on Android

It was coming from expo-location https://docs.expo.io/versions/latest/sdk/location/

Yeah I gave it a quick test and I was able to connect to my hotspot still and sort by close hotspots. We weren’t using background locations anyway so we should be good but doesn’t hurt to test more.


possible clash with configmap and secret references.

Any object SecretOrConfigmap structure https://github.com/VictoriaMetrics/operator/blob/master/api/operator/v1beta1/vmextra_types.go#L758C6-L758C23 may produce incorrect reference at tlsAssets, if there are references to the configmap and secret with the same name and key.
It should be rare case.
Possible solutions:

do remove configmap references
add prefix for configmap references

To reproduce:
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMServiceScrape
metadata:
  name: with-clash
spec:
  - port: http
    targetPort: http
    path: /metrics
    scheme: http
    tlsConfig:
      ca:
        configmap:
          name: clash
          key: key
      cert:
        secret:
          name: clash
          key: key
  selector:
    matchLabels:
      app.kubernetes.io/name: example-application
      monitored-by: vm-operator
---
apiVersion: v1
kind: Secret
metadata:
 name: clash
stringData:
  key: value-1
---
apiVersion: v1
kind: Configmap
metadata:
 name: clash
data:
  key: value-1

Issue was be fixed at https://github.com/VictoriaMetrics/operator/releases/tag/v0.47.0 release


Demo-app crashes while getting latest height without internet connection

Describe the issue
Demo-app crashes while getting the latest height without internet connection. Here is a list of the demo-app functions, which cause the app crashing when run without the internet connection (there can be possibly more of them):

Side menu -> Get Latest Height
Side menu -> Get Block Range -> Apply
Side menu -> List UTXOs -> Load Transactions

Can you reliably reproduce the issue?
If so, please list the steps to reproduce below:

Install demo-app with the latest main branch commit
Ensure the device has no internet connection enabled
Open the demo-app
Side menu -> Get Latest Height
Now the app crashes

Actual behavior + errors
When the app crashes, it unfortunately doesn't give us many logs, just:
FATAL EXCEPTION: main
Process: cash.z.ecc.android.sdk.demoapp.mainnet, PID: 25132

Tested on:

App Version: v1.1.0 Mainnet
Android Version: SDK 29 & 32
Device: Real device & emulator
Commit: Current main branch 8f59a20, tested also on e2770d8 from 5/5/2022 (applies for both)

Any extra information that might be useful in the debugging process.
Doesn't matter if the device runs on the first time with connection and then without it, or without the connection on the first run, the crash happens in both cases.

While not blocked, a refactor while possibly modify this bug - so skipped for a sprint or two.

https://github.com/zcash/zcash-android-wallet-sdk/pull/675 partially solves this trouble. GetLatestHeight works correctly now. Other problematic calls will be solved by followup PRs.


Updated android sdk version

'com.microsoft.azure:azure-mobile-services-android-sdk:3.0-Beta' is not public and cannot be resolved.  This caused some confusion with customers who were cloning android quickstarts directly.  Changing to current Mobile Apps version for clarity.
Not sure how this interacts with the build/portal, @jwallra can you give it a quick check to make sure won't break our quickstart creation logic?

I'll take a look at it now.


Caret position and custom segments

I see problem with caret position when I have custom segments inside editor.
For example let's say I have custom segment which is a (not editable) Label with text "[Section]".
This segment has overiden BaseSegment methods like this:
@Override
public int length() {
    return label.getText().length();
}

@Override
public String getText() {
    return label.getText();
}

When I invoke method GenericStyleArea.getText() I receive correct text from editor with this component like:
"Text before [Section] text after" - and this is cool. When I want only part of this text, I can use getText(from, to) and this also works awesome.
But there is a problem with caret when I'm editing text in editor - it looks like caret try to treat this "[Section]" segment/label like one-char segment not like 9 chars segment.
When I listening on caret position change:
area.caretPositionProperty().addListener((observableValue, oldValue, newValue) -> {
            System.out.println(newValue);
});

It returns "visual" position, not the actual position inside text.
When I want to for example break line on caret position, or replaceText - it do it on wrong position.

Edit (3 hours later).
When I'm looking at CaretNode implementation - model seems to be ready to handle that situations - there are separate properties for paragraphIndex, columnPosition and position. From the perspective of my problem paragraphIndex and columnIndex has correct values - caret visually is in that place, but position property is wrong because it has other position in source code.

Edit 2:
As some kind of workaround - I can change in segment to return always it's length as 1:
@Override
public int length() {
    return 1;
}

But then I had some problems with ReadOnlyStyledDocument.offsetToPosition(...) - sometimes it throws in that case IndexOutOfBoundsException, when calculating caret position in CaretNode class for attributes paragraphIndex and columnPosition.
To solve this problem, I have overriden implementation of GenericStyledArea.offsetToPosition(...) to return position of the last char in document when position is out of bounds:
@Override
public Position offsetToPosition(int charOffset, Bias bias) {
    if (charOffset > getLength()) {
        return getContent().offsetToPosition(getLength(), bias);
    } else {
        return getContent().offsetToPosition(charOffset, bias);
    }
}

But this all (length==1) generates me more other problems... - I use RichTextFx as "rendering" layer... all "business" logic about formating is in anotherLayer (which do not know anything about what part of text is displayed as this labeled-read-only-components), and (for example) when I generate in that layer informations about additional styles to apply to parts of text, it's apply them to wrong "spans" because all that "custom segments" have other length in display layer. :/

@tchudyk sorry for the late response to this, it somehow slipped through the cracks .....
I'm not sure if this will help but have a look at the hyperlink demo which I think behaves in the way that you want.
(PS: Sorry I should have posted this sooner but I wanted to look into the demo so I could give you more directed guidance but unfortunately I haven't found the time.)

Hyperlink demo is not exactly solution for my problem - hyperlink is text segment - we can put caret anywhere inside it. The problem is when we want insert something that is not a text segment and is larger then 1 char in source length() > 1 and we want this to be represented as 1 segment (cursor can appear only before and after segment).
Another example here can be pointers list in markdown... We can have text like:
 - point 1
- point 2
  - point 3

and we want to represent pointers as image, but "under" this image we have text - (3 chars with spaces). getText() method will return this - text, and length of this text will be 3.
Visual representation using segments will be:
[*][point 1]
[*][point 2]
[*][point 3]

But source segment representation will be:
[ - ][point1]
[- ][point2]
[  - ][point3]

I think the problem is that caret position is related with a "visual position" not with "source" position computed using BaseSegment.length() and BaseSegment.getText() where non-text segments (bigger than 1 char) cannot have caret inside segment.
But currently changing the approach in RichTextFx at this stage already seems (to me) quite complicated.

Okay, so if I understand correctly there's a difference between the source position and the visual position like:
Some text [a label] more text.
0123456789012345678901234
          1         2

So from a source perspective to style more as bold would be, eg:   setStyle( 20, 24, bold );
but visually from RichTextFX's perspective we have:
Some text L more text.
012345678901234567890
          1         2

so it's actually supposed to be, eg:   setStyle( 12, 16, bold );    // that is 12 and not 20
Then maybe what you need is a method to convert from a source position to the visual position, something like:
// Untested concept code ....
int sourceToVisualPos( int target ) // So 20 should return 12
{
   int sourcePos = 0, visualPos = 0;

   for( var p : getParagraphs() )
   {
      if ( sourcePos == target ) return visualPos;

      for( var s : p.getSegments() )
      {
         if ( s instanceof String ) // or TextExt ?
         {
            var len = s.length();
            if ( sourcePos + len > target ) len = target - sourcePos;
            sourcePos += len;
            visualPos += len;
         }
         else // some other segment type
         {
            sourcePos += s.toString().length();
            visualPos += 1;
         }

         if ( sourcePos == target ) return visualPos;
      }

      // Plus 1 for paragraph and line breaks ?
      sourcePos++;
      visualPos++;
   }

   return visualPos;
}

FYI, I've added and tested this method in my StyledSegmentTextArea project.

Ok, I changed the model by separating the presentation logic from the data and calculating the position between data and presentation with something like this example above.


[V2] Configure multiple docs

❓ Questions and Help
Is it possible to configure multiple documentation routes?
My motivation is that I need a doc route for 'Guidelines', another for 'API Documentation' and so on.
I'm trying to configure multiple @docusaurus/plugin-content-docs plugins but this error occur:
Identifier 'React' has already been declared (21:133)
My config:
{
  ...
  presets: [
    [
      '@docusaurus/preset-classic',
      {
        blog: {...},
        theme: {...},
        docs: {
          sidebarPath: require.resolve('./sidebars.js'),
        },
      },
    ],
  ],
  plugins: [
    ['@docusaurus/plugin-content-docs', {
      path: 'docs2',
      routeBasePath: 'docs2',
      sidebarPath: require.resolve('./sidebars2.js'),
    }],
  ],
  ...
}

I found that the v2 documentation has a topic about this.

@rayronvictor I know this was ages ago, but do you remember how you ended up fixing this? I don't see anything related on the linked doc, and now I'm running into the same problem even as I follow these steps exactly: https://docusaurus.io/docs/docs-multi-instance

@jwitz In my case it was because the docs were actually included two times. Make sure the path of your second docs plugin config does not point to a subdirectory of the docs folder.
Or try deactivating the preset docs plugin and configure everything manually:
  presets: [
    [
      '@docusaurus/preset-classic',
      /** @type {import('@docusaurus/preset-classic').Options} */
      ({
        docs: false,
        theme: {
          customCss: require.resolve('./src/css/custom.css'),
        }
      }),
    ],
  ],

  plugins: [
    ['@docusaurus/plugin-content-docs', {
      path: 'docs1',
      routeBasePath: 'docs1',
      sidebarPath: './sidebars1.js'
    }],
    ['@docusaurus/plugin-content-docs', {
      id: 'docs2',
      path: 'docs2',
      routeBasePath: 'docs2',
      sidebarPath: './sidebars2.js',
    }]
  ],

If someone is still in need for multiple documents, check this: https://stackoverflow.com/a/68162605/5734097

This is officially documented here: https://docusaurus.io/docs/docs-multi-instance


Moved component installation out of constructors

Components / prototypes are now installed once-per-type instead of every time a new object is constructed.
This also applies some minor fixes such that the above works cleanly.

Nice, this was on my list so at least it'll free-up some more time. I also intend to move the component arrays out of the classes and into a single file somewhere so they can be easily overridden before Phaser starts up.

I hadn't thought of that scenario.
Best approach I can think of if such is desired so to then have something like:
components = PhaserGlobal.DefaultComponents.Sprite || <default_components>
It would be required to be run a script before Phaser.js.

I was going to make it part of the game configuration object to be honest. You couldn't create a game object until the game has booted anyway, so it should be safe to do at that stage.

Hmm something about this change has stopped objects from correctly inheriting properties.
In short - getters, settings and functions that exist on the mixin prototypes are applied to the instances just fine, but properties are ignored.
For example if you log out Phaser.Sprite.prototype you'll see all the correct properties like _exists, alive, fixedToCamera, etc. All correct. Now create an instance of Phaser.Sprite and view it, all of those things are missing. The only things that exist on the instance are functions.
Maybe it's the mixin method itself not copying them over.
(just thinking out loud here)

This is weird, I've done some investigation and it does not seem to be a problem with the mixinPrototype or install function, its something else.
If i log some of the missing properties within the Component.Core.init function upon a GameObjects construction, it seems to log them fine, but if I simply log the this context, they are missing.
Phaser.Component.Core.init = function (game, x, y, key, frame) {

 .....
    console.log('_exists: ' + this._exists);
    console.log('components: ' + this.components);
    console.log(this);

};

@photonstorm  I just pulled from dev and this does not appear to the be case anymore.
The prototypes appear correctly for me when doing a new Phaser.Sprite(). Is this still a concern?

Nope, I spent a good while working through it and tracking it down, should be all good now.
Aiming to release 2.3 this week, just going to tidy up the docs and add padding to the Text object.


Validation: Fix missing descriptions

This PR addresses the following issue:
description-missing
There are #30 issues fixed acros #30 files.

Global effort to fix validation errors
@adegeo
The Content & Learning team is fixing build validation errors on docs.microsoft.com. This effort will eliminate potential accessibility, security, and usability issues. This PR includes only build validation fixes and does not change other content. I’d very much appreciate your timely review and feedback on these changes I’ve suggested. Thanks!


[VS Incentives]: Consider abstracting gauge logic into a general interface for extensibility

Background
Carried over from this discussion started by @p0mvn.
"I think one of the struggles with regular gauges is extending them with the new functionality. Since those were implemented as a concrete struct, we had to extend them by creating new fields resulting in a bloated abstraction.
To prevent that happening with GroupGauge in the future, do you think it makes sense to implement it as an interface (proto Any) and separate each implementation based on splitting policy.
This would make it easier to extend in the future if needed. It will also avoid having the code smell of deciding the execution flow based on splitting policy via if/else. Instead, we could implement a method on the group gauge. The concrete implementation would be chosen dynamically based on type."
Suggested Design
For example, this
func (k Keeper) syncGroupGaugeWeights(ctx sdk.Context, groupGauge types.GroupGauge) error {
	if groupGauge.SplittingPolicy == types.Volume {
		err := k.syncVolumeSplitGauge(ctx, groupGauge)
		if err != nil {
			return err
		}
	} else {
		return types.UnsupportedSplittingPolicyError{GroupGaugeId: groupGauge.GroupGaugeId, SplittingPolicy: groupGauge.SplittingPolicy}
	}

	return nil
}

would become this:
volumeSplittingGauge := ...
volumeSplittingGauge.syncWeights(ctx)

evenSplittingGauge := ...
evenSplittingGauge.syncWeights(ctx)

Acceptance Criteria
Issue is discussed and converged on. If we decide to implement, then interface is implemented and well tested.

Thanks for tracking this @AlpinYukseloglu
On more thinking, while I think that this is a clean pattern overall, there are certain issues present that make it less preferred here.
For example, since syncWeights accesses store, it will also have to take in a keeper as parameter in addition to context.
Like this:
volumeSplittingGroup.syncWeights(ctx, k) // k is incentives keeper

Since Group is defined in types, any internal unexported method defined on the incentives keeper would be inaccessible and have to be exported.
As a result, I think we should be good to close this. Please let me know if disagreement


Update semanticdb-scalac to 4.9.0

About this PR
📦 Updates org.scalameta:semanticdb-scalac from 4.8.15 to 4.9.0
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalameta", artifactId = "semanticdb-scalac" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scalameta", artifactId = "semanticdb-scalac" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, version-scheme:semver-spec, commit-count:1

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

Comparison is base (4f68d24) 86.75% compared to head (1f9c75c) 86.75%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##           master     #811   +/-   ##
=======================================
  Coverage   86.75%   86.75%
=======================================
  Files         142      142
  Lines        1578     1578
  Branches      274      274
=======================================
  Hits         1369     1369
  Misses        209      209

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


Token from bytes, why no account?

TOTPFromBytes(encryptedMessage []byte, issuer string)
Why there is no Account (username | email)?
If I store bytes in a database and then I want to retrieve them do I need to store username manually?
Why issuer is only used here?

@Shadowfaxenator The account is stored in the bytes.
See here: https://github.com/sec51/twofactor/blob/master/totp.go#L332
The issuer is needed to initialise the encryption/decryption library for decrypting the bytes you stored in the database.
You should in any case store the username/email manually in a separated field in the database, index it and query the specific user's record in the table by using the username/email.
I hope it helps.

Thank you


CAMEL-18218 Fix camel-jira not adding components field

the "components" field was not updated due to a bug in handling the field
Added tests for the component field
Fixed the "components" field description
Updated google-guava accordingly to jira-rest-java-client-parent

https://issues.apache.org/jira/browse/CAMEL-18218

main pr build / build (11) (pull_request) fails with Error: Process completed with exit code 1. but I couldn't find the error file.

main pr build / build (11) (pull_request) fails with Error: Process completed with exit code 1. but I couldn't find the error file.

Thanks for your contribution!
Unfortunately the org restrictions don't allow public access to the log files, so we upload them on request. I have done that for you.
test-logs.zip
It's a checkstyle issue. You can usually fix those by running the auto format with mvn -Pformat,fastinstall install


fix failing homomorphic addition test

currently homomorphic addition test fails. appears coefficients are forced to be 0 or 1 in decrypt.rs.

made some minor changes like passing params and seed to encrypt, and generating the random ephemeral keys inside the encrypt function (rather than passing as parameters). it looks like it's encoded in binary, but the addition is then taking place component-wise mod 2, which isn't right. so like [1,0,1] + [1,0,0] --> [0,0,1], which isn't right if I want to encode 5 and 1 in binary.

[1,0,1] + [1,0,0] --> [0,0,1] is correct actually I think, since this is adding polynomials mod 2:
this would correspond to (1+x^2)+1 = 2+x^2 = x^2 mod 2.

I thought maybe so, especially if we're working over \Z/q\Z and q is a power of 2. however, I tried powers of 3 and got the same behavior. we do want dec(enc(2)+enc(3)) = 5. I haven't looked at the ciphertext yet while debugging. I feel like encoding 5 as [1,0,1,0,...,0] isn't quite right somehow. how does it know how to carry?


AWS Auth Failures Should Be added to Liveness/Readiness

Version

Karpenter Version: v0.22.1

Kubernetes Version: v1.24
Expected Behavior
Kaprneter should check if the Service account is modified with EKS IAM Role then it should restart pods to get new STS Credentials. Which causes AWS auth to fail
Actual Behavior
IT uses the Old STS Creds which are expired because the SA a=was modified to use new role
Steps to Reproduce the Problem
Just Chnage the karpeneter SA to use new IRSA Role and u will start to see AWS Auth failures in logs
Resource Specs and Logs
ERROR	controller.provisioner	creating scheduler, getting instance types, fetching instance types using ec2.DescribeInstanceTypes, AuthFailure: AWS was not able to validate the provided access credentials
Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

I'm going to change this to a feature to add auth dry-run checking to the liveness/readiness probes.

Hi @jonathan-innis , I can look into this issue, can you assign it to me? I am new to the repository plus I need to setup my AWS accounts, so it will take me sometime to send out the PR.

@kamalesh0406 any update?  Unassigned now if others want to work on this.

Hi, I'd like to work on this feature.


Migrate the Grafana changes to Theia

Add indirect cycle handling to Grafana Sankey panel
Limit max data values of Grafana panels

I removed the configurable namespace from all dashboard.json. As in the documentation - dashboard-customization, we ask the users to put the exported JSON file to the path theia/build/charts/theia/provisioning/dashboards. It's inconvenient and not straight-forward enough for them to replace all the Namespaces(e.g. flow-visibility) to '{{ .Release.Namespace }}'.
cc @yanjunz97 for opinions

I removed the configurable namespace from all dashboard.json. As in the documentation - dashboard-customization, we ask the users to put the exported JSON file to the path theia/build/charts/theia/provisioning/dashboards. It's inconvenient and not straight-forward enough for them to replace all the Namespaces(e.g. flow-visibility) to '{{ .Release.Namespace }}'.
cc @yanjunz97 for opinions

I see the concern. Do you think we need to add some words to remind users that if they install Grafana Flow Collector in a different namespace, they need to take care of the namespace changing in the json files?

I see the concern. Do you think we need to add some words to remind users that if they install Grafana Flow Collector in a different namespace, they need to take care of the namespace changing in the json files?

Thanks, added in the latest commit.


Add capability to handle interdependent functions in samplers/optimizers

Pull Request Description
What issue does this change request address? (Use "#" before the issue to link it, i.e., #42.)
Closes #2302
What are the significant changes in functionality due to this change request?
Added the possibility to specify in Optimizers/Samplers variables (defined through functions) that are interdependent.
For example, lets assume we sample the variables

#_Eggs,
grams_Pancetta_or_Guanciale(I know we should use only guanciale but it is difficult to find it),
grams_Pecorino_Cheese;
#_tomatos;

the variable what_dish_do_we_cook depends solely on these variables (and it is defined through a RAVEN <function>) and depending on the values of #_tomatos and #_Eggs the result of this function can be either be Carbonara or Amatriciana.
the variable which_pasta_should_we_use depends on the variable what_dish_do_we_cook:
if

what_dish_do_we_cook == Carbonara, which_pasta_should_we_use == Rigatoni
else
what_dish_do_we_cook == Amatriciana, which_pasta_should_we_use == Bucatini

Based on this example, RAVEN will first sample #_Eggs, grams_Pancetta_or_Guanciale, grams_Pecorino_Cheese  and #_tomatos; Then it evaluates the function that computes the variable
what_dish_do_we_cook and finally it computes the variable which_pasta_should_we_use  depending on the
value of the variable  what_dish_do_we_cook.
In addition to this capability, also a new test for the ensemble model testing/showing how to use it to transfer string variables from a model to the other using RAVEN variables has been added.

For Change Control Board: Change Request Review
The following review must be completed by an authorized member of the Change Control Board.

[ ] 1. Review all computer code.
[ ] 2. If any changes occur to the input syntax, there must be an accompanying change to the user manual and xsd schema. If the input syntax change deprecates existing input files, a conversion script needs to be added (see Conversion Scripts).
[ ] 3. Make sure the Python code and commenting standards are respected (camelBack, etc.) - See on the wiki for details.
[ ] 4. Automated Tests should pass, including run_tests, pylint, manual building and xsd tests. If there are changes to Simulation.py or JobHandler.py the qsub tests must pass.
[ ] 5. If significant functionality is added, there must  be tests added to check this. Tests should cover all possible options.  Multiple short tests are preferred over one large test. If new development on the internal JobHandler parallel system is performed, a cluster test must be added setting, in  XML block, the node <internalParallel> to True.
[ ] 6. If the change modifies or adds a requirement or a requirement based test case, the Change Control Board's Chair or designee also needs to approve the change.  The requirements and the requirements test shall be in sync.
[ ] 7. The merge request must reference an issue.  If the issue is closed, the issue close checklist shall be done.
[ ] 8. If an analytic test is changed/added is the the analytic documentation updated/added?
[ ] 9. If any test used as a basis for documentation examples (currently found in raven/tests/framework/user_guide and raven/docs/workshop) have been changed, the associated documentation must be reviewed and assured the text matches the example.

@wangcj05 @joshua-cogliati-inl @mandd
Unfortunately new issue
... Activating environment ...
... Installing libraries from PIP-ONLY ...
...pip-only command: pip install netcdf4==1.6.* tensorflow==2.13.* grpcio dask[complete] ray[default]==2.6.* imageio==2.22.* python-sensors numdifftools==0.9.* xmlschema fmpy==0.3.16.*
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f54cfab2cb0>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/netcdf4/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f54cfc26bc0>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/netcdf4/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f54cfc25ab0>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/netcdf4/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f54cfc26080>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/netcdf4/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f54cfab30d0>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/netcdf4/
ERROR: Could not find a version that satisfies the requirement netcdf4==1.6.* (from versions: none)
ERROR: No matching distribution found for netcdf4==1.6.*

ERROR: exiting with code 1

All jobs on d6e0159 : invalidated by @wangcj05

Job Mingw Test on 5c0f684 : invalidated by @alfoa

Job Mingw Test on 5c0f684 : invalidated by @alfoa

Very confused about the failure of Failed tests/framework/InternalParallelTests/ExternalModelRay.
Merged devel and trying again.

Job Mingw Test on 2b2de17 : invalidated by @alfoa

These failures are caused by a setuptool upgrade (https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/15863)

(69.5.1) works, (70.0.0) doesnt

Job Mingw Test on 74e6708 : invalidated by @alfoa
fetch failure (again)

@wangcj05 @joshua-cogliati-inl
Windows fetch failing:
Date: Thu May 23 10:44:36 MDT 2024
Machine: VDI-RavenW10-01
OS Name:                   Microsoft Windows 10 Enterprise
OS Version:                10.0.19045 N/A Build 19045
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Member Workstation
OS Build Type:             Multiprocessor Free
Trigger: Pull request
Step: Fetch Raven (0)
No module system in place
Base commit: git@github.com:idaholab/raven.git:devel:5c291642f18f9fef6ff45213dbd98bad0a5a83a7
Head commit: git@github.com:idaholab/raven.git:alfoa/functions_graph_theory:74e67082bac72e32e36de7655454be832643f37d
fatal: not a git repository (or any of the parent directories): .git
git version 2.43.0.windows.1

/opt/build_root/raven/: Removing current repository C:/Git/opt/build_root/raven
/opt/build_root/raven/: rm -rf C:/Git/opt/build_root/raven
rm: cannot remove 'C:/Git/opt/build_root/raven/tests/framework/InternalParallelTests/InternalParallelExtModelRay': Device or resource busy
/opt/build_root/: Cloning idaholab/raven
/opt/build_root/: git clone -q https://github.com/idaholab/raven.git
fatal: destination path 'raven' already exists and is not an empty directory.

ERROR: exiting with code 128

Job Mingw Test on 74e6708 : invalidated by @alfoa

Job Mingw Test on 74e6708 : invalidated by @alfoa

Job Mingw Test on 74e6708 : invalidated by @alfoa

@wangcj05 @joshua-cogliati-inl the windows machine seems to be down since days. Can we merge this without that test?

Job Mingw Test on 0fd2726 : invalidated by @wangcj05

Job Mingw Test on 0fd2726 : invalidated by @joshua-cogliati-inl
restarted civet

Job Mingw Test on 0fd2726 : invalidated by @joshua-cogliati-inl
restarted civet

Job Mingw Test on 0fd2726 : invalidated by @alfoa

@wangcj05 @joshua-cogliati-inl Unfortunately windows machine still has issues... (now with the set environment).

Job Mingw Test on 62194cc : invalidated by @joshua-cogliati-inl
failed trying to download icu-73.2-h63175ca_0.conda

Job Mingw Test on 62194cc : invalidated by @joshua-cogliati-inl
updated conda

Job Mingw Test on 7b55395 : invalidated by @joshua-cogliati-inl
Failed in set python evnvironment  (warning  libmamba Could not parse mod/etag header)

Is this good to be merged? @wangcj05 @joshua-cogliati-inl ?

PR is good, and checklist is satisfied.


face.detector.minConfidence can't be modified after first load

Issue Description
face.detector.minConfidence can't be modified after first load, and is ignored when modified via human.detect(image, userConfig)
Steps to Reproduce

create a human instance with some detector config const human = new Human({ face: { detector: { minConfidence: 0.01 } } })
try to chage the minConfidence when doing human.detect(image, { face: { detector: { minConfidence: 0.5 } } }))
see it does show faces with under 0.5 confidence

Expected Behavior
it should not show faces under wanted cofidence
**Environment

Module version? - 2.0.3
Built-in demo or custom code? - custom
Type of module used (e.g. js, esm, esm-nobundle)? - js
Browser or NodeJS and version (e.g. NodeJS 14.15 or Chrome 89)? - NodeJS v14.17.3
OS and Hardware platform (e.g. Windows 10, Ubuntu Linux on x64, Android 10)? - Window 10 / Ubuntu 20
Packager (if any) (e.g, webpack, rollup, parcel, esbuild, etc.)? - none

Additional
The issue happens because config is passed to blazeface only when constructing and is never modified after that. Simple solution is to inject and merge userConfig when calling getBoundingBoxes

Thanks for the PR.
I'm currently traveling and will review and merge in about a week.

Hi @vladmandic, I noticed there are more options that can't be altered dynamically after initialization. Would you prefer I create a new issue (and PR) for each one, or to reuse and update this one?

@ghostnumber7 no need for separate PR, I'll review and merge in one go anyhow.

@vladmandic I was wrong when stating there were other things (error on my code). So just that one for now :)

merged pr so closing the issue


fix(chat): change label for model change confirmation of shared chat (Issue #1053)

Description:
Change label for model change confirmation of shared chat
Issues:
#1053
Checklist:

[x] the pull request name complies with Conventional Commits
[x] the pull request name starts with fix(<scope>):, feat(<scope>):, feature(<scope>):, chore(<scope>):, hotfix(<scope>): or e2e(<scope>):. If contains breaking changes then the pull request name must start with fix(<scope>)!:, feat(<scope>)!:, feature(<scope>)!:, chore(<scope>)!:, hotfix(<scope>)!: or e2e(<scope>)!: where <scope> is name of affected project: chat, chat-e2e, overlay, shared, sandbox-overlay, etc.
[x] the pull request name ends with (Issue #<TICKET_ID>) (comma-separated list of issues)
[x] I confirm that do not share any confidential information like API keys or any other secrets and private URLs

/deploy-review


Cannot use plugin after codesign with AppSandboxing for publishing to Mac App Store

Hello,
First of all thank you for your FFmpeg integration plugin, it's been really helpful to handle in app video encoding and is quite easy to use. I successfully managed to integrate it in my application (on both OSX and Windows). I'm only struggling after code signing my Application on OSX.
I suspect the issue is linked to the App SandBoxing made mandatory by Apple on all Mac App store App.
com.apple.security.app-sandbox
The plugin works well when codesigning without Sandboxing. I tried multiple keys in entitlement including a solution using an app-sandbox inheritance but without any success.
com.apple.security.inherit
Details on my codesign process and my entitlement configuration can be found on a stack overflow post i made.
Do you have any clues or hint on the matter ? Do i need a specific configuration on my entitlements file or my FFmpeg file structure ?
Thanks again for your plugin and your time,
Regards,
Alexis.

I also meet this issue. Have you solve this now?

The problem is that I have zero knowledge about Mac App Store.

Yes There is not much knowledge about uploading app to Mac App Store in internet.


[WFLY-17799] Use jboss-invocation dependency brought in by WildFly Core

Jira issue: https://issues.redhat.com/browse/WFLY-17799

Thanks @yersan


[k3s] List supported environments

k3s can run just about anywhere, but it would be nice to define what is tested and expected to work. It's not very clear today exactly where it can run successfully. For example, we may not support running on macOS out of the box (or without some tweaks). This should be called out.
Can we try to simulate what Rancher docs show for supported environments? It's broken down there fairly well. I would like to take that and tweak it as needed for k3s.

Closing this issue out. We have since made updates to the docs which essentially indicate k3s can run on just about any linux distribution. As far as what is formally supported, the docs now call out to head to the support matrix page. This issue is no longer necessary.


Null refinement lost with single assignment

When I type check this snippet:
function foo(): ?number { return null; }
function log(n: number) { console.log(n); }

function hello() {
  var n = foo();
  if (n == null) {
    throw 'bad!';
  }
  window.setTimeout(() => log(n), 0);
}

I get errors like these:
>> toy.js:3,18,23: ?number
>> This type is incompatible with
>> toy.js:7,17,22: number

This only happens when log(n) is called from a closure. The refinement of n from ?number to number (because of the null check) is lost. Calling log(n) directly is fine.
In general dropping the type refinement is necessary, but it seems superfluous in this case because n is only ever assigned to once. Its value couldn't possibly change.

I believe this is similar to https://github.com/facebook/flow/issues/282 in trickiness (in the general case). In order to narrow the type of n, we'd have to prove that n is final (i.e. doesn't escape to somewhere where it could be updated later).
As with #282: This is worth looking into, but there may not be a trivial solution (or an all-encompassing one).

@gabelevi suggested on IRC that supporting const would make this wart go away. I would be quite happy to declare const n instead of var n in my example if it made your life easier.

Ah yes, that's a great solution actually!

Hi @danvk, just wanted to confirm that you're right in the original example - with the right analysis we could verify that n would keep its refinement for any possible execution of the closure. Our analysis is insufficiently precise at the moment to catch this, but we hope to continue improving. Thanks for the example!

As of Flow 0.17 the const fix does not work:
/** @flow */
function foo(): ?number { return null; }
function log(n: number) { console.log(n); }

function hello() {
  const n = foo();
  if (n == null) {
    throw 'bad!';
  }
  window.setTimeout(() => log(n), 0);
}

$ flow status
foo.js:10
 10:   window.setTimeout(() => log(n), 0);
                               ^^^^^^ function call
 10:   window.setTimeout(() => log(n), 0);
                                   ^ null. This type is incompatible with
  3: function log(n: number) { console.log(n); }
                     ^^^^^^ number

foo.js:10
 10:   window.setTimeout(() => log(n), 0);
                               ^^^^^^ function call
 10:   window.setTimeout(() => log(n), 0);
                                   ^ undefined. This type is incompatible with
  3: function log(n: number) { console.log(n); }
                     ^^^^^^ number

Found 2 errors

Yeah... we added support for the declaration, but we didn't update code to take advantage of const for improved type checking—like holding onto refinements.
I actually took a stab at this (with a blunt instrument) in #901, but I ran into a complication. @bhosmer, does the pattern in #817 make sense here? Am I right that the simple change in #901 is insufficient?

Err, it's more helpful to provide a specific example. There are a few reasons why Flow wouldn't understand this code, but hopefully it shows why const bindings to objects can't stay refined, or makes it clear what my fundamental misunderstanding is.
/* @flow */

type T
  = { t: "a", a: number }
  | { t: "b", b: string };

function f(o: T): () => number {
  const t = o;
  if (o.t === "a") {
    return () => o.a;
  } else {
    return () => parseInt(o.b);
  }
}

var o = { t: "a", a: 0, b: "" };
var cb = f(o);
o.t = "b";
delete o.a;
cb(); // unexpected void, not number

@samwgoldman just recapping from IRC:

Yes, you're absolutely right. This is a case where a refinement on a const isn't guaranteed to hold throughout an entire program run.
The abstract family of such cases are refinements whose tests depend on mutable sites within the value - sites which remain mutable even if the variable which holds the value is const. E.g. here the magic ingredients are:
- the test is t.t === "a", explicitly involving a (mutable) property of the object, and
- the implications of that test are at the top level, because the type is a tagged union - unlike property tests in general, which only refine the type of the property being tested (and are blown away as usual even if the host object is held in a const variable).
This isn't very inspired, but I think the simplest solution here will be to
- keep track of the refinement operation that produces a narrowed type (we currently install the tvar "output" of the refinement in the scope entry, but there's no direct back-pointer to the PredicateT operation itself), and
- exclude refinements that depend on mutable internal state from the preservation behavior. Tagged unions are the poster child, but I could imagine there might be others, e.g. instanceof an interface type.

0.18 will now hold onto refinements for const-bound variables. I confirmed changing the var to const in the original example has no errors.

Here's a slightly more elaborate example where const does not help:
/** @flow */

type SeqMap = {[key: number]: string};

function getSequences(k: string): ?SeqMap {
  return (k == 'x') ? null : {};
}

function getAsString(k: string, start: number, stop: number): string {
  const seqs = getSequences(k);
  if (!seqs) return '';

  [].map(x => seqs[start] || '   ');
  return '';
}

and the errors:
hello.js:13
 13:   [].map(x => seqs[start] || '   ');
                   ^^^^^^^^^^^ access of computed property/element. Computed property/element cannot be accessed on possibly null value
 13:   [].map(x => seqs[start] || '   ');
                   ^^^^ null

hello.js:13
 13:   [].map(x => seqs[start] || '   ');
                   ^^^^^^^^^^^ access of computed property/element. Computed property/element cannot be accessed on possibly undefined value
 13:   [].map(x => seqs[start] || '   ');
                   ^^^^ undefined

Found 2 errors

Clearly Flow has lost the refinement, even with const.

I tested on master and get no errors. Maybe I was mistaken about the const refinement commit, and it didn't make it into 0.18?

Yep, I can confirm that this is no longer an error at HEAD. Guess I'll have to wait for the 0.19 release.


refactor: better sharing

include station, line and direction
add a check for empty string in marker modal for line and direction

Also one more thing, please update the description so that it is easier to know without the necessary context what this is about. This will help with debugging. Also maybe include the problem this solves so that down the line we will know why this was important.

This is going to play nicely with https://linear.app/freifahren/issue/FRE-369/share-button-inside-of-marker-modal-should-be-bigger where this sharing button will be reworked as a whole.

@brandesdavid can this be merged?


pcl::concatenateFields

I want to know which class does pcl::concatenateFields belong to?

I also didn't find the concatenateFields class


Implement line editing

First iteration of multipoint line editing. Should probably be a draft. There are things not finished yet, notably inserting points between two existing points. And there are issues around rotated elements (and in some cases when the elements are resized and the first point isn't at [0,0]).
You enter the editing via Enter or double-click. Hints included.

Reasoning behind some decisions

We allow editing points even of 2-point arrows, which seem redundant. This is because this allows for:

Adding inserting new points to 2-point arrows, and thus making them into multi-point arrows.
Removing a point from 3-point arrow will make it into a 2-point arrow, and it shouldn't exit the editor by doing so.

I've made t() helper run shortcut replacement on every string. This may be inefficient.

I've tried to hide most of the logic into LinearElementEditor (which currently is a mix of instance & static class), but there are still many places in the codebase with ad-hoc implementation.

During editor init, or when moving start point, I'm recalculating all other points (and element's x/y) so that I retain the first point's position to be [0,0]. I believe this was the original assumption when multi-point lines were introduced back in the day
Currently, this invariant is being broken when resizing elements, and it manifested in at least one bug during the development of this feature. I believe it's the cause of other issues we've encountered and had to hack around, but that's just a hunch.
I propose we go back to retaining this invariant, but that's for another PR.

future improvements/not implemented

[ ] right now, the uncommitted point when you hold Cmd is not removed immediately after Cmd release, but after you then move your cursor.

[x] figure out how history ties into this

[x] show undo retain or re-open line editor? If so, I'll need to rewrite editingLinearElement state handling (replace element → elementId).

[ ] inserting new points

[x] inserting new leading point

[ ] Currently, a point can be inserted only at the end, not from the start (i.e. what point is currently selected is disregarded) --- should this be implemented? But then users would need to select start/end point in order to be append points, which I think isn't a good idea.

[ ] inserting points in the middle of two points

[ ] moving points

[x] when start/end point is moved within threshold of start/end point, it should close the loop
[ ] when moving start/end point of already closed shape, should it move both?
[ ] moving multiple points at once --- may also be useful if the above is not implemented

[x] :bug: moving points when shape is rotated moves/changes bounding box in cases it shouldn't.
So I must be computing the rotation wrong or something (though I'm not sure -- it seems the points move correctly, in respect to the rotation --- but the subsequent element x/y/width/height calculation is wrong).
I think this isn't related to this PR per se.

[ ] I would probably not render bounding box when editing points (distracting, esp around boundary points). Though this will prevent resizing at the same time.

[ ] possibly show hover effect & change cursor when cursor over point (not sure about perf cost)

Wonderful!!!

This is very useful for free draws too. (especially deleting points)
Inserting points at the end seems fine. Let's make it simple (limited) until someone shows compelling use cases.
Could we avoid adding more logic to App.tsx? Even if it doesn't fit well in LinearElementEditor class, I would like to have new functions in other files and only import them in App.tsx.
Agreed with removing the bounding box. At least in my mental model, I wouldn't do editing and resizing(incl. rotating) at the same time.
Let me see if I can help with rotation.

a653779 This commit fixes the behavior with rotation. I can think of two limitations with this implementation.

it calculates with roughjs which is computationally VERY heavy. we don't need this if we remove the bounding box. (even with the bounding box, if we are ok with sloppiness, we could calculate with naive estimates)
if we jump from one side to the other, it jumps... To overcome this, we can't reuse the current resizing logic, and require creating a new logic for this purpose.

Thanks!

it calculates with roughjs which is computationally VERY heavy. we don't need this if we remove the bounding box. (even with the bounding box, if we are ok with sloppiness, we could calculate with naive estimates)

I assume we are going to remove the bounding box (display), but that's unrelated --- previous behavior was affecting element's x/y, not really its bounding box.

if we make a jump from one side to the other quickly, it jumps... To overcome this, we'd need a special handling for flipping or creating a new logic for this purpose.

Yea... I guess we can optimize it later.

Inserting points at the end seems fine. Let's make it simple (limited) until someone shows compelling use cases.

Yea. Not sure if you were referring to insert-at-the-other-end, or in general --- would you leave inserting points between two existing points for another PR, as well?

Could we avoid adding more logic to App.tsx? Even if it doesn't fit well in LinearElementEditor class, I would like to have new functions in other files and only import them in App.tsx.

I'll see what I can do.

Agreed with removing the bounding box. At least in my mental model, I wouldn't do editing and resizing(incl. rotating) at the same time.

Yes. Will also require modifications to click handling (to disable resize altogether).
I also noticed I incorrectly handle inserting new points when elements are rotated. Will look into it.

previous behavior was affecting element's x/y, not really its bounding box now that I think about it.

Yeah the previous issue is unrelated. I mean we could avoid calculating with roughjs in this case. I might try it later.
In case you are not very familiar, rotation is based on [cx, cy] not element.x/y. I'm not so sure it was a right decision, but even if we rotate around x/y, it requires adjusting, so more or less the same.

Not sure if you were referring to insert-at-the-other-end, or in general

I was referring insert-at-the-other-end.

would you leave inserting points between two existing points for another PR, as well?

Up to you. Hm, if we have the capability of inserting points, we would never need inserting a point at the end. I'm not so sure how people use this feature.

Works nicely! ❤

I feel like the dotted-line circles are not quite visible enough, especially against the bounding box. Why did you get rid of the red circles?

I feel like the dotted-line circles are not quite visible enough, especially against the bounding box. Why did you get rid of the red circles?

I used that color scheme for debugging, but I can add it back :)

Why do we need to press enter/double click to enter edition mode and not enable it on selection? I can't think of any downside.

Also, I don't understand why the control point goes to red when active. The edges don't when we resize them.

While I agree double clicking is not a very nice action, we would need to distinguish the edit mode and the selection mode. Otherwise, one wouldn't be able to drag many point lines like free draws to move. (Or, we create a special handle for move.)

Also, I don't understand why the control point goes to red when active. The edges don't when we resize them.

We need to distinguish selected point from other points, so that you know which point well be deleted on Delete.

Why do we need to press enter/double click to enter edition mode and not enable it on selection? I can't think of any downside.

As @dai-shi said, plus even for shapes with less points, you'd often misclick on a point when you instead wanted to drag the arrow as a whole. Same would apply for removing the element --- when you misclick and select a point, hitting delete would remove that given point instead of the whole element. I also think it'd be distracting showing the points every time you select a line.
I was also planning to remove the bounding box during line-editing as per discussion above.
It's also possible we'll want to support different shortcuts when in editor and when not (we're already doing Cmd+click to add new points).
There's a precedent for this, too --- with text elements.

Inserting new points could happen with a double click anywhere on the line.

Inserting new points could happen with a double click anywhere on the line.

Yes, but there's still value in being able to do this:

Yes, but there's still value in being able to do this:

Yes, that too.. we should have both! Also from the other end :)

What's left:

[ ] fix element x/y when creating new point in a rotated element
[ ] [maybe] remove the bounding box. Will also require disabling handlers etc. I'm also not sure if it actually is desired. I'll leave this for another PR.
[ ] refactor

I will have a look later. I'd like to make it position properly without calculating with roughjs.

Factored out most of the logic into linearElementEditor.ts. I resorted to some ugly patterns, such as passing down this.setState in order to do it. But it will allow migrating from storing state.editingLinearElement.element reference to simple id (I've made this refactor once already, but since it was all in App.tsx, it had really bad ergonomics).

Spent more than one full day, and I came up with something I'm confident. (But, I can't explain how this works...)

Here's a diagram trying some algebra. This wasn't the right approach because it wasn't doing anything, but helped me ideating the final code. Just leaving it as a history. No need to look deeply.
https://excalidraw.com/#json=5666586719420416,hMxFDuz8d-yECEl-i2qpKw

There are still some issues positioning with rotation, when you add (commit) a new point and delete a point. You might need to use LinearElementEditor.movePoint too.

Here's the gif to show adding and deleting. The positioning issue also occurs without rotation. I think it's trivial and ok for the first iteration.

Yea, there are many issues still (included those you mentioned). I'll write out the ones we know about:

[ ] [rotated] deleting a point changes element x/y position
[ ] [rotated] pressing Cmd/Ctrl (to add new point) when the pointer is outside bounding box changes element x/y position
[ ] [rotated] releasing Cmd/Ctrl (without committing the new point) changes element x/y poisition

Couldn't repro any issues without rotation.

Couldn't repro any issues without rotation.

Seems like my misunderstanding back then. Yeah, it's only with rotation.

[rotated] pressing Cmd/Ctrl (to add new point) when the pointer is outside bounding box changes element x/y position

It doesn't have to be outside of the box.

It doesn't have to be outside of the box.

True. It happens whenever the new point changes the bounding box size (in your GIF the bezier curve of point [3,4] changes. I'll edit the todo list.

(I added WIP in the title, so we know when it's ready to be final reviewed)

Fixed the rotation issues with a bit of hack. There's room for improvement.

Ah, I meant the room for code refactoring. The behavior should be good.

[maybe] remove the bounding box. Will also require disabling handlers etc. I'm also not sure if it actually is desired. I'll leave this for another PR.

@dwelle Would you please consider removing it in this PR?

played with it, i think it's super useful. a few things i noticed:

i think the editing bubbles should show up as you're drawing initially
i think the alt behavior is strange. i would expect to be able to alt-drag the start or end point to draw a new one. maybe when you press alt, all other points besides the start and end fade a bit to indicate that you can only use it on the start and end points.
i would expect to double-click the line while editing to insert a new point in the middle

i don't have strong opinions about the bounding box issue. probably would prefer to remove it but it doesn't bother me.
i'm pretty excited about this landing though and i'd be down to do all this as a follow up...

@dwelle Would you please consider removing it in this PR?

I can take a look at how hard it'll be, but my main issue was I'm not sure if the UX is good.

@dai-shi works flawlessly. Thanks a lot!

but my main issue was I'm not sure if the UX is good (when I tried it).

Is it because it's not clear the target element we are modifying?
In that case, my suggestion is to remove resize/rotate handles only and keep the bounding box.

Is it because it's not clear the target element we are modifying?
In that case, my suggestion is to remove resize/rotate handles only and keep the bounding box.

No, my concern was mainly from usability perspective: users may want to rotate/resize during edit.

I'm okay to ship.

@petehunt

The add-point-in-the-middle is planned for next PR.
Showing points during initial draw is a good idea, will create an issue for that too. As for alt+drag to duplicate, can be done too. It won't conflict with alt-to-create because during point dragging, the alt-to-create is disabled.
As for fading out points, I'm not sure it's helpful because to me it's already quite obvious that alt-to-create will create a new point since your mouse is already tracking the new point. But we can discuss it further.

No, my concern was mainly from usability perspective: users may want to rotate/resize during edit.

Got it, and my concern is rotation handle and line editing handle are too close in some cases and mobile users mis-drag it. Let's discuss or wait for feedback in the follow ups.
👍 to ship this.


Import from TheBugGenie

I think there should be a feature to import data from other systems, such as TheBugGenie.

This project looks dead.


Share ics file

Sorry for the simple question but I'm new to Flutter...how can I take the ics file generated and send via text or email using flutter package like share?  Share.shareFiles uses a local path but I don't understand how I would save ics to path.

https://flutter.dev/docs/cookbook/persistence/reading-writing-files#1-find-the-correct-local-path
here you go if you want to write it in your app's folder

https://flutter.dev/docs/cookbook/persistence/reading-writing-files#1-find-the-correct-local-path
here you go if you want to write it in your app's folder

Thank you.  I didn't appreciate that cal.serialize() just creates a file.   And thanks for maintaining a great little package.

Thank you.  I didn't appreciate that cal.serialize() just creates a file.   And thanks for maintaining a great little package.


arkade: 0.8.34 -> 0.8.36

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/arkade/versions.
meta.description for arkade is: "Open Source Kubernetes Marketplace"
meta.homepage for arkade is: "https://github.com/alexellis/arkade"
meta.changelog for arkade is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.8.36 with grep in /nix/store/wjlcdvs7cb2xyd06f9gfbjgx082ibflw-arkade-0.8.36
found 0.8.36 in filename of file in /nix/store/wjlcdvs7cb2xyd06f9gfbjgx082ibflw-arkade-0.8.36

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
arkade

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/wjlcdvs7cb2xyd06f9gfbjgx082ibflw-arkade-0.8.36 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A arkade https://github.com/r-ryantm/nixpkgs/archive/39d3ae7220673089f3b48bf27ce9eb8ad55b6431.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/wjlcdvs7cb2xyd06f9gfbjgx082ibflw-arkade-0.8.36
ls -la /nix/store/wjlcdvs7cb2xyd06f9gfbjgx082ibflw-arkade-0.8.36/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

arkade

Maintainer pings
cc @welteki @techknowlogick for testing.


fix(sbb-form-field): include optional info in ellipsis

Codecov Report

Merging #1790 (52f0557) into master (ab917b0) will increase coverage by 0.49%.
The diff coverage is 57.16%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##           master    #1790      +/-   ##
==========================================
+ Coverage   54.85%   55.35%   +0.49%
==========================================
  Files          49      162     +113
  Lines        1659     6428    +4769
  Branches      406     1759    +1353
==========================================
+ Hits          910     3558    +2648
- Misses        671     2642    +1971
- Partials       78      228     +150

Impacted Files
Coverage Δ

...ts/sbb-accordion-item/sbb-accordion-item.events.ts
100.00% <ø> (ø)

...mponents/sbb-accordion-item/sbb-accordion-item.tsx
0.00% <0.00%> (-37.21%)
:arrow_down:

...onents/sbb-autocomplete/sbb-autocomplete.events.ts
100.00% <ø> (ø)

src/components/sbb-calendar/sbb-calendar.events.ts
0.00% <0.00%> (ø)

src/components/sbb-checkbox/sbb-checkbox.events.ts
0.00% <0.00%> (ø)

...components/sbb-datepicker/sbb-datepicker.events.ts
0.00% <0.00%> (ø)

src/components/sbb-datepicker/sbb-datepicker.tsx
49.18% <ø> (ø)

src/components/sbb-dialog/sbb-dialog.events.ts
100.00% <ø> (ø)

src/components/sbb-dialog/sbb-dialog.tsx
45.11% <ø> (ø)

src/components/sbb-divider/sbb-divider.tsx
100.00% <ø> (ø)

... and 30 more

... and 133 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Fix for issue #164

Stolen from the "darvell".

Codecov Report

Merging #165 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master    #165      +/-   ##
=========================================
- Coverage    6.02%   6.01%   -0.01%
=========================================
  Files          56      56
  Lines       11757   11776      +19
  Branches     1849    1852       +3
=========================================
  Hits          708     708
- Misses      10952   10971      +19
  Partials       97      97

Impacted Files
Coverage Δ

MLAPI/Data/Transports/UNET/UnetTransport.cs
0% <0%> (ø)
:arrow_up:

MLAPI/MonoBehaviours/Core/NetworkingManager.cs
5.17% <0%> (-0.03%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 83ddcc6...2179b41. Read the comment docs.


Repo name change request

Have you checked that your feature request isn't already filed?

[X] I read through FAQ and searched through the past issues, none of which addressed my feature request.
[X] Yes, I have checked that this feature request isn't already filed.

Description & Motivation
Northeastern University requires NU as the acronym; NEU is now explicitly not allowed.
Pitch
Could you rename the repo for the website as
nu-csl
or
nu-spiral-csl
to be consistent with the acronym requirement of the university?
Throughout the webpage, we should only use NU, and never use NEU.
Alternatives
.
Additional context
.

Hi @DenizErdogmus
We have changed the github repository name to nu-csl. Please confirm the new website domain https://cogsyslab.github.io/nu-csl/ works for all links.
I would suggest purchasing / acquiring a better domain name such as nu-csl. We would then make the website domain just https://www.nu-csl.com.
To remove NEU throughout the webpage may take a little while due to the code page. The issue is that the github organization username, where the github repositories are automatically pulled from, is neu-csl...