How to resume training on the previous checkpoint

💡 Your Question
Hi Team,
Thanks for giving us this masterpiece, I trained a model successfully using the tutorials you provided and now I've a model in ./checkpoints/exp1/ckpt_best.pth and I want to load this model and resume the training, I tried to use
super_gradients.training.models.get(model_path)
but it is expecting common model name aka, 'yolo_nas_l', can you help me?
Versions
No response

Set parameter "resume" with the same experiment_name in trainer initialization
train_params = {
    "resume": True,
...
}
trainer.train(model=model,
              training_params=train_params,
              train_loader=train_data,
              valid_loader=val_data)

Hello @binrey
I trained the model using this params:
train_params = {
    # ENABLING SILENT MODE
    "average_best_models":True,
    "warmup_mode": "linear_epoch_step",
    "warmup_initial_lr": 1e-6,
    "lr_warmup_epochs": 3,
    "initial_lr": 5e-4,
    "lr_mode": "cosine",
    "cosine_final_lr_ratio": 0.1,
    "optimizer": "Adam",
    "optimizer_params": {"weight_decay": 0.0001},
    "zero_weight_decay_on_bias_and_bn": True,
    "ema": True,
    "ema_params": {"decay": 0.9, "decay_type": "threshold"},
    # ONLY TRAINING FOR 10 EPOCHS FOR THIS EXAMPLE NOTEBOOK
    "max_epochs": 100,
    "mixed_precision": True,
    "loss": PPYoloELoss(
        use_static_assigner=False,
        # NOTE: num_classes needs to be defined here
        num_classes=config.NUM_CLASSES,
        reg_max=16
    ),
    "valid_metrics_list": [
        DetectionMetrics_050(
            score_thres=0.1,
            top_k_predictions=300,
            # NOTE: num_classes needs to be defined here
            num_cls=config.NUM_CLASSES,
            normalize_targets=True,
            post_prediction_callback=PPYoloEPostPredictionCallback(
                score_threshold=0.01,
                nms_top_k=1000,
                max_predictions=300,
                nms_threshold=0.7
            )
        )
    ],
    "metric_to_watch"<EMAIL_ADDRESS>}

The training has finished, but I think I need to train for another 50-100 epochs. I want to resume from the last_ckpt.pth. What should I do? Also, when I will start the training again what will happen to the learning rate, like how does it work?

Thank you so much, appreciate it.

@hassanbadawy is your issue fixed?

Hi Deci,
Thank you for your support,  it works well.
Regards,
Hasan
Sent from Outlook for Androidhttps://aka.ms/AAb9ysg

From: Minh-Tu Cao @.>
Sent: Saturday, July 1, 2023 7:11:40 PM
To: Deci-AI/super-gradients @.>
Cc: Hassan Badawy @.>; Mention @.>
Subject: Re: [Deci-AI/super-gradients] How to resume training on the previous checkpoint (Issue #1139)
@hassanbadawyhttps://github.com/hassanbadawy is your issue fixed?
—
Reply to this email directly, view it on GitHubhttps://github.com/Deci-AI/super-gradients/issues/1139#issuecomment-1615977105, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AK7KID47XIF3O7XF3JHKOHLXOBD3ZANCNFSM6AAAAAAY4BZBOY.
You are receiving this because you were mentioned.Message ID: @.***>

Hi @binrey @hassanbadawy @Minh-Tu-Cao @AlimTleuliyev !
Thanks for coming to each other's aid on this issue. I'm gathering some feedback on SuperGradients and YOLO-NAS.
Would you be down for a quick call to chat about your experience?
If a call doesn't work for you, no worries. I've got a short survey you could fill out: https://bit.ly/sgyn-feedback.
I know you’re super busy, but your input will help us shape the direction of SuperGradients and make it as useful as possible for you.
I appreciate your time and feedback. Let me know what works for you.
Cheers,
Harpreet


Update playbooks-generic.md

Updated the generic playbooks article.

Status
Ready
Related Issues
fixes: https://github.com/demisto/etc/issues/40712
Description
The following changes were made:
with the following information:

Update playbooks list with right version and additional playbooks
Add explanation about what these playbooks are good for and how they are used
Add playbook description to table

@michalgold Doc review completed.


feat: index alias mapping

What does this do / why do we need it?

Fixes aliasing logic (set only single alias while reindexing data)
Create index - alias cache
Add alias in the request context so that other plugins can work

What should your reviewer look out for in this PR?
Do you need help or clarification on anything?
Which issue(s) does this PR fix?

@bietkul resolved the issues here


DateRange: new component

Summary
What changed?
DateRange: new component

Why?
New component
Links

Jira
Docs
Figma

Checklist

[x] Added unit and Flow Tests
[X] Added documentation + accessibility tests
[X] Verified accessibility: keyboard & screen reader interaction
[X] Checked dark mode, responsiveness, and right-to-left support
[X] Checked stakeholder feedback (e.g. Gestalt designers)

Can we center the calendar here in the localizaton example, or make it take full width?


performance test not running on pixel

The tests @zanderso switched from s10 to pixel 7 are not starting https://ci.chromium.org/ui/p/flutter/builders/luci.flutter.staging/Linux_pixel_7pro animated_advanced_blend_perf__timeline_summary

cc @ricardoamador

There is some issue with new tests and running them before they appear in LUCI.
I just kicked off reruns and they are now starting to pass.

This behavior also seen with some tests @vashworth just reintroduced. They never ran till I kicked off a rerun.

Making this bug be about tracking down root cause.

FYI, workaround seems to be kicking off a rerun. Although, the rerun might need to be delay till luci build info propagates (not sure).

Mac_ios integration_ui_ios_driver_xcode_debug, Mac_ios flutter_gallery_ios__start_up_xcode_debug were the tests @vashworth reintroduced.

For my use case, I added two tests Mac_ios integration_ui_ios_driver_xcode_debug and Mac_ios flutter_gallery_ios__start_up_xcode_debug.
I originally added them in https://github.com/flutter/flutter/pull/131865 (Aug 9) and they started fine. I later removed them in https://github.com/flutter/flutter/pull/132398 (Aug 11). And I recently re-added them in https://github.com/flutter/flutter/pull/132523 (Aug 22)

FYI, once the first build runs (after kicking off rerun) subsequent ones run fine.

I believe this to be this issue: https://github.com/flutter/flutter/issues/131501.
The next step in that is to just rebase to TOT.


fixed feature type 1 - Point

For feature type 1 (point) the module raise an error. Bug fixed

Look on you fork PR https://github.com/juloaiza/vt2pbf/pull/1

Thank you!


Multiple games at a time

Don't allow multiple games to run at the same time.

Only one game can now be run at a time (but even on other servers). To be fixed.


Enable Galaxy file display (test and descriptor)

enables file descriptor and test file display en route to Galaxy DAG display #3174
consider as feedback for https://github.com/dockstore/dockstore/issues/3154 (i.e. should reduce number of places we need to touch to add new languages to the UI)

Will need cleanup, but need to get unblocked to work on DAG hookup
Can be reverted after https://github.com/dockstore/dockstore-ui2/pull/918 is cleaned up and goes in, but I'd like to get this in to start trying out workflows from https://github.com/dockstore/dockstore/issues/3186 on dev.dockstore.net

Attaching screenshots of settings to reproduce results

ERROR in src/app/configuration.service.ts:38:61 - error TS2339: Property 'bdCatalystSevenBridgesImportUrl' does not exist on type 'Config'.

38     Dockstore.BD_CATALYST_SEVEN_BRIDGES_IMPORT_URL = config.bdCatalystSevenBridgesImportUrl;
                                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/app/configuration.service.ts:39:53 - error TS2339: Property 'bdCatalystTerraImportUrl' does not exist on type 'Config'.

39     Dockstore.BD_CATALYST_TERRA_IMPORT_URL = config.bdCatalystTerraImportUrl;

@coverbeck  any idea actually? I seem to have picked up something from that last merge from develop even though it was a clean merge

@coverbeck any idea actually? I seem to have picked up something from that last merge from develop even though it was a clean merge

Hmm, what if you change package.json to point to 1.8.1? Although rc should have it too.

Hmm, what if you change package.json to point to 1.8.1? Although rc should have it too. Did you run npm run prebuild?

I did not, but is that necessary anymore? prebuild doesn't show up in the readme https://github.com/dockstore/dockstore-ui2#build
Was under the impression it was run by npm run build which is

Going to make a PR for galaxy without mentioning galaxy in code


IDE crashes if trying completion when cursor is on a string with space in front of it

Steps to reproduce:
Add at least one space character on line
Try completion from start of line
Expected result:
IDE and completion working
Actual result:
After entering several characters and space character IDE crashes
https://github.com/smallcloudai/refact-vs-classic/assets/140423660/f86eb6a4-937d-410e-a573-61923159de30
Software versions:
Microsoft Visual Studio Community 2022 (64-bit) - Current Version 17.8.4
Refact plugin v 0.0.1 https://github.com/smallcloudai/refact-vs-classic/actions/runs/7469728225?pr=22
Windows 11 Pro 22H2 22621.2861
Logs:
rustbinary.zip
ActivityLog.zip

Why is the server running in it's own window in your setup?

Make sure to uninstall any previous versions when installing the latest one because it doesn't look like you are running the correct version.  The most up to date version would show a status bar icon and not have the server running in a separate window.

Server isn't running separately. I just opened logs (..cache\refact\logs\rustbinary.2024-01-17) of refact-lsp server built into the plugin.
Uninstalled plugin, then installed plugin from https://github.com/smallcloudai/refact-vs-classic/actions/runs/7469728225.
https://github.com/smallcloudai/refact-vs-classic/assets/140423660/fec0eede-4e7a-496a-af02-4e61006aef44

Looks like spaces isn't the trigger. Can you try typing one letter at a time and waiting for the completion before typing the next letter and see if it still crashes?

Space - crash:
https://github.com/smallcloudai/refact-vs-classic/assets/140423660/44153bbe-8373-4005-9552-370ef9b9fef2
Letter - no crash:
https://github.com/smallcloudai/refact-vs-classic/assets/140423660/9f6ac686-577c-451e-ba03-41a00213d1d6

What do you mean by space because your letter example includes spaces?

Try to reproduce this steps for IDE crash:
Create new file
Type a space character
Return to the beginning of the line
Type any characters, for example "def"
Type a space character
Wait for the fall
(If necessary, try typing one letter at a time and wait)

This should be fixed in the latest pull request

Tested plugin from https://github.com/smallcloudai/refact-vs-classic/actions/runs/7563144505
Looks like previous case not reproducing now. But there is crash after Enter:
https://github.com/smallcloudai/refact-vs-classic/assets/140423660/6a450bd9-6b27-40b2-a7df-85f9de5cbb55

@hazratisulton are you on the company slack because I would like to communicate with you more broadly beyond this specific issue.

@hazratisulton this should be fixed now

Both cases fixed in this version https://github.com/smallcloudai/refact-vs-classic/actions/runs/7588140824


(question) other languages?

Hi all, it's a really amazing model. Thabks for all.
Is there a plan to release the model in other languages other than English?

Hi, thank you for your interest! Currently we don't have short-term plan for multilingual. Mainly due to the base models are not that strong for non-english at this time. But we'll definitely thinking about it in the medium-long term


Please add a Microphone control with sellectable quality and add bit quality control like 2 bits -32bits and fps controll in remote desktop and remote camera its very important for RAT becaus more people have a low internet connection, and add 64bit client build support and cursor seeng function thanks.

I've implemented Remote Microphone you can find it in my Fork. If you like changes go ahead and implement them.


[Gekidou MM-3972] Websocket Events - Reaction and emojis

Summary
This PR handles the following teams websocket events:

Reaction added event
Reaction removed event
Emoji added event

Ticket Link
https://mattermost.atlassian.net/browse/MM-41523
Checklist

[ ] Added or updated unit tests (required for all new features)
[ ] Has UI changes
[ ] Includes text changes and localization file updates
[ ] Have tested against the 5 core themes to ensure consistency between them.

Device Information
This PR was tested on:
Screenshots

Release Note

We do not have Websocket event from the server when a emoji is deleted. See emoji.go
I could add code the WS handler in this PR and and create the server PR also or add as a new ticket to get this merged sooner.

Let's create a ticket for the missing custom emoji removal

@jfrerich did you forget to push a commit ?

@enahum, yes, I forgot to push. Sorry. It's there now.


Use strings as keys and input

Hi, i was looking at the demo.c and i would like to implement it to an aes-254-ctr encryption
But it seems that the variables are in uint8 and hex and that its not ascii codes, so how can i use it in strings?
Also is there a way to avoid using iv? Or is it safe to use a random one?
Thanks!

Hi @thomasxd24

i would like to implement it to an aes-254-ctr encryption

You mean AES-256-CTR right? That configuration is supported yes.

But it seems that the variables are in uint8 and hex and that its not ascii codes,
so how can i use it in strings?

All data is held in raw byte-arrays (uint8_t-arrays) and not in the ASCII text format, yes.
From my experience as a C developer, this is the case way more often than not.
(uint8_t is just another way of saying an unsigned 8-bit integer -- which is usually an alias for unsigned char).
Converting raw byte-arrays to/from hex-strings is a common C question on stackoverflow.com:
https://stackoverflow.com/questions/6357031/how-do-you-convert-a-byte-array-to-a-hexadecimal-string-in-c
https://stackoverflow.com/questions/3408706/hexadecimal-string-to-byte-array-in-c

Also is there a way to avoid using iv? Or is it safe to use a random one?

Yes, by using ECB-mode, but I would recommend against using that mode of operation, unless you know exactly what trade-off you are making there.
The IV is not a secret and is just meant for adding extra initial entropy/randomness.
You can generate an IV at random and send it in clear-text to the other party, no problem :)


