HealthCheck   3.1.3: Change services.AddHealthChecksUI() to services.AddHealthChecksUI().AddInMemoryStorage()

If you upgrade HealthCheck to 3.1.3
you have to change the class class RegisterHealthChecks : IServiceRegistration
string DbConnectionString = config.GetConnectionString("HealthCheckDatabaseConnectionString");
services.AddHealthChecksUI().AddInMemoryStorage();
//.AddSqliteStorage(DbConnectionString);

Is the DB file actually ever used?  Can't see that HealthCheckDatabaseConnectionString is ever  used (but still cause an error if left remaining in the appsettings.json, so maybe its some indirect loading).

The HealthCheckDatabaseConnectionString was the original.

Yes, but it does not seem to be used in the original code?
https://github.com/proudmonkey/ApiBoilerPlate/blob/master/ApiBoilerPlate/Infrastructure/Installers/RegisterHealthChecks.cs


Minor updates for channel

Add

Add db_only to listChannels
Add getMeta function
Add setMeta function
Update test for channel

approved and merged.
I'd like to know what you think of the encrypted group chat stuff
If you want to take a glance at it
On Tue, May 30, 2023, 1:49 AM Ren Amamiya @.***> wrote:

@.**** commented on this pull request.
In src/channel.ts
https://github.com/ArcadeLabsInc/arclib/pull/21#discussion_r1209734346:

@@ -4,8 +4,7 @@ import { Filter } from 'nostr-tools';
import { NostrPool, NostrEvent } from '.';

