Migrate the METexpress documentation from Word to Sphinx

Describe the Task
Migrate the METexpress documentation from Word to Sphinx
Time Estimate
Estimate the amount of work required here.
Issues should represent approximately 1 to 3 days of work.
To be determined
Sub-Issues
Consider breaking the task down into sub-issues.

[x] Set up environment for Lisa to get started.
[x] Create gh-pages branch
[x] Create docs subdirectory
[ ] Populate the pages
[ ] Publish using gh-pages.

Relevant Deadlines
Funding Source
Define the Metadata
Assignee

[ ] Select engineer(s) or no engineer required
[ ] Select scientist(s) or no scientist required

Labels

[x] Select component(s)
[ ] Select priority
[ ] Select requestor(s)

Projects and Milestone

[ ] Review projects and select relevant Repository and Organization ones
[ ] Select milestone

Define Related Issue(s)
Consider the impact to the other METplus components.

[x] METplus, MET, METdb, METviewer, METexpress, METcalcpy, METplotpy

Task Checklist
See the METplus Workflow for details.

[x] Complete the issue definition above.
[x] Fork this repository or create a branch of development.
Branch name: feature_<Issue Number>_<Description>
[ ] Complete the task and verify your changes.
[ ] Add/update unit tests.
[ ] Add/update documentation.
[ ] Push local changes to GitHub.
[ ] Submit a pull request to merge into development, listing the <Issue Number> in the title.
[ ] Iterate until the reviewer(s) accept and merge your changes.
[ ] Delete your fork or branch.
[ ] Close this issue.