add statosio

fix tables
add script tag with sri
json new line

FYI, in future you don't need to close the PR and open a new one, the old one was updated and was fine to leave open for a second review 👍

In a few places you use bullet points when they aren't really part of a list -- this seems like an odd style choice for the content? If they're meant to be subheadings, maybe bold would be better?
E.g. - Option explained

thanks for the fast reply

removed bullet points.
removed links
removed "s"


Error logs

LG Air Conditioner Model
Model: PC18SQ
HK Model: RAC_056905_WW
Describe the bug
The plugin is generating error logs
Symptom check

Does your unit appear in the Home app? Yes
Is the current on/off state, temperature, and mode being reported? Yes
Does your unit respond to the controls? Yes

Relevant logs
[16/08/2021, 23:34:00] [homebridge-lg-thinq-ac] This plugin generated a warning from the characteristic 'Filter Life Level': characteristic value expected valid finite number and received "NaN" (number). See https://git.io/JtMGR for more info.
[16/08/2021, 23:35:00] [LgThinqAirConditioner] SwingModeCharacteristic: Warning: Your A/C unit supports variable swing settings, but this is not supported by Homekit. Ignoring desired swing setting.
[16/08/2021, 23:35:00] [LgThinqAirConditioner] TargetHeaterCoolerStateCharacteristic: Error parsing state Error: Unsupported API value: 6
[16/08/2021, 23:35:00] [LgThinqAirConditioner] CurrentHeaterCoolerStateCharacteristic: Error parsing state Error: Unsupported API value: 6

Log error fixed in 22f0aa6007dc4ee993aed383e3c35afcc2707fd4, follow #94 for a fix for filter life being accurate


NT-1765:Refactor ActivityFeedActivity

📲 What
Remove butter knife from ActivityFeedActivity and replaced with view binding
🤔 Why
deprecated butterknife
🛠 How
1- change ActivityFeedActivity from java to kotlin
3-remove butter-knife and replace it with viewbinding
👀 See
https://user-images.githubusercontent.com/1075310/107690947-80284280-6cb3-11eb-80d3-079fea83c9d9.mp4

Before 🐛
After 🦋

📋 QA
1-Login with Creator account
2-Check activity from the
left side menu
Story 📖
https://kickstarter.atlassian.net/browse/NT-1765

Tested on my environment, looks good. Just a heads up, you have in this branch the changes for the ThanksActvity you'll have some conflicts once the other is merged


Console links should load content in windows consistently

Originated from the UXD Team Feedback table:
https://docs.google.com/document/d/1_AhqX8rPaZ2mfO-cI4lkhGbJLKLTWpo4HcCJ_KRhDjM/edit#heading=h.bjkplule4p3l
Console links all load into the same browser tab. From the home page, they each open their own browser tab. Can the links on the intro page behave like those on the home page?