export async function listChannels(pool: NostrPool): Promise<ChannelInfo[]> {

// todo: this should only use the store, not go and re-query stuff, being lazy to get things done
return (await pool.list([{ kinds: [40] }])).map((ent) => {

return (await pool.list([{ kinds: [40] }], true)).map((ent) => {

I've updated it
—
Reply to this email directly, view it on GitHub
https://github.com/ArcadeLabsInc/arclib/pull/21#discussion_r1209734346,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAMMUKWUSO7SINNNC7C6UTXIWC6TANCNFSM6AAAAAAYTJZPUE
.
You are receiving this because you commented.Message ID:
@.***>


Normalize regex testing when using the new ES6 regex flags.

On an environment that already supports the new ES6 regex flags,
the regex value won't be null. This causes the test to be mistakenly
marked as a failure since the baseline has the null value.
To workaround this, ensure that regex value is always null when using
the new ES6 regex flags. Other comparisons will still happen to ensure
that the regex is handled properly.
Fixes #1271.

LGTM.

LG


Pulldown/select menus should not be created for any slot/column whose range isn't some enum

At some point I unilaterally assumed that a pulldown menu would only be generated if the range was some enum. Therefore, I could use string/multivalued to indicate that multiple values could be entered into the cell, separated by some delimiter.
Then subsequent code (like  submissions_as_studies.py. ) would break the multiple entries into a structured list.
Unfortunately DH is generating empty multi-select menus for my string-range multivalued slots/columns.
See also https://github.com/microbiomedata/sheets_and_friends/issues/134
and (private) NMDC Slack thread https://nmdc-group.slack.com/archives/C03LVV2ETS7/p1655989526260609

Ok, looks like that will be easy to solve. Indeed "multivalued" on its own shouldn't trigger multi-select menu display.

Great.  I'll try to get a sense of urgency from Montana.

yes hold off, this should be a quick fix.  But can you list the yaml slot definition for the field where this is happening?

So far I'm seeing that only when a slot's range is matched to an enum will the picklist control be activated on a field.

Do you need a list the fields I find broken?
Urgency isn't until next sprint / post review

thanks @mslarae13. The problematic fields are already listed here

@ddooley I think you will see that
if you visit https://microbiomedata.github.io/sheets_and_friends/main?template=nmdc_submission_schema/soil_emsl_jgi_mg and start with this sample data file
All of the columns listed here have the problematic behavior, take a string range (not an enum) and are multivalued

Here's a relevant snippet:
      air_temp_regm:
        name: air_temp_regm
        annotations:
          expected_value:
            tag: expected_value
            value: temperature value;treatment interval and duration
          preferred_unit:
            tag: preferred_unit
            value: meter
          occurrence:
            tag: occurrence
            value: m
        description: Information about treatment involving an exposure to varying
          temperatures; should include the temperature, treatment regimen including
          how many times the treatment was repeated, how long each treatment lasted,
          and the start and end time of the entire treatment; can include different
          temperature regimens
        title: air temperature regimen
        examples:
        - value: 25 degree Celsius;R2/2018-05-11T14:30/2018-05-11T19:30/P1H30M
        from_schema: http://w3id.org/mixs/terms
        aliases:
        - air temperature regimen
        rank: 16
        is_a: core field
        string_serialization: '{float} {unit};{Rn/start_time/end_time/duration}'
        slot_uri: MIXS:0000551
        multivalued: true
        owner: MIMS
        slot_group: MIxS (modified)
        range: string
        recommended: true

I think the right fix would be to move this check on the flatVocabulary field up to the top level check to enter that block in the first place (i.e. only enter that block if the field is multivalued and has options to choose from). I'm happy to make that change if that sounds like the correct desired behavior.

This should be fixed in DH v. 1.1.0 on master branch.  Line 942 of source/dataharmonizer/index.js needed adjustment.

I think this can be closed now?


Complete JMC presentation

I got this presentation basically ready to go, but edits and suggestions of course always welcome.  I did move the "Historical Performance" section to the end (after the summary), thinking that we could reference those if people asked or wanted to hear about them.  I was thinking we focus on the basic output of the assessment so they can get right to discussions, but still have it handy if anyone wanted to see and/or discuss them (e.g., Shannon). In addition to edits, a couple things remain:

I added Kelli's SRG data presentation slide on our analysis of no Canadian age data since we were basically "warned" that there would be questions about this (also at the very end).  In addition to our analyses, the SRG makes comments about this in their report as well.  To build you will need to download the eps file and put it in the beamer\images folder.  I kept it there as it seems like one-off images for presentations could be housed there and not in our main-figures folder that would just continue to grow with files that are never used again.  Please download the 'nocanagesfigure-1.eps' file from here  and put in beamer\images to build the JMC presentation.

[x] Aaron
[ ] Kelli
[x] Chris
[ ] Andy

I'd like to select the set of projection catch streams that are shown in the presentation decision tables.  We have a presentation specific decision table function (make.decision.table.pres) that uses 'models.inds' to identify a subset of runs to show, but that function doesn't include the new decision table format.  We have the new decision_table function that uses the new format, but only has a 'first.streams' flag which takes catch streams from 1 to N but doesn't allow (yet) for specifically defined subsets like 'models.inds' did. So, the presentation is all setup with the models.inds that I think would be useful (i.e., a diverse set), but we need to add that functionality to the new decision_table function.

[ ] Check once decision_table function includes that capability (Chris can you easily adapt this?)

That's all for now I think.

I will fix the decision tables for the slides, yes.

Think I added the option to do the first N catch alternatives for the SRG talk, and realised it would be a time suck to select them (unless I was Chris), hence it's not as generalisable as it could be. Thanks Chris.


[e2e]: generic push branch1 default slsa3

Repo: https://github.com/slsa-framework/example-package/tree/branch1
Run: https://github.com/slsa-framework/example-package/actions/runs/3247521248
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.generic.push.branch1.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.generic.push.branch1.default.slsa3.yml
Trigger: push
Branch: branch1
Date: Fri Oct 14 04:53:16 UTC 2022

Repo: https://github.com/slsa-framework/example-package/tree/branch1
Run: https://github.com/slsa-framework/example-package/actions/runs/3252009656
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.generic.push.branch1.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.generic.push.branch1.default.slsa3.yml
Trigger: push
Branch: branch1
Date: Fri Oct 14 18:41:05 UTC 2022
Tests are passing now. Closing this issue.


Feature Request: Minibatch Pipelining

I have a relatively simple network design, involving a 3-layer stacked LSTM, followed by some dense layers. The LSTM layers cause quite some sequential behavior that does not utilize my GPU to the fullest. So the process is GPU-bound, but because of the depth of the computation graph, and not the width of it.
In order to mitigate this, I could increase minibatch size, which only has a very limited effect, plus increased minibatch size is not always desirable. My idea of mitigating this is to apply pipelining on the scale of the minibatches.
The current way Keras works, is by cycling through the forward pass, calculating gradients, and updating network parameters. Before the next forward pass can be started, the system has to wait for the weights to be updated. Instead, I propose to let the forward pass already start on the next minibatch, using one-minibatch-delayed model parameters, and calculate gradients based on that. Then the second minibatch applies its update step after the first minibatch did its update.
This makes the process of updating "imprecise", because you update a model based on not the current state, but a previous state. But since most optimizers implement momentum, and similar tricks anyways, this feels like not a problem, and might even increase the ability to get out of local minima (but this is just wild guessing based on intuition).
In order to implement this pipeline in Keras, I think we need to have the "master version" of the model parameters. Once a minibatch starts, a copy is taken from these parameters into a temporary local "slave version" of the weights. Then the gradient calculating takes place using the slave copy. Instead of applying the update step on the slave copy, apply it to the master version. This feels like it might be implemented by either a "DistributionStrategy" or maybe a wrapper optimizer class that implements this behavior around any optimizer already available.
Any thoughts on this? I'm willing to implement this myself and make a PR once I have decent results. I have never worked on any internals of Keras, so if you guys think it is a good idea, and feasible to implement into Keras, some pointers and ideas on where to start would be nice.

Anyone who can point me at a good reference on how to start developing such a thing?


Update _redirects

adding redirect for updated faq page, which could affect google search. see slack thread for more info.
What are you changing in this pull request and why?

Checklist

[ ] Review the Content style guide and About versioning so my content adheres to these guidelines.
[ ] Add a checklist item for anything that needs to happen before this PR is merged, such as "needs technical review" or "change base branch."

Adding new pages (delete if not applicable):

[ ] Add page to website/sidebars.js
[ ] Provide a unique filename for the new page

Removing or renaming existing pages (delete if not applicable):

[ ] Remove page from website/sidebars.js
[ ] Add an entry _redirects
[ ] Ran link testing to update the links that point to the deleted page

LGTM

https://getdbt.slack.com/archives/C0441GSRU04/p1675627061036549


some functions can be declared external when solidity starts supporting it

for now, solidity suffers from:
UnimplementedFeatureError: Calldata arrays with non-value base types are not yet supported by Solidity.

which means we have to use public for all functions in AdExCore and execute/executeRoutines in Identity
once this is solved we can make them external

closing this since we don't want to make changes to AdExCore


[Feature] Add service/button to perform router's internal speed test and store results

The problem
The official HA SpeedTest integration is fairly unreliable (and I believe it uses the wrong API?). Asus routers have a built-in internet speed test feature:

It would be great if this integration could provide an ability to trigger the router's speed test and store the results. It could be provided as a service or a button, with the most-recent result stored in attributes (download, upload, ping).
Users could then create automations to periodically run the speed test and track performance over time.
Specific device(s)?
None
Firmware type
None

Hello. Yes, this should be possible. I will check it

Yes, the feature can be implemented. It might even come in the next version since it does not seem to be complicated

Thanks, that would be much appreciated.

Hello! Is there any way to trigger a new speed test via this sensor/service?

Unfortunately, up till now, I didn't manage to make the testing work. Speedtest does not like any "automated" triggering. That's why sensors are not added to the stable integration branch (release) - there is no point yet without the possibility to run the test.
I will post updates as soon as there is any progress.


Readme badges added

Fixes Issue🛠
Closes #28
Description👨💻

Type of change📄

[] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)

How this has been tested✅

Checklist✅

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added demonstration in the form of GIF/video file
[x] I am an Open Source Contributor

Screenshots/GIF📷

Pls attach the screenshot here @S-ishita

Merged @S-ishita Congrats on getting your PR merged to this repo under GSSoC23 🎉


ci: disable windows due to slow builds

Codecov Report

Merging #410 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #410   +/-   ##
=======================================
  Coverage   85.49%   85.49%
=======================================
  Files         109      109
  Lines        6818     6818
=======================================
  Hits         5829     5829
  Misses        694      694
  Partials      295      295

Continue to review full report at Codecov.

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

First run results

Second run:

Looks like Linux saved some time. Why not osx?

Third run, looks like we've sped up the builds!


Execute command

I tried it, and this is only work with vanilla server. how to make this work with spigot sever?

Hey. Sorry for answering so late.
I made this small script while I was learning how the subprocess lib worked. What it does is send all the commands to the stdin of the minecraft server. I'm not sure what spigot changes, but I assume it changes the ability to write to the stdin of the process.
The script is also extremely simple, it only works for a single server, the script must be running in the shell at all times, and while Popen will leave the server running it won't try to find the server again if you restart the script, so you'd end with multiple instances of the server running.
I'm not sure what is your use case, but MCDReforged might be more useful.


Added keepAlive refresh mode & bugfixes

Hi there!
Great plugin, using it for a few days and loved it.
Unfortunately, when I started using it, I noticed that my Home app marks my accessories as "updating" all the time :(
I looked at the code, and found 2 issues:

There was a binary or (|) instead of an logical or (||)
When the current status was fetching, the status was inaccessible (was changed to "fetching"), this led to a few seconds (around 8 in my case) when the app would hand, as it was waiting for a status. if my polling interval was around 40S, this will cause the app to hand about 1/4 of the time... A better approach would be to use the last status always, even if we are currently updating..

In addition to fixing this bugs, I added a new mode: keepAlive. This keeps the connection to Roomba alive, and updates the status when Roomba posts updated, without any delay.
Also changed the docs to reflect all those change.
I would greatly appreciate if you could review this changes and merge them. Thanks!

@matanelgabsi OMG I just noticed this PR and it looks amazing! Let me take it for a test drive for a couple of days and merge it if everything goes ok


Add a --deps flag to bst checkout

See original issue on GitLab
In GitLab by [Gitlab user @tlater] on Jun 15, 2018, 17:59
Background
Elements currently need to be careful about their runtime dependencies, since bst checkout will unconditionally stage these. This is annoying when creating an element that should be deployable, because it might stage, for example, its base platform.
Task description
We should add a --deps flag to bst checkout.
Acceptance Criteria
Elements no longer need to avoid runtime dependencies if they should be deployed.

In GitLab by [Gitlab user @tlater] on Jun 15, 2018, 18:07
changed the description

In GitLab by [Gitlab user @LaurenceUrhegyi] on Jun 18, 2018, 16:15
marked this issue as related to #422

In GitLab by [Gitlab user @LaurenceUrhegyi] on Jun 18, 2018, 16:16
marked this issue as related to #422

In GitLab by [Gitlab user @LaurenceUrhegyi] on Jun 18, 2018, 16:16
removed the relation with #422

In GitLab by [Gitlab user @tlater] on Jul 4, 2018, 18:01
unassigned [Gitlab user @tlater]

In GitLab by [Gitlab user @knownexus] on Jul 16, 2018, 07:31
assigned to [Gitlab user @knownexus]

In GitLab by [Gitlab user @knownexus] on Jul 16, 2018, 07:32
Looking into this

In GitLab by [Gitlab user @knownexus] on Jul 16, 2018, 08:30
So my thoughts on this so far are:
I want to add a --no-deps instead.
This would prevent changing existing functionality and allow for what is requested
Plan:
Add --no-deps flg to bst checkout
call target._prepare_sandbox with the no_deps param
the no_deps param would default to false to prevent changing existing functionality
add a if not no_deps statement before the staging dependencies step in element._prepare_sandbox()
This should return the same result as before if the --no-deps flag is not used

In GitLab by [Gitlab user @juergbi] on Jul 16, 2018, 08:59
I was expecting bst checkout --deps to follow the approach of bst track and take an option value, none or all, defaulting to all. That way we would also preserve the current behavior by default but be consistent with the other bst commands. Does this sound sensible to you as well?

In GitLab by [Gitlab user @knownexus] on Jul 16, 2018, 10:45
Ah yes, i didn't see the similar option in bst track, that seems like a good option to me

In GitLab by [Gitlab user @knownexus] on Jul 16, 2018, 16:07
created branch 425-add-a-deps-flag-to-bst-checkout

In GitLab by [Gitlab user @knownexus] on Jul 16, 2018, 16:07
mentioned in merge request !544

In GitLab by [Gitlab user @knownexus] on Jul 16, 2018, 16:13
mentioned in merge request !545

In GitLab by [Gitlab user @knownexus] on Jul 17, 2018, 14:25
closed via merge request !545


ColBERT models to be packaged into ONE model file

Currently, checkpoint is downloaded and then if one chooses to index a corpus, then another copy of xlm-roberta-base models (config.json, pytorch_model.bin, sentencepiece.bpe.model, tokenizer.json) are downloaded from HF model hub. We need to package all into model_name_or_path.

@franzmpub : have we started on it ? Please put updates , if any


Channels support

Hello,
I was testing your library with the brand new WhatsApp channels, but I don't think these are yet supported.
I see from the WhatsApp Web interface that I have a new button on my Business Account:

From this I can see all the channels I have created and can also send messages to them.
If you need more info or anything for testing you can contact me privately.
Thanks for the amazing library!

Working on this as a private project


[UI docs] karate-core/README.md contains code examples with non-existing waitUntilEnabled() function

I think the waitUntilEnabled() function was once renamed to waitForEnabled(). Anyway, it doesn't seem to exist (anymore). But there are still four mentions in the karate-core/README.md.

low priority, tagging as help wanted

@ptrthomas Please refer to the following below PR for the fixes of this issue as reported! cc: @drundanibel
https://github.com/karatelabs/karate/pull/2060

closing as documentation done


optitrack: 0.1.0-0 in 'hydro/distribution.yaml' [bloom]

Increasing version of package(s) in repository optitrack to 0.1.0-0:

upstream repository: https://github.com/crigroup/optitrack.git
release repository: https://github.com/crigroup/optitrack-release.git
distro file: hydro/distribution.yaml
bloom version: 0.5.20
previous version for package: null

optitrack
* Initial release
* Contributors: fsuarez6

Hydro has been EOLed a while ago. We don't run a build farm anymore and therefore can accept any contributions for it. Please consider to contribute to a current distribution.


⚠ GitLab Server has degraded performance

In 381c3e4, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 6918 ms

Resolved: GitLab Server performance has improved in dc49304.


ENG-8339 add "adv" postfix to version when advanced device in version…

Add "adv" postfix to version name when Advanced Device is enabled.  Send log when Advanced Device capture is attempted. This only will occur in Advanced device builds. Log will send back true or false depending on the user input but we always log.
getSDKVersion() (not advanced)
2024-07-18 13:27:32.736 31731-31731 System.out              com.sample.neuroid.us                I  MainActivity: 5.android-3.3.0
getSDVersion() (advanced version)
2024-07-18 13:28:27.538 31924-31924 System.out              com.sample.neuroid.us                I  MainActivity: 5.android-3.3.0-adv
in captureAdvancedDevice()
2024-07-18 13:48:39.467   306-344   NeuroID Debug Event     com.sample.neuroid.us                D  EVENT: LOG - null - m=isAdvancedDevice setting: true, ts=1721335719466, level=INFO
From proxy request body
c86751e9c1bf","sw":1080.0,"ts":1721336243990,"type":"CREATE_SESSION","tzo":300,"ua":"Dalvik/2.1.0 (Linux; U; Android 13; Pixel 4a Build/TQ3A.230805.001.S1)","url":"android://com.sample.neuroid.us.activities.MainActivity"},{"accel":{"x":-0.076570325,"y":-0.18005991,"z":9.75135},"gyro":{"x":6.1084726E-4,"y":-6.1084726E-4,"z":6.1084726E-4},

"level":"INFO","m":"isAdvancedDevice setting: true","ts":1721336243994,"type":"LOG"},

{"accel":{"x":-0.076570325,"y":-0.18005991,"z":9.75135},"attrs":[{"isRN":false}],"ce":true,"cid":"b4d64e0b-96bd-4990-b21e-81b74c106f35","did":"1721328779820.7.768685848406655E8","dnt":false,"f":"key_live_MwC5DQNYzRsRhnnYjvz1fJtp","gyro":{"x":6.1084726E-4,"y":-6.1084726E-4,"z":6.1084726E-
```4},"iid":"1721328779821.1.0583997269293449E9","je":true,"jsl":[],"jsv":"5.android-3.3.0-

test broke. hold merge

Test should be ok now.


Update to support latest NDC SDK v0.1.0-rc.16

This PR updates the connector to use the latest NDC SDK v0.1.0-rc.16. This changes the way functions and procedures are invoked and so a new fields module has been added to handle nested field selection.
Also, the send_mail procedure now takes the original send mail request type that the connector used to take before we simplified it to work around v3-engine not supported object types in arguments. It does now, so the functionality has been restored.
The connector definition tarfile is built by running make build in the connector-definition folder and is uploaded to build artifacts.
JIRA: NDC-395

Did you check sending some emails?

Yes, I manually tested both the function and the procedure.


Create a PDF and a DOCX to allow quick manual checking of tool

test_pdf_fields.pdf
hello_planet2.docx


Fix format.sh (unbound variable DOCKER_HOST)

Motivation
format.sh previously broken by https://github.com/DataDog/system-tests/pull/2005
The script would fail in systems without DOCKER_HOST env var defined.
Changes
Ensure DOCKER_HOST is defined within the script before referencing it.
Reviewer checklist

[x] Relevant label (run-parametric-scenario, run-profiling-scenario...) are presents
[x] No system-tests internal is modified. Otherwise, I have the approval from R&P team
[x] CI is green, or failing jobs are not related to this change (and you are 100% sure about this statement)

@smola I didn't notice the set -u at the top of this script. Thanks for fixing.


KeyError: 'default_scope

运行例子中的python tools/pruning/get_channel_units.py   configs/pruning/mmdet/dcff/dcff_faster_rcnn_resnet50_fpn.py    -c -i --output-path=./resnet_det.json
出现问题：   raise KeyError(name)
KeyError: 'default_scope'

configs/pruning/mmdet/dcff/dcff_faster_rcnn_resnet50_fpn.py is not a valid config for training.
Please try python tools/pruning/get_channel_units.py configs/pruning/mmdet/dcff/dcff_faster_rcnn_resnet50_8xb4_coco.py -c -i --output-path=./resnet_det.json.

Can you tell me why configs/pruning/mmdet/dcff/dcff_faster_rcnn_resnet50_fpn.py is not a valid config for training.is not a valid config for training. I'm also having this problem when compressing my own model. So I'd like to ask you what the config of your standard trainable model looks like


Apply IdentityRenamed and IdentityEmailChanged events

:mega: @DRvanR

:+1: ship it tag it bag it


mdpocket libnetcdf.so.15 error

Dear all,
I have installed fpocket, and all the required packages. Fpocket works perfectly, but while I am try to run mdpocket -h, it arise the following error:
error while loading shared libraries: libnetcdf.so.15: cannot open shared object file: No such file or directory

Best,
Alessandro
Version
fpocket-3.1.3
ubuntu 16.04

have you tried to install the library as dependency on ubuntu before?
apt-get install libnetcdf-devel should do the trick


Latex in dot points?

I'm having an issue with rendering of some text in optgrowth.rst
It looks like this for some reason:

@natashawatkins that is due to an error in the source rst file. This extension is a bit more picky than the html renderer. That line in the source is indented by 4 spaces which means it get's interpreted as a block quote.
Are you using the latest version of jupinx? as the inline math issue within blockquotes should be fixed.

It is changing daily at the moment.

I am not sure why greedy is on the right of v* though.

That's how it's meant to look, it was changing it for some reason in my example

@natashawatkins it used to be broken in japing but made it a bit more robust to spacing issues so got fixed a few days ago.

@mmcky does that mean that this issue will also be fixed, from the arellano lecture...

Another example from perm_income


(docs) remove largest part of EDC Discovery API from DT Kit

Removes superfluous/outdated endpoints of EDC Discovery API from Releases next and 23-09.

can't add reviewers so cc
@danielmiehle
@thomas-henn
@jjeroch
@maximilianong

As no one appears to object to any changes - please merge.

@arnoweiss there are still GitGuardian and Markdown linting checks running.


Service type

Perhaps we can create a 3.0 branch, open the merge requests to that branch and then merge in the sequence of creation? This PR now contains a lot of duplicate changes with PR2

Can you also change the documentation in the docx file?

Close this PR as the rebased version of this PR has been merged


amr nesting issue

rmid: 34rmsubmitter: Cyrus Harrisonrmsubmitdate: 05/07/2010 08:24 am see files from wickett
-----------------------REDMINE MIGRATION-----------------------
This ticket was migrated from Redmine. As such, not all
information was able to be captured in the transition. Below is
a complete record of the original redmine ticket.
Ticket number: 160
Status: Pending
Project: VisIt
Tracker: Bug
Priority: Normal
Subject: amr nesting issue
Assigned to: -
Category: -
Target version: -
Author: Cyrus Harrison
Start: 06/21/2010
Due date:
% Done: 0%
Estimated time:
Created: 06/21/2010 07:35 pm
Updated: 01/11/2012 05:16 pm
Likelihood: 3 - Occasional
Severity: 2 - Minor Irritation
Found in version: 2.0.0
Impact:
Expected Use:
OS: All
Support Group: DOE/ASC
Description:
rmid: 34rmsubmitter: Cyrus Harrisonrmsubmitdate: 05/07/2010 08:24 am see files from wickett
Comments:
Assignment from LLNL VisIt 2.1 Release Meeting Update from LLNL Meeting.

closing, we not longer have files.


fixing ci badge

Codecov Report
Base: 76.94% // Head: 77.06% // Increases project coverage by +0.12% :tada:

Coverage data is based on head (23b7e6f) compared to base (35bec48).
Patch coverage: 90.08% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #214      +/-   ##
==========================================
+ Coverage   76.94%   77.06%   +0.12%
==========================================
  Files         104      104
  Lines        7620     7774     +154
==========================================
+ Hits         5863     5991     +128
- Misses       1757     1783      +26

Impacted Files
Coverage Δ

src/radiative_transfer/solvers/delta_eddington.F90
93.08% <50.00%> (-3.57%)
:arrow_down:

src/radiative_transfer/radiator_warehouse.F90
81.73% <69.04%> (-3.50%)
:arrow_down:

src/cross_section_warehouse.F90
84.81% <70.37%> (-6.57%)
:arrow_down:

src/spectral_weights/gaussian.F90
92.30% <75.00%> (+0.30%)
:arrow_up:

src/spectral_weights/notch_filter.F90
93.33% <75.00%> (+0.22%)
:arrow_up:

src/core.F90
78.87% <78.57%> (-0.42%)
:arrow_down:

src/grid_warehouse.F90
85.83% <78.57%> (-1.30%)
:arrow_down:

src/spectral_weight.F90
79.20% <80.00%> (+0.20%)
:arrow_up:

src/profile_warehouse.F90
89.16% <87.50%> (-0.05%)
:arrow_down:

src/radiative_transfer/radiative_transfer.F90
81.25% <92.30%> (+0.29%)
:arrow_up:

... and 72 more

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


win32: Parse APPEXECLINK junctions in executable_file()

On newer Windows versions (>= 10) the Windows Store installs some decoy
.exe files in %LOCALAPPDATA%\Microsoft\WindowsApps that can only be
executed, doing any other I/O operation on them results in a
file-not-found error to be raised.
This PR solves a (big?) problem if eg. you've installed python from the
store, in that case calling executable('python') or exepath('python')
would fail miserably even though python.exe is found in $PATH.
cc @k-takata

Does executable('python') return true after this change if python is not installed from the store yet (which means that the python.exe is just a link to the store)?

@brammool
I think this can be included.


Updates?

Are you still working on this?

Sort of? It's complicated.
Recently (3 months ago?) sunpower started rolling out a change in how their site reports data. They also changed how logins are done and several other bits, including how often data is reported back to the site.
It broke my script, obviously, but I also was seeing HUGE outage periods that were later back-filled. Even now, my dashboard lags "real time" by about an hour. I'm hoping that this is just Sunpower working out the kinks on their new system (and I say that as I look at the orange "Display of data may be intermittent. Learn more." banner on https://monitor.us.sunpower.com/#!/dashboard.
I swear I'm about this >< close to just building a MITM box for my device Wifi and intercepting the damn data from the panel controller box.

(It's 16:50. Do you know where your power graphs are? We don't.)
So... it's not dead, yet. But I'm not going to waste hours trying to crack a broken system that may get massively rewritten when some SunPower engineer finally figures out their new reporting, either

:notes:I feel happy, I feel happy...:notes:

Yeah the monitoring is worthless right now. I was hoping the enphase envoy integration worked since I have  IQ7 inverters. Looking forward to your updates. Thanks

Hi, have you seen this?
https://blog.gruby.com/2020/04/28/monitoring-a-sunpower-solar-system/

I have not! Very cool and beats me trying to MITM the box.
Does require a bit of extra gear, but seems straight forward enough.
FWIW, the latest changes seem stable, but wow, only hourly updates, and the
site has terrible response. If I go the Pi route, might just drop the box
from the net.
On Fri, Sep 25, 2020 at 12:32 PM rome1983<EMAIL_ADDRESS>wrote:

Hi, have you seen this?
https://blog.gruby.com/2020/04/28/monitoring-a-sunpower-solar-system/
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/jrconlin/sunpower_hass/issues/2#issuecomment-699114756,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAIXKZSIDZKJCN6P7LI25TSHTV3VANCNFSM4JCM6TPA
.

I had a pi 2 just collecting dust. It fits comfortably inside the PVS6 with the official pi wifi adapter.

Huh, neat! I had a rpi 3 that works pretty well with it. Managed to write up a crappy python cgi that dumps the attributes and does the right sampling.
Going to need to dork with this a lot more before I can put together something I'm happier with, but this is a helluva better start.
Also, a bit surprised that there's a cell connection in there. I wonder what that's used for?

No idea about the cell connection.

https://github.com/xlukose/sunpower-pvs-exporter
I was able to get this working. I got all the containers running on my NAS. Next is to grafana up and running. I scrapped the home assistant thru nodered because grafana looks good.

If anyone is interested, I've pushed an updated version of this repo with an equally hacky version that works for the current Sunpower website as of 12/29/2020 at https://github.com/madrobby/sunpower_hass
You will need to add an "address" field to your config file (you can spy on what that is if you inspect the URLs the Sunpower website uses when it accesses data while loading).

First off: (blah, yeah, looks like the "API" changed again. Thanks @madrobby.
Secondly: Looks like the addressId is in the authenticate response. (looks like there's the potential for multiple of these, too.) Aaaand, apparently I never bothered to commit the changes I was working on. FWIW, they're in the [api_v3](https://github.com/jrconlin/sunpower_hass/tree/api_v3) branch now. FWIW, they're not drastically different than the fork.
Thirdly: I'll admit, I've kinda given up on chasing after the ever "evolving" non-API in favor of an installed RPI in my monitor box that's directly polling the device and reporting out. I can monitor the temp of the RPI, the panel temps, panel production and a whole lot more, plus I can do it at 5 minute update intervals so clear win there.
I honestly don't expect to update this library further because of that, and frankly kinda suggest that if you REALLY want to have accurate data polling for your Sunpower device, buy a spare RPI3 (or like) and stuff it in to the controller box. It's actually very easy to get this rigged up and it works spectacularly well. (I'll write up something soon that describes what I did.)

Right, added the write up for how to get direct access of the Sunpower data, for the cost of an old Raspberry Pi and some extra cables you might have lying around.
Thanks all for the dope slap to actually write this up.


Error when set selected table with checkbox

when i set table to use .Selecting(true, SelectItems.Checkbox)
this will be return error
An unhandled exception occurred while processing the request.
NullReferenceException: Object reference not set to an instance of an object.
this error will not showing up when i set selecting to this options
.Selecting(true)
.Selecting(true, SelectItems.Cell, SelectStyle.Single)
this is my complete view
@(Html.JS().Datatable()
.Class("table table-hovered table-striped dataTable")
.Name("datatable")
.LengthMenu(new int[] { 5, 10, 25, 50, 100 }, true, "All Pages")
.FixedColumns(leftColumns: 0, rightColumns: 1)
.ColumnSearching(true, "form-control", SearchPosition.Header)
.Columns(cols =>
{
cols.Field(a => a.stu_Id).Title("Id");
cols.Field(a => a.stu_PerId).Title("Id");
cols.Field(a => a.stu_AdmitDate).Title("Admit Date");
})
.ColReorder(true)
.URL(Url.Action("GetStudentNotYetEnroll"), "POST")
.ServerSide(true)
.Selecting(true, SelectItems.Checkbox)
.StateSave(true)
.Orders(order =>
{
order.Add(p => p.stu_Id, OrderBy.Descending);
})
.Render()
)
Regards
Nasrul

Hi @nazerulgit
It is fixed with version 3.8.2, thank you for your contribution!

hi @ekondur
Now it is working well.
Thank you very much.
However, this library would be very helpful if it had a function to check all checkboxes, and when one or more checkboxes are selected, it could trigger a callback to show a button. When this button is clicked, it will send the values of the selected checkboxes to the controller.
Thank you once again.
Your library is very useful.
regards
Nasrul

Hi @nazerulgit
Thank you for your advice, we can add a button for all selected, but your other suggestions seem user-specific and it seems more correct that you manipulate them


[INTERNAL] Replace deprecated new Buffer() calls

Replacing deprecated 'new Buffer(string)' with 'Buffer.from(string)'.
Resolves a TypeError being thrown in our tests when executed with
Node 20.15.0 or 22.3.0.
Root cause: https://github.com/nodejs/node/issues/53075

coverage: 94.668% (+0.08%) from 94.588%
when pulling 328a63c73227b22a071dfcdd29ee9abdbc995991 on remove-new-buffer
into f119ccd3769b8ee525044986bb766509bd75b736 on main.


Provide a GitHub Action to build and publish the docker image

This PR adds a GitHub action which builds and publishes the docker image.
ToDos

[ ] test basic build/publish
[ ] setup dependabot or similar to trigger new build whenever there is a new NiceGUI docker image
[ ] grab the version from the new NiceGUI docker image and use it when publishing this image

OK, I've got the build and push working, now how do I trigger it on a push of your image?

I suggest you activate dependabot in your project settings and create a .github/dependabot.yml:
``yml
version: 2
updates:

package-ecosystem: "docker"
directory: "/"
schedule:
interval: "daily"
open-pull-requests-limit: 10

In the `Dockerfile` you should use an explicit version: `FROM zauberzeug/nicegui:latest`
That will allow dependabot to check for upstream changes. It will then create a new pull request.
To enable you to better verify that everything is still working I suggest you also auto-build these pull requests by updating the GitHub Action:

```yml
on:
  workflow_dispatch:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

And instead of push: true you should use push: ${{ github.event_name != 'pull_request' }} to only publish a new image if it is merged onto main.
If you automate it further you could set auto-merge: true in the dependabot.yml.

Thanks Rodja, this is amazing. I really appreciate your assistance.


Method to reset to initial state.

Hi,
I added this plugin to a hover / drop down menu. I want a tip on how i could reset it to initial state when the menu is hoverOut.
Can you help me with this.
Regrads.

I do realize you guys solved it yourselves long ago, but I can finally close this issue as I was able to get some coding done for this project and the just released v1.0.0 implements reset method.


Wrong class type in nuxt-link component

Environment

Operating System: Windows_NT
Node Version:     v16.19.0
Nuxt Version:     3.4.2
Nitro Version:    2.3.3
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      extends, app, ssr, modules, i18n, vite, runtimeConfig, router, alias
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Build Modules:    -

Reproduction
I can't reproduce this in the nuxt editor as it's a TypeScript error.
In *.vue template:
<nuxt-link class="test-class" to="/">Link</nuxt-link>

Describe the bug
Type '{ class: string; to: "/"; }' is not assignable to type 'IntrinsicAttributes & Omit<NuxtLinkProps, "to" | "external"> & { to: (Omit<RouteLocationPathRaw | RouteLocationNamedRaw, "name" | "params"> & RoutesNamedLocations) | (Omit<...> & { ...; }) | TypedPathParameter<...>; external?: false | undefined; }'.
  Property 'class' does not exist on type 'IntrinsicAttributes & Omit<NuxtLinkProps, "to" | "external"> & { to: (Omit<RouteLocationPathRaw | RouteLocationNamedRaw, "name" | "params"> & RoutesNamedLocations) | (Omit<...> & { ...; }) | TypedPathParameter<...>; external?: false | undefined; }'.ts(2322)

Additional context
No response
Logs
No response

Sorry for the confusion. However, this is problem with the nuxt-typed-router module 😅 (https://github.com/victorgarciaesgi/nuxt-typed-router/issues/89)


Nuget Package 2.1.3 Broken!

There appears to be issues with the dependencies in the nuget package. I created a new console app, added the 2.1.3 nuget package then tried to run the sample app code from the main github page. As soon as it hits the line:
ApiClient apiClient = new ApiClient("https://demo.docusign.net/restapi");
you get a runtime error:
Exception thrown: 'System.IO.FileLoadException' in PortalTemplate.WebApp.IntegrationTests.dll

Additional information: Could not load file or assembly 'RestSharp, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

@miketonguk Sorry about the inconvenience. I believe this should be fixed with version 2.1.4, can you please try with that version.

Thanks for the prompt response, however the new version has the same problem, this time the error is:
An unhandled exception of type 'System.IO.FileLoadException' occurred in ConsoleApplication1.exe

Additional information: Could not load file or assembly 'RestSharp, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=598062e77f915f75' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

I've actually tried the last 4 or 5 versions of the Nuget package and they all have a similar issue. In desperation I also tried an unofficial nuget package called 'Docusign' from jkergosi and this one works just fine. We cannot use this in production however.
I also downloaded the code to try and build it myself but the github source doesn't appear to be up to date (last updated 20 days ago, so your update from yesterday is not there). There was also no VS solution file, and the compile.bat in the sdk folder generates a ton of build errors so there seems to be something missing.

Resolved, this was because I still have the old unsigned restsharp in my project


Pinot Does not FSync and Relies on FD Close

While playing with some Pinot data, I realized that Pinot in some instances doesn't do fsync and instead relies on close(int fd) calls (via FileChannel#close).
One example is here: https://github.com/apache/pinot/blob/master/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/impl/inv/json/BaseJsonIndexCreator.java#L147
Close doesn't flush data to disk and one has to manually call FileChannel#force to make it happen (afaik).
In my case, I discovered this while playing with custom code on local where I was mimicking file reads/writes similar to how Pinot does it (by using FileChannel in try-resources) and found that the file wasn't getting written to.
I have just started playing with index related code so I might be missing something.

Great finding! Without force, the data should sit within the operating system's file I/O buffers if not written to disk yet. I don't know if OS is smart enough to force the data if we try to access the file after it is closed (e.g. compress the data), but I think it is best practice to force it especially when performance is not that critical.

Hi I would like to work on this, can you please assign it to me. Thanks!


Update the APO for objects migrated to H2 to use the Hydrus Ur-APO

Proposal: Normalize all Hydrus/H2 items to use the Hydrus Ur-APO
Background
When we migrated objects from Hydrus to H2, we did not change their governing APOs. In Hydrus, every collection had its own unique APO. The function of the Hydrus-specific APO was to control collection settings: default license, default visibility, whether the review workflow is active, authorization of depositors, etc. The Hydrus collection-specific APOs were all connected to the Hydrus Ur-APO, essentially creating a hierarchy of:
Hydrus Ur-APO --> Hydrus collection-specific APO --> Collection --> Item
In H2, all of the collection settings are controlled by the H2 app itself. Since that means there is no need for collection-specific APOs, all H2 deposits just use the Hydrus Ur-APO. As I recall, at the time of the H2 migration, we weren't quite sure what to do with the Hydrus collection-specific APOs, so we left them in place for existing objects. Now that a year has passed and we have not run into anything indicating a continued need for the Hydrus collection-specific APOs, it seems like a good time to retire them.
To do this, we need to update all H2 and Hydrus items and collections that still have a Hydrus collection-specific APO to use the Hydrus Ur-APO. This would standardize all self-deposit items to use the same APO. Currently, what we've found is that certain collections are split between items that use the old Hydrus collection-specific APO and the Hydrus Ur-APO.
For example, the VISTA Lab collection has items that use different APOs even though they're all in one collection:
https://argo.stanford.edu/catalog?f[is_member_of_collection_ssim][]=info%3Afedora%2Fdruid%3Aqd500xn1572
In that collection, the 15 items deposited before the H2 migration use the "APO for VISTA Lab". The one item deposited in 2022 uses the Hydrus Ur-APO. It would be preferable to have them all use a single APO.
Normalization options
There is one complication with making this change: updates to the governing APO are usually handled as "versioning" events. The standard way to update APOs would be:

Open new version in Argo
Update the APO
Close the version

The problem with doing this for objects migrated to H2 is that it would throw off the version numbering. Every item that needs to be moved to the Hydrus Ur-APO would have its version incremented by 1. Changes made via Argo carry the risk of causing problems for subsequent edits in H2.
That leaves us with a couple of viable options:

Re-deposit every item in H2 in order to update the APO. H2 will always use the Hydrus Ur-APO, so the next version sent from H2 will switch the APO.
Make an update in the Cocina only, without versioning. We could update the APO in the Cocina and not send a new version to preservation.

@amyehodge and I met today to discuss the options. Our inclination is to make the update in Cocina only and not go through the versioning process. Our reasoning is:

APOs are completely invisible to H2 users. We would be creating a new version that only changed information no one sees.
APO information is not published to the Purl, so there's no need to update the Purls
Even though the change in APO wouldn't be preserved if we updated only the Cocina, nothing in the SDR system relies on the APO relationship being expressed in the preservation system
In any disaster recovery scenario, the Cocina database is as important as the contents of the preservation system, so making sure the change in APO was saved to preservation in a new version may not provide much benefit.

Example
I think the only change required would be to change the APO druid here:
"administrative": {
    "hasAdminPolicy": "druid:gj641wz5091",

to
"administrative": {
    "hasAdminPolicy": "druid:zw306xn5593",

cc: @hannahfrost This is the proposal we discussed today to remove the old Hydrus APOs from active use. If we follow this route, then I would decommission them afterwards.
There are 955 Hydrus APOs, making up around 75% of all APOs: https://argo.stanford.edu/catalog?f[nonhydrus_apo_title_ssim][]=Hydrus+Ur-APO&f[objectType_ssim][]=adminPolicy&search_field=text

Thanks for the clear explanation of the situation, @andrewjbtw . I will be very happy to see this APO clutter removed from Argo. The Cocina route is clearly the right way to go.

(Documenting for my own benefit here)
Process to update a single object on the Argo VM, to be scripted:
ur_hydrus_apo = 'druid:zw306xn5593'

# iterate over all relevant druids
object_client = Dor::Services::Client.object(druid)
cocina = object_client.find
change_set = ItemChangeSet.new(cocina)
change_set.validate(admin_policy_id: ur_hydrus_apo)
change_set.save
Argo::Indexer.reindex_druid_remotely(druid)

hydrus_apos_updated.csv

12309 druids updated.  CSV of druids updated attached as a comment.


.simulate(event) doesn't properly propagate events in ShallowWrapper

see #368 with a proof of concept for this


Remove admin email by role

This feature overloads the email system dramatically, and use even by accident is unwanted. Remove the ability from the frontend at least.

@Scratchcat1 - please could you review and test this again, to check I implemented your fixes correctly. If I did, please submit your approving review and then hit the merge button!


Pokemons with high ??? CP become very low-level (<100) when found/caught by bot

Expected Behavior
Pokemon CP should be the same as if the user caught it through the official app.
Actual Behavior
Noticed this many times now, whenever I use the pokemap to hunt for rare pokemons, I use the bot to catch it by using the coordinates as the starting point. It seems that if the pokemon's CP is high enough to have the ??? value when in-game, the bot catches it with a very low cp instead (less than 100). I was able to test this on 3 occasions already, caught a rare pokemon (e.g. dragonite) with account 1 using the bot which resulted to a very low cp. When I use another account (same level) to catch it (through the app), the CP is correct (which is usually 1k+).
Hopefully someone can figure out why this happens.
Other Information
OS:
Git Commit: (run 'git log -n 1 --pretty=format:"%H"' and paste it here)

I find low CP pokemons with the official app, too. There's a bit of randomness. Sometimes I catch a pidgey CP240, and minutes after, a CP10.
Can you go there both with official app and bot, at the same time, using same level accounts?

I thought that was the case too, but it happened enough times to me already to suspect that it's something to do with how the bot interacts with pokemons with very high CP. I got rare pokemons with suspiciously low CP (46 dragonite, 50+ arcanine and there were other rares that were immediately exchanged for candy!).

I couldn't observe that. The CP are similar in my case.

@fdelia were you running the bot normally or were you starting your run from the coordinates of the pokemon? I wonder if it's an anti-cheat implementation that's causing it.

I usually try to spot an area with rare pokemons with pokevision.com, then I run the bot normally from there. Rare pokemons don't have as high levels as others...

There is an anti-cheat mechanism that causes this, your previous location is stored on the phone when using the app, if you suddenly teleport from USA to Japan for example it does check to see if X -> Y is possible based on the last logged time and now.


Add extraction of laws.json and journals.json patterns from reporters_db

This adds extraction of laws.json and journals.json patterns from reporters_db:
>>> get_citations("1 U.S. 1. Mass. Gen. Laws ch. 1, § 2. 1 Minn. L. Rev. 2.")
[FullCaseCitation('1 U.S. 1', groups={'volume': '1', 'reporter': 'U.S.', 'page': '1'}),
 LawCitation('Mass. Gen. Laws ch. 1, § 2', groups={'reporter': 'Mass. Gen. Laws', 'chapter': '1', 'section': '2'}),
 JournalCitation('1 Minn. L. Rev. 2', groups={'volume': '1', 'reporter': 'Minn. L. Rev.', 'page': '2'})]

Yay! Now some questions ...
Question: class hierarchy?
Here's the class hierarchy I currently have for citations, with the ones we actually instantiate in bold:

CitationBase

ResourceCitation: stuff done by full and short cites that matched a pattern from reporters_db

FullCitation: label for things that are full cites instead of short cites

FullLawCitation
FullJournalCitation

CaseCitation: stuff done by case citations

ShortCaseCitation

FullCaseCitation (inherits from both CaseCitation and FullCitation)

SupraCitation
IdCitation
NonopinionCitation

You can see it gets kind of messy because we need a base class for things that all reporters_db citations do, a base class for full citations, and a base class for case citations, and then the actual models inherit from one or more of those. Dunno if this could be better.
You can also see I'm not currently attempting to deal with short journal or law citations. Seemed like I could get away with saving that for later.
Question: citation object attributes?
OK so once you call get_citations() and get back some citations, what (public) attributes and methods do they have? This has gotten a little messy. Here's the current answer in this PR, ignoring the generic ones like IdCitation and SupraCitation:

All:

matched_text(): the actual text matched by the regex that found this cite
span(): the range of characters in the input text that represent this cite
groups: the dict of match groups in the regex that found this cite
base_citation(): matched_text() with corrected reporter string based on edition_guess
formatted(): full citation with corrected reporter string and metadata extracted from nearby text
reporter_found: same as self.groups['reporter']
reporter: same as self.groups['reporter'], but if edition_guess is set then it becomes edition_guess.short_name
year: extracted from following text
pin_cite: extracted from following text
parenthetical: extracted from following text
all_editions: list of Edition objects for the regex that found this cite
exact_editions: subset of all_editions that had this as their primary regex
variation_editions: subset of all_editions that had this as a variation
edition_guess: single Edition object, if there's only one in exact_editions with a valid year, or if no exact_editions, only one in variation_editions with a valid year

FullCaseCitation -- same as All plus:

volume: same as self.groups['volume']
page: same as self.groups['page']
canonical_reporter: if edition_guess is set, becomes the name of the cluster from reporters.json, like F. for the edition F.2d
plaintiff: extracted from preceding text
defendant: extracted from preceding text
extra: extracted from following text
court: extracted from following text

ShortCaseCitation -- same as FullCaseCitation plus:

antecedent_guess: word immediately before citation

FullJournalCitation:

volume: same as self.groups['volume']
page: same as self.groups['page']

FullLawCitation:

month: extracted from following text
day: extracted from following text
publisher: extracted from following text

Possible changes to make this less messy:

We could collect all of the "extracted from following text" variables into a dict named something like metadata that includes everything we capture before and after the cite. So remove the attributes publisher, day, month, antecedent_guess, court, extra, defendant, plaintiff, parenthetical, pin_cite and just have like metadata["publisher"]. That could leave less of a "lots of special cases" feeling.

(One special case I would keep -- I'd probably put the raw value we find for year as metadata["year"], but still set year as an integer year from a valid range like we do now, because that one seems useful).

Remove canonical_reporter? Not sure if this is doing anything useful, but you can get it from edition_guess.reporter.short_name.
Remove reporter_found in favor of groups['reporter']?
Remove volume and page in favor of groups['volume'] and groups['page']?
Rename reporter reporter to something like def cleaned_reporter(): return self.edition_guess.short_name if self.edition_guess else self.groups['reporter']?
Rename base_citation() and formatted() to cleaned_citation() and cleaned_citation_full()?

If we made all of those changes then the API for all reporters_db citations would become this:

All:

matched_text()
span()
groups
metadata
cleaned_reporter()
cleaned_citation()
cleaned_citation_full()
year
all_editions
exact_editions
variation_editions
edition_guess

Happy to include something along these lines in this PR, but I didn't want to delete a bunch of stuff if it wasn't going in the right direction.
Other miscellaneous stuff in this PR:

Removed do_defendant and do_post_citation flags from get_citations since those seem harmless to always do and required some extra moving parts to support. In the future there could be some flag for not extracting cite metadata in general?
Added a format_resolution helper function to the resolve_citations tests while getting those working, to make it easier to see why two resolutions don't match.
Moved all regexes and regex-building helpers to regexes.py, as Mike suggested in the last PR.
To make it easier to view citation objects in the repl, everything inheriting from CitationBase now uses a simplified __repr__ like FullCaseCitation("original matched text", groups={...}). Some citation classes previously had formatted citation builders in their __repr__ function, which I think was misnamed -- those now live in a formatted() method, which I suggested above might want to be called cleaned_citation_full().

Stuff left undone:

Handling short cites for laws and journals.
Pin cite extraction for laws is probably pretty incomplete. (And I suspect some stuff might want to move between reporters.json and laws.json once we look more at that -- like maybe anything cited by page range wants to be in reporters.json.)
Docs need some updates once we settle on the api.
Just fyi "U.S.C" won't be found yet because I haven't added federal statutes yet over in reporters_db.

Some general responses, and then I'll go look at the code, since there's plenty here to chew on.

Yes, the API simplification makes sense to me and I vote for it. The one thing that'd be nice is if we used an object for metadata instead of a dict, so that it can have better inspections and be easier to use. I tire of writing things like metadata["mything"] instead of just metdata.thing (I guess JS-land is ready for me).
We do use canonical_reporter in a few places in CL, but it'd be easy enough to update our code to get the values we need even if it went away.

Doing short cites for journals later seems fine to me.

The class hierarchy is a mess. There's no way I can have that in my head. The one solution that sometimes helps with this is mixins. Maybe there's an opporunity to use them here to simplify, but I don't see that as a blocker for this: Yes, they're a mess, but it's a mess with a purpose and that works.

It'd be nice to sequence this after PR #62, so they don't have to update. It's small.

All other miscellanea sounds good.

Now to go look at the code.

OK, I've skimmed over the code. No big surprises that I saw except that dang, that regex file is MASSIVE.

OK, I did the API refactor to move citation attributes extracted from text before and after the citation into cite.metadata, remove redundant attributes, and provide corrected_reporter(), corrected_citation(), and corrected_citation_full() methods. This means all ResourceCitation objects now expose the same API.

The one thing that'd be nice is if we used an object for metadata instead of a dict

OK, in this update cite.metadata is a dataclass with defined fields. groups still has to be a dict because we don't know what groups might come back from the regex.

Awesome. No blockers from me. Merging.


release automation

auto mate create release page.
auto mate create issue in helm, operator and kepler to bump CI version.

dep-bot will help us make it.


Should source-build build ILRewrite?

Source-build currently doesn't build ILRewrite code, but a targets file in Arcade tries to use it without knowing the code isn't available, so we had to patch this out.  What is ILRewrite and should we build it?
See also discussion at https://github.com/dotnet/source-build/pull/1727/files/746f9090bab3a1a6983d54ae1ef73c5b71d508d5#diff-28993e60d03feb55482484005897b1e5.

[Triage] This isn't impacting the build from a source-build requirements perspective.  Closing as obsolete.


Cannot convert value of type 'Entity.Type' to expected argument type '[ElementRepresentable]'

Backing up and starting mostly over led me here...
EntityListSectionedTableVC [no loner REALLY a TavleViewController I guess] will sit beside and act as a selector for EntityDetailSectionedTableVC. I had that much working fine with JUST the default tableViews. Editing textFields in EntityDetailSectionedTableVC started retain cycle nightmares.
No Stroyboard. So no clear example found to indicate what I might be missing. .fromClass is as much as I have found to address it specifically. Guessing the HOW-TO section is missing some details or steps for the Storyboard free since going Storyboardless means handling a few things that normally just work? Or maybe something about the struct is causing problems? Any insights would be most appreciated. Thnx
//  EntityListSectionedTableVC.swift
import UIKit
import GRDB
import OwlKit

class EntityListSectionedTableVC: UIViewController { //, UISearchBarDelegate, UISearchResultsUpdating

    private var entityListDirector: TableDirector?
    private var EntityObserver: TransactionObserver?

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
            // Start observing the database
        loadFromDB()
        }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
                // Stop observing the database
        EntityObserver = nil
        }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
        }

    override func viewDidLoad() {
        super.viewDidLoad()
        let EntityListViewAdapter = TableCellAdapter<Entity, EntityListViewCell>()
            // instead of load cell from storyboard it will be loaded by
            // reading the root view inside the xib with the same name of the class
        EntityListViewAdapter.reusableViewLoadSource = .fromClass
            // optionally you can also set a custom id
        EntityListViewAdapter.reusableViewIdentifier = "EntityListViewCell"
            // configure...
        EntityListViewAdapter.events.dequeue = { ctx in
            ctx.cell?.entity = ctx.element
            }
        entityListDirector?.registerCellAdapter(EntityListViewAdapter)
        entityListDirector?.rowHeight = .explicit(44.0)

    //        Cannot convert value of type 'Entity.Type' to expected argument type '[ElementRepresentable]'
    //        let newTableSection = TableSection(id: "sectionId", elements: Entity, header: "\(Entity.count) Entities", footer: nil)
        }

    func loadFromDB() {
        EntityObserver = TableChangeObserver()
        EntityObserver?.observes(eventsOfKind: .delete(tableName: "Entity"))
        EntityObserver?.observes(eventsOfKind: .insert(tableName: "Entity"))
        var namesInTable = [Entity]()
        do{
            try dbQueue.write { db in
                  // adding an observer fires 2 delegate methods
                    // 1st - databaseWillCommit() throws .........
                    // 2nd - databaseDidCommit(_ db: Database) ...
                db.add(transactionObserver: EntityObserver!, extent: .observerLifetime)
                db.afterNextTransactionCommit { _ in
                    print("db.afterNextTransactionCommit")
                    do {
                        try namesInTable = Entity.fetchAll(db, sql: "SELECT * FROM Entity")
                        } catch {
                            print("ERROR ---------- db.afterNextTransactionCommit -> try Entity.fetchOne(db, sql: 'SELECT * FROM Entity')")
                            }
                        }
                    }
                } catch {
                    print("ERROR ---------- try Entity.fetchOne(db, sql: 'SELECT * FROM Entity')")
                    }
        print(" ---\tnamesInTable\t\(namesInTable)")
        }
}

//  Entity.swift
import GRDB
import OwlKit

struct Entity {
    // Prefer Int64 for auto-incremented database ids
    var id: Int64?
    var noteID: Int64?
    var contactID: Int64?
    var entityType: Int64?
    var name: String
    var created: Double
    var modified: Double
    }

// MARK: - Persistence
// Turn Entity into a Codable Record.
// See https://github.com/groue/GRDB.swift/blob/master/README.md#records
extension Entity:  Codable, FetchableRecord, PersistableRecord, MutablePersistableRecord {
    private enum Columns {
        static let id = Column(CodingKeys.id)
        static let noteID = Column(CodingKeys.noteID)
        static let contactID = Column(CodingKeys.contactID)
        static let entityType = Column(CodingKeys.entityType)
        static let name = Column(CodingKeys.name)
        static let created = Column(CodingKeys.created)
        static let modified = Column(CodingKeys.modified)
        }

    // Update a Entity id after it has been inserted in the database.
    mutating func didInsert(with rowID: Int64, for column: String?) {
        id = rowID
        }
}

/// https://github.com/malcommac/Owl#3.1
extension Entity: Equatable, ElementRepresentable { //ElementRepresentable
    var differenceIdentifier: String {
        return "\(self.name)_\(String(describing: self.id))"
        }

    func isContentEqual(to other: Differentiable) -> Bool {
        guard let other = other as? Entity else { return false }
        return other == self
        }

    func ==(lhs: Entity, rhs: Entity) -> Bool {
          // add more compare para,eters if && when needed...id should suffice
        return lhs.id == rhs.id
        }
}

//  EntityListViewCell.swift
import GRDB
import OwlKit

/// https://github.com/malcommac/Owl#3.2
public class EntityListViewCell: UITableViewCell { // ElementRepresentable
    public var differenceIdentifier: String {
        return "EntityListViewCell"
        }

    // Define a property you set on adapter's dequeue event
    var entity: Entity? {
        didSet {
           // setup your UI according with instance data
            }
        }
}

just noticed that the variable used in the how-to was explicitly defined above as []. making  a corresponding change had no effect on the error msg


Workspaces are now handled properly for scrolling when there are no rules defined for them.

If no rules were defined at all for workspaces then scrolling would break. Scrolling now works appropriately when no rules are defined.
closes #110

Scrolling of workspace stops on the other monitor at the workspace which has a window.
To Reproduce
no workspace rules enabled
Monitor specific - off

@Shubham-550 This is because hyprland automatically moves your cursor to the workspace that you switch to, which causes you to lose focus of the HyprPanel workspace module.
This isn't something HyprPanel can control and would have to be configured in the hyprland.conf if a settings exists.


Redo "Not convinced?" title card

Melissa wants us (copy) to update the text to better reflect the name of the actual section in the content. We will need to develop a call-for-action for the button.
CC remarks that the links on the right of the card point to things that are not in that section. We want to fix this.

Steven and I decided towards these changes that can be enacted in the backend.
Title: Objections and responses
Subtitle: Explore the debate
Three articles to link to on the right of the card
https://docs.google.com/document/d/1HEeYOirhg9i6gDlAOplqOf2Cg9Mnz-9xnG38qzOv4pU/edit
https://docs.google.com/document/d/1PgBB2qNJeCfIshzY7cxygswMHsPPGddlOmk6DQXN8wE/edit
https://docs.google.com/document/d/1sQUSq0uCGRLr-DQHLmXSAfCECPFQxObr_LGBfeSigNE/edit

Looks good!


Support hybrid madatory free + aid grade (USA grade only for now)

Grades for aid routes in Yosemite are usually expressed in the form: <mandatory free grade> + <A or C aid grade>

The Nose: 5.9 C1

To do

[ ] Support A and C aid grade
[ ] Support Hybrid format: free + aid

Related: https://github.com/OpenBeta/openbeta-graphql/issues/233

A general solution to this would allow for grading other routes that involve multiple disciplines.  For example, alpine routes that require both ice and rock climbing.


Releases break the website until cdnjs updates

When performing a release, the website is built, linking to the new version, and the package published to npm. All good.
However, it takes a while for updates to reach cdnjs, the docs quote ~12hrs
https://github.com/cdnjs/cdnjs/blob/master/documents/autoupdate.md

What do we use cdnjs for? If it's just the quick start stuff, would a comment along those lines suffice?

Implication being if it's anything else we shouldn't be using cdnjs...

CDNJS is used by the quick start and codepen. My plan is to resolve this by hosting our latest distribution builds on GitHub pages, using these for quick start and codepen, but also have a comment that points people at the cdn:
https://cdnjs.com/libraries/d3fc

As of #906 we no longer directly reference the cdnjs hosted versions.

Another alternative, should we ever need it, is https://npmcdn.com/#/ - which updates more quickly than cdnjs.


Closing main window will close entire application instead of minimize to tray at first run after updating PowerToys

Microsoft PowerToys version
0.62.1
Running as admin

[X] Yes

Area(s) with issue?
General
Steps to reproduce
Description: PowerToys will automatically open main window and changelog after each update, but if user choose to close the main window at this moment, the whole app will exit entirely ( icon disappear from system tray, along with all PowerToys function stop working such as PowerToys Run ) instead of minimizing to tray.
This issue only happens on first run after version update, it won't happen again after re-launching PowerToys manually.
Ways to produce:

Install an old version, such as v0.62.0
Use built-in update function to finish update progress until seeing changelog and main window popup
Close both window and see the described error.

✔ Expected Behavior
PowerToys should remain running in the background and can be access from system tray ( so-called "minimized to tray" )
❌ Actual Behavior
PowerToys exits entirely, making all PowerToys-related function stop working.
Other Software
No response

(Yup, this is getting annoying, after each update...)

Not able to repro this, going to close. Let us know if you see this again!


Try to optimize property.GetCustomAttributes

Check if it is a bottleneck (I think, it is a very hot method especially after adding custom drawers to v0.3.0).
If it is, add any king of caching like Dictionary<propertyPath, Attribute[]> or something else.

Every found FieldInfo is stored in static cache.
Done with #20.


electric-pair and smartparens break copilot-completion-map

Hi. I have been having an issue where when I type '(' and the closing ')' is automatically inserted after point, the copilot-completion-map no longer becomes active. However, this issue does not seem to always occur with electric-pair, whereas with smartparens, it occurs much more reliably and goes away when I remove the smartparens post-self-insert-hook.

I can confirm that I have the same issue.
To help with some debugging:

Completions work fine if there are no trailing closing parenthesis (both with and without smartparens-mode)
impl error::Error for StepError {
    fn <TAB>
}

Completion fails if I have just inserted an opening parenthesis:
impl error::Error for StepError {
    fn source(<TAB>
}

Instead of accepting the completion, <TAB> ends up inserting additional closing parenthesis with the result becoming:
impl error::Error for StepError {
    fn source()))
}

Note that with the above, it only works when I have a 'pending' closing parenthesis (not sure how smartparens-mode calls that internally). So for example, if the code was already fn source() and I place my cursor in the middle of () and try and get a code completion, I am able to access the completion fine.

I am so glad I stumbled upon this open issue!
This was the source of my troubles with Copilot not working while inside parentheses (and other pairs of symbols that smartparens-mode helped automate like {}, [], '', "", and ``.
I'm using Doom Emacs, and I have below, a first draft suggestion for revising the Doom Emacs example config in the README for this repo.
;; accept completion from copilot and fallback to company
(use-package! copilot
  :hook (prog-mode . copilot-mode)
  :bind (("C-TAB" . 'copilot-accept-completion-by-word)
         ("C-<tab>" . 'copilot-accept-completion-by-word)
         :map copilot-completion-map
         ("<tab>" . 'copilot-accept-completion)
         ("TAB" . 'copilot-accept-completion))
  :config
  ;; Upon entering copilot mode, disable smartparens-mode as it is incompatible
  (add-hook 'copilot-mode-hook #'turn-off-smartparens-mode))

I don't have electric-pair installed, and I haven't looked up what the function call would be to turn that off, but that could go after the :config line as well.
I'd feel inclined to submit a pull request to update the README to include changes like these, but I'm such a novice at Emacs configs in general that I feel like I'd want a second opinion if flat out disabling smartparens-mode during copilot-mode is the best idea or not. I also don't know what would happen, with the config in my code block above, if you would leave copilot-mode. Would it automatically revert any changes that were made on the 'copilot-mode-hook? Or would I have to write a separate hook of some sort to re-enable smartparens-mode after leaving copilot-mode?

I doubt that disabling smartparens-mode entirely is the best way forward. I have created an issue over in the smartparens repo to see if they have suggestions: Fuco1/smartparens#1145

@JP-Ellis @LemonBreezes I changed the priority of copilot's overlay. Could you verify the fix?

@JP-Ellis @LemonBreezes I changed the priority of copilot's overlay. Could you verify the fix?

I believe it is fixed for me now with smartparens. I've removed the special mapping for sp-pair-overlay-keymap in my config.el file, restarted Emacs, and did my usual tests for copilot/smarparens compatibility by typing (ma and then , and it worked. It accepted the copilot suggestion rather than inserting an indentation.
Disclaimer: I'm still learning how package management works in Doom Emacs, so I'm not 100% which commit that I currently have installed, but I don't have it pinned and I've ran doom sync so I assume I have the latest commit.

@zerolfx I can confirm this has fixed it. Much better fix than additional keybindings in the key map 👍


Prevent auto-closing feature from auto closing if the character next to the caret is a space or an end of line.

Everything is in the title.
There is this annoying behavior, the auto-closing feature will auto-close parenthesis, brackets, etc... on code reformation.

But in the latter you usually do not want it.
One basic example is when you want to enclose a chunk of code into brackets.
You go back before what is to be enclosed and then you start typing your function and then this happens :
console.log()myvariable

Everyone who uses vim know that this is seriously counter-productive. It looks like it's nothing, but any good programmers also know that it's the little details prevented from being repeated over and over that makes the biggest time savings and give you overall satisfaction about your code.

Can you share a gif? Thanks!

You mean "Prevent auto-closing feature from auto closing unless the character next to the caret is a space or an end of line. ", right?

You mean "Prevent auto-closing feature from auto closing unless the character next to the caret is a space or an end of line. ", right?
Thanks for the gifs btw!

Sorry so much trouble just to realize this option was already implemented (beforeWhiteSpace).


ciao-launcher: Fix hard-reset, a race condition and some logs

This PR fixes a number of small issues with launcher.

There was a nasty race condition when deleting VNICs of instances.
Hard-reset was not cleaning all the files and directories created launcher.
There were a few little issues with logs scatter throughout the code.

Coverage increased (+0.03%) to 65.18% when pulling 4f234524af1bb86bf1d0177c37d2c4e911db5293 on markdryan:launcher-cleanup into 119ab58b1f7e2ee137d8f4c7e160001dd7731baf on ciao-project:master.


Feat add id to eml strategy

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 96.30%. Comparing base (0765e08) to head (1fc4d74).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@               Coverage Diff               @@
##           development     #207      +/-   ##
===============================================
+ Coverage        96.27%   96.30%   +0.03%
===============================================
  Files                5        5
  Lines              483      487       +4
===============================================
+ Hits               465      469       +4
  Misses              18       18

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


This is cool, but what's the point?

Why not just exec and hit the pfctl executable? I'm curious about this project, but i don't understand the use-case!
Hope you can explain?

Hi @banister,
There are many benefits of using programmatic interfaces vs. command line tools in the context of building applications. Please ask on StackOverflow as it's a more suitable place for general programming questions.
Cheers,
Andrej


"Missing en translation" problem

URL
No response
How to reproduce the issue?

As far I found this issue when closing a changeset in: a. Vercelli, Piedmont, Italy b. Riga, Vidzeme, Latvia

Community contacts are not displayed correctly (see screenshot).
Screenshot(s) or anything else?

Which iD Editor versions do you see the issue on?
Released version at openstreetmap.org/edit
Which browsers are you seeing this problem on?
Chrome

Same for spanish. It looks like a locale browser problem

@tyrasd @matkoniecz seems like a duplicate of your comment
https://github.com/openstreetmap/iD/issues/8610#issuecomment-944571829


Updated instructions for 'additionalFiles' usage and typo fix

issue: #95

Thank you. I've merged this with some little updated information. :beers:


How to infer biological meaning from sub-clusters seen on UMAP ?

Is there a metric I can use to prove similarity/differences between sub-clusters on a UMAP plot ? For example, is there a way to prove that cells in cluster 1 are/are not biologically similar to cells in cluster 2 ? Or another thing I would like to know is how similar/different is cluster 1 to all other clusters in this data-set and I wanted to know what metric (some sort of distance metric?) can help prove this ?
Also, if I see 5 sub-clusters of cells for a set of samples, is it okay to interpret this as 5 biologically different populations or is that reading too much into the clustering output ?
Thank you.

Hi,
Your question is actually quite difficult to answer. It depends on how you define cell identity. For example, depending on how you set the resolution parameter for your clustering you can get a very different number of clusters. As clusters often have super- and sub-structure, you cannot easily say when a sub- or superstructure is not meaningful (e.g., T-cells vs CD4+ and CD8+ T-cells). Unfortunately many clustering techniques do not incorporate an assessment of uncertainty to tell you when you are fitting noise. And even when they do, this is based on a model of what a cell cluster should look like, which does not have to conform to the biological reality. The heuristic that tends to be used is that if you can biologically interpret your clusters based on marker genes and other signatures, then they are meaningful. That does however not mean that sub- or superstructures involving these clusters are not also meaningful. Sorry, I can't give a clearer answer than that.
In terms of assessing differences between clusters, this is a somewhat related problem. An approach that you could use is to look at the distribution of Euclidean distances in gene- or PCA-space. However, that comes with the caveat that Euclidean distance does not take into account the biological manifold on which the cells lie (and on which distances will be more informative). You can try to use pseudotime as a measure for distance over this manifold, however that would require you to have sampled enough of the manifold to fit it in your data.

@LuckyMD Thanks for your detailed reply. I will try some of the approaches mentioned in the 2nd paragraph and see if that helps us answer our question.
Thanks.


linux VM doesn't accept password entered by pyautogui

OK, this is a weird one. I have no idea what to search for, as I have tried multiple terms. I even tried ai.
I have an app called UTM on macOS. This is a wrapper for QEMU. One of the virtual machines I run requires a password. I like to keep all of my passwords inside a password manager. I used to use KeepassXC (which can successfully type the password by the way). I have switched to Vaultwarden, so I am forced to write my own autotype utility. I started with pynput and now I am using pyautogui. I really prefer pyautogui, so I would like to keep using it.
When I type passwords into native macOS applications it works great, no complaints. When I try to type a password into a VM running in UTM, it will say invalid password. I have set the field to show and had pyautogui type the password. It looks perfect visually. I would say it typed it perfectly, but the Linux guest does not accept the password.
macOS version: 14.3.1
Python version: 3.11.7
Guest OS: Whonix 17 (haven't tested any other VMs though)
I am using write like so pyautogui.write(entry['login']['password'], KEYPRESS_DELAY) and KEYPRESS_DELAY has been 50/1000 and 100/1000. I do not know how to troubleshoot this further. I guess there could be invisible characters being typed into the password field, but I don't know how to find out.
Has anyone else had this problem? What can I do to troubleshoot further?
Thanks all.

encoding of the password being typed by pyautogui matches the expected encoding within the VM


Owner group of ~/OrbStack is not the staff, but group 501 (which may not belong to OrbStack)

Describe the bug
The owner group of ~/OrbStack is 501, not staff, and group 501 may not properly belong to OrbStack. On my system (where I have MacPorts installed):
$ ls -lh ~ | grep OrbStack
drwxr-xr-x    4 austin  macports   160B 29 Jun 22:45 OrbStack
$ dscacheutil -q group -a name macports
name: macports
password: *
gid: 501

To Reproduce
Steps to reproduce the behavior:

orbctl reset
orbctl stop
sudo rm -rf ~/OrbStack # just in case
orbctl start
ls -lh ~ | grep OrbStack

Expected behavior
Unclear, but this is an unexpected result.
Logs
n/a
Info report
OrbStack info:
  Version: 0.13.0 (130000)
  Commit: ba57f21d6c60d45e0469196f4a67c79ec9911eea (v0.13.0)

System info:
  macOS: 13.4.1 (22F82)
  CPU: arm64, 10 cores
  CPU model: Apple M1 Max

Fixed for the next version.

Fix released in v0.14.0. Sorry, this release was in testing for much longer than expected and bug fixes also got held up.


Always-opened tooltip ?

I'm submitting a...

[ ] bug
[x] feature
[ ] chore

I'd like to display "events" on the graph which would be represented as always-opened tooltips containing some text.
For example, given a scatter plot, I'd like the tooltip of each point to be always opened.
I can't seem to find anything close to this behaviour. Is it possible? If not, would it be hard to implement? I may work on this depending on your answers.
Thanks

Yeah you can do it with the Annotate Component and either Label Annotation or Svg Annotation.
Something like:
const labelProps = {
  text: "Hi",
};
<Annotate with={LabelAnnotation} usingProps={labelProps} when={(d) => d.example === 1} />

I'll see if I can find some time to add a proper example to storybook, but this is the gist.

Yeah you can do it with the Annotate Component and either Label Annotation or Svg Annotation.
Something like:
const labelProps = {
  text: "Hi",
};
<Annotate with={LabelAnnotation} usingProps={labelProps} when={(d) => d.example === 1} />

I'll see if I can find some time to add a proper example to storybook, but this is the gist.

This looks like exactly what I am looking for, however I doesn't seem to work for me.
Below is an example code. The components renders a blank canvas. Am I doing something wrong? I am using v1.0.0-alpha.16.
const MyChart = ({ width, height, ratio }) => {
  const prices = [{
    date: new Date(),
    example: 1,
  }];

  const xScaleProvider = discontinuousTimeScaleProviderBuilder().inputDateAccessor(data => data.date);
  const { data, xScale, xAccessor, displayXAccessor } = xScaleProvider(prices);

  return (
    <ChartCanvas
      seriesName='Prices'
      data={data}
      xScale={xScale}
      xAccessor={xAccessor}
      displayXAccessor={displayXAccessor}
      width={width}
      height={height}
      ratio={ratio}
    >
      <Chart id={1} yExtents={[0, 100]}>
        <Annotate with={LabelAnnotation} usingProps={{ text: 'Hi' }} when={(d) => d.example === 1} />
      </Chart>
    </ChartCanvas>
  );
}

export default withSize({ style: { minHeight: 600 } })(withDeviceRatio()(MyChart));

This looks like exactly what I am looking for, however I doesn't seem to work for me.
Below is an example code. The components renders a blank canvas. Am I doing something wrong? I am using v1.0.0-alpha.16.
const MyChart = ({ width, height, ratio }) => {
  const prices = [{
    date: new Date(),
    example: 1,
  }];

  const xScaleProvider = discontinuousTimeScaleProviderBuilder().inputDateAccessor(data => data.date);
  const { data, xScale, xAccessor, displayXAccessor } = xScaleProvider(prices);

  return (
    <ChartCanvas
      seriesName='Prices'
      data={data}
      xScale={xScale}
      xAccessor={xAccessor}
      displayXAccessor={displayXAccessor}
      width={width}
      height={height}
      ratio={ratio}
    >
      <Chart id={1} yExtents={[0, 100]}>
        <Annotate with={LabelAnnotation} usingProps={{ text: 'Hi' }} when={(d) => d.example === 1} />
      </Chart>
    </ChartCanvas>
  );
}

export default withSize({ style: { minHeight: 600 } })(withDeviceRatio()(MyChart));

Added a working example, I missed 1 prop the y axis location:
const prices = [{
    date: new Date(),
    example: 1,
    y: 0,
  }];

Added a working example, I missed 1 prop the y axis location:
const prices = [{
    date: new Date(),
    example: 1,
    y: 0,
  }];

This is exactly what I needed. Thanks for your support. Closing this rn :)

This is exactly what I needed. Thanks for your support. Closing this rn :)


Assets sorting issues

In the new version of R.swift - 5.3.0 I've observed issues with asset sorting. Every time once I rebuild a project the R.generated file is being changed a little bit. The sorting of generated images is being randomized in R.generated file. This causing issues once we are working in a larger team because the file for each team member is a little bit different even if the resources are the same. That was working fine in previous versions

Thanks for your comment.
My first guess would be that this is due to stdlib now using a random hash value. But I'm not sure which Swift version this was introduced, or if that's even relevant here.
In any case, R.swift shouldn't rely on default ordering, and we should always generate code in a stable (alphabetical) order.
I'll see if I can find the time to figure out where in the generator the sorting is missing. If someone figures it out before me, feel free to send a PR!

@tomlokhorst Just put in a PR for a fix (I believe). A recent change added a custom comparison, but that comparison only compares the left-hand-side to itself due to a typo.

This should now be fixed in release 5.3.1 (Thanks to @zac)
If you have further issues related to this, feel free to comment here.


Event for ability updates

e.g. dimming disabled -> enabled

seems fair, I'll put it on the roadmap

Added in commit 2a353d35a74f96fc33b13530b1e243b97a52e15d


Profile codebase and reduce memory hogging

Observed behaviour
Memory is allocated and not freed, since per https://github.com/googlefonts/fontbakery/issues/1609#issuecomment-335630171 when fontbakery checker progresses in the batch of 2400 TTF files in GF, human perception can see checks running slower and slower
Expected behaviour
We should be freeing up memory as we go
We should be running a code profiler before every release to make sure that we don't increase the memory requirements unexpectedly.
Resources and exact process needed to replicate
https://zapier.com/engineering/profiling-python-boss/
https://github.com/rkern/line_profiler
etc

Well, at the moment we have clearly defined memory leaks, they are called caches ;-)

We should be freeing up memory as we go

see also:

There are only two hard things in Computer Science: cache invalidation and naming things.
-- Phil Karlton

(via)

(transfered from https://github.com/googlefonts/fontbakery/issues/1609#issuecomment-335632139)

It seems to me that we should be freeing up memory as we go.

Yeah, that's clearly due to the caching of the @conditions I guess we'll have to be smart here, because not caching the ttx-objects will free ram but cause more i/o and fonttools parsing.
pytest has @fixture which is very much in concept as our @condition, they can specify a scope in which a fixture is kept alive.
But maybe something simpler will do, like a general dont-cache flag on the CLI. This should be another issue.

... I can notice that the tests run slower and slower

Is it because of swapping?

Is it because of swapping?

May be. I am not sure, but that theory makes sense.

LOL very good :)
We should add a note that this is a known limitation / tradeoff from the caching we made, to the README, then :)

But it is not a matter of just documenting the caching behaviour. We should also try to reduce excessive caching that makes the program die or become sluggish.

We should also try to reduce excessive caching that makes the program die or become sluggish.

Sure we need to do something; but it's not easy. E.g. as the caching behavior is now it's totally fine to test one font-family because the RAM of all our computers is easily big enough. It's the fastest thing we can do, we have many reads on the same, cached ttfont objects. But In a case where we run one test for a big amount of fonts, i.e. the whole collection, the cache could basically be turned off, without any speed issues, as a ttfont is needed only once in the lifetime of the full test run and the memory problem would vanish.
So, our real world example shows us that caching is dependent on the actual use case. We may need to introduce different modes for caching that can be chosen from on a use case base.

Eg, the runner runner can pass an argument to moderate or disable the
runner's caching?
On Oct 11, 2017 8:28 AM, "Lasse Fister"<EMAIL_ADDRESS>wrote:

We should also try to reduce excessive caching that makes the program die
or become sluggish.
Sure we need to do something; but it's not easy. E.g. as the caching
behavior is now it's totally fine to test one font-family because the RAM
of all our computers is easily big enough. It's the fastest thing we can
do, we have many reads on the same, cached ttfont objects. But In a case
where we run one test for a big amount of fonts, i.e. the whole collection,
the cache could basically be turned off, without any speed issues, as a
ttfont is needed only once in the lifetime of the full test run and the
memory problem would vanish.
So, our real world example shows us that caching is dependent on the
actual use case. We may need to introduce different modes for caching that
can be chosen from on a use case base.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/googlefonts/fontbakery/issues/1610#issuecomment-335793293,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAP9y4tw9hJx05Rl05Sxi3vAOB-sLkfKks5srLR-gaJpZM4P0sN2
.

Eg, the runner runner can pass an argument to moderate or disable the runner's caching?

Yeah, I'd go with an CLI argument first. We could try to infer a strategy from the test execution order, which we calculate before running the tests, but that's maybe overkill just now. But in short: we can know which caches are going to be used in the future of a test run and which are no longer interesting. Thus we could prune caches as soon as they are obsolete. This would be pretty smart, but still no solution for a case where all ttFonts are used at once. see the following.
I toyed a bit with this, turns out: com.google.fonts/test/040 is a very interesting case with many issues when it comes to testing the whole collection.
https://github.com/googlefonts/fontbakery/blob/f96d45e1b009583d23bfa1aeb4e7c54bdada85ee/Lib/fontbakery/specifications/googlefonts.py#L1395-L1426

Bad thing is, it makes no sense to run it for the whole collection ("Checking OS/2 usWinAscent & usWinDescent"), so this is purely to gather a better understanding and to find bugs.
It reliably fills up the memory if run for the whole collection. vmetrics looks at all of the fonts at once. If we turn off caching for ttFont and vmetrics the execution time really gets worse because we still read all fonts once per test (and get_bounding_boxin vmetrics seems to be expensive too; though since fonttools is reading lazily, this is hard to measure).
The point is, that re-running  vmetrics for each test is worse than caching its result once in the whole collection case, caching vmetrics and not caching ttFont seems best for the whole collection scenario. ttFont is heavy on the memory, but vmetrics is heavy on the complexity (O(n) vs. O(n²) if not cached). Turning of caching completely will make this very slow.
Turning off caching for ttFont and keepng it on for vmetrics hits the sweet spot here for this test (since 8ce7663): memory stays low, exec time the same

Thus, maybe the CLI argument can turn off caching for specific conditions, and that way make difficult test runs at least possible.
Now the good part:
Investigating this, I figured out that we had many cache misses for vmetrics (had a new cache-key for each font, but was not using the current font) which made this test very slow for large sets of fonts and used a bit more memory. I addressed this in f8bef08 of #1612 This should speed up the overall normal test runs a bit as well.
In 8ce7663 I made "derived iterables" into generators, which is a precondition to make an effective CLI control

Hmm. It says
for ttFont in ttFonts:

So, when the root input to the runner is the collection-wide set of ttFonts, then this not intended; the vmetrics for loop's ttFonts list should be scoped to the superfamily, since its the superfamily that we want to have the same v metrics - such that swapping between families (eg Alegreya, Alegreya SC, Alegreya Sans, and Alegreya Sans SC), and between weights within any of those, doesn't change any line heights visually.

ttFonts in the vmetrics conditions is meant to be "all font files in a given family", so that the overall vertical metrics of the whole family is computed.

yeah, super-family

This discussion is #1610 please talk about caching here and about the other thing there ;-)

So, when the root input to the runner is the collection-wide set of ttFonts, then this not intended;

Right, but "collection-wide set of ttFonts" was not intended in the first place, because fontbakery was about testing a family at a time :-) this so #1609 but I can't let this slip uncommented. We are re-defining the scope of fontbakery, I hope you guys understand this.

We are re-defining the scope of fontbakery, I hope you guys understand this.

This scope was defined a long time ago:
https://github.com/googlefonts/fontbakery/blob/master/BRIEF.md#31-check-the-entire-collection

OK, but it was never implemented. I'm talking about the implementation and actual changes to it.

Mmm. Is everything from https://github.com/googlefonts/fontbakery/blob/master/BRIEF.md#2-onboarding-new-and-updated-families now working?

2.5 seems missing, the rest is, if 2.3 is ignored (which we chose to I think)

We do have a few fontbakery checks actually performing regression testing (2.5), but not by comparing TTXs. Instead the test fetches production font files from GFonts and compare them to the local ones.

Should the caching of that stuff be improved?

I suppose to clear the cache between families you'd need to 1. replace the iterargs etc. of a spec after each family run 2. reset the cache. Maybe doable from the CheckRunner? Family splitting can be done with something like https://github.com/googlefonts/fontbakery/issues/1904#issuecomment-395419260 adapted to OT. Or maybe you need to rip iterargs etc. from Spec and generate iterargs etc. in CheckRunner and pass them into any function that needs it.

Note: https://github.com/bloomberg/memray may help with identifying memory hogs. Sometimes, it's things we don't suspect.


Add rudimentary support for nested variables

Hi @chrisburr, if I may, I would suggest adding a usage example in the README file, as it seems interesting and useful enough. Thanks a lot.


Add CreateGroup attribute for TeamSiteNoGroup site collection

To create a STS#3 site and then groupify it.

Thanks for your feedback. Will take care of that in the future.