Notes from September 30th meeting:
https://docs.google.com/document/d/1Z-rqufL_dbXTHHgNJX48pfdcuxcO2MbLeZXvE4B6qH0/edit
Per the meeting on September 30, Randy will review the front page (https://ral.ucar.edu/staff/jpresto/work/METexpress_jpresto/index.html) and will add content for MATS.
Per the meeting on September 30, Bonny will:

Review the Acknowledgements section (https://ral.ucar.edu/staff/jpresto/work/METexpress_jpresto/Users_Guide/index.html) and will decide what to put there.  She can review the MET (https://dtcenter.github.io/METplus/Users_Guide/index.html) and METplus (https://dtcenter.github.io/MET/Users_Guide/index.html#) acknowledgements as a guide.
Will check with Jason Levit regarding: Appendix A - ok to include EMC url?

Per the meeting on September 30, Lisa will:

Implement the main content of the documentation once the Final User's Guide is received in .docx format (received) and will:
Change to 2 levels instead of the 4 that MET has. (e.g. 2, 2.1, 2.1.1, etc.).
Change the Terms of Use to “2020, UCAR/NCAR, NOAA, CSU/CIRA, and CU/CIRES” across all the repos (MET, METplus, METviewer, METexpress).
Change the authors to Bonny Strong, Randy Pierce, and Molly B. Smith

Per the meeting on September 30, Julie will add information about community support to the forward using the MET (https://dtcenter.github.io/METplus/Users_Guide/index.html) and METplus (https://dtcenter.github.io/MET/Users_Guide/index.html#) Forward as a guide, but will use different language to best support the needs of METexpress.

Jason Levit has replied that it is ok to leave in the link to the AWS METexpress in Appendix 1.

I see this shows Milestone METexpress 4.0.0.  This version should be associated with METexpress 3.0.0

Citation: currently says "Strong, B., Pierce, R., Smith, M., Hagerty, V. ???, 2020: The METexpress Version 3.0.0 User’s Guide. Developmental Testbed Center. Available at: METexpress releases"
Please add Jeff Hamilton as the 5th author.
Also, the link for "releases" shows no releases yet.  There should be a METexpress release for 3.0.0, I believe, in github.  But perhaps this just isn't finished yet?

Thank you, Bonny.  When I created this issue, Milestone METexpress 4.0.0 was the only option available.  I just tried to create one, but I believe someone beat me to it.  I just changed the milestone.  Thanks!

I have updated the forward and also went ahead and updated the author information since it was in the same file.  I also updated the citation to include Jeff Hamilton as well.
And, Lisa, regarding:
Change the Terms of Use to “2020, UCAR/NCAR, NOAA, CSU/CIRA, and CU/CIRES” across all the repos (MET, METplus, METviewer, METexpress).
That is contained in the docs/conf.py files.  I already changed it for METexpress.  Below are the changes.  It was previously:
author = 'UCAR/NCAR, NOAA, and CSU/CIRA'
and is now:
author = 'UCAR/NCAR, NOAA, CSU/CIRA, and CU/CIRES'
This still needs to be changed in MET, METplus, and METviewer, as I did not fix those.

Update on documentation:

Lisa will add the Acknowledgement section that Bonny sent to me today.
Lisa will update some images in the document.
Lisa will do a loose comparison and then pass it over to Julie to look at for an obvious errors, then Julie will send an email to your group to review.
Julie will add files and modify conf.py to enable a version selector, so that different versions of the documentation can be viewed (e.g. v3.0.0, master, development, etc.)
Randy, have you had a chance to review the front page (https://ral.ucar.edu/staff/jpresto/work/METexpress_lisag/index.html)?  We had talked about you adding history that includes MATS.  You can either comment here and Lisa or I will add it, or you can modify the .rst file directly - whatever you are comfortable with.
The writing perspective does not seem to be consistent within the METexpress User’s Guide.  Sections 1 - 3 seem to be in third person ("one",), which is consistent with the other METplus components’ User’s Guides; Sections 4 and 5 seems to be in second person ("you"). Examples below.  Do we want to be consistent? If you would like Sections 4 and 5 modified to be in third person, Lisa would be happy to take on this task.

https://ral.ucar.edu/staff/jpresto/work/METexpress_lisag/Users_Guide/apps.html
Contour: Contour plots can be used in many ways. One can illustrate data with respect to height, as in plots seen at http://www.emc.ncep.noaa.gov/gmb/STATS_vsdb/, which have height on the y-axis and forecast hour (as in lead time) on the x-axis.
https://ral.ucar.edu/staff/jpresto/work/METexpress_lisag/Users_Guide/installation.html
Software: You must have docker, docker-compose, httpaswd, and jq installed. You should have a certificate installed in /etc/ssl/certs, although you can deploy a simple system on localhost without certificates for testing. A simple testing system can be deployed by answering yes to the question “Are you setting up a simple test environment?” in the configure program.

I am still reviewing. Sorry for the delay. I will try to conform to a third
person perspective. I think this problem came about because I originally
did it in readme.md files which tended to have the second person
perspective.
randy
On Wed, Oct 14, 2020 at 3:34 PM jprestop<EMAIL_ADDRESS>wrote:

Update on documentation:

Lisa will add the Acknowledgement section that Bonny sent to me
today.
Lisa will update some images in the document.
Lisa will do a loose comparison and then pass it over to Julie to
look at for an obvious errors, then Julie will send an email to your group
to review.
Julie will add files and modify conf.py to enable a version
selector, so that different versions of the documentation can be viewed
(e.g. v3.0.0, master, development, etc.)
Randy, have you had a chance to review the front page (
https://ral.ucar.edu/staff/jpresto/work/METexpress_lisag/index.html)?
We had talked about you adding history that includes MATS. You can either
comment here and Lisa or I will add it, or you can modify the .rst file
directly - whatever you are comfortable with.
The writing perspective does not seem to be consistent within the
METexpress User’s Guide. Sections 1 - 3 seem to be in third person
("one",), which is consistent with the other METplus components’ User’s
Guides; Sections 4 and 5 seems to be in second person ("you"). Examples
below. Do we want to be consistent? If you would like Sections 4 and 5
modified to be in third person, Lisa would be happy to take on this task.

https://ral.ucar.edu/staff/jpresto/work/METexpress_lisag/Users_Guide/apps.html
Contour: Contour plots can be used in many ways. One can illustrate
data with respect to height, as in plots seen at
http://www.emc.ncep.noaa.gov/gmb/STATS_vsdb/, which have height on the
y-axis and forecast hour (as in lead time) on the x-axis.
https://ral.ucar.edu/staff/jpresto/work/METexpress_lisag/Users_Guide/installation.html
Software: You must have docker, docker-compose, httpaswd, and jq
installed. You should have a certificate installed in /etc/ssl/certs,
although you can deploy a simple system on localhost without
certificates for testing. A simple testing system can be deployed by
answering yes to the question “Are you setting up a simple test
environment?” in the configure program.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/dtcenter/METexpress/issues/1#issuecomment-708672737,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGDVQPUYAU6XUB5NZ53LZSDSKYKPFANCNFSM4R6ESH7Q
.

--
Randy Pierce

Thanks, Randy!  No apology is necessary.  We've been kept plenty busy.  I just thought I'd follow up on it.  Regarding the third person perspective, will you be rewriting those sections? If so, do you plan to modify the .rst files directly in this branch or do you plan to send us updates?  If not, would you like Lisa to take on the task of getting those sections in third person perspective?

FYI, I noticed at
https://ral.ucar.edu/staff/jpresto/work/METexpress_lisag/Users_Guide/interface.html
that the figure number in the section below is wrong.  It should be Figure
2.1
2.1. Home Page
The METexpress home page is shown in Figure 2.2
https://ral.ucar.edu/staff/jpresto/work/METexpress_lisag/Users_Guide/interface.html#image003.
The home page has a button for each available app. Each app lets the user
create certain types of plots for a certain type of data. The user must
begin by selecting the app they want to use.
On Wed, Oct 14, 2020 at 3:34 PM jprestop<EMAIL_ADDRESS>wrote:

Update on documentation:

Lisa will add the Acknowledgement section that Bonny sent to me
today.
Lisa will update some images in the document.
Lisa will do a loose comparison and then pass it over to Julie to
look at for an obvious errors, then Julie will send an email to your group
to review.
Julie will add files and modify conf.py to enable a version
selector, so that different versions of the documentation can be viewed
(e.g. v3.0.0, master, development, etc.)
Randy, have you had a chance to review the front page (
https://ral.ucar.edu/staff/jpresto/work/METexpress_lisag/index.html)?
We had talked about you adding history that includes MATS. You can either
comment here and Lisa or I will add it, or you can modify the .rst file
directly - whatever you are comfortable with.
The writing perspective does not seem to be consistent within the
METexpress User’s Guide. Sections 1 - 3 seem to be in third person
("one",), which is consistent with the other METplus components’ User’s
Guides; Sections 4 and 5 seems to be in second person ("you"). Examples
below. Do we want to be consistent? If you would like Sections 4 and 5
modified to be in third person, Lisa would be happy to take on this task.

https://ral.ucar.edu/staff/jpresto/work/METexpress_lisag/Users_Guide/apps.html
Contour: Contour plots can be used in many ways. One can illustrate
data with respect to height, as in plots seen at
http://www.emc.ncep.noaa.gov/gmb/STATS_vsdb/, which have height on the
y-axis and forecast hour (as in lead time) on the x-axis.
https://ral.ucar.edu/staff/jpresto/work/METexpress_lisag/Users_Guide/installation.html
Software: You must have docker, docker-compose, httpaswd, and jq
installed. You should have a certificate installed in /etc/ssl/certs,
although you can deploy a simple system on localhost without
certificates for testing. A simple testing system can be deployed by
answering yes to the question “Are you setting up a simple test
environment?” in the configure program.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/dtcenter/METexpress/issues/1#issuecomment-708672737,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG6HZOQFNL2RKSYUX3FRSCLSKYKPFANCNFSM4R6ESH7Q
.

--
Bonny Strong
NOAA ESRL/GSL and CIRA
303 497-3936

I am modifying the rst file and I'll let you know when I finish.
thanks,
randy
On Wed, Oct 14, 2020 at 3:34 PM jprestop<EMAIL_ADDRESS>wrote:

Update on documentation:

Lisa will add the Acknowledgement section that Bonny sent to me
today.
Lisa will update some images in the document.
Lisa will do a loose comparison and then pass it over to Julie to
look at for an obvious errors, then Julie will send an email to your group
to review.
Julie will add files and modify conf.py to enable a version
selector, so that different versions of the documentation can be viewed
(e.g. v3.0.0, master, development, etc.)
Randy, have you had a chance to review the front page (
https://ral.ucar.edu/staff/jpresto/work/METexpress_lisag/index.html)?
We had talked about you adding history that includes MATS. You can either
comment here and Lisa or I will add it, or you can modify the .rst file
directly - whatever you are comfortable with.
The writing perspective does not seem to be consistent within the
METexpress User’s Guide. Sections 1 - 3 seem to be in third person
("one",), which is consistent with the other METplus components’ User’s
Guides; Sections 4 and 5 seems to be in second person ("you"). Examples
below. Do we want to be consistent? If you would like Sections 4 and 5
modified to be in third person, Lisa would be happy to take on this task.

https://ral.ucar.edu/staff/jpresto/work/METexpress_lisag/Users_Guide/apps.html
Contour: Contour plots can be used in many ways. One can illustrate
data with respect to height, as in plots seen at
http://www.emc.ncep.noaa.gov/gmb/STATS_vsdb/, which have height on the
y-axis and forecast hour (as in lead time) on the x-axis.
https://ral.ucar.edu/staff/jpresto/work/METexpress_lisag/Users_Guide/installation.html
Software: You must have docker, docker-compose, httpaswd, and jq
installed. You should have a certificate installed in /etc/ssl/certs,
although you can deploy a simple system on localhost without
certificates for testing. A simple testing system can be deployed by
answering yes to the question “Are you setting up a simple test
environment?” in the configure program.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/dtcenter/METexpress/issues/1#issuecomment-708672737,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGDVQPUYAU6XUB5NZ53LZSDSKYKPFANCNFSM4R6ESH7Q
.

--
Randy Pierce

Hi Randy and LIsa.
I just pushed some files up to this branch:
new file:   _static/pop_ver.js
new file:   _templates/footer.html
modified:   conf.py
modified:   index.rst

You should do a "git pull" to pull these changes into your local git repo before pushing your changes.  Please let me know if you have any questions or problems.  Thanks!

Lisa has finished transitioning the METexpress documentation into Sphinx.
I believe we still need to have Randy add information about MATS to the front page at docs/index.rst.  I believe we also still need to have Sections 4 and 5 rewritten in third person either by Randy or Lisa, if desired.  Lisa is happy to work on it if you’d like, we just need to let her know if that is what you all would like.  Can someone please follow up on how to proceed?
You can view the document here:
https://ral.ucar.edu/staff/jpresto/work/METexpress_jpresto/index.html
We can submit a pull request now and you can make suggestions for changes in the pull request, or you can review the documentation at the link above, suggest changes, and we can make changes now and submit a pull request after.  Which do you prefer?

@jprestop ready for you to make public


wdt reset

Hello!!
My program is getting into exception (WDT) , exception decoder give me this:
Decoding stack results
0x40247814: verify_SKE_sig at src/ssl/ssl_hs_client.c line 246
0x40247864: br_ssl_hs_client_init_main at /home/earle/src/esp-quick-toolchain/arduino/tools/xtensa-lx106-elf/xtensa-lx106-elf/include/sys/pgmspace.h line 108
0x40246e52: br_ssl_engine_hs_reset at src/ssl/ssl_engine.c line 1312
0x402367a9: __ssvfscanf_r at /workdir/repo/newlib/newlib/libc/stdio/nano-vfscanf.c line 332
This is the code:
After some executions ( about six times ) , the ESP gets into exception..
void update_firebase_last(){
if (Firebase.ready() && signupOK){
  Firebase.RTDB.setInt(&fbdo, path + "last/" + "V1N", V1N);
  Firebase.RTDB.setInt(&fbdo, path + "last/" + "V2N", V2N);
  Firebase.RTDB.setInt(&fbdo, path + "last/" + "V3N", V3N);
  Firebase.RTDB.setInt(&fbdo, path + "last/" + "V12", V12);
  Firebase.RTDB.setInt(&fbdo, path + "last/" + "V23", V23);
  Firebase.RTDB.setInt(&fbdo, path + "last/" + "EMW", EMW);
  Firebase.RTDB.setInt(&fbdo, path + "last/" + "EKW", EKW);
  Firebase.RTDB.setInt(&fbdo, path + "last/" + "EW", EW);

    if (Firebase.RTDB.setTimestamp(&fbdo, path + "last/" + "date"))

lastdate= fbdo.payload();
lastdateInt= fbdo.intData();
}

It's not bug unless wdt reset.
You should use delay(0); at some place in your code to allow wdt feed.

Thanks for the awesome work on this library.
I tryed the delay(0) but without success. I was using the library about a year ago, and worked fine, but know I'm getting this issue... It's very weird. The exception is followed sometimes by Soft WDT Reset, and sometimes by HW WDT Reset

It depends on your code design.
You should understand what is soft wdt reset in esp MCU and how to solve it.
The library was intensive tested and active for bugs fix and improvements.
You should check the free heap, even you use the same code.
When you update the ESP8266 Arduino core sdk e.g. via boards manager, to v3.0.x, you need to set the MMU option that is suitable for large memory used by SSL engine which will set to low er heap as default.

With some blocking code as calling Firebase to read and store value, you need to add delay(0) to feed the wdt when you calling many functions continuously as this.
Do not run the code e.g. calling the Firebase function to read and store data that required large memory in the callback functions or ISR as it can cause the stack overflow and then wdt reset crashed.

The stack memory reserved in esp8266 is only 4k which can edit via the source code of core sdk to increase.

The Firebase.ready() should call repeatedly in loop.
Don't use Firebase.ready() as for status checking.
The function Firebase.ready() hides the complexities operation inside which is not check for some flag but process the authentication and token generation, refreshment and checking the token expiration.
This is the test code that runs 1000 times without problem.

FirebaseData fbdo;

FirebaseAuth auth;
FirebaseConfig config;

unsigned long sendDataPrevMillis = 0;

int count = 0;

void test()
{

  Firebase.setInt(fbdo, "test/1", count + 1);
  Firebase.setInt(fbdo, "test/2", count + 2);
  Firebase.setInt(fbdo, "test/3", count + 3);
  Firebase.setInt(fbdo, "test/4", count + 4);
  Firebase.setInt(fbdo, "test/5", count + 5);
  Firebase.setInt(fbdo, "test/6", count + 6);
  Firebase.setInt(fbdo, "test/7", count + 7);
  Firebase.setInt(fbdo, "test/8", count + 8);

  String lastdate;
  int lastdateInt = 0;

  if (Firebase.setTimestamp(fbdo, "test/9"))
    lastdate = fbdo.payload();

  lastdateInt = fbdo.intData();

  Serial.println(count);
  Serial.println(lastdate);
  Serial.println(lastdateInt);

  count++;
}

void setup()
{

  Serial.begin(115200);

  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("Connecting to Wi-Fi");
  while (WiFi.status() != WL_CONNECTED)
  {
    Serial.print(".");
    delay(300);
  }
  Serial.println();
  Serial.print("Connected with IP: ");
  Serial.println(WiFi.localIP());
  Serial.println();

  Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION);

  config.api_key = API_KEY;
  auth.user.email = USER_EMAIL;
  auth.user.password = USER_PASSWORD;
  config.database_url = DATABASE_URL;
  config.token_status_callback = tokenStatusCallback;

  Firebase.begin(&config, &auth);

  Firebase.reconnectWiFi(true);

}

void loop()
{

  if (Firebase.ready() && (millis() - sendDataPrevMillis > 5000 || sendDataPrevMillis == 0))
  {
    sendDataPrevMillis = millis();
    test();
  }
}


User System - Additional Requirements

Our user system is in good progress, and now we need to specify additional requirements both for FE and BE regarding:

[x] Admin Interface - BE: API needed, FE: Admin interface to manage users and groups
[x] Widgets personalization: Use cases needed (widgets designs for specific users / group, unique widgets for a specific user / group, etc)
[x] Given the use cases for personalization - which will be made in FE and which in BE? Open relevant issues both in FE and in BE

About the Admin Interface, we need (WIP):

[ ] Disable User
[ ] Add group
[ ] API docs for the FE Team (Partly done, in progress)
[ ] Other?

About Widgets personalization:

Do we filter the widgets by their rank field?
Who is deciding what filter will be done for a user? - is it the admin or the user it self?

@BarVolunteering is there something left in this issue?

@atalyaalon All is complete, I am closing it.

Thank you @BarVolunteering !


TypeError: 'tensorrt_bindings.tensorrt.ITensor' object is not iterable

Bug Description
when i use torch_tensorrt.compile transformer module with dynamic_shapes, it will occur this error,
To Reproduce
def test_compile_v1():
model = AutoModel.from_pretrained('bert-base-case', use_cache=False)
# Enabled precision for TensorRT optimization
enabled_precisions = {torch.half}
# Whether to print verbose logs
debug = False

# Workspace size for TensorRT
workspace_size = 20 << 30

# Maximum number of TRT Engines
# (Lower value allows more graph segmentation)
min_block_size = 7

# Operations to Run in Torch, regardless of converter support
torch_executed_ops = {}

input_ids = torch.randint(2, 100, (1, 16), device=DEVICE)
torch._dynamo.mark_dynamic(input_ids, 1, min=2, max=512)
trt_model = torch_tensorrt.compile(
    model,
    ir='torch_compile',
    inputs=input_ids,
    enabled_precisions=enabled_precisions,
    debug=debug,
    workspace_size=workspace_size,
    min_block_size=min_block_size,
    torch_executed_ops=torch_executed_ops,
)

out1 = trt_model(input_ids)
print(out1)

Environment

Torch-TensorRT: 2.4.0
PyTorch: 2.4.0
transformers: 4.44.2
CPU Architecture:  x86_64 GNU
OS: Linux
How you installed PyTorch: pip
Python: 3.11
CUDA: 12.4
GPU models and configuration: A100-SXM4-80

errors:

Is this the complete repro code? When I run the above it shows me
TypeError: forward() missing 1 required positional argument: 'L_self_modules_pooler_modules_dense_parameters_bias_' seems like it is missing some input.

Is this the complete repro code? When I run the above it shows me TypeError: forward() missing 1 required positional argument: 'L_self_modules_pooler_modules_dense_parameters_bias_' seems like it is missing some input.

I think this error should be fixed by https://github.com/pytorch/TensorRT/pull/3176


Development: #6194: display warning when grade scale exceeds max points

Checklist
General

[ ] This is a small issue that I tested locally and was confirmed by another developer on a test server.
[x] Language: I followed the guidelines for inclusive, diversity-sensitive, and appreciative language.
[x] I chose a title conforming to the naming conventions for pull requests.
artemis.cit.tum.de/dev/guidelines/server/#rest-endpoint-best-practices-for-authorization) and checked the course groups

Client

[x] I followed the coding and design guidelines and ensured that the layout is responsive.
[x] Following the theming guidelines, I specified colors only in the theming variable files and checked that the changes look consistent in both the light and the dark theme.
[x] I added multiple integration tests (Jest) related to the features (with a high test coverage), while following the test guidelines.
[x] I documented the TypeScript code using JSDoc style.
[x] I added multiple screenshots/screencasts of my UI changes.
[x] I translated all newly inserted strings into English and German.

Motivation and Context

#6194
Description

Added a gentle warning when specified grade scale goes above max points.
Steps for Testing

Prerequisites:

1 Instructor
1 Course

Log in to Artemis
Navigate to Course Administration
Navigate to grading scale
Warning is not visible.
Add new grading step that exceeds max points
Warning is visible.

Repeat for internal and detailed scale.
Review Progress

Code Review

[ ] Review 1
[ ] Review 2

Manual Tests

[ ] Test 1
[ ] Test 2

Test Coverage

Screenshots

Codecov Report

Merging #6370 (ff9ee8a) into develop (395abef) will decrease coverage by 4.42%.
The diff coverage is 81.81%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@              Coverage Diff              @@
##             develop    #6370      +/-   ##
=============================================
- Coverage      84.79%   80.37%   -4.42%
+ Complexity     12977    12976       -1
=============================================
  Files           1069     2310    +1241
  Lines          41968    88794   +46826
  Branches        4398    13140    +8742
=============================================
+ Hits           35586    71369   +35783
- Misses          3948     9624    +5676
- Partials        2434     7801    +5367

Impacted Files
Coverage Δ

...se-grading-system/base-grading-system.component.ts
78.59% <75.00%> (ø)

...rading-system/detailed-grading-system.component.ts
88.88% <100.00%> (ø)

...rading-system/interval-grading-system.component.ts
84.84% <100.00%> (ø)

... and 1240 files with indirect coverage changes

Flag
Coverage Δ

client
76.42% <81.81%> (?)

server
84.78% <ø> (-0.01%)
:arrow_down:

Continue to review full report in Codecov by Sentry.

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

@terlan98 I've merged develop and tested this again locally and on ts1. All worked fine - I cannot reproduce your issue. Could try again?

@DominikRemo @terlan98 thanks for your reviews. The style and location of this warning is different by a purpose. That's because this warning works like a hint and doesn't block the user from saving the grade scale. I think it'd confusing to have blocking and non-blocking warnings presented the same way. WDYT?

@jakubriegel I agree with the fact that it should not be displayed exactly the same way, but it should definitely be more similar. Maybe make it an info instead of a warning? We could display it with blue background with the info icon instead of a warning icon.

@DominikRemo @terlan98 thanks for your reviews. The style and location of this warning is different by a purpose. That's because this warning works like a hint and doesn't block the user from saving the grade scale. I think it'd confusing to have blocking and non-blocking warnings presented the same way. WDYT?

Oh, I see. Yes, it makes sense to make blocking and non-blocking warnings different style-wise. Would it be possible to make the blocking ones red and the non-blocking ones yellow, maybe?

New screenshot uploaded to the description


Issue with k8s.io/ko/docs/tutorials/stateful-application/zookeeper/

This is a Bug Report

Problem:
This error occurs when you run this yaml file.
I didn't even find the image of zookeeper.
help me.
kubectl apply -f https://k8s.io/examples/application/zookeeper/zookeeper.yaml
2020-06-13 16:17:16,249 [myid:1] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxnFactory@192] - Accepted socket connection from /<IP_ADDRESS>:35606                                                                                2020-06-13 16:17:16,250 [myid:1] - INFO  [NIOServerCxn.Factory:<IP_ADDRESS>/<IP_ADDRESS>:2181:NIOServerCnxn@883] - Processing ruok command from /<IP_ADDRESS>:35606                                                                                2020-06-13 16:17:16,252 [myid:1] - INFO  [Thread-66:NIOServerCnxn@1044] - Closed socket connection for client /<IP_ADDRESS>:35606 (no session established for client)
Proposed Solution:
sorry. I couldn't find a solution because of my short knowledge.
Page to Update:
https://kubernetes.io/...

Sorry. I didn't add an error message. I'll post an error message.
2020-06-16 04:08:48,898 [myid:1] - WARN  [QuorumPeer[myid=1]/<IP_ADDRESS>:2181:QuorumPeer$QuorumServer@173] - Failed to resolve address: zk-2.zk-hs.default.svc.cluster.local
java.net.UnknownHostException: zk-2.zk-hs.default.svc.cluster.local: Name or service not known
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
at java.net.InetAddress.getAllByName(InetAddress.java:1192)
at java.net.InetAddress.getAllByName(InetAddress.java:1126)
at java.net.InetAddress.getByName(InetAddress.java:1076)
at org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer.recreateSocketAddresses(QuorumPeer.java:166)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:595)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:614)
at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:843)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:913)

Can we reopen this. This is still a issue.
zookeeper will not resolve DNS properly following the sites instructions.
This link states that zookeeper starts listening on <IP_ADDRESS> and causes the resolution problem. Can you confirm?
No requirements are given on the site re: OS version, kernel version, docker version, etc. Currently running ubuntu 18.04 and getting this problem.
https://stackoverflow.com/questions/46605686/zookeeper-hostname-resolution-fails


websocket lunch on remote host

hi, I'm sorry to open ticket for my question , but actually I'm not pro in php and with your instruction not figure out how to install it in my remote directory host , and really appreciate for couple of hints , in fact I've tried to hook url on my host to the Telegram webhoock call back bot, so at first step new update data inserted to MySQL database then websoket server give the update data to designated live client .
the problem is I bought the domain & host which is has Cpanel and I don't know how to configure my php server to lunch websocket service
can you tell me which files should be copy in designated host URL and what files should be modified?
Thanks
My Cpanel images
image
image

Project is installed in the form of composer, your host has a composer environment yet?

thanks for reply  but due to some feature I decided to got after node.j environment , however I don't familiar with composer environment and probably my host service is very limited  and not good at all , so I'll go to buy better host service so I could reach ssh

If you want to use swoole and are not familiar with composer, you can try to implement php autoload and then try using the example inside the websocket server


add nodeselector

add nodeselector by default to avoid recreating the pod during testing.
Signed-off-by: clyang82<EMAIL_ADDRESS>

/assign @morvencao


chore: Add a feature gate to allow user disabling the NaN check

In the current implementation, there is an enforced check for NaN values during the serialization and deserialization of f32 and f64 because of cross platform problems. However, if user operate within homogenous environments where cross-platform compatibility is not a concern they cannot disable the check.
This PR add a feature gate to make this possible.

In the default setting, the NaN check will still be performed. The check is only skipped if the allow_nan feature is enabled.

@dj8yfo Thank you for your prompt review, and I understand your concerns regarding these changes. Close.


Are example roms supposed to run in an emulator?

Hi,
i am trying to get into n64 dev. I followed the steps in the readme and compiled the example roms. However, in my case they dont run in an emulator (tried mupen64plus and nemu64). Are they supposed to do so?

You won't have any luck with HLE emus. That said, nemu64 runs some libdragon homebrew, but it's certainly not too much.

Ok, and which one(s) should run in nemu64?
In case of mupen64plus I ran it in pure interpreter mode and used z64 as rsp plugin (which is as far as I know a LLE plugin)... but it crashed with SEGV anyway

Mess actually does proper LLE and runs almost all of libdragon's roms. I did a lot of testing using it.

Got it working. Thanks for the hint!

I can't get MAME to respond to any of my button presses in the libdragon examples. MAME worked with Super Smash Brothers, and I got the libdragon examples to run on my actual N64. MESS 0.161, the last standalone version, does handle input, however.

Not terribly surprised. I haven't tinkered with MAME since the MESS merge, but I'd assume it shouldn't be broken. Your mileage may vary though. Has anyone else had success?


Add Cloudsmith (a Package Management SaaS)

Hi! This PR adds a link to Cloudsmith, which is a package management service SaaS. It's commercial, but it is completely free for open-source and it has generous free tiers otherwise. It has first-class support for Alpine Linux, Debian Linux and RedHat Linux packages (and many other package formats, such as Python/Ruby), plus org/teams management, granular access controls, private repositories, repository-specific entitlements, a worldwide content distribution network, webhooks, access logs, etc. Thank you. :-)
Full disclosure: I work at Cloudsmith.

@aleksandar-todorovic Any comments for consideration? :)

bump :)