Hi @mfrances17,
In this doc has too much information. If it is something that still valid could you try to improve the first comment here following up the template in order to make easier the understanding? May I will be able to help with this one. ( E.g https://github.com/integr8ly/tutorial-web-app/issues/205 )

Migrated to JIRA to be prioritized in the backlog: https://issues.jboss.org/browse/INTLY-381


⚠ Processors has degraded performance

In ab001ef, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 87 ms

Resolved: Processors performance has improved in 49e0718.


Added onClick, id type for TS. Added id to readme.md

Looks like onClick and id type were not include in type file so I've added it in.
I have also included id into the readme file.
Thanks!

I would like to merge only the first commit, the one regarding onClick type. It can be merged independently of the id stuff. Could you just remove the rest of commits and keep only this one?

Hey @dreyescat ,
I have reverted all but the initial commit. Please feel free to merge when you have the chance.
Thanks

Merged and released in v1.6.0.


Use the "skippableUpdate" optimization during bulk import

Is your feature request related to a problem? Please describe.
In #2263 we added support for a server-side update optimization.
This feature request is to start using that optimization when we process a bulk import.
My theory is that this will be much faster for "repeated import" scenarios.
Describe the solution you'd like
We should use the server optimization by default.
Optionally, we might want to introduce a config parameter to opt out of it.
Describe alternatives you've considered
Acceptance Criteria
1.
GIVEN an existing resource in the server
WHEN we get an import request that contains a copy of that same resource (same type, id, and contents)
THEN avoid performing the update when the contents match
Additional context

This does not seem to be quite right. I set the fhirServer/bulkdata/core/enableSkippableUpdates to false and it did not import the data, I set it to true and it imported the data.
With set to false:
[INFO    ] Operation Type: $import
[INFO    ] Resource Type         failures              success               processed             totalRead             totalSkip             totalValidation       totalWrite            fileSize              Resource Size
[INFO    ] Patient               200                   0                     0                     2031                  0                     0                     412                   145284                726.0
[INFO    ]  ---- Total: 0 ImportRate: 0.00 ----

With set to true:
[INFO    ] Operation Type: $import
[INFO    ] Resource Type         failures              success               processed             totalRead             totalSkip             totalValidation       totalWrite            fileSize              Resource Size
[INFO    ] Patient               0                     200                   200                   2279                  0                     0                     18218                 145284                726.0
[INFO    ]  ---- Total: 200 ImportRate: 8.19 ----

Also note I did a second import with the value set to True right after the first import with the value set to True, and this was the output:
[INFO    ] Operation Type: $import
[INFO    ] Resource Type         failures              success               processed             totalRead             totalSkip             totalValidation       totalWrite            fileSize              Resource Size
[INFO    ] Patient               0                     200                   200                   310                   0                     0                     9071                  145284                726.0
[INFO    ]  ---- Total: 200 ImportRate: 17.12 ----

was wondering if the total skip should still be 0

I had flipped the logic in a downstream, and fixed the logic in current azure provider

Moving this back to in progress, as importing a patient that was deleted was working earlier.
[WARNING ] Failed to import 'sniff-test--BDE-check-P100100' due to error: Resource 'Patient/sniff-test--BDE-check-P100100' is deleted.
[INFO    ] collected partition data: ImportCheckPointData [importPartitionWorkitem=input201/Patient_1.ndjson, numOfProcessedResources=200, matrixWorkItem=input201/Patient_1.ndjson, numOfImportedResources=0, numOfImportFailures=200, totalReadMilliSeconds=266, totalWriteMilliSeconds=489, totalValidationMilliSeconds=0, importFileSize=145284, currentBytes=0, inFlyRateBeginMilliSeconds=1624743725228, numOfToBeImported=20, numOfParseFailures=0, importPartitionResourceType=Patient, uniqueIDForImportOperationOutcomes=input201/Patient_1.ndjson_oo_success.ndjson, partNumForOperationOutcomes=0, uploadIdForOperationOutcomes=null, dataPacksForOperationOutcomes=null, uniqueIDForImportFailureOperationOutcomes=input201/Patient_1.ndjson_oo_errors.ndjson, partNumForFailureOperationOutcomes=0, uploadIdForFailureOperationOutcomes=null, dataPacksForFailureOperationOutcomes=null]
[INFO    ] collected partition data: ImportCheckPointData [importPartitionWorkitem=input201/Patient_1.ndjson, numOfProcessedResources=200, matrixWorkItem=input201/Patient_1.ndjson, numOfImportedResources=0, numOfImportFailures=200, totalReadMilliSeconds=266, totalWriteMilliSeconds=489, totalValidationMilliSeconds=0, importFileSize=145284, currentBytes=0, inFlyRateBeginMilliSeconds=1624743725228, numOfToBeImported=0, numOfParseFailures=0, importPartitionResourceType=Patient, uniqueIDForImportOperationOutcomes=input201/Patient_1.ndjson_oo_success.ndjson, partNumForOperationOutcomes=0, uploadIdForOperationOutcomes=null, dataPacksForOperationOutcomes=null, uniqueIDForImportFailureOperationOutcomes=input201/Patient_1.ndjson_oo_errors.ndjson, partNumForFailureOperationOutcomes=0, uploadIdForFailureOperationOutcomes=null, dataPacksForFailureOperationOutcomes=null]
[INFO    ] Operation Type: $import
[INFO    ] Resource Type         failures              success               processed             totalRead             totalSkip             totalValidation       totalWrite            fileSize              Resource Size
[INFO    ] Patient               200                   0                     0                     266                   0                     0                     489                   145284                726.0
[INFO    ]  ---- Total: 0 ImportRate: 0.00 ----

This is a conflict with the big merge. It was working as I merged it,  and the behavior was changed.

Moving back to in progress due to issue with part of the import needing and update and other parts to be able to skip.

PR https://github.com/IBM/FHIR/pull/2585

Finished testing this issue, now works with import of deleted resource, and when importing several resoureces, and having some of them be changed, or deleted. it works fine. Closing issue


Revert "当自定义的Model中使用__call添加处理方法时，method_exists无法检测到这些方法，所以改为is_callable"

Reverts z-song/laravel-admin#1185
incorrect syntax and does not work

Sorry about this, I fix this in 1dbd05659465b689d279cf417267b4d128885a5e
I'll fix the tests tomorrow.

is_callable can't check relations method export from model, as like:
` protected function getOtherKey()
{
if ($this->otherKey) {
return $this->otherKey;
}
    if (/***NOTE: ASSERT(!is_callable($this->form->model(), $this->column)) ***/ &&
        ($relation = $this->form->model()->{$this->column}()) instanceof BelongsToMany
    ) {
        /* @var BelongsToMany $relation */
        $fullKey = $relation->getQualifiedRelatedPivotKeyName();

        return $this->otherKey = substr($fullKey, strpos($fullKey, '.') + 1);
    }

    throw new \Exception('Column of this field must be a `BelongsToMany` relation.');
}

`


Add include_data_types argument to generate_model_yaml macro

resolves #120
Also:

updates the default include_data_types value for generate_source to True
lowers returned data types for generate_source and generate_model_yaml

This is a:

[ ] documentation update
[ ] bug fix with no breaking changes
[x] new functionality
[x] a breaking change

All pull requests from community contributors should target the main branch (default).
Description & motivation

Checklist

[x] This code is associated with an issue which has been triaged and accepted for development.
[x] I have verified that these changes work locally
[x] I have updated the README.md (if applicable)
[x] I have added tests & descriptions to my models (and macros if applicable)
[x] I have added an entry to CHANGELOG.md

Are you looking for additional contributors on this? Happy to help however I can to move this forward but obviously don't want to inject myself where I shouldn't.

@linbug -- this looks great -- if you are able to resolve the conflicts, we can do a final review and release on this!

@linbug -- this looks great -- if you are able to resolve the conflicts, we can do a final review and release on this!

Jumping in as someone who has been watching the PR for over a month now - I'm so excited that this is finally going to be merged in! This is a feature I've been waiting for before our team implements contracts, thank you all so much for working on this!

@linbug do you need any help getting this PR over the finish line? If you don't have time I would love to help!

I'm going to take a shot at resolving the merge conflicts and then do final review.

@dbeatty10 you are a champion of life

I'm going to take a shot at resolving the merge conflicts and then do final review.

Let me know if you need help.

Apologies for missing the pings about resolving conflicts. Thanks you for merging this!

No prob @linbug -- really appreciate the great work you did here! 🏆


introduce Ruff

Ruff is a very fast and all-in-one replacement for several fragmented tools used for lining. I have been using it for a while all good experience, so I may suggest using it also here, which would effectively replace flake8, isort, and bandit
Remaining todo:

[ ] double check that just is correct, if #11 merged this will be easier
[ ] maybe ruff run will be needed to be lint

Thanks for the suggestion! I've looked into ruff before, looks promising! As it's still in "beta", I haven't investigated further. Similarly, I have the same tech stack across all my Python projects. At this point, I'm not interested in overhauling the dev tooling for the dozen or more Python projects I maintain to keep them consistent. Maybe this can be revisited some months from now when ruff becomes stable.

As it's still in "beta," I haven't investigated further.

It is already stable even though the version  number is low, as many significant projects already switched to using it :)

I'm not interested in overhauling the dev tooling for the dozen or more Python projects I maintain to keep them consistent.

Perfect that you should use Ruff, as now you are already using three tools (flake8, isort, and bandit) which can be replaced by one


Simplify release-drafter PR process

Closes no ticket

Successful PR Checklist:

[ ] Tests

[x] (not applicable?)

[x] Documentation

[ ] (not applicable?)

[x] Had a good time contributing?

When merged, let's delete the deprecated labels (https://github.com/peopledoc/procrastinate/labels)


Bump contour

Pull Request Motivation
This matches the version used on the master branch at the time of this commit. This version was chosen because it was tested on master. It implies a bump of the underlying version of contour from 1.20 -> 1.23, but it seems better to use a tested version of the chart rather than a previously untested version.
This update is required because the previous version was removed from the bitnami helm chart repo. That has broken our periodics for the release-1.10 branch.
Kind
/kind bug
Release Note
NONE

/test pull-cert-manager-release-1.10-e2e-v1-20
/test pull-cert-manager-release-1.10-e2e-v1-21
/test pull-cert-manager-release-1.10-e2e-v1-22
/test pull-cert-manager-release-1.10-e2e-v1-26


Load Test - Referrals "Create Profile and Refer" Form Submission Workflow

Output in relation to this doc.
This PR creates a load test script that captures the below workflow on the Referrals app:

Step
Notes

Load Search for Beds
No specific search is needed. We can use the default results each time.

Select 5-10 results
If possible, it would be good to have the script select items somewhat randomly

Create Profile and Refer form is launched

Fill out client profile informationType of care = both mental health and substance useClient gender identity = male/man

Submit the form

Changed the merge base branch to [sk/step-load](https://github.com/dimagi/dimagi-qa/tree/sk/step-load) to utilize some of the useful utility functions and models that that branch added


(litmus-portal): Added time-series plots with minor redux update for integration.

Signed-off-by: ishangupta-ds<EMAIL_ADDRESS>What this PR does / why we need it:
Updated Redux, Model and Community Page. Added time series chart components for metrics.
Which issue this PR fixes:
fixes #1607
Checklist

[ ] Does this PR have a corresponding GitHub issue?
[ ] Have you included relevant README for the chaoslib/experiment with details?
[ ] Have you added debug messages where necessary?
[ ] Have you added task comments where necessary?
[ ] Have you tested the changes for possible failure conditions?
[ ] Have you provided the positive & negative test logs for the litmusbook execution?
[ ] Does the litmusbook ensure idempotency of cluster state?, i.e., is cluster restored to original state?
[ ] Have you used non-shell/command modules for Kubernetes tasks?
[ ] Have you (jinja) templatized custom scripts that is run by the litmusbook, if any?
[ ] Have you (jinja) templatized Kubernetes deployment manifests used by the litmusbook, if any?
[ ] Have you reused/created util functions instead of repeating tasks in the litmusbook?
[ ] Do the artifacts follow the appropriate directory structure?
[ ] Have you isolated storage (eg: OpenEBS) specific implementations, checks?
[ ] Have you isolated platform (eg: baremetal kubeadm/openshift/aws/gcloud) specific implementations, checks?
[ ] Are the ansible facts well defined? Is the scope explicitly set for playbook & included utils?
[ ] Have you ensured minimum/careful usage of shell utilities (awk, grep, sed, cut, xargs etc.,)?
[ ] Can the limtusbook be executed both from within & outside a container (configurable paths, no hardcode)?
[ ] Can you suggest the minimal resource requirements for the litmusbook execution?
[ ] Does the litmusbook job artifact carry comments/default options/range for the ENV tunables?
[ ] Has the litmusbooks been linted?

Special notes for your reviewer:

I think we should avoid sending in package-lock.json since it creates conflicts. It's okay for this PR but I think we should avoid it because this file is pretty long and resolving conflicts is totally unnecessary for this because we can regenerate it exactly with the number of dependencies we have.

@S-ayanide I disagree, package-lock.json is needed to maintain the versions throughout all the working repos. The package.json will automatically upgrade the version of the npm packages when someone does an npm install and it can break the whole project, this is where package-lock.json comes in and ensure the same dependency setup throughout all forks. We can maybe try making changes in the package.json to go for fixed versions but I don't think that's very maintainable.

You have created two separate components for TimeSeriesGrowth and Trend. Only the Time Series graph would be reusable later on so you can create only one component CommunityTimeSeries and have Trend and Growth plots inside of it.

That's what we suggested but there are some problems @ishangupta-ds is facing while doing that. We'll take a look t it after it get's merged.

You have created two separate components for TimeSeriesGrowth and Trend. Only the Time Series graph would be reusable later on so you can create only one component CommunityTimeSeries and have Trend and Growth plots inside of it.

It will be refactored soon.

@rajdas98 can you preview this?

/preview 20

/preview

/preview


Updates doc site splash page

Description

Edits content on intro page to be shorter and hopefully more compelling
Adds call to action button to "get started"
Changes index file type to MD (for consistency and as we do prefer markdown)
Adds absolute paths to htmlproofer ignore as necessary due to chicken-egg problem (to be removed in follow-on PR)

Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

None required

Content approved by Andy and Alex.

This is the new, cleaner https://github.com/projectcalico/calico/pull/1168


Smoother animations on mobile?

I don't know if you can see it in the video, but obsidian animations on iOS and iPadOS feel a little abrupt at the end (maybe it's just me idk).
https://github.com/user-attachments/assets/f8948668-7bc0-469e-8d5a-b61422d6ef1b
https://github.com/user-attachments/assets/d079e255-2b1c-4efc-875f-5b04fed8fb72
I also think there should be a file switcher button at the top like the "Browse" button in iOS files app. A new user will find the current layout unintuitive at first: how would they know that swiping left or right opens those menus?

Unfortunately animations on mobile are set dynamically by Obsidian with no ways to override.
New user are likely to try Obsidian before installing theme. Even when Cupertino is installed, when the opened file is in root folder (where new users are likely to start, I assume), the sidebar button would still show.