[Bug]: Clean audio option dissapears when unchecking post-process

Project Version
3.2.5
Platform and OS Version
Windows 11 64-bit
Affected Devices
All
Existing Issues
No response
What happened?
The clean audio option dissapears when unchecking post-process. Seems parrented or tied to it in some way.
Steps to reproduce

Open Applio
Prepare Inference
Check post-process
Uncheck post-process
The clean audio option will now be gone

Expected behavior
Clean audio to be independent from post-process and not dissapear
Attachments
No response
Screenshots or Videos

Additional Information
No response

is not a bug, it’s a post process option


Feature request: bind heap to arena such that arena increases memory when full

Dear mimalloc team, I saw the below response regarding #617 -- I very much like that feature to bind heaps to an arena to only allocate memory from the arena
But in my application I would need to be able to increase the size of an arena either explicitly or automatically (increase arena if full instead of running out of memory) -- would that be possible and if yes how? Thank you!!
Previous response 617
The latest dev-slice (v2) has an initial experimental api where you can create a heap that exclusively allocates in a certain arena (running out of memory when the arena is full).
// Experimental: heaps associated with specific memory arena's
typedef int mi_arena_id_t;
mi_decl_export void* mi_arena_area(mi_arena_id_t arena_id, size_t* size);
mi_decl_export int   mi_reserve_huge_os_pages_at_ex(size_t pages, int numa_node, size_t timeout_msecs, bool exclusive, mi_arena_id_t* arena_id) mi_attr_noexcept;
mi_decl_export int   mi_reserve_os_memory_ex(size_t size, bool commit, bool allow_large, bool exclusive, mi_arena_id_t* arena_id) mi_attr_noexcept;
mi_decl_export bool  mi_manage_os_memory_ex(void* start, size_t size, bool is_committed, bool is_large, bool is_zero, int numa_node, bool exclusive, mi_arena_id_t* arena_id) mi_attr_noexcept;
#if MI_MALLOC_VERSION >= 200
mi_decl_nodiscard mi_decl_export mi_heap_t* mi_heap_new_in_arena(mi_arena_id_t arena_id);
#endif

This issue is marked as closed, but there is no information on how to make a custom arena grow-able.
Is there further information on what to do to allow a custom arena to increase in size rather than throw an out of memory error when it runs out of space?

Replied on a message by @biddisco

...what to do to allow a custom arena to increase in size rather than throw an out of memory error when it runs out of space?

TLDR, Add mi_heap_add_arena and mi_request_memory_fun so custom arena can insert more arena into heap when mimalloc requested.
First thing is let custom arena know if mimalloc needs more memory. My idea on that is a per-heap mi_request_memory_fun will be called when mimalloc request more memory (e.g. out of memory, somehow too fragmented for whatever reason, allocation failure, etc).

Try allocate normally on heap
If success, return the result
Call the mi_request_memory_fun function
If it return false, return allocation failure
Try allocate normally on heap
Return the result regardless if it failed or success

Prototype of mi_request_memory_fun function would be
// Return true, if function would like to let
// mimalloc retries the allocation
typedef bool (*mi_request_memory_fun)(mi_heap_t* heapWhereItHasFailed, size_t requestedSize, void* userdata);

Second is the how to expand memory. On this, my idea is to have new function mi_heap_add_arena which adds new arena to existing heap. The prototype would be
int mi_heap_add_arena(mi_heap_t* heap, mi_arena_id_t newArena);


Show command

Feature Overview & Customer Need
As a  Conjur user
I would like to use the Conjur CLI
In order to understand the status of Conjur object

A new command will be called show that will show the status of an object.
The commands will be used as follow:
Conjur show -k layer -i app-layer
Args description:
-k  --kind  - Optional provide the object kind  only the following items are supported: user|host|layer|group|policy|variable|webservice
^As a user can configure the same ID for different objects with two different types, we need to enable the user to filter it according to the object ID as well.
-i  --id < object identifier value > - provide the object identifier
Expected behavior should not change from the corresponding command in Ruby CLI
@sharonr78 should provide the right help screen
Help is according to https://ljfz3b.axshare.com/#id=s9nycf&p=conjur_help__policy&g=1
Process logic and Demo
Conjur user with a machine that the Python CLI already been installed and conjur init & login run against a Conjur/ Conjur Enterprise machine with the following resources & roles
Given the following resources & roles:
conjur list
[
  "demo:policy:root",
  "demo:policy:server",
  "demo:policy:ansible",
  "demo:layer:ansible",
  "demo:host:ansible/ansible-01",
  "demo:host_factory:ansible",
  "demo:variable:server/host1/host",
  "demo:variable:server/host1/user",
  "demo:variable:server/host1/pass",
  "demo:variable:server/host2/host",
  "demo:variable:server/host2/user",
  "demo:variable:server/host2/pass",
  "demo:group:server/secrets-users"
]

conjur show "demo:policy:root
{
  "created_at": "2021-03-07T14:49:38.524+00:00",
  "id": "demo:policy:root",
  "owner": "demo:user:admin",
  "permissions": [

  ],
  "annotations": [
  ],
  "policy_versions": [
    {
      "version": 1,
      "created_at": "2021-03-07T14:49:38.524+00:00",
      "policy_text": "- !policy\n  id: server\n\n- !policy\n  id: ansible\n",
      "policy_sha256": "c510db048dc18f33bb4aec00bd1e27cb4687e185d06836e0008ae539f9811f1f",
      "finished_at": "2021-03-07T14:49:38.638+00:00",
      "client_ip": "<IP_ADDRESS>",
      "id": "demo:policy:root",
      "role": "demo:user:admin"
    }
  ]
}

conjur show -i "ansible"
Error stating that there are 2 options

conjur show -i "ansible" -k layer
{
  "created_at": "2021-03-07T14:49:41.995+00:00",
  "id": "demo:layer:ansible",
  "owner": "demo:policy:ansible",
  "policy": "demo:policy:ansible",
  "permissions": [

  ],
  "annotations": [

  ]
}

conjur show -i "host/ansible/ansible01" -k host
Demo each option that was implemented
Show an existing object from all types possibles
Update an object and show it after change.
Delete objects from each type by using !delete in a policy
Show that the deleted object does not exists yet others are found
Quality
Make sure we have test coverage of the show command.  Create test plan and execute accordingly.
User messages
All user messages regarding object show should be reviewed
Especially error messages
if an argument is missing we need to return the help of the command
Documentation
Please provide enhance documentation in online help and readme
DOD

[ ] Implement the show command Conjur Python CLI in all 3 platforms
[ ] Demo the flow described above
[ ] Automatic integration tests written according to a test plan and passed successfully
[ ] Fill in the user messages - link to a page with all user messages for CLI saved and reviewed.
[ ] Fill in the logs and place here a link to the logs files - link to a page with all logs for CLI saved and reviewed.
[ ] Logs were reviewed by TW and PO
[ ] Are there new Audits to this feature? If so please document them and provide here a link (N/A)

@InbalZilberman
added the following under the logic section
The commands will be used as follow:
Conjur show -o OBJECT_TYPE -i OBJECT_ID
-o --object - provide the object identifier
-I –object-id provide the object’s ID
Given the following resources & roles:
[
"MyAccount:policy:root",
"MyAccount:user:alice",
"MyAccount:user:bob",
"MyAccount:group:conjur-root-admins",
"MyAccount:group:ops-admin",
"MyAccount:host:www-01",
"MyAccount:layer:app-layer",
"MyAccount:host:tests_machine",
"MyAccount:group:tests_machine"
]
As a user can configure the same ID for different objects with two different types, we need to enable the user to filter it according to the object ID as well.
Conjur show -o group -i tests_machine
[
….]

conjur show -i "ansible" -k layer

I think it would be a better UX if it would be something along the lines of "layer:ansible" because flags can be annoying and repetitive


error on import-synda for existing db

`(esgpull) -bash-4.2$ esgpull self import-synda /gpfscmip/gpfsdata/esgf/synda-cmn/db/CMIP5/sdt.db
Found 810229 files to import, proceed? [y/n]: y
Working... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   0% -:--:--AttributeError: 'NoneType' object has no attribute 'upper'
See /gpfscmip/gpfsdata/esgf/esgpull1/log/esgpull-import_synda-2023-04-11_08-46-39.log for error log.
Aborted!
Working... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   0% -:--:--
(esgpull) -bash-4.2$ cat /gpfscmip/gpfsdata/esgf/esgpull1/log/esgpull-import_synda-2023-04-11_08-46-39.log
[2023-04-11 10:46:46]  DEBUG     root
Locals:
{
'self': SyndaFile(
file_id=297,
url='http://aims3.llnl.gov/thredds/fileServer/cmip5_css01_data/cmip5/output1/LASG-CESS/FGOALS-g2/lgm/fx/atmos/fx/r0i0p0/v20130314/areacella/areacella_fx_FGOALS-g2_lgm_r0i0p0.nc',
file_functional_id='cmip5.output1.LASG-CESS.FGOALS-g2.lgm.fx.atmos.fx.r0i0p0.v20130314.areacella_fx_FGOALS-g2_lgm_r0i0p0.nc',
filename='areacella_fx_FGOALS-g2_lgm_r0i0p0.nc',
local_path='CMIP5/output1/LASG-CESS/FGOALS-g2/lgm/fx/atmos/fx/r0i0p0/v20130314/areacella/areacella_fx_FGOALS-g2_lgm_r0i0p0.nc',
data_node='aims3.llnl.gov',
checksum=None,
checksum_type=None,
duration=None,
size=42760,
rate=None,
start_date=None,
end_date=None,
crea_date='2020-11-03 14:44:18.596992',
status='done',
error_msg=None,
sdget_status=None,
sdget_error_msg=None,
priority=1000,
tracking_id='7181939e-4b39-4eaf-a4be-85eae5b5a9e9',
model='FGOALS-g2',
project='CMIP5',
variable='areacella',
last_access_date=None,
dataset_id=97,
insertion_group_id=1,
timestamp='2013-03-12T17:25:11Z'
),
'file_id': 'cmip5.output1.LASG-CESS.FGOALS-g2.lgm.fx.atmos.fx.r0i0p0.v20130314.areacella_fx_FGOALS-g2_lgm_r0i0p0.nc',
'dataset_id': 'cmip5.output1.LASG-CESS.FGOALS-g2.lgm.fx.atmos.fx.r0i0p0.v20130314',
'dataset_master': 'cmip5.output1.LASG-CESS.FGOALS-g2.lgm.fx.atmos.fx.r0i0p0',
'version': 'v20130314',
'master_id': 'cmip5.output1.LASG-CESS.FGOALS-g2.lgm.fx.atmos.fx.r0i0p0.areacella_fx_FGOALS-g2_lgm_r0i0p0.nc',
'url': 'https://aims3.llnl.gov/thredds/fileServer/cmip5_css01_data/cmip5/output1/LASG-CESS/FGOALS-g2/lgm/fx/atmos/fx/r0i0p0/v20130314/areacella/areacella_fx_FGOALS-g2_lgm_r0i0p0.nc',
'local_path': 'CMIP5/output1/LASG-CESS/FGOALS-g2/lgm/fx/atmos/fx/r0i0p0/v20130314/areacella'
}
Working... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   0% -:--:--
[2023-04-11 10:46:46]  ERROR     root
Traceback (most recent call last):
File "/gpfscmip/gpfsdata/esgf/miniconda/envs/esgpull/lib/python3.11/site-packages/esgpull/tui.py", line 154, in logging
yield
File "/gpfscmip/gpfsdata/esgf/miniconda/envs/esgpull/lib/python3.11/site-packages/esgpull/cli/self.py", line 235, in import_synda
nb_imported = esg.import_synda(url=path, track=True, ask=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/gpfscmip/gpfsdata/esgf/miniconda/envs/esgpull/lib/python3.11/site-packages/esgpull/esgpull.py", line 227, in import_synda
file = synda_file.to_file()
^^^^^^^^^^^^^^^^^^^^
File "/gpfscmip/gpfsdata/esgf/miniconda/envs/esgpull/lib/python3.11/site-packages/esgpull/models/synda_file.py", line 64, in to_file
checksum_type=self.checksum_type.upper(),
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'upper'
`

It seems that this file (filename = areacella_fx_FGOALS-g2_lgm_r0i0p0.nc) has no checksum nor checksum_type attributes in the synda CMIP5 database you are importing, and those are currently required by esgpull.
The query ran by esgpull on the ESGF search API confirms that the 2 attributes are also missing from the file's metadata: https://esgf-node.ipsl.upmc.fr/esg-search/search?type=File&offset=0&limit=1&format=application%2Fsolr%2Bjson&fields=*&query=title%3Aareacella_fx_FGOALS-g2_lgm_r0i0p0.nc&distrib=true&latest=true&retracted=false
I am guessing synda used the same query to fill its database at the time this file was added.
Now if I increase the limit parameter for this query (numFound tells us 4 replicas exist in this case), checksum and checksum_type do exist in the next 3 replicas' metadata.
Knowing this, 2 things could be done during import to handle missing information:

look up the metadata from all replicas for each incomplete file and use the most complete one, but I don't know if we can guarantee there will always be at least one index node with the full metadata,
skip files with incomplete metadata from the imported database

The first solution might look more complete but it could seriously slow down the import procedure, and does not guarantee missing info will be filled, while the 2nd solution is easy to set up but will definitely introduce divergence between the filesystem and database.