Android Implementation

Unfortunately I haven't really found a way to get the corner radii of the physical screen on Android yet. I've found the isScreenRound() function, but that doesn't give me an exact point value of the radius.
Any help appreciated!

Hey ! You've done some really nice stuff !
I don't know how you could get the corner radius of Android devices but maybe you could include the isScreenRound() function, it'll at least give us the ability to not set any border radius on an app's element if the device screen isn't rounded at all.
I think the best solution we have now in order to detect device's screen corner radius is to check the actual device in use, and retrieve the screen corner radius from a list of devices specs, if such a list already exists.

Hey ! You've done some really nice stuff !
I don't know how you could get the corner radius of Android devices but maybe you could include the isScreenRound() function, it'll at least give us the ability to not set any border radius on an app's element if the device screen isn't rounded at all.
I think the best solution we have now in order to detect device's screen corner radius is to check the actual device in use, and retrieve the screen corner radius from a list of devices specs, if such a list already exists.

My bad, didn't see that you already published a library for doing so :
https://github.com/mrousavy/react-native-is-rounded-screen/tree/master/android

My bad, didn't see that you already published a library for doing so :
https://github.com/mrousavy/react-native-is-rounded-screen/tree/master/android

Hi @ajacquierbret! The library you linked does not work for android (yet). If you take a look at the source code, I wasn't sure how to statically retrieve the window insets.
As for the isScreenRound() function - I think that's only for actually round screens like watches.

Hi @ajacquierbret! The library you linked does not work for android (yet). If you take a look at the source code, I wasn't sure how to statically retrieve the window insets.
As for the isScreenRound() function - I think that's only for actually round screens like watches.

Oh I see, so there's no way we could retrieve this information yet ?

Oh I see, so there's no way we could retrieve this information yet ?

Unfortunately not. I didn't have any time for this lately, but if you're interested in a little bit of android development, it shouldn't be too difficult.

Unfortunately not. I didn't have any time for this lately, but if you're interested in a little bit of android development, it shouldn't be too difficult.

For shure, I think designing components with these rounded corners in mind is quite important, so I'll dig into this issue if I can free up some time. Thanks for your explanations and feedbacks !

For shure, I think designing components with these rounded corners in mind is quite important, so I'll dig into this issue if I can free up some time. Thanks for your explanations and feedbacks !

Android 12 introduces RoundedCorner and  WindowInsets.getRoundedCorner(int position), which could be used to implement this.

Nice! We can use that 👍

@mrousavy @yfunk Any updates?

@mrousavy Hello, I don't know how to create identical API for Android and iOS. Is it posible? Or I need to change ts api to use callbacks/promises for iOS to? like:
export const ScreenCornerRadius: number =
  NativeModules.ScreenCornerRadius.cornerRadius;

/**
 * `true` if the screen has rounded corners, `false` otherwise.
 */
export const IsScreenRounded = ScreenCornerRadius > 0;

/**
*  async cornerRadius for iOS and Android
*/
export async function getCornerRadius() {
  if (Platform.OS === 'android') {
   return await NativeModules.ScreenCornerRadius.getCornerRadius();
  } else {
   return NativeModules.ScreenCornerRadius.cornerRadius;
  }
}

@RequiresApi(Build.VERSION_CODES.S)
    @ReactMethod
    fun getCornerRadius(promise: Promise) {
        rootView = currentActivity?.window?.decorView?.findViewById(android.R.id.content)
        if (rootView != null) {
            val corner = rootView?.rootWindowInsets?.getRoundedCorner(RoundedCorner.POSITION_TOP_LEFT)
            promise.resolve(corner?.radius)
        } else {
            promise.reject("VIEW_NOT_FOUND", "Could not find the root view")
        }
    }

Hey, no on Android it can also be either a constant or a @ReactMethod(isBlockingSynchronous = true) that returns a number