I also encountered this error. My solution was simply to skip the files that were missing metadata bits, and for me, since there weren't a lot of files missing metadata, this was an acceptable loss. I simply added a try/except block with a little extra information to bypass the error halting the program and add the information to the log. I may submit a pull request soon with my proposed code changes:
In esgpull.py
        nb_imported = 0
        for start in iter_idx_range:
            stop = min(len(synda_ids), start + size)
            ids = synda_ids[start:stop]
            synda_files = synda.scalars(sql.synda_file.with_ids(*ids))
            files: list[File] = []
            for synda_file in synda_files:
                try:
                    file = synda_file.to_file()
                except AttributeError as e:
                    logger.warning(e)
                    warn_msg = f"Skipping {synda_file.filename} due to missing database metadata. Continuing to the next file"
                    print(warn_msg)
                    logger.warning(warn_msg)
                    continue

                if file.sha not in shas:
                    file.queries.append(self.legacy_query)
                    files.append(file)
                    synda_shas.add(file.sha)
            if files:
                nb_imported += len(files)
                self.db.add(*files)


Limit chat message input length

What
Chat messages are limited to 140 characters but this isn't indicated in the UI. Messages longer than 140 characters are discarded by Firebase and an error is returned. So to improve this experience I've:

Limited the input field to stop accepting text at 140 characters.
Added a small label to indicate remaining characters.

It looks like this:

@stephencelis hey thanks for taking a look! You're right, should definitely consider a11y here 👍

@stephencelis something a little more like this?


Packaging updates

Most changes are regarding Python package related files and adding tox.

Packaging Updates

Added pyproject.toml as this is the agreed upon file for holding package metadata moving forward (PEP 621). All contents of setup.py was copied over but setup.py was left with empty setup() call to allow the legacy installation method. (088683211b137f72d30b897bb35fc524acb0512e
The pythonequipmentdrivers package was moved into a src folder but this was later reverted due to reverse compatibility concerns (a224a03b851ba53412c8914c40c368030cd838b7)
Readme.md installation instructions were updated (8f5e1555c37d02b47d6c1643e4ed5e36859c4565)

Testing Updates

Added tox.ini to allow automated running of unit tests in isolated environments. Also inherently checks that the package installation works as expected (5dc5735b0a1cf12dde0afd702a0477644a46e35d)
Added some simple tests but more to come (ec692df9a243d9e01235d1737d3f11453996d436)
Added automated black formatting and isort import sorting to tox.ini (36369aa1326b0c3255ba11bff3340c2e533b3601)

As a result of automatically sorting imports some import circular dependencies were introduced that required rewording of the import statements<PHONE_NUMBER>1023659fe20fa10be43fd987ec4183).

Fixed a bug in HP_34401A.py where self.factor was not being applied in self.fetch_data() (23cd2b6)
Package version updated to 2.3.0 (d874d03)
Package minimum Python version increased to 3.9 (578d168)

Prior versions do not support type hints that are currently implemented

You scared me a little seeing 59 files changed. Looks like a lot of it is just minor formatting changes though.
I'm churning through it, I'll let you know if I see any concerns.

Yeah sorry, most of the changes are formatting. I wanted to add automated formatting as part of the tox config and I tried it first with autopep8 since I think that's what was traditionally used with this package. For whatever reason autopep8 was introducing syntax errors though so I went with black instead. Black changes single quotes to double quotes so that could be a lot of it. I'm interested to get your feedback though.

I added a Contributing section to README.md with some info on how to setup and use tox

It took me a bit to get back to this, I had some personal stuff come up that needed my attention.
Overall these changes look good. I have no problem with using Black for all the formatting, if anything that should simplify the process of keeping additional updates consistent.
I like the updated process for installation, it looks much cleaner; plus it pushes all the installation parameters out of the code.
The tests are also a good addition, I had thought about doing this a while ago but I got hung up on how to test the equipment drivers without hardware in the loop / if it was meaningful to do so. But at the very least I could have done what you did and add them for some of the other functions/classes. It'd be good to do this with basically everything in ultility/data_management.py as well

No problem. Thanks. Yes without actual hardware the tests are a little tricky but still doable with mocks/patches. I'll start adding some more tests as I have time.


feature(app-home): add video header

Reviewed with the design team, and decided that we may need to cut the video shorter. In addition, we will need to review the sizing as well.
Closing for right now. Branch will remain open upon further changes.


Set default transaction isolation level

Fixes #171

@renuevo Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@renuevo Thank you for signing the Contributor License Agreement!

Thanks @renuevo


Add firmware support for hard sectors

Feel free to rip this apart. I would have discussed first, but things sort of fell into place and then it actually worked the first time it compiled...
Write support is untested, but that is the purpose and real goal. I hadn't added write support for Micropolis because the writes need to be aligned to the start of the track. I have not tested with retro hardware, but I have tested with the Micropolis support I added to FlashFloppy with some local changes to improve index timing (based on logic analyzer). It doesn't really impact reads much, but it appears to be working as rpm now produces consistent and correct results and things like --sync-with-index true --revolutions .9 produce properly-aligned errors.
It'll be at least a month until I have access to Micropolis hardware again, for further testing and verification.
Edit: I've now tested writing for Micropolis (future PR), and the write stream is properly synchronized to the start of the track when viewed with a logic analyzer.

Belatedly (sorry, Christmas): Appveyor broke, which is why the check has failed. I've updated the configuration. Could you merge from master and repush, please? Thanks!

Belatedly (sorry, Christmas): Appveyor broke, which is why the check has failed. I've updated the configuration. Could you merge from master and repush, please? Thanks!

BTW, it should be possible to autodetect the number of hard sectors --- if there's more than one index pulse within, say, 100ms then it's clearly a hard-sectored disk; the interval to the index hole ought to be half the size of the others... if we start the disk running and track the minimum and maximum intervals plus frequencies, then determining the various numbers ought to be reasonably simple. WDYT?

BTW, it should be possible to autodetect the number of hard sectors --- if there's more than one index pulse within, say, 100ms then it's clearly a hard-sectored disk; the interval to the index hole ought to be half the size of the others... if we start the disk running and track the minimum and maximum intervals plus frequencies, then determining the various numbers ought to be reasonably simple. WDYT?

it should be possible to autodetect the number of hard sectors --- if there's more than one index pulse within, say, 100ms then it's clearly a hard-sectored disk; the interval to the index hole ought to be half the size of the others

This is actually how I started. Although then when I was looking at returning the sector information in the speed_frame and plumbing it through the command line tool I thought it was going to cause trouble. Looking at it again, it'll probably be fine. I'll try it out (Thursday or this weekend).
I closed/reopened the PR to retrigger AppVeyor.
I saw in https://github.com/davidgiven/fluxengine/pull/205 that you committed FluxEngine.hex. Should I do the same?
Also, while I increased the protocol version, I noticed that if the code zero-extended structures this would not be a breaking protocol change. If that sounds good to you, I'd be happy to clear out unused parts of structures to avoid bumping the protocol version.

it should be possible to autodetect the number of hard sectors --- if there's more than one index pulse within, say, 100ms then it's clearly a hard-sectored disk; the interval to the index hole ought to be half the size of the others

This is actually how I started. Although then when I was looking at returning the sector information in the speed_frame and plumbing it through the command line tool I thought it was going to cause trouble. Looking at it again, it'll probably be fine. I'll try it out (Thursday or this weekend).
I closed/reopened the PR to retrigger AppVeyor.
I saw in https://github.com/davidgiven/fluxengine/pull/205 that you committed FluxEngine.hex. Should I do the same?
Also, while I increased the protocol version, I noticed that if the code zero-extended structures this would not be a breaking protocol change. If that sounds good to you, I'd be happy to clear out unused parts of structures to avoid bumping the protocol version.

Hmm. Yes, you're right, let's keep it with the manual setting --- it's not like anyone's going to use hard-sectored disks by accident.
Regarding checking in FluxEngine.hex: yes, please. However, it's import to make sure you're up to date with master first, otherwise the changes there will be lost. Unfortunately it's not possible to build the firmware on the CI system so it always has to be built manually.
Thank you for doing this! It's something I've been wanting for ages...
BTW, The Verilog sequencer is supposed to have code in it where if there's a index pulse in the incoming bitstream it stops and waits for an index pulse on the hardware, so as to support writing to hard-sectored disks, but that's not done yet (the Verilog has gone through a lot of iterations as people have pointed out the bugs).

Hmm. Yes, you're right, let's keep it with the manual setting --- it's not like anyone's going to use hard-sectored disks by accident.
Regarding checking in FluxEngine.hex: yes, please. However, it's import to make sure you're up to date with master first, otherwise the changes there will be lost. Unfortunately it's not possible to build the firmware on the CI system so it always has to be built manually.
Thank you for doing this! It's something I've been wanting for ages...
BTW, The Verilog sequencer is supposed to have code in it where if there's a index pulse in the incoming bitstream it stops and waits for an index pulse on the hardware, so as to support writing to hard-sectored disks, but that's not done yet (the Verilog has gone through a lot of iterations as people have pointed out the bugs).

Merged. Thanks!

Merged. Thanks!


[vm/ffi] Enable inlining idempotent force-optimized functions

The dart:ffi memory operations are on par with dart:typed_data in AoT, but roughly 4x slower in JiT on x64/ia32/arm64/arm.
To get JiT in line, the indexed load/store should be made inlineable in unoptimized code. This is possible, even with code motion, because the index load/store are idempotent operations.
x64 measurements:
$ dart benchmarks/FfiMemory/dart/FfiMemory.dart
FfiMemory.PointerInt8(RunTime): 72.17852760736196 us.

$ dart ../../golem/golem4/benchmarks/TypedData/dart/TypedData.dart
TypedData.Int8ListBench(RunTime): 15.412078084904714 us.

$ DART_CONFIGURATION=ReleaseX64 pkg/vm/tool/precompiler2 benchmarks/FfiMemory/dart/FfiMemory.dart bench.dill
$ DART_CONFIGURATION=ReleaseX64 pkg/vm/tool/dart_precompiled_runtime2 bench.dill
FfiMemory.PointerInt8(RunTime): 19.55705275509705 us.

$ DART_CONFIGURATION=ReleaseX64 pkg/vm/tool/precompiler2 ../../golem/golem4/benchmarks/TypedData/dart/TypedData.dart bench.dill
$ DART_CONFIGURATION=ReleaseX64 pkg/vm/tool/dart_precompiled_runtime2 bench.dill
TypedData.Int8ListBench(RunTime): 19.509307113036012 us.

We use force-optimized functions outside the FFI. It's a general optimization we'd like to do. Removinglibrary-ffi label.

Also see https://dart-review.googlesource.com/c/sdk/+/210648 for the discussion of inlining force-optimized functions.

In 243320 we're using Location::Any() to force handle inputs into FFI calls to be placed on the stack.
But once we start inlining the trampolines we also have to handle the case where inputs can be constants.

@rmacnak-google @a-siva We discussed today that this optimization could also reduce the binary size overhead. We saw a ~50KB compressed increase in Flutter app size when switching the Engine to FFI natives.

There will be some other things needed before @FfiNative will benefit from inlining force-optimized functions. @dcharkes might look into those things.


High adverbs

Not yet handled by zugai at all.
How do we detect that something like jãq le is high? What about kũqnu le, is that high or low?

The reason behind the "high"/"low" naming convention is that low adverbs attach low (under FP) and high adverbs attach high (just below CP).
When I made the split, I had two proposals for high adverbs. I went with the simpler one for the refgram (although the difference wouldn't have been visible there). However, I should probably explain both proposals here.
The simple one looks like this (I'm using bu as a stand-in for (0) verbs here):
(right-attachment:)

(left-attachment:)

This is as simple as can be. Some drawbacks include:

unlike low adverbs, where :t6: and :t7: are interpreted as ∧, high adverbs need a special rule to compose correctly (basically, they act like full verbs, taking the phrase they are adjuncts of as argument). This is really not a major issue, though.
there is a requirement to distinguish high-verbs from low-verbs, and determining the attachment type of a serial appears to be non-trivial (there'd have to be a hierarchy of features, and when serials form their V-clusters, the strongest feature in the cluster determines the height)

The other proposal is more complicated. It takes the insight about high adverbs acting like verbs and realizes it fully. The complexity comes from the fact that it requires inserting invisible phrases:

bũ here is a full verb. Whether it is base-generated with :t7: or whether :t7: is added on is not essential.
If bũ follows the post-field, it involves raising of the CP:

This approach requires no new composition rules.
But as it stands it has the same problem of needing to determine the "height" of a serial.
One of the ideas I had next was to make lu a (or the only) high adverb. Then any verb/serial could be used as a high adverb by using it in a lu clause:

[CP Fả jí Fáraqse ] lũ dảqfaı hóa
"[that] I go to France, that happens often."
"I go to France often."

But this option scared me. Like Pandora's box. Its potential, negative and positive, felt too hard to gauge, so I left it and went with the simpler option.
With this sort of grammar, you can retroactively demote material into CPs, repeatedly.
It also removes the whole high/low split (everything is low except one word).

Fả súq Fáraqse lũ shảo súq hóa lũ bủ hóa
"[that] you go to France, [that] you want that, that's not the case"
"It's not the case that you want to go to France"

🤷
Anyway, the refgram was written with the simple version in mind.
I expect that there are ways to implement the complex proposal in a slightly simpler way. I just haven't given it much thought for the reasons stated above.
Also, thinking about this appears to be triggering some of that stress and anxiety I used to get from working on the grammar of Old Adverbs, so maybe someone else could take this one (no rush, tho). Fortunately, it's not nearly as complicated as Old Adverbs.
Or we just stick to the simple version.


Cross fade like iOS 7  / pixelated animation while transitioning form one controller to another

I want to have a pixelation or iOS 7 style cross fade animation when presenting a new controller, any help will be appreciated.

Have you looked at Apple's View Controller Programming Guide for iOS?
Also, this stackoverflow answer might be exactly what you want.
If neither of those help, you'll get a quicker/better response by asking your question(s) on stackoverflow.

Basically wanted something like this:
https://github.com/Raizlabs/RZTransitions/issues/44


Attributes of concatenation dimension variable are lost during dimension assignment

This occurs when the concatenation dimension (usually time) has no dimension: A new data array is created to replace the existing variable, but the attributes are not copied.

This has already been fixed on branch https://github.com/bcdev/nc2zarr/tree/forman-19-batch


Get rid of whitelist, instead use prefix

Related to #731
How about using  a prefix for "styled-components-private-props"? e.g. just prefix everything that's not a real React/DOM prop with _.  Then you'd have
<Button _primary onClick={foo} disabled />

The whitelist would be gone, and it's very clear what is the "API" for the styling.

Duplicate of https://github.com/styled-components/styled-components/issues/439
Please just add it there :)
Sorry for not having more updates in that discussion there, but it is looking like React might actually introduce prop namespacing, which would solve this more elegantly


[8.x] Remove duplicated code in Generator Commands

The resolveStubPath() was copied over 15 times, because it used __DIR__ to find the stub file in the current directory.
I moved it up to the parent class, with the addition of using reflection to get the directory name of the child since __DIR__ would refer to the path of GeneratorCommand.

Code is fine as is.


MINOR: [Go] Add LazyQuotes parsing option to CSV reader

Rationale for this change
CSV data could have quotes inside of column data. Go csv package handles this with LazyQuotes flag.
PR adds option to set this flag.

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

That's fair, I can consider this a minor one.


active.json should be removed on sbt shell exit

steps
$ sbt
...
[info] sbt server started at local:///Users/ollie/.sbt/1.0/server/bee8812eca596a7b260c/sock
sbt:test-workspace-sbt-1-1>exit
$ cat project/target/active.json
{"uri":"local:///Users/ollie/.sbt/1.0/server/bee8812eca596a7b260c/sock"}

problem
The active.json file still exists after exiting the sbt shell. The existence of the file should indicate that sbt server is listening on that socket but the server has exited and is no longer listening. This makes it harder for clients to know if sbt server is actually listening on that socket, the only way to find out is to try and connect and check for "Connection refused".
expectation
I expected the active.json file to be removed on sbt shell exit. This would simplify the life of clients integrating with sbt server.
notes
sbt version: 1.1.0

@eed3si9n  Would you mind If I create PR for this?

Plz do. I put help wanted for this reason :)

Places to look into:
https://github.com/sbt/sbt/blob/v1.1.1/main/src/main/scala/sbt/Main.scala#L108-L117
  def runManaged(s: State): xsbti.MainResult = {
    val previous = TrapExit.installManager()
    try {
      try {
        try {
          MainLoop.runLogged(s)
        } finally exchange.shutdown
      } finally DefaultBackgroundJobService.backgroundJobService.shutdown()
    } finally TrapExit.uninstallManager(previous)
  }

That calls exchange.shutdown, which should eventually call server shutdown as well https://github.com/sbt/sbt/blob/v1.1.1/main-command/src/main/scala/sbt/internal/server/Server.scala#L124-L133
      override def shutdown(): Unit = {
        log.info("shutting down server")
        if (portfile.exists) {
          IO.delete(portfile)
        }
        if (tokenfile.exists) {
          IO.delete(tokenfile)
        }
        running.set(false)
      }

Hey @eed3si9n,
I need small clarity Its already resolved in sbt-version 1.1.1

If it already works with 1.1.1, then we can just close this issue.

@olafurpg I can't reproduce this either, so I am going to close this for now.

@eed3si9n  I hope you checked it before closing.

I tried on my machine using a hello world project.

Cool @eed3si9n  The same I was tested.

Do you have any other that I can Fix quickly?

I can't promise "quickly" but something like https://github.com/sbt/sbt/issues/3849 might be contained.

this isn't fixed. using sbt/sbt's build (HEAD 933668076):
$ sbt
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=384m; support was removed in 8.0
[info] Loading settings from idea.sbt,global-plugins.sbt ...
[info] Loading global plugins from /Users/dnw/.dotfiles/.sbt/1.0/plugins
[info] Loading settings from plugins.sbt ...
[info] Loading project definition from /d/sbt/project
[info] Loading settings from build.sbt ...
[info] Resolving key references (15599 settings) ...
[info] Set current project to sbtRoot (in build file:/d/sbt/)
[info] sbt server started at local:///Users/dnw/.sbt/1.0/server/9bea40e9748dc34f2c46/sock
> compile
[info] Updating bundledLauncherProj...
[info] Updating ...
^C
11:13:41 ! ll project/target/
project/target/
├── [drwxr-xr-x dnw      staff     256 Mar 16 17:38]  config-classes/
├── [drwxr-xr-x dnw      staff      96 Jan 24 14:04]  scala-2.12/
├── [drwxr-xr-x dnw      staff     160 Jan 24 14:04]  streams/
└── [-rw-r--r-- dnw      staff      70 Mar 19 11:13]  active.json

3 directories, 1 file

11:13:46 $ more project/build.properties
sbt.version=1.1.1

Ólaf's step said "exit" not shoot the computer with handgun.

Dear @eed3si9n ,  it makes sense for me.
Even user closed in the middle of execution we should shutdown server and

We do already have exit hook if you want to look into this further.

Yeah @eed3si9n, It has a hook to exit  but what about handling ^C

Ólaf's step said "exit" not shoot the computer with handgun.

can you reproduce with exit on 1.1.0?

can you reproduce with exit on 1.1.0?

No, it worked for me.

same for me.

The reproduction steps in the ticket include exit but it would be nice if ^C was also handled. This is not a blocker issue however, as a client to sbt server a workaround is to catch errors when establishing a connection.

It goes without saying that a client should handle errors when establishing the connection regardless if this ticket is fixed or not.

Reviewing this I was really confused at the time. :smile:
Let's call this one resolved - I've opened https://github.com/sbt/sbt/issues/4191 about the file being removed on JVM shutdown.

I'm seeing this issue again on my system when using SBT 1.4.2 with Metals - the active.json isn't being removed causing a restart of SBT not attempting to start a build server - but only if I connected to it using Metals. If I don't connect it seems to be removed normally.
@dwijnand

@markusa380 my guess is that metals, or something else, is creating a new server instance. The presence of the active.json file should not in itself prevent sbt from starting a server. When there is an active.json file, the sbt instance attempts to make a client connection to the socket described in the file. It should only be when successfully makes a client connection that sbt aborts creating a server and logs a warning about multiple instances. Otherwise it is supposed to delete the active.json file and try to start a new server. Can you verify that there is actually no other sbt server running when you see this behavior?


Add an expectation of a warning diagnostic to tests that hide libSwiftScan.

Such tests cause the driver to take a code-path that results in a warning: warning: Unable to locate libSwiftScan. Fallback to swift-frontend dependency scanner invocation.
This needs to be taken into account.

@swift-ci test

https://github.com/swiftlang/swift-driver/pull/1703
@swift-ci test

From Smoke test and cross-repo test:
/Users/ec2-user/jenkins/workspace/swift-package-manager-PR-macos-smoke-test/branch-main/swiftpm/Tests/PackageModelSyntaxTests/ManifestEditTests.swift:410: error: -[PackageModelSyntaxTests.ManifestEditTests testAddLibraryTargetWithDependencies] : failed - Actual output does not match the expected
 import OtherLib
+
 import SwiftSyntax
+
 import TargetLib

I don't think these are related.

https://github.com/swiftlang/swift-syntax/pull/2858 resolved the above failures. Re-testing.

@swift-ci test

https://github.com/swiftlang/swift-driver/pull/1703
@swift-ci test

https://github.com/swiftlang/swift-driver/pull/1703
@swift-ci test

https://github.com/swiftlang/swift-driver/pull/1703
@swift-ci test

https://github.com/swiftlang/swift-driver/pull/1703
@swift-ci test

https://github.com/swiftlang/swift-driver/pull/1703
@swift-ci please test Windows


feat(server/error): build error class

🦙 MegaLinter status: ❌ ERROR

Descriptor
Linter
Files
Fixed
Errors
Elapsed time

✅ CPP
clang-format
5
2
0
0.04s

❌ CPP
cpplint
5

1
0.18s

See detailed report in MegaLinter reports
MegaLinter is graciously provided by


chore: normalize line endings

This adds the necessary files (.gitattributes and .editorconfig) to ensure line endings use lf

Note that this modifies some existing files automatically to conform (I did not manually make those changes).
This fixes #1546.

This LGTM


Change IResponseCache output to ValueTask

In ResponseCaching middleware there's no way to replace IResponseCache and in the implementation of it (MemoryResponseCache), the async methods are just a wrapper on sync methods. So is it better that the output of the methods be ValueTask?

@Kahbazi Thanks for contacting us.
That would be a breaking change, so even if we deemed useful we can't take it until our next major release.
I'm closing the issue as we wouldn't take a change like this unless there is a clear scenario with performance measurements that justify the change.
/cc @anurse

Is it a breaking change when both IResponseCache and MemoryResponseCache are internal?

Yeah, I'm not clear on what the breaking change issue is. @javiercn can you elaborate? Of course, it doesn't mean for sure that we'd do this change, but I don't think there's a breaking change concern since the type is internal.

On the second thought, if there's no plan for the exposing IResponseCache the methods could only be sync.

Given that right now the only implementation of IResponseCache is synchronous, and it's an internal interface, I think we'll keep this sync for now. If we find a need to either a) make IResponseCache public or b) make an async implementation, we can change the signature then.