@mrousavy should call results be cached for android or how to make it available as constant (I can't find this information on docs)?

At the moment, we do not recommend this, since calling methods synchronously can have strong performance penalties and introduce threading-related bugs to your native modules. Additionally, please note that if you choose to enable isBlockingSynchronousMethod, your app can no longer use the Google Chrome debugger. This is because synchronous methods require the JS VM to share memory with the app. For the Google Chrome debugger, React Native runs inside the JS VM in Google Chrome, and communicates asynchronously with the mobile devices via WebSockets.

The recommendation is worded wrong imo. For this, sync methods are perfect.

@mrousavy  OK? (with isBlockingSynchronousMethod)
export const ScreenCornerRadius: number = Platform.OS == 'andoid' ?  NativeModules.ScreenCornerRadius.getCornerRadius() :  NativeModules.ScreenCornerRadius.cornerRadius;

@mrousavy #5 PR is ready

sure I'll take a look in a few hours! thanks


Make toast

Toast

Add new toast messages to replace the temp success/error notifications (e.g. Form R saves/ doesn't save)
Redo the toast notification logic so we can include more info with the error msg (e.g. error code).
Error toast has a link to Tech Support
Clicking the Tech Support toast link will open email client and prepopulate with device data, current URL, http error. (see NOTE)

Support page

clicking on LO link (not London) opens email client and pre-populates email body with their device info. (see NOTE)

TODO (follow-up tickets)

Differentiate between a form save/update and submission (longstanding issue with messaging as both use the same thunk/api call (possible solution is to pass a flag to showToast)
Include AWS X-Amzn-Trace-Id in emailto data (easy enough to grab from headers - just need to rework a few comps so left to a follow-up ticket)

TIS21-4652
NOTE - in addition to the current email header info: tisId, GMC.

@john12321 is there a test for the email that includes the Page URL and Error message sections (or is it worth having one)? I can't see any test that examines the tail end of Page URL:%0A${getPageURL()}%0A%0AError message:%0A${actionErrorMsg}%0A%0A%0A%0A}` from the ToastMessage.

@john12321 is there a test for the email that includes the Page URL and Error message sections (or is it worth having one)? I can't see any test that examines the tail end of Page URL:%0A${getPageURL()}%0A%0AError message:%0A${actionErrorMsg}%0A%0A%0A%0A}` from the ToastMessage.

@ReubenRobertsHEE  I thought this was covered in the the expectedHref in the ToastMessage.test.tsx test file:
 const expectedHref =         "mailto:tis.support@hee.nhs.uk?subject=TSS tech support query (GMC no. 11111111, TIS ID 123)&body=Browser and OS info:%0AUser Agent: Mocked User Agent Info%0A%0APage URL:%0Ahttps://www.evertonfc.com%0A%0AError message:%0A808 State%0A%0A%0A%0A";
...or am I getting the wrong end of the stick (more likely lol)?

No you're quite right - sorry, I missed it (and nice ref to 808 State, kudos!)

No you're quite right - sorry, I missed it (and nice ref to 808 State, kudos!)

One for the yoof 😁


The documentation page shows each doc's filename instead of title

For example:

contentTracing becomes Content Tracing
Build Instructions (Linux) becomes Build Instructions Linux

Also home page's title as Index.


Java version errors when users use Java > 17

When running Scala CLI on a new machine and letting it use Java 17 for Bloop, if users later on manually download and use Java 18, it seems Bloop or javac / scalac complain about a too high Java version being requested when compiling things.
See discussion on Discord around @Baccata's message here.

It should be fixed by #1084.
But if  users use the latest stable scala version 3.1.2,  the following error should be printed:
Starting compilation server
Compiling project (Scala 3.1.2, JVM)
Error: 18 is not a valid choice for -java-output-version
  scalac -help  gives more information
Error compiling project (Scala 3.1.2, JVM)

it seems, that scala compiler 3.1.2 doesn't support JVM 18, so users should use the nightly version of scala compiler, it should work
$ /Users/lwronski/projects/scala-cli/out/cli/base-image/nativeImage.dest/scala-cli Hello.scala -S 3.nightly
Compiling project (Scala 3.2.0-RC1-bin-20220606-cec9aa3-NIGHTLY, JVM)
Compiled project (Scala 3.2.0-RC1-bin-20220606-cec9aa3-NIGHTLY, JVM)

Fixed by #1084


[BUG] Cannot use external-auth with x.com Provider via PKCE

The deno-slack versions

Deno runtime version
deno 1.46.3 (stable, release, aarch64-apple-darwin)
v8 <IP_ADDRESS>-rusty
typescript 5.5.2

OS info
ProductName:		macOS
ProductVersion:		14.2.1
BuildVersion:		23C71
Darwin Kernel Version 23.2.0: Wed Nov 15 21:59:33 PST 2023; root:xnu-10002.61.3~2/RELEASE_ARM64_T811

Describe the bug
x.com oauth2.0 authentication has length limitation of the state query parameter of https://twitter.com/i/oauth2/authorize
https://developer.x.com/en/docs/authentication/oauth-2-0/authorization-code

But oauth2 privder from this sdk generates more than 500 characters state parameter.
Is there way to limit the length of state query parameter

Steps to reproduce

Expected result

Actual result

Requirements
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

I believe this would be a Slack backend issue, as the redirect to the provider is issued/generated by Slack and not specifically within this SDK. Does that sound correct to you?
If so, I can see about raising this internally.

@filmaj Indeed, that's correct. 👍

Thanks, I have raised it internally and will report back what I find.


Node-pressure Eviction memory.available script

This is related to https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals, more specifically to this section:

The script file linked here for reproducing the set of steps that the kubelet performs to calculate memory.available (https://github.com/kubernetes/website/blob/main/content/en/examples/admin/resource/memory-available.sh) no longer seems to work with Kubernetes 1.25 and the move to cgroup v2. Lines 10 and 11 generate errors as the memory resources used in them are no longer available.
memory_usage_in_bytes=$(cat /sys/fs/cgroup/memory/memory.usage_in_bytes)
memory_total_inactive_file=$(cat /sys/fs/cgroup/memory/memory.stat | grep total_inactive_file | awk '{print $2}')

Some output on a v1.25.4 Azure Kubernetes pod created from mcr.microsoft.com/dotnet/aspnet:6.0.13-alpine3.17:

It would be much appreciated to have an update to this script for the new way of calculating memory.

I suggest we stop linking to https://github.com/kubernetes/website/blob/main/content/en/examples/admin/resource/memory-available.sh and mark it as deprecated (via a comment in that script).
If someone'd like to recommend and maintain a new way to find out these values, great. However, my gut feeling is that nobody will step up. If that's how it plays out, eventually we can remove the deprecated script.

It will be good to have a replacement for the script with cgroup v2

I think I have a script which works for  cgroup v2.  I can merge a different one for it

/sig node
Should we make this change?
/remove-lifecycle rotten
/lifecycle stale

/triage accepted

I think this issue is resolved by #41931 and hence can be closed now

/close


bug: Aggregation field index off by one when joining two tables.

What happened?
With the following query
        expr = (
            tests.inner_join(vehicles, vehicles.vehicle_id == tests.vehicle_id)
            .group_by(vehicles.colour)
            .count()
            .select("colour", "CountStar()")
        )

This produces a plan; but the field offset used for the aggregation is 'off-by-one':   For example here's the plan created (I've a custom formatted for substrait)
<Substrait Plan>
Root::  ImmutableProject [colour, CountStar()]
<Substrait Relation>
+- Project:: [Str, I64, Str, I64]
   +- Aggregate:: FieldRef#/Str/StructField{offset=10}
      +- Join:: INNER <ScalarFn>equal:any_any
          : arg0 = FieldRef#/I32/StructField{offset=8}
          : arg1 = FieldRef#/I32/StructField{offset=1}
         +- NamedScan::  Tables=[tests] Fields=test_id[I32],vehicle_id[I32],test_date[Str],test_class[Str],test_type[Str],test_result[Str],test_mileage[I32],postcode_area[Str]
         +- NamedScan::  Tables=[vehicles] Fields=vehicle_id[I32],make[Str],model[Str],colour[Str],fuel_type[Str],cylinder_capacity[I32],first_use_date[Str]

Note that the offset of the aggregate is 10, and counting up that's model not colour;  this only occurs if there's a join, and only with the second table. So aggregating on say test_type would be ok. So I'm wondering if the issue is that the vehicle_id which is the join key is perhaps being ignored?
Can also be seen just printing out the protobuf
            groupings {
              grouping_expressions {
                selection {
                  direct_reference {
                    struct_field {
                      field: 10
                    }
                  }
                  root_reference {
                  }
                }
              }
            }

Specification of the tables is
        tests = ibis.table(
            [
                ("test_id", "int32"),
                ("vehicle_id", "int32"),
                ("test_date", "str"),
                ("test_class", "str"),
                ("test_type", "str"),
                ("test_result", "str"),
                ("test_mileage", "int32"),
                ("postcode_area", "str"),
            ],
            name="tests",
        )

        vehicles = ibis.table(
            [
                ("vehicle_id", "int32"),
                ("make", "str"),
                ("model", "str"),
                ("colour", "str"),
                ("fuel_type", "str"),
                ("cylinder_capacity", "int32"),
                ("first_use_date", "str"),
            ],
            name="vehicles",
        )

I've looked at source code; but not spotted how this index is calculated for the aggregation case.
What version of ibis-substrait are you using?
v4
What substrait consumer(s) are you using, if any?
Quite a few of them!  in this case I saw it via Spark; but the problem can been seen without a consumer
Relevant log output
No response

Thanks for the report @mbwhite and the easy reproducer!
Your diagnosis is correct -- the new JoinChain object deduplicates the join key, which is leading to the off-by-one error.  I'm taking a look at how to make sure we pull the field reference from the parent tables, instead.

Hey @mbwhite -- fix is merged and released as version 4.0.1 -- thanks again for flagging the issue!

Hey, sorry for digging up an old ticket, but I was looking into this because of #1190.
@gforsyth At the time this ticket was created JoinChain was translated into just a series of JoinRels and ibis deduplicating a join key wasn't being taken into account leading to the bug described here. After the fix, we added handling of projects contained in joins (#1119) which was unrelated but also looks like inadvertently fixed this issue as well: JoinChain is now translated into a series of JoinRels + a final Project. This last projection node exposes the same schema as ibis JoinChain, therefore takes deduplication into account. If we take the example shown in the ticket, with the project node in place, offset of the aggregate should in fact be 10 now.
I'm going to remove the logic introduced by #1078 as it's no longer necessary and leading to other issues.


Enable the new model serialization for frontdoor

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
API changes are not detected in this pull request.


Merge dam

This change is

In my opinion we should move all classes to only one language. Probably Kotlin.


feat(kind): Add kind support

Description

Load recently build images automatically into kind
Add env var to add a custom mount path for StackRox source code for HOTRELOAD support

When I have kind installed but I don't have a cluster running, I get this output at the bottom of running make docker-build-main-image:
Built main image for RHEL with tag: 4.3.x-601-g13c9910006, image flavor: opensource
You may wish to:       export MAIN_IMAGE_TAG=4.3.x-601-g13c9910006
kind installed, loading images
Loading image quay.io/stackrox-io/main:4.3.x-601-g13c9910006 into kind
kind load docker-image quay.io/stackrox-io/main:4.3.x-601-g13c9910006
enabling experimental podman provider
ERROR: no nodes found for cluster "kind"
make: *** [Makefile:595: docker-build-main-image] Error 1

Do we want to fail the build because we don't have a cluster running?

When I have kind installed but I don't have a cluster running, I get this output at the bottom of running make docker-build-main-image:
Built main image for RHEL with tag: 4.3.x-601-g13c9910006, image flavor: opensource
You may wish to:       export MAIN_IMAGE_TAG=4.3.x-601-g13c9910006
kind installed, loading images
Loading image quay.io/stackrox-io/main:4.3.x-601-g13c9910006 into kind
kind load docker-image quay.io/stackrox-io/main:4.3.x-601-g13c9910006
enabling experimental podman provider
ERROR: no nodes found for cluster "kind"
make: *** [Makefile:595: docker-build-main-image] Error 1

Do we want to fail the build because we don't have a cluster running?

@kylape Good catch, fixed it :+1:

@mclasmeier @kylape Fixed your remarks and going to merge this PR when CI is green :ship:


OSX build compatability

This represents the work done by @chraibi to get Menge to build in mac.  It includes a couple of final modifications to address some slight code styles.  It replaces PR #35.

For idiosyncratic historical reasons, Menge was written and developed without C++11 or later.  It's one of my goals to bring it up to date.  One of the big benefits there may be to have better synchronization primitives (don't look at the implementation of the readers/writer lock.)  C++11 and 14 provide far better portable constructs for parallelization that I want to include which should allow me to create a legitimate readers/writer lock.
And then there are other benefits as well.

For idiosyncratic historical reasons, Menge was written and developed without C++11 or later.  It's one of my goals to bring it up to date.  One of the big benefits there may be to have better synchronization primitives (don't look at the implementation of the readers/writer lock.)  C++11 and 14 provide far better portable constructs for parallelization that I want to include which should allow me to create a legitimate readers/writer lock.
And then there are other benefits as well.

I understand. But Line 22 above will break if someone is using an old compiler without C++11 support. See How to detect c++11 support of a compiler with cmake

I'm not sure what line you mean by "line 22"; can you provide more detail?
And, regardless of the detail, I have two years of concrete evidence that suggests Menge built just fine without C++11 support.  In fact, what pushed the addition of that support was the change of the unordered_map from the tr1 space to the std namespace.

Sean, this is line 22. It assumes the user is using a compiler with C++11 support, which may not be the case.

Aaaaah, I understand now.  Your concern is correct, but I feel the danger is slim to none.  The risk of someone using a compile that doesn't support this flag is slight, and decreases every day.

😃


Provide Fedora 27 RPM packages

Any chance for Fedora 28 support?
Or it is just google decision to not support anything but standard images backed into gce? What the point of having these compute-image-packages then?
upd: sorry, I meant Fedora  28

@illfelder

EL 7 RPMs that will likely work in Fedora

They don't. EL7 rpms  depend on some json c lib (something with api 11 in contrast to the current 13 one) that is not provided by Fedora 28. However one can rebuild EL7 json lib for Fedora (and gave it new name). But it does not helps: cloud compute packages installs but are not seem to work.
Also with help of zmarano I located the third SPEC file and build all three RPMS in Fedora (oslogin one  needed some adaptation though). They installs but don't work: no services at systemd appeared. Also an attempt to remove these packages with dnf remove caused error of rpm script, so you got package that you can't even get rid of. Or probably I just made something incorrectly while building.
Unfortunately I destroed all VMs (so I lost exact error messages so have to reproduce by memory) after a day of trying to adapt Fedora Cloud Base image to Google compute and adapting compute-image-packages rpms for Fedora. However I got to the point where it boots and acquires IP by means of DHCP and NetworkManager (the key was to ditch out cloud-init, and install NetworkManager back). So it works but as far as I understand VM can only reach its full potential with compute-image-packages.
Thank you anyway for assistance.

will likely work in Fedora, but we don't use Fedora in our testing environments

You ether have prebuilt Fedora images available in google compute panel OR don't claim it will work.
(There is also third option - community images catalog, but can't find in google panel)

we welcome pull requests to make any of our guest environment code more robust

Oh, no, unfortunately I am not world-class top engineer, sorry, above my paygrade.
And yes, there are better projects for volunteering than google's commercial product.

Sorry to hear that it it does not work out of the box and that you're not interested in making a contribution. We don't publish that Fedora is supported operating system by the packaging we provide anywhere in our documentation, and don't haven't previous heard requests for it. We determine new features and prioritization based on user feedback, so if Fedora is important to your workload, please leave a feature request to help us gauge user interest.


ark_std::error vs core::error

ark_std::error replaces core::error when not using std, but it winds up woefully inferior to the core::error behind #[feature(error_in_core)].  In particular ark_std::error::Error should've the downcast* methods on core::error::Error.
We should probably copy core::error to ark_std::error.  Ain't much relevant in the real std::error anymore.   If possible, we should detect ``#[feature(error_in_core)]or eve nightly, so as to not replacecore::error` then.
Interestingly, there were never std::io references in std::error per se.  It appears backtrace messed up moving std::error to core::error, but I've no idea why backtrace cannot work with just alloc, or be placed into an extension trait, or whatever.

See https://github.com/w3f/ring-vrf/commit/b87e3a12e4a592abd2438f701c2953798dd4c625#diff-b956979688cec9dec3a8d6eeb4ccd2a129e0d48803110ee9def443aec17d72d7R105

100% agree that we should switch to core::error, but as things stand this is not actionable, right? We need error_in_core to be stabilized first. I would prefer to avoid rust version detection, as that would involve a build.rs which worsens compile time.


[in_app_purchase] google play strore not available  without restarting app after logging to google play

Steps to Reproduce

On the device no google account is logged in
Run the app - in app purchase instance states it cannot access google play - InAppPurchase.instance.isAvailable = false
Log in to googgle account on the device
Go back to the app again (app was not shut down, was waiting in the background)
in_app_purchase still states isAvailable = false

How can I renew connection of InAppPurchase.instance to google play without restarting the app, creating instance from scratch?
in_app_purchase: ^1.0.6
[√] Flutter (Channel stable, 2.0.6, on Microsoft Windows [Version 10.0.19043.1415], locale pl-PL)
• Flutter version 2.0.6 at C:\IT\Narzedzia\flutter
• Framework revision 1d9032c7e1 (8 months ago), 2021-04-29 17:37:58 -0700
• Engine revision 05e680e202
• Dart version 2.12.3
• Android SDK at C:\Users\skale\AppData\Local\Android\sdk
• Platform android-30, build-tools 29.0.2
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
• All Android licenses accepted.
[√] Android Studio (version 3.5)
• Flutter plugin version 40.2.2
• Dart plugin version 191.8593
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
[√] Connected device (1 available)
• Android SDK built for x86 (mobile) • emulator-5554 • android-x86    • Android 9 (API 28)
(emulator)
• No issues found!

@skaletaPL
You seem to be on older version of the plugin and framework. Please upgrade both (plugin to 2.0.1, framework to 2.8.1)to latest and try again to see if it helps.


Some friendly overloads of string-returning SDL functions leak memory

For example, take SDL_GetClipboardText() which requires the returned pointer to be freed with SDL_free(). The friendly overload SDL_GetClipboardTextString() never explicitly calls SDL_free(), so it must be leaking SDL-allocated memory.
As a general rule of thumb, in C functions that return char *, the pointer/string is owned (and should be freed) by the caller; while const char * pointers are owned by the callee. The SDL docs and doc comments also mention whether the returned string should be freed or not.

Latest version 3.5.0 fixes this, tell me if there is something I've missed out.


auth update

update index.html
update auth form with semantic UI

run npm install and npm run start-dev to start localhost!


How to Simply Display the Video? [Enterprise Edition]

My goal is NOT to annotate the video but to simply watch the video and annotate other text.
What is the simplest manner this can be achieved?
Requesting help in understanding how I can do this?

<!--- {
"videourl" : <tried with random URL from places like YouTube> }

Getting into setting up Redis or GCS, seems a bit complex. What are the minimal working examples I can do to simply show a video on the annotation interface?

Note: I cannot use the local paths, because I'm on the enterprise edition, as I need to this within a small team.

Thanks!

To achieve your goal of watching a video while annotating text, you can use the Video tag to display the video and the TextArea tag to provide a space for text annotations. Here is a simple labeling configuration that allows you to watch a video and annotate text:
<View>
  <Video name="video" value="$video" />
  <TextArea name="text_annotation" toName="video" placeholder="Enter your text annotation here" />
</View>

Explanation:

Video Tag: This tag is used to display the video. The value attribute should be set to the URL of the video you want to display.
TextArea Tag: This tag provides a text area for annotators to enter their text annotations. The toName attribute should be set to the name of the Video tag to link the text area to the video.

Example JSON Task:
Here is an example of how your task data might look in JSON format:
{
  "data": {
    "video": "https://example.com/path/to/your/video.mp4"
  }
}

Steps to Implement:

Create a New Project: In Label Studio, create a new project.
Set Up Labeling Interface: Go to the project settings and set up the labeling interface with the provided configuration.
Import Tasks: Import your tasks with the video URLs in the JSON format as shown above.
Start Annotating: Open a task, watch the video, and enter your text annotations in the provided text area.

This setup allows you to watch the video and annotate text without any additional complexity.

Thanks, my main concern was where the video should reside for it to render with the video tag.
I ultimately setup a GCP bucket as a persistent storage!


[SUGGESTION] Using Emojis on Twitter via Desktop

Not sure if this applies here at all - but perhaps we could use this repo to find a way to type emojis into our tweets when we use Twitter on the desktop?
Similar to how we type emojis using Slack's or Github's library i.e :bear:

Definitely a useful idea, but likely out of the scope of this project as it is intended primarily for the means of rendering emoji as opposed to selecting emoji for insertion.


Fix incorrectly-saved quote symbols in ThirdPartyNoticeText.txt

?Third Party Code? becomes "Third Party Code"
Fixes #9460

Hi @dilijev, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Doug Ilijev). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

thanks!


Changed Constructor

Updated Name from ConsentiumThingsDalton to ConsentiumThings

The include file is ConsentiumThings.h, but the constructors are board specific. It is ConsentiumThingsDalton for ESP/RPi boards and ConsentiumThingsBeta for AVR boards.

The include file is ConsentiumThings.h, but the constructors are board specific. It is ConsentiumThingsDalton for ESP/RPi boards and ConsentiumThingsBeta for AVR boards.


Add OpentelemetryPhoenix integration

Hi all,
We have been running with this configuration for some time now. Thought it would be a worthy addition to the contrib repo.
I made an effort when I was making this initially to make sure we conform to the otel naming conventions.
Looking forward to receiving feedback on this PR.

Is there a path you see to get this added to https://github.com/open-telemetry/opentelemetry-erlang-contrib/tree/main/instrumentation/opentelemetry_phoenix and have it optionally enabled?

Yea, why not in OpenTelemetryPhoenix.
And in OtelPhoenix can't it just be the default with an option to disable?

@bryannaegele makes sense, I will rework this to be part of opentelemetry_phoenix

I've updated this PR. There is one small thing :tm:, that is that phoenix doesn't provide a hook for "the user navigated away from the liveview". Until now we were relying on the monitoring solution, but that's (going to be) a separate PR in a separate repo. So for now the result is a "missing parent span".

Something to consider: we published https://hex.pm/packages/opentelemetry_liveview and it's has 30k downloads in about a year. I was planning to move it here but I'm also happy to archive the project and refer to this package.

@dvic I would say let's work to get any improvements you've made in your lib into this one, then we have one lib for all of phoenix + liveview.

FYI LV 0.18 just got released and now there are more telemetry events it seems, from the changelog:
Add new LiveView logger with telemetry instrumentation for lifecycle events

FYI LV 0.18 just got released and now there are more telemetry events it seems, from the changelog:
Add new LiveView logger with telemetry instrumentation for lifecycle events

No new telemetry events with this release unfortunately, but there is now a built-in console logger powered by the existing events which can be correlated with trace and spans created by this library 🙂

Ahhh I see

I'd rather not have to rely on the monitoring to end the span... Even though it definitely should get added to the SDK, the user shouldn't have to rely on it for regular behaviour and ending a LiveView span is regular behaviour.
Is LiveView not going to add a telemetry event for this?

Oi, based on the LiveView threads from users wanting an unmount callback it sounds like there isn't hope for an event?

So whats the status o this? Is there still not a way around requiring the span being monitored?
Should we merge this in anyway?

There is one way around monitoring the span: don't create the span.
If I remember correctly, there was some discussion somewhere about how having a span open for the liveview itself is not the right way to go :tm:. This is a span that might be open for potentially hours.
Do we have another way to link all spans for a single liveview together, that doesn't require a span?
Other than that, yes, I would like to see this PR get merged sooner rather than later.

Why is the monitor needed for this? If anything it would potentially cause the span to be prematurely closed? Seems worse than having a very long span?
Maybe an option on whether to have a top level span or not? All the spans could be grouped together by pid by the user.

It is necessary for a top level span because liveview isn't emitting an event that corresponds with an "unmount".
If we want to move forward, perhaps recording the pid and dropping the top level span is a good start.

Ok, so the top level span doesn't actually represent the amount of time the liveview is running but how long it is alive before being sweeped?

I'm not sure what you mean by "sweeped". In principle, the top level span will represent the amount of time the liveview's server process is running.

Oh, facepalm, sorry, its early here :). I was thinking of the span sweeper (which already exists and will end spans if they take longer than some amount of time) and not the monitoring way which will end it when the process ends.