I'm little confused on why did you close the issue?

I think we'll keep this sync for now

Do you mean that you want the IResponseCache to stay as is or do you want to remove the async methods on IResponseCache?

Oops, you're right, I misinterpreted that there are already async methods on it.
Having said that, since this is an internal interface, I think that unless we know of performance improvements from switching to ValueTask, it's probably not worth the cost of the change. If this were a public API then it might make more sense, even if we don't have specific perf data, because some implementations might be improved. Of course, if it were public, it would also be subject to concerns about breaking changes.
I suppose I'm still just not sure of the value of this change. I'm open to being convinced otherwise though :).

I suppose we could be clearer by dropping the async methods entirely. That change would make sense to me. The current implementation is sync-only anyway.

I suppose we could be clearer by dropping the async methods entirely. That change would make sense to me. The current implementation is sync-only anyway.

So should I remove the async methods?

That would seem to be reasonable. Assuming it doesn't break anything I've missed :).


fixed undefined email security bug

Description
PR fixes security issue where when a user's profile email is undefined it will be concatenated to the groups array.
Motivation
When an instrumentGroup is undefined on any dataset this will give that user access to that dataset, regardless of whether that user and dataset have matching groups.
Tests included/Docs Updated?

[ ] Included for each change/fix?
[ ] Passing? (Merge will not be approved unless this is checked)
[ ] Docs updated?
[ ] New packages used/requires npm install?
[ ] Toggle added for new features?

Perhaps it would be useful to check if instrumentGroup is undefined here so that we have double protection against this bug?
https://github.com/SciCatProject/backend/blob/master/common/models/dataset.js#L130

To expand, @J-avery32 found a place where we if an OIDC user profile didn't have an email and ended up getting access to datasets with an undefined instrumentGroup. That check is here https://github.com/SciCatProject/backend/blob/37c0bc4d8ec1ac8c92fb8c33fe92642d0cb64375/common/models/dataset.js#L130

I assume that the failing gihub action is due to the submitter not being an owner and docker build not giving accecss?

I will ask Carlo to take care of this PR. He is back from vacation soon. I agree, the test for instrumentGroup should be added as well.

@stephan271 thank you so much for taking the lead on this PR.
I will be able to check the reason why the tests fail early next week

There are some other issues that I've found which should be fixed with this one, so I will need a little more time to complete it.

about the CI failing, I've noticed that the push to ghcr rule has changed a little recently.
This was the rule that triggered the push in the past.
What do we want to apply here? Stick to what we used to do, or push to ghcr on every PR to master?
If the latter, I am afraid we need to solve the login to ghcr by stopping using the {{ github.actor }} env var (as users not in the scicat group will encounter 403)

So with the old rule, we only try and build/push docker when a PR is merged. It would be nice to see if a PR breaks the docker build before merging, but that should be very rare and  if it's a whole lot easier to not put the old rule back in, I vote for that.

So, it turns out that my fix actually introduces another larger bug. This was caught by the test I introduced in accessGroups.js. When any user's in ctx.options is undefined or empty they automatically get access to all datasets in the database no matter what.
https://github.com/J-avery32/backend/blob/8709f1c2a896f696a19fea9441b9eacc054e99e4/common/models/ownable.js#L16
Their array should only be empty when they have an undefined email because my code prevents the undefined value from being added to the array.
Now when I tried to fix this so that empty user arrays or undefined arrays simply gave the user access to no special groups I got a lot of failing tests. It seems that this is out of my scope to fix so I would appreciate it if someone else took a look at that bug.
Also please note that there are two areas in the code where we want to add an undefined check for intrumentGroup.
One here:
https://github.com/J-avery32/backend/blob/8709f1c2a896f696a19fea9441b9eacc054e99e4/common/models/mongo-queryable.js#L614
And one here:
https://github.com/J-avery32/backend/blob/8709f1c2a896f696a19fea9441b9eacc054e99e4/common/models/dataset.js#L130
I can add those in or leave them for whoever looks into the empty array bug.

@J-avery32 : please do go ahead and add your code. When we work on the fixing the larger bug and all the failing tests, we will review your addition and decide what to do. Thank you so much

@J-avery32 does this

When any user's currentGroups in ctx.options is undefined or empty they automatically get access to all datasets in the database no matter what.

happen also when the u.profile.accessGroups is undefined?

@minottic yes. In fact I believe that when the profile.accessGroups is undefined even without my fix that user gets access to everything in the database.