So conclusion: remove the parent span and add pid to the attributes?

@derekkraan eh, I was thinking I'd work on getting the monitor merged. Maybe if we can't get that merged this week we go ahead with removing the root and adding the pid?

Sure. I mean I was also wondering if the root span was even a good idea. I still want to kind of have a discussion about that or hear from people who know better.

Ah ok, yea, I'm not the one to know. Maybe we can find others who use it on Slack at least.

It has been an open question for quite some time. We probably want a way to link them because seeing a whole "session" in one go in the o11y tools that provide the timeline view is amazingly useful.
Is it a long running root span, linking span or traces, or putting a "pid" as attribute depends more on the implementation details of otel, what the spec is designed for and what vendors tooling support to offer that view

One issue with really long-running spans is they could be mistaken for orphaned spans and get caught up in sweepers. Maybe there are workarounds for that but it is an issue.
The fundamental quandary I have is under the hood LiveView is just channels which are websockets which in otel are treated as messaging. In a React SPA or other JS setup, these connections would just be to websockets or AJAX calls. LiveView is just smoke and mirrors over what are standard JS client/server patterns, so I'd argue that looking at how the JS otel community treats this is probably the way to go.
If you look at the socket.io package, they are treating sockets as messaging. opentelemetry-instrumentation-socket.io/dist/src/socket.io.js Something they aren't addressing is correlating the spans (I think, no familiarity with rooms, etc) but the conversations attribute would satisfy linking spans in a session.

seeing a whole "session" in one go in the o11y tools that provide the timeline view is amazingly useful

So I understand the potential value of this from a user behavior view, but is there some other value I'm missing? Is otel the right path for this or is that use case just trying to leverage otel as an analytics platform?
Another question (could be a follow-on) is patching the js to get the full roundtrips.

It is useful to me because it is how I can see the sequence of how we got into the state that is problematic. This is because a "transaction" is not just a simple message right?

In the beginning I really wanted the possibility of a waterfall view for a liveview process, but I think I have changed my mind. One issue is that the waterfall's value goes to 0 when people do things (which they do very often) such as just leaving their browser window open. Suddenly, the interesting part of your waterfall is 1px wide because the root span is 3 days long.
Another issue is that it kinda screws up your reporting. I often like to review performance outliers, but if people have been leaving their tabs open the outliers are full of noise.
Finally, if your span gets reaped by the sweeper, you're left with orphaned spans, which can send you on a wild goose chase trying to figure out why.
So I guess the question I am left with is: would adding pid allow you to find the information you need that you're currently getting from the waterfall?

@bryannaegele no i talk more in the way you would think of a transaction in a distributed system pov with the client/server stuff


Specifying routes to cache?