ok, I see, thanks. Maybe doing a step backwards, wouldn't it be a fast fix not to allow an empty email in the u.profile by creating a default fallback whenever it is empty at user creation (and then later concat it to the currentGroups in all cases?). Something like:
u.profile.email? u.profile.email: u.email (and I guess in this case it would come from the auth method generated email, which usually is - for ldap and oidc -<EMAIL_ADDRESS>In this case, we also preserve the logic that the logged-in user has access to the ds she created.

Can we be sure that u.email will always be defined?

Also my original thought about what caused this bug is wrong. I'm looking further into it and it doesn't seem like the instrumentGroup code is hit for the specific behavior I'm observing. Though the fact that there is no check for instrumentGroup being undefined is probably still a bug, and should be added in to the code. However, I think it affects datablocks and attachments. I'm not super familiar with the internals of scicat so would be nice if someone could verify that.
I think the real issue is if accessGroups, sharedGroups, or ownerGroup is undefined on a dataset. The problem is still caused by the undefined email value being added to groups.
Notice this part of the code:
https://github.com/SciCatProject/backend/blob/37c0bc4d8ec1ac8c92fb8c33fe92642d0cb64375/common/models/ownable.js#L16-L35

This is a comprehensive list of things I think need to get done:

[ ] Ensure that an undefined accessGroups property on the user does not allow them to access all data/write tests for this (in ownable.js)
[ ] Ensure that an empty accessGroups array on the user does not allow them to access all data/write tests for this (in ownable.js)
[ ] Filter out undefined values from the groups array before passing it to mongo/write tests for this (in ownable.js)
[ ] Ensure that we don't concatenate an undefined email into the accessGroups array and if accessGroups is undefined we don't just get an empty array without concatenating the email/write tests for this (0-script.js)
[ ] Ensure that we check if instrumentGroup is undefined before comparing it against user roles/write tests for this (dataset.js and mongo-queryable.js)

I think there are cases indeed where the email from ldap can be empty.
So, if I understand correctly, the problem is that no filter on groups is added when the user's groups are empty or null. I'll try to fix this condition and see how many tests fail and how hard they are to fix.
If that's a lot of work, I would say a fast fix might be falling back to a hardcoded email when no profile.email is defined and concatenating it to the currentGroups, anyway at some near point in the future we'll move to the new be


Crash Report: Argument rangeInElement (0,24) endOffset must not exceed descriptor text range (5317, 5321) length (4).

Description
Stacktrace
Please paste the full stacktrace from the IDEA error popup

Thanks for reporting! This issue has already been reported in #493 and has been solved in commit a4caa3cf552a4c36472dd610eaf15fc98df53859. A new release which includes the fix will be available soon.

Fixed in commit a4caa3c and will be included in release b0.6.1 in the near future.


Fix missing dependency on npm 2

On npm 2.15.11 I'm getting an "Error: Cannot find module 'text-table'", from react-dev-utils/eslintFormatter.js:4:15). This fixes that error.

Note that we don't support npm 2 anymore. But you're right this should be fixed (it's a correctness issue).

Done

Thanks!


ReactDOM.hydrate breaks React 15 compatibility

The introduction of ReactDOM.hydrate in #203 breaks usage with React 15 because the hydrate method is not available until React (ReactDOM) 16. On React 15, pages crash during render with Uncaught TypeError: ReactDOM.hydrate is not a function.
Since React 15 and 16 are both listed as valid peerDependences, support for ReactDOM.render should be reintroduced, probably with a conditional. (If hydrate is available, use it, otherwise use render.) Or if React 15 is no longer going to be supported, it should be removed from peerDependencies.

Any update on this problem? When trying to withdraw my fund I faced this exact problem.
https://i.imgur.com/bSs8B1g.jpg

Looks like #207 fixes it. @samsel, can you merge?

this has been published as 4.5.1, thanks.

I believe this issue can be closed now


Inconsistent Design on Dropdown component across various pages.

Current Behavior

The round border pattern generally creates a relaxed user experience across elements, but it feels awkward and out of place for FAQ dropdowns.
This issue persists across multiple pages due to the consistent use of the same component.
Additionally, the dropdown's behavior is inconsistent when active, regardless of light or dark mode.

Expected Behavior

This should be the Design For Light And Black Theme

Screenshots/Logs

This shows Design it has Right Now

Body part of dropdown can be clerly high lighted so user can gues it's dropdown area.
Environment

Host OS:  Windows
Platform: Chrome Browser

Contributor Guides and Resources

🛠 Meshery Build & Release Strategy
📚 Instructions for contributing to documentation

Meshery documentation site and source

🎨 Wireframes and designs for Meshery UI in Figma (open invite)
🙋🏾🙋🏼 Questions: Discussion Forum and Community Slack

@leecalcote  Not able to add labels please add Ui/Ux Labels.

@leecalcote can you add lavel of ui in this and also assign it.

Assign it to whom?

@Iamrushabhshahh, I appreciate you raising this issue. Perhaps, you're right, but we're just spinning our wheels here. This isn't worth the time. We spent gobs and gobs of time on every pixel in other UIs where doing so is worth the time (e.g. MeshMap and layer5.io), but we have so many other websites that keeping track of new contributors and helping them as they inevitable bring in bugs just isn't worth the time. Let's find you another qualified issue to work on.

Also, your assignment on other open issues like this one https://github.com/meshery/play/issues/181 isn't complete, yet, so let's get you finishing what you volunteer for first, before giving you another one to sit on.

Sure , Done with  $181 will close it soon.


Upgrade to new token and authentication method

Since 2nd of november 2022, the way to retrive token and authenticate as evolved.
I have on a local branch the required changes to take into account those changes.
@xraver let me know if you want me to push the branch and create a pull request or if you want to have the files updated that you will integrate yourself.
https://developer.mercedes-benz.com/content-page/migration_2022

Will be great!! Thanks you!!
Il Sab 12 Nov 2022, 15:42 samfaitmalomolet @.***> ha
scritto:

Since 2nd of november 2022, the way to retrive token and authenticate as
evolved.
I have on a local branch the required changes to take into account those
changes.
@xraver https://github.com/xraver let me know if you want me to push
the branch and create a pull request or if you want to have the files
updated that you will integrate yourself.
https://developer.mercedes-benz.com/content-page/migration_2022
—
Reply to this email directly, view it on GitHub
https://github.com/xraver/mercedes_me_api/issues/34, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALJM7A7YXFJMRE73MNFFCTTWH76J7ANCNFSM6AAAAAAR6PNJ5Y
.
You are receiving this because you were mentioned.Message ID:
@.***>

What do you prefer then ? code files or you let me create a PR ? ( for the moment, I have not the right)

Thanks for the good work!!


query projections

@YuriSolovyov Are there any plans to support query projections so we can just get specific document fields returned. See: https://docs.mongodb.org/manual/reference/method/db.collection.find/

@nevf in case of mongoify, I'm not sure this would give you better performance, if you need this for speed reason.
Thanks for opening the issue, it is now on the TODO list.

@YuriSolovyov No, nothing to do with performance. Just another step in Mongo compatibility. Projections can also simplify downstream code, by just returning specific properties.


Remove response

Remove instrument response and convert to physical units.

[ ] Add a function to clients to remove response on ingestion
[ ] Add a function to MTH5 to calibrate entire file
[ ] Update data levels to align with NASA standards
[ ] Update tests
[ ] Update documentation

Codecov Report

Merging #100 (556d23c) into master (686eae3) will decrease coverage by 1.23%.
The diff coverage is 50.00%.

@@            Coverage Diff             @@
##           master     #100      +/-   ##
==========================================
- Coverage   53.43%   52.20%   -1.24%
==========================================
  Files          58       58
  Lines        7502     7316     -186
==========================================
- Hits         4009     3819     -190
- Misses       3493     3497       +4

Impacted Files
Coverage Δ

mth5/timeseries/channel_ts.py
64.88% <ø> (-1.88%)
:arrow_down:

mth5/mth5.py
60.48% <50.00%> (-1.81%)
:arrow_down:

mth5/io/lemi424.py
24.17% <0.00%> (-7.51%)
:arrow_down:

mth5/io/usgs_ascii.py
15.50% <0.00%> (-6.20%)
:arrow_down:

mth5/io/zen.py
10.44% <0.00%> (-3.30%)
:arrow_down:

mth5/io/nims.py
12.04% <0.00%> (-2.96%)
:arrow_down:

mth5/groups/survey.py
52.63% <0.00%> (-2.37%)
:arrow_down:

mth5/groups/master_station_run_channel.py
52.92% <0.00%> (-1.79%)
:arrow_down:

... and 15 more

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 686eae3...556d23c. Read the comment docs.


Clean up silx io using fabio 0.9

Some code can be removed.

Maybe check silx convert template, begin, end input, it could be merge into fabio.

Make sure to update fabio minimal required version here and there (setup.py, requirements.txt, doc?...)

Oeuf corse

Moved to next milestone, not critical and it does not harm to keep compatibility with older versions a bit longer.

Removed from milestone, no specific need and requiring fabio >= 0.9 means dropping support of debian 9 with official backports (where only fabio 0.7 is available).

There is dup code with fabio for EDF reading. But that's detail.

Yes it's definitely not closed, but it's already been postponed a few time so I just remove the milestone.


Secured connection to FTP

Hi guys,
i need your help with securedly connecting to FTP. When I use Total Commander, i check SSL/TLS and everything works fine, but when i try to configure the same in FluentFTP, it fails on "The remote certificate is invalid according to the validation procedure.".
Please help me how to configure TLS to work like in Total Commander.
My code:

ftp.Host = hostname;
ftp.Credentials = new NetworkCredential(username, password);
ftp.EncryptionMode = FtpEncryptionMode.Explicit;
ftp.SslProtocols = SslProtocols.Tls;
ftp.Connect();

My log from Total Commander:

SSL: Libraries loaded OK! C:\totalcmd\libeay32.dll
Connect to: (05/09/2017 12:19:36)
hostname=xx.xx.xx.xx
username=xxxxxxxx
startdir=
xx.xx.xx.xx=xx.xx.xx.xx
220 FTP server ready...
AUTH TLS
234 Proceed with negotiation.
Cert subject: /C=CZ/ST=xxx/L=xxx/CN=xxxxxxxxx
Cert issuer: /C=CZ/ST=xxx/L=xxx/CN=xxxxxxx
USER xxxx
331 Please specify the password.
PASS ***********
230 Login successful.

I replaced the sensitive data with xxxxxx.
Thanks for you help!!

You need to set a function that checks if the certificate is valid.
conn.ValidateCertificate += new FtpSslValidation(OnValidateCertificate);

 void OnValidateCertificate(FtpClient control, FtpSslValidationEventArgs e) {
            e.Accept = true;
}


⚠ Processors has degraded performance

In 2f0e42a, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 49 ms

Resolved: Processors performance has improved in 3c0c513.


Doc of getMetaTags not correct

In https://github.com/redfin/react-server/blame/master/docs/page-api.md#L152-L155 , it reads

getMetaTags(next: Function): Meta | Promise(Meta) | [Meta | Promise(Meta)]
A set of Meta objects that represent the meta tags for this page. If it’s a promise and the promise returns null, the meta tag will not be used.

However, if getMetaTags just return Promise.resolve(null), it triggers an error
 [react-server.core.renderMiddleware] Error in renderPage chain message=Cannot read property 'name' of null, stack=TypeError: Cannot read property 'name' of null

I suppose the doc should be updated to be like "If it’s a promise and the promise returns empty array, the meta tag will not be used."

Oh, nice catch @mocheng.  I wonder if we should fix the docs here, or fix handling of null? :thinking:
Given that the docs claim that null is supported I guess this is a regression?

@mocheng Can you share your code that is creating the promise to be returned and resolving null?  I'm working on a test case to highlight this.

Fixed.


Fix Hibernate 3 compatibility issue

Fixes #1406

This looks good to me. @johnktims what do you think?

Looks good.


If instances from different sequences are overlapping how are they mixed? Which one get's to be on top of the other? How to manipulate z-order?

In Composition.java, there's a comment indicating that instances of MediaItem from different sequences will be mixed in the output when they overlap in time. However, based on my tests involving 5 overlapping media items with transparency, I've noticed that the z-order appears to be undefined. The stacking order of the videos seems to change randomly with each execution. Here's the relevant comment from the code:
/**
 * The {@link EditedMediaItemSequence} instances to compose.
 *
 * <p>{@link MediaItem} instances from different sequences that are overlapping in time will be
 * mixed in the output.
 */

Given this behavior, I'm seeking a way to control the z-order of these videos. Specifically, is there a method or technique to set or manipulate the z-order of MediaItem instances within EditedMediaItemSequence ore entire EditedMediaItemSequences to ensure a consistent stacking order in the output?

The default implementation of our VideoCompositor is DefaultVideoCompositor. z-order should be defined by the order of the EditedMediaItemSequence inserted into the Composition's builder.
Unfortunately, we don't have a way to customize the order, other than using the order of EditedMediaItemSequences in the Composition.

The stacking order of the videos seems to change randomly with each execution.

This is surprising to me. I would expect the stacking order to be consistent in each execution. I guess you are getting this while using Transformer with a Composition with 5 overlapping mediaItems? If so, I wonder if Transformer is loading EditedMediaItemSequences in a nondeterministic order (which is a bug on our side)

Hi @dway123, @droid-girl,
Thank you for your insights on the issue. As per our discussion, I've created a sample project that consistently reproduces the z-order inconsistency issue we've been observing with the Composition and DefaultVideoCompositor.
Repository Link:
Media3Issue Sample Project
Brief Description of the Repository:
The repository contains a minimal setup that demonstrates the problem with overlapping media items in a composition. Specifically, it includes:
A Composition with 5 overlapping MediaItem instances, each with transparency.
Detailed implementation showcasing the order of EditedMediaItemSequence added to the Composition's builder.
Please check out the repository, build and run and observe the results.
Looking forward to your response and any further steps you suggest.
Best regards,
Patrik
ps.: Should I create an issue in the google issue tracker or is it fine to leave the description here?

Thank you @AradiPatrik for the sample project.
You can keep this issue here, do not need to create another on the the google issue tracker

Assigning @claincly as he has more knowledge (and thoughts) about the Transformer multi-EditedMediaItemSequence AssetLoader initialization.


methods for commit status and commit comment

Fixes #172

Thanks, I will add that tests. I tried to regenerate the failing test with the new version of python-gitlab, but it didn't work.

Thanks, I will add that tests. I tried to regenerate the failing test with the new version of python-gitlab, but it didn't work.

I've been able to regenerate test_commit_comment. Would you like me to push that file?
The test_commit_statuses then fail for me, but it is probably due to the empty list that is returned.

It's not neccessary, test_commit_comment worked for me too. I have just changed the tests and it seems that it works now.


Support for Display Zoom

Description

Would like to see a way to determine if the device's display is set to Zoom vs Standard
Use Case

When users zoom in on our app, the styling gets messed up. Having a way to determine if the device is zoomed or not would be incredibly helpful

Hi there - do you mean something like this? https://www.reddit.com/r/androiddev/comments/80y795/how_to_programmatically_check_if_user_has/
That is, things affected by accessibility zoom?
If so maybe https://developer.android.com/reference/android/util/DisplayMetrics#DENSITY_DEVICE_STABLE versus https://developer.android.com/reference/android/util/DisplayMetrics#densityDpi  (or the other density methods) ?
I wonder if PixelRatio is useful for this at all? https://reactnative.dev/docs/pixelratio
If PixelRatio is not useful and you must have DisplayMetrics information, we could merge a PR that exposed the DisplayMetrics from Android

@mikehardy we need it for the Display Zoom. I can see use in knowing the accessibility zoom as well, though it isn't my current focus.
https://user-images.githubusercontent.com/1626364/205133124-f4110fe3-4294-4d6e-9507-eefb578eb55a.mov
Our app is currently just iOS so the DisplayMetrics wouldn't work for us.
It doesn't look like pixelratio will work either - both standard and zoomed give the same value. I did look into Dimensions for react native, but it doesn't give any information regarding zoom either. I could compare the height against the standard height of the device, but to do that I'd need to know all the standard heights of all the iPhones (and eventually Android), and need to constantly update my list of standard heights as new devices come out.
The options used to be Standard and Zoomed (and still are in my simulator), but appear to have changed to Larger Text and Default in the latest iOS update my phone got.

Looks like you could attempt a PR based on this? https://stackoverflow.com/questions/25952243/how-can-i-detect-whether-a-user-has-an-iphone-6-plus-in-standard-or-zoomed-mode
I'm just searching for strings you are mentioning by the way - and we merge all reasonable PRs - happy to do so in this case, just propose something that works for what you need

I don't work in native code at all, I honestly wouldn't even know where to begin with this

I had never touched iOS platform at all until I began on a react-native project. We all start somewhere. The objective-c code in this module is some of the most trivial objective-c code there is so it's actually a pretty easy start. Not saying that to be condescending in any way, it's actually a lifesaver for me, I'm terrible at objective-c (and/or swift) but and the simplicity of this code is the only reason I can work on it. Start by reaching right into node_modules and tweaking the code directly. Use https://github.com/ds300/patch-package to save your work. When you get something working post a PR

We've opened a PR here: https://github.com/react-native-device-info/react-native-device-info/pull/1495

hi there @mikehardy , just following up since we hadn't gotten a response on the PR mentioned above