Hi, great work on this! I see that the service-worker package is caching various files (js, images, etc) however.. i'd like to have the service worker cache an endpoint like /. Is that possible.. and if so, how would I go about doing so? It look's like it's caching Network-First instead of Cache-First.. which is what i'm looking for.
Thanks!

Nvm figured out a way to do it :) Please let me know if there's a better way to do this though..!
next.config.js
const { nanoid } = require('nanoid')
const withOffline = require('@next-with-offline/next-plugin')

module.exports = withOffline({
  offline: {
    path: '/offline',
  },
  workbox: {
    additionalManifestEntries: [{ url: '/', revision: nanoid() }],
  }
})


Article on reducing barriers to community code contributions

Many of our (DOE) projects are Open Source in the sense that they are so licensed and available on GitHib, BitBucket, etc. However, few of our projects I think really get much in the way of actual code contributions from general members of the open source community. Now, that may be because the reach of our projects tends to be rather limited to HPC circles. However, even a project like HDF5 (used all over the world) doesn't get very much in the way of community code contributions.
I think it would be worthwhile to understand this better and to identify things projects can do to reduce barriers to community contributions.

The topic of the article is good. However, getting an experienced author to put in the time to collate information about this may be a bit challenging...

Have a look at Rene's recent article, Wolfgang Bangers and a Dave's article about code contributions and ask whether this is effectively covered already.

Daves article

I happened to see a Spack presentation recently and part of that presentation included some discussion of community contributions. So, I decided to have a short conversation with @tgamblin about his experience with community contributions in relation to Spack. These notes capture that conversation...

Broadly speaking there are three main areas of contributions to Spack

Area
Community Contribution

Core
< 50%

Packages
> 90%

Docs
~50%

Package managers are noteworthy for attracting community contributions. In some sense, a package manager creates or even defines a community.

MCM note: This kind of project is more or less the ideal setting for community contributions.

There is a bootstrap problem when starting a new package manager project...nobody in the community wants to spend time adding a package to the project if they wind up having to tackle all the dependencies too. Someone has to invest the effort to add/maintain key, deep dependencies.
Are there key heros in the project? Yes, a few at LLNL and even some from the community.

MCM note: Using FOS verbiage, these heros might be called BDFLs (Benevolent Dictators For Life) who may have acquired their powers by demonstrating either technical leadership and/or exemplary effort.

Have occasionally planned key project milestones relying to some extent on community but also having backup resources in case community unable to deliver in required time frame.
Early concerns were whether core team would have the bandwidth to respond to community needs.
For core team, work on key milestones has sometimes meant reduced responsiveness to community.
Is there any sense in which sponsors have lost control of the project to the community? Yes and no. The core is still largely under the control of the sponsors. However, the packages are really under the communitiy's control now as it should be.
Did anyone on the team really start the project with a lot of experience in managing majority community contributed projects? No. Community contributions were always the goal but noone started with much experience from the past. Though they did absorb a lot of material from open source literature (request for commits podcast).
One aspect to the software architecture itself that maybe impacts the community contribution issue is the question of centralized vs. distributed package repository. Spack's model is centralized whereas rpm is distributed. The centralized model kinda sorta fosters (or forces) more community interaction out of the need for that central package ensemble to remain self-consistent and compatible. In addition, Spack represents an ecosystem of package management utilities and so just putting a package into Spack makes contributors more aware of that whole ecosystem.
If there was no Python or GitHub, could Spack exist? Maybe.

Python was chosen for certain technical reasons which turned out to also be a well known programming language within the community of interest. So, its selection was fortuitous in that the more people know the language in which a package gets added, the more likely the system is to have contributors. Other scripting languages would have also worked. Some package managers use their own, home-grown langauge for defining packages.
GitHub is useful because of its collaboration features and that it scales well. In the absence of GitHub, there are other alternatives that would work. However, in the absence of Git and Git-supported collaborative systems like GitHub, community contributions would be much harder.

Way down in the internals of Spack, there is some really key technoloy that more or less constitutes a data model (an annotated DAG) for discribing ABI-compatible software components, their interdependencies and their builid-derivations (as well as their versions, variants etc.). Each major step forward for Spack in terms of cool, new capabilities invariably involves extensions of this key technology.

@tgamblin notes that the size/scale of this DAG for the entire ecosystem of packages might be on the order of 10,000 nodes with annations on nodes and edges.
@tgamblin notes that a key step in Spack, called concretization, represents an np-complete computation involving constraints in the traversal of this DAG. Earlier implementations have been low enough in performance that a lot of thought has had to go into optimizing this computation.
This internal core to Spack is beginning to approach a shorthand notation or even a language for describing software (abstract and build) interdependencies.

@frobnitzem thought you might be interested in above.

Using FOS verbiage, these heros might be called BDFLs (Benevolent Dictators For Life) who may have acquired their powers by demonstrating either technical leadership and/or exemplary effort.

FYI: BDFL is really a governance thing, not necessarily a heroism thing.  Wikipedia says:

Benevolent dictator for life (BDFL) is a title given to a small number of open-source software development leaders, typically project founders who retain the final say in disputes or arguments within the community. The phrase originated in 1995 with reference to Guido van Rossum, creator of the Python programming language.

See the common governance models on GitHub's opensource.guide.

something like RPM is distributed

I would call RPM (or at least RPM-based distros like Red Hat) are pretty centralized.  I was saying that npm is a good distributed example, as project authors put a package.json file in their Github repo and add their package to a registry hosted on a server. In Spack the builtin package repo is really the "registry", and you get it when you clone Spack.

@tgamblin notes that the size/scale of this DAG for the entire ecosystem of packages might be on the order of 10,000 nodes with annations on nodes and edges.

I should clarify this.  I was saying that the typical solve that Spack does to assemble a DAG for a package build has ~10,000 facts.  That is based on the stuff in the spack's new concretizer talk from FOSDEM.
There are ~4,000 packages in Spack, so you won't have a DAG (yet) with more than 4,000 nodes.  The biggest package in Spack I know of is ROOT with ~500 possible depedencies.  The biggest concretized DAG I know of is rminer, with ~120 nodes, comparable to some of our larger codes.

This internal core to Spack is beginning to approach a shorthand notation or even a language for describing software (abstract and build) interdependencies.

There are really two languages here: the package DSL, which is a way to describe templated build recipes, and the spec language, which is a way to describe constraints on builds.  See pp 6-7 here.
The data model is really the internal "spec" (DAG) representation.  The concretizer turns abstract specs into concrete, fully specified DAGs to be built.

Thanks @tgamblin for your clarifying remarks here.

Thanks for talking!

Had a chance to chat with @adamjstewart who was originally at ANL and was tasked with installing some software using various compilers, various MPI implementations on various systems there and who has since deciding to use Spack to support that become a leading contributor to Spack.

What got you started contributing to Spack?

New hire at LCRC with staff of ~3 admins supporting 300+ users. Was asked to install a stack of software (netCDF, HDF4, HDF5) with several different compilers, several different MPI implementations. Knew automation was going to be key. Looked at various package managers. Tried a couple and settled on Spack because the architecture was easy. Everything is very well modularized.
First thing was to add support for NAG compilers to Spack core. @tgamblin pointed me at a recent PR where someone had added a compiler and I followed that to add NAG compilers. Eventually ran into problems with Fortran compiles with NAG and a NAG developer downloaded Spack and patched it to fix the problem for me! That was so helpful and so unusual
Also had to add support for licensed software to Spack too.
Also adjusted existing packages and added packages (e.g. SZIP for HDF5) and started paying a lot of attention to changes in packages to ensure things I needed weren't breaking.

What hurdles if any did you encounter initially and how did you resolve them?

Had to learn Git and GitHub.
Had to unlearn CVS.
Communications with a community member or two can be challenging and that can sometimes stifle creative and collaborative work. But, this is rare and @tgamblin has been able to manage these situations well.

What inspires you to continue the remarkable level of support you provide to the project?

Originally, it was helping others get the software they needed for their work installed and being able to quickly respond when updates/changes were needed.
Now, as I do my own reserach, I use Spack to install software I need to use and keeping it working for myself and others is important to me. I use Spack environments and other yml files for my own research.
Earlier in my work life, some of the work I had wasn't as satisfying becuase I would often have to let known and easily corrected bugs go in favor of other priorities.
In working on Spack for LCRC, management was very supportive of my contributions to it because it helped me support LCRC activities. Management was enthused in seeing my contribution line count ranking to the Spack project continue to rise on GitHub.

How has your role on the project evolved over time?

Started doing a lot of PR reviews and trying to help respond with PRs.
Started commenting to help resolve or clarify issues and enhancement requests
Other community members started seeking my input by @mentions or PR review requests.
Eventually, I became a leading contributor in packages.
Eventually @tgamblin upgraded my repo priviliges to admin

How important has Git and GitHub been to the process?

Very important tools to help with managing community collaboration.

One thing I forgot to mention during our talk that is very relevant to Spack and possibly relevant for other open source projects as well:
I would like to see Spack move from a centralized to a decentralized contribution/review system. Basically, I'm envisioning something like Conda Forge, but without separate repos for every package. We are already taking a step in that direction by adding "maintainers" to packages.
The idea of "maintainers" is that it's a list of GitHub handles of Spack devs, Software devs, and/or Spack users who care about a particular package and are willing to:

Review PRs that modify the package
Help address build issues reported by Spack users
Keep the package up-to-date

For example, I "maintain" all of the deep learning libraries in Spack, even though I don't actually develop any of them or contribute to most of them because I rely on them for my research and want to make sure they don't break. Another example is @ WardF, a Unidata employee who volunteered to manage our NetCDF packages. He's not a Spack/Python expert, but he helps develop NetCDF, so he's a good person to ask about what the defaults for the package should be. Same for @ hppritcha, an OpenMPI developer who "maintains" our OpenMPI package.
In the coming year, I would like to push for almost every Spack package to have some kind of "maintainer" who holds some responsibility over the package. This makes my job significantly easier, as I can leave "best practice" decisions like default variants or ways of building software up to the "maintainer" and focus on syntax and Spack-specific things. If the maintainer of the package approves a change, unless I see something drastically wrong, I usually merge the PR right away.
Right now, it sometimes feels like I'm the only one who reviews package-related PRs. If I let them sit long enough, other core devs get to them eventually, but I like minor package-related PRs to be merged as quickly as possible. The best way to encourage contributors is to merge their PRs and fix their bugs as quickly as possible, even if you make a mistake that needs to be fixed in a follow-up PR. This is especially true for new packages, where a bug won't hurt any existing Spack users. For existing packages, we have to be a little more careful that we don't break anything for anyone.
This "maintainer" model of governance may be specific to package managers, or it may work well for heavily modularized open source software. But it helps to engage the community to take ownership over a small part of Spack, and makes the lives of core Spack developers much easier. It's like an Adopt-A-Highway program for Spack packages! @tgamblin maybe we can start an Adopt-A-Package program with some kind of incentive? I would love to see more software devs "maintain" their Spack packages, even if they aren't Spack experts.

I actually made this a milestone for next year -- to get some automation set up to make it easier for maintainers to be notified about their packages.  I think we could certainly expand on that to include some of these ideas.

Just listing here some of my own observations from this brief look into community contributions in Spack...

A package manager project is sort of the ideal case for fostering community contributions.
Spack architecture choices help to create many opportunities for isoloated changes

Centralized package repo
Modularized design (OO-Python)
Python language familiarity in the community

In the case of @adamjstewart, the planets kinda sort aligned between his needs and Spack's purpose. Nonetheless, @adamjstewart did have to make a fairly large initial investment in Spack to get it to work for his needs though lower than what was probably required to use other package managers.
The use of PRs as a sort of pseudo-documentation for how to add/change something in Spack

There are now over 12K PRs into Spack now and many of the recent ones probably represent many of the same steps another developer might have to follow to add a feature of interest.

Packages representing deep dependencies (e.g. HDF5 or Elf) require more oversight than others because they can effect more things.
Spack's design also fosters community spin-offs for cases where a sub-community needs a shared package repository unique to their needs (so unlikely to have broad appeal) and maintain it separately without having to encumber themselves or the Spack project with their unique requirements.
Experts in Spack (expert developers or expert users) live at the nexus of the community of package's build systems. They are exposed to all the different choices development teams have made in configuration, build and install processes. I believe that this perspective likely gives Spack experts a unique view individual package development teams (even if they have several dependencies) cannot possibly appreciate about why certiain choices either improve or get in the way of productivity and sustainability of thier respective packages.
Instead of using Spack, packages like VisIt (a turnkey viz. app) and PETSc (a solver library) maintain their own home-grown build/install scripts comprising tens of thousands of lines (shell code in VisIt and Python in PETSc). Wouldn't implementing the equivalent Spack package unencumber those package teams of having to maintain all that home-grown build and install code?


🚀 Feature: Filterable/tabbed content sections on pages

Bug Report Checklist

[X] I have tried restarting my IDE and the issue persists.
[X] I have pulled the latest main branch of the repository.
[X] I have searched for related issues and found none that matched my issue.

Overview
I've wanted to do this for a while, but scrapped it to get the 1.0 MVP out the door:

Blog: have filters/tabs for blog post areas: code, personal, TS contribution diary, etc.
Projects: maybe just the sections that are there now?
Speaking: podcasts, talks, streams, etc.

Additional Info
No response

#97 adds it for speaking. I don't think projects needs it right now. Blog I'll file a separate issue for.


Is it possible to use these beacon API calls with Alchemy?

How to use this app with an Alchemy API endpoint? It was not working for me when I tried. Thanks!

I don't think Alchemy supports Beacon API's, only execution layer api


ERR Error: 在 1750ms 后终止了 onWillSaveTextDocument 事件

Describe the bug
如果启用takeover模式并且保存代码，保存时间会变慢，大概2秒的样子，然后在vscode的 切换开发者工具里面会看到ERR Error: 在 1750ms 后终止了 onWillSaveTextDocument 事件
Reproduction
NaN
Steps to reproduce
No response
System Info
System:
    OS: Windows 10 10.0.22621
    CPU: (12) x64 11th Gen Intel(R) Core(TM) i5-11400 @ 2.60GHz
    Memory: 4.14 GB / 15.81 GB
  Binaries:
    Node: 16.19.1 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - C:\Program Files\nodejs\yarn.CMD
    npm: 8.19.3 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Spartan (44.22621.1344.0), Chromium (110.0.1587.69)
    Internet Explorer: 11.0.22621.1
  npmPackages:
    @vitejs/plugin-vue: ^3.2.0 => 3.2.0
    vite: ^3.2.2 => 3.2.5

Used Package Manager
yarn
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

This is Vite's repository. I guess this is related to Volar and not Vite.


Initial integration of NER into Spring batch

Hey guys,
Please have a look into  feature/ner-integration branch.  I have integrated NER (from feature/NamedEntityExtractor) into our development branch and implemented majority of stuff that we have discussed during a call.

I've decided to keep separate data structure for annotated document (so renamed GATEDocument into AnnotatedDocument that has gate.Document as a property). Ideally it should extend gate.Document rather than have it as a property.

It turned out that we need to have two files per patient (both .lst and .def), but if you know how to minimise the number of files please let me know.

Currently it writes gateDoc XML into result txt files, so what we need to do is to implement getScrubbedContent properly for AnnotatedDocument.

There are bunch of stuff that we could try to optimise in order to keep I/O operations to minimum,  I have ignored this for now, but feel free to contribute.

Before we can merge it into development, let's test it and discuss all issues that are left.

Regarding 3, it was already implemented (feature/ScrubberProcessor) by @dehghana, just need to be integrated.

In NamedEntitiesWriter.write(), what's the purpose of Clear person gazetteers part? Do you want to make sure files generated in the previous run are erased?
This has problem in situation when one patient has many documents.
E.g. in the first call to write(), 2 documents for patient number 5 are passed in, those NEs will be written. Then in the second call to write(), 3 other documents for patient number 5 are passed in. The second 3 doc will overwrite the NEs found in the first 2 doc.
Also, Append to person gazetteers may input duplicate named entities in the .lst file - possibly not a breaking problem but may be inefficient.
A way to reduce I/O could be

For list of Annotated files passed to NamedEntitiesWriter.write(), consolidate their named entities in a per patient fashion (e.g. this gives us Map<String, List> for Map<patient ID, NEs>)
For each patient ID, read the existing ID.lst, and append to it the NEs which are not present in the file already.

The rest seems to work quite well.

But I don't think DeidentifiedDocumentWriter.write() is the right place to "Remove all patients gazetteers".
First, it may delete .lst and .def prematurely (e.g. in the above example, when the first 2 doc for patient number 5 have been written out by DeidentifiedDocumentWriter, their .lst and .def got deleted and SecondPassItemProcessor.process() cannot find them when processing the second batch of 3 doc. (Worst thing is, even if the gazetteer files are not found, it is ignored silently by GATE).
Second, it may tamper with retry logic in Spring batch.
I think a better place is to do such clean up is in a listener after 2nd pass (inherently we need to keep track of how much doc per patient and count how many have been processed / written)?

Thanks @mbelousov , I don't have further comments.
One last long term question:
Can writer be concurrent when we support multi-threading? Will two threads attempt to write to same patient's gazetteer file together?

@hkkenneth, we have committed changes to fix the logic and  for issue #9. Would be awesome if you could have a look into workflow and add job listener to clean output folders. Feel free to create a separate issue for that, but if you have any concerns regarding the logic of the current workflow let's discuss it here. Thanks!

Not urgent - for the next version we may take a look whether duplicate entries in the .lst files may be bad for performance. Compare that with the approach of keeping a set of "written" NEs per patient throughout the entire firstPass until all gazetteer files are written?


Unable to run tests

I am getting this error when I try to run all the tests.
$ ./dev/pytest

ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...]
pytest: error: unrecognized arguments: --cov=databricks
  inifile: None
  rootdir: /home/shril/Documents/workspace/koalas

Check your pytest version
$ pytest --version

It should be 4.4.1

Got this.
$ pytest --version

This is pytest version 4.4.1, imported from /home/shril/anaconda3/envs/koalas-dev-env/lib/python3.6/site-packages/pytest.py

Run this command instead
pytest  --verbose --showlocals --doctest-modules databricks

Thanks @garawalid , its working now.

Thanks, @garawalid. Actually, let me make it easier to test. https://github.com/databricks/koalas/pull/224


Simplify

Remove unnecessary data structures and simplify code.

Codecov Report
Attention: Patch coverage is 75.36232% with 68 lines in your changes missing coverage. Please review.

Files with missing lines
Patch %
Lines

src/utils.jl
11.66%
53 Missing :warning:

src/polyform.jl
87.93%
7 Missing :warning:

src/concatenation.jl
94.44%
6 Missing :warning:

src/geometry_utils.jl
83.33%
2 Missing :warning:

Files with missing lines
Coverage Δ

src/Roly.jl
100.00% <ø> (ø)

src/assembly_systems.jl
91.02% <100.00%> (+2.56%)
:arrow_up:

src/enumeration.jl
87.78% <100.00%> (-0.79%)
:arrow_down:

src/geometry.jl
95.31% <100.00%> (-1.47%)
:arrow_down:

src/geometry_utils.jl
82.81% <83.33%> (+35.27%)
:arrow_up:

src/concatenation.jl
95.58% <94.44%> (-3.59%)
:arrow_down:

src/polyform.jl
81.55% <87.93%> (+0.95%)
:arrow_up:

src/utils.jl
50.90% <11.66%> (-48.24%)
:arrow_down:


Kruskal Algorithm for Greedy method| Greedy Algorithms | Python

This Issue is for kruskal Algorithm for Minimum Spanning Tree using Greedy Approach,

[x] Adding New Code

[x] Python

Add your file in the proper folder

Clean Code and Documentation for better readability

Add Title and Description of the program in the file
Happy Coding,

Please assign this issue to me

Please assign this issue to me ASAP. I will do this right now. @shubham5351 @codePerfectPlus


Rewrite of Script in Python with more configuration options

I rewrote most of the script to work only with python (except the trigger.sh) with more config options (zfs-autobackup parameters), install options, logging and email on success or error. Tested on my TrueNAS Scale.
You would need to change REPO_URL in trigger.sh to your own repo after merging this PR.

Nice to see you've picked up development of udev-trigger-zfs-autobackup. As I'm currently not using this myself and not maintaining this repo I won't merge this. Instead I hope others will find your fork by leaving this pull request open.


Hlint fails to parse file when loading literate Haskell file

When working with intero on a literate Haskell file, the following message pops up in minibuffer:
Suspicious state from syntax checker haskell-hlint: Checker haskell-hlint returned non-zero exit code 1, but no errors from output: hlint: In file /Users/arnaud/projects/murex/rtdb-spark/cvar/flycheck_Model.lhs at line 1: comment line before program line.

Checker definition probably flawed.

hlint is now not enabled by default with intero. I suggest pulling the latest Emacs Lisp!
If you really want hlint on, then this comment shows how to enable it manually via the proper flycheck way.

Thanks a lot for lightning-fast answer. I am ok with not using hlint.