analog_core updates

phase_interpolator is updated

nand based delay chain
"en_unit" is added

stocahstic_adc_PR is updated

clk_async is removed
phase_monitor is removed
TDC clock selection is removed
PFD input mux is added
"sel_PDF_in" and "sign_PFD_clk_in" are added

analog_core is updated

not used ports are removed

jtag registers are updated

Hey @sjkim85, I took a quick look at the error messages and noticed the following issues:

Since pfd_inp_meas/pfd_inn_meas were removed from the analog core debug interface, I think you want to set the right-hand side of these two assignments to 0 in digital_core:
https://github.com/StanfordVLSI/dragonphy2/blob/2b71913c3d7c6279db99a17f0a895980ecff1ebf/vlog/chip_src/digital_core/digital_core.sv#L505-L506
Since you changed the analog debug interface, please update the QTM for analog_core accordingly.  Here's the path: dragonphy2/designs/dragonphy_top/qtm/analog_core.qtm.tcl
Please take a look at the model of analog_core used in the high-level emulator and delete assignments to analog debug signals that were removed.  At a minimum, I think these lines need to be deleted:
https://github.com/StanfordVLSI/dragonphy2/blob/2b71913c3d7c6279db99a17f0a895980ecff1ebf/vlog/fpga_models/analog_core/analog_core.sv#L217-L219
https://github.com/StanfordVLSI/dragonphy2/blob/2b71913c3d7c6279db99a17f0a895980ecff1ebf/vlog/fpga_models/analog_core/analog_core.sv#L225-L227
https://github.com/StanfordVLSI/dragonphy2/blob/2b71913c3d7c6279db99a17f0a895980ecff1ebf/vlog/fpga_models/analog_core/analog_core.sv#L236-L237

I reviewed the errors and saw a couple of issues:

test_mflowgen

Error: Can't find inout port 'adbg_intf_i.sel_PFD_in' on reference to 'analog_core' in 'dragonphy_top'. (LINK-1)

Looks like you didn't add analog_core QTM pins for all of the new registers.  I just did a quick scan, but I think sel_PFD_in, sign_PFD_clk_in, sel_PFD_in_rep, and sign_PFD_clk_in_rep are missing from the QTM.

test_emu

ERROR: [VRFC 10-3180] cannot find port 'sign_PFD_clk_in' on this module [/var/lib/buildkite-agent/builds/fpga-verif-1-1/stanford-aha/dragonphy2/vlog/chip_src/analog_core/analog_core.sv:221]
ERROR: [VRFC 10-3180] cannot find port 'sel_PFD_in' on this module [/var/lib/buildkite-agent/builds/fpga-verif-1-1/stanford-aha/dragonphy2/vlog/chip_src/analog_core/analog_core.sv:220]
ERROR: [VRFC 10-3180] cannot find port 'sign_PFD_clk_in' on this module [/var/lib/buildkite-agent/builds/fpga-verif-1-1/stanford-aha/dragonphy2/vlog/chip_src/analog_core/analog_core.sv:258]
ERROR: [VRFC 10-3180] cannot find port 'sel_PFD_in' on this module [/var/lib/buildkite-agent/builds/fpga-verif-1-1/stanford-aha/dragonphy2/vlog/chip_src/analog_core/analog_core.sv:257]

Please add the input pins sign_PFD_clk_in and sel_PFD_in to the emulation model dragonphy2/vlog/fpga_models/analog_core/stochastic_adc_PR.sv.  You don't have to implement their function, but they should at least be present in the port list, otherwise FPGA synthesis will fail.

This isn't related to an error, but please delete obsolete code rather than commenting it out.  We can always restore the old code from the git history, but it can be confusing to read/review code when a lot of it is commented out.  I would typically only leave in a commented block of code if there was a remark explaining it (i.e., "uncomment this code to create an interactive plot").  The main files I have in mind here are analog_core.qtm.tcl, acore_debug_intf.sv, analog_core.sv (FPGA & ASIC versions), stochastic_adc_PR.sv, and jtag.sv.

Input clock network(clk_in) of the phase_interpolator has been changed for this tapr-out. (initial commit)
(two explicit gates are removed from clk_in network --> 30ps off from ADC's ideal sampling phase in cpu simulation)
keep pi_ctl but add 30p delay to ext_clk in test bench (cpu_system_test/prbs,  cpu_system/tests/loopback_sram, cpu_system_tests/loopback_retimer)
minimum v2t gain is adjusted from 240 to 210 in cpu_systems/pfd_offset
all cpu tests in local machine pass
bit overflow issue in jtag register (unq16) is still not solved (warning, not error)

Great progress!  Looks like only the FPGA emulation is failing.  I suspect that may be due to the JTAG register overflow warning -- we don't have any CPU-based tests that thoroughly exercise the JTAG interface, but that is exercised more fully in emulation.  So emulation may be catching a real bug.
There is a quick test that you can do to look for JTAG build errors:

Checkout dragonphy/jtag.py from the small_fixes branch (not the whole commit, just that one file).  This fixes an issue where JTAG build errors weren't being properly reported:

> git fetch
> git checkout small_fixes -- dragonphy/jtag.py

Rebuild the JTAG registers

> rm -rf build
> python make.py --view cpu

See if there are any exceptions, which can happen if you run out of registers.

If you're running out of registers, a quick fix is to consolidate a couple of one-bit registers into a single multi-bit register.  This is what I did in the small_fixes branch with the misc_ctrl_bits register.  If you don't see any new errors, then we probably have to dig further into the JTAG generator to figure out what's going on.
One unrelated question -- why does the V2T gain have to be adjusted in PFD offset?  Does this have to do with changes to the ADC?

Steven,
I followed the instructions you guided but I could not find any error or exception.
(the bit overflow warning still exists)
Actually, if I compare "acore_intf.md" (between master and analog_core_update), the number of registers is decreased from 71 to 62.
So, I think it is not running out of register.
Do you have any other idea to test about the emulation fail?
-Sung-Jin

From: Steven Herbst<EMAIL_ADDRESS>Sent: Saturday, October 10, 2020 1:28 PM
To: StanfordVLSI/dragonphy2<EMAIL_ADDRESS>Cc: Sung-Jin Kim<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [StanfordVLSI/dragonphy2] analog_core updates (#125)
Great progress! Looks like only the FPGA emulation is failing. I suspect that may be due to the JTAG register overflow warning -- we don't have any CPU-based tests that thoroughly exercise the JTAG interface, but that is exercised more fully in emulation. So emulation may be catching a real bug.
There is a quick test that you can do to look for JTAG build errors:

Checkout dragonphy/jtag.py from the small_fixes branch (not the whole commit, just that one file). This fixes an issue where JTAG build errors weren't being properly reported:

git fetch
git checkout small_fixes -- dragonphy/jtag.py

Rebuild the JTAG registers

rm -rf build
python make.py --view cpu

See if there are any exceptions, which can happen if you run out of registers.

If you're running out of registers, a quick fix is to consolidate a couple of one-bit registers into a single multi-bit register. This is what I did in the small_fixes branch with the misc_ctrl_bits register. If you don't see any new errors, then we probably have to dig further into the JTAG generator to figure out what's going on.
One unrelated question -- why does the V2T gain have to be adjusted in PFD offset? Does this have to do with changes to the ADC?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/StanfordVLSI/dragonphy2/pull/125#issuecomment-706606683, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGWDJISAH3MILUJDFKI5RTDSKC7YBANCNFSM4SHH7RXQ.

Hi @sjkim85 -- thanks for checking that.  I still suspect it is related to the JTAG block, since if there are bitwidth issues in the register address decoding, that could mean that JTAG reads/writes aren't being executed properly.  @zamyers, do you have some thoughts on this, given that it doesn't look like Sung-Jin is running out of registers?


x1262 core—As TS (Katy) I want to record section thickness to a precision of 0.5 for FFPE sectioning and actually record the thickness for HTA

@khelwood I am getting this error when trying to set the value to 3.5:

@KatyTudor Hopefully working now.

@khelwood working great now thanks

@sabrine33 thanks for fixing it :-)

@sabrine33 thanks for fixing it :-)

no problem :)


Model Review

Hey @fivetran-jamie! Great work! I just mostly had questions for me to understand the package better.
I noticed that a lot of the comments I have would just be repeated to all the models e.g. all of my comments in *app_version_report cascades to all of your other models -- and I think the most critical questions I had across all these models are:

Can you explain why a full outer join is necessary? (I'm probably very likely missing something)
What is your philosophy on separating certain logic into intermediate vs including in final? As well as your commenting in code philosophy? Mostly been thinking about how we should comment more/less as a team and how to better surface things that should be brought to the user's attention. 🤔

oh @fivetran-sheringuyen i don't see any comments in app_version_report?
but i can answer your questions:

The full outer joins are necessary because no one report could really serve as an "anchor" for a left join or something, as there could be days where your app had crashes but not installs, or whatever other metric. the alternative route would be doing some union alls  and then aggregating + de-duping on overlapping days (ie days that have both installs and crashes), but i figured that's what full outer joins are for 🤷♂
(a) intermediate vs final logic philosophy: hmmm basically, if i'm doing something with an individual table and it takes more than 2 ctes (including 1 to just select * from {{ var('table_name') }}), i moved it to the intermediate layer
(b) with regards to commenting, i just want people to know what's going on when they look at the code. so if something isn't ultra intuitive to me or others, i try to include a comment on what's happening and/or why it needs to happen (and potential quirks in the output). i myself have a "more is more" attitude toward comments lol, but if they're confusing then i'm definitely open to adjusting or trimming them down

@fivetran-sheringuyen and @fivetran-jamie are we good to close this PR out?


More syntax highlighting in readme

Codecov Report

Merging #12 into master will not change coverage by %.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #12   +/-   ##
=======================================
  Coverage   91.30%   91.30%
=======================================
  Files           1        1
  Lines          69       69
=======================================
  Hits           63       63
  Misses          3        3
  Partials        3        3

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 92cfa71...5ce0d54. Read the comment docs.


delete old PR branches

This repo has a lot of old little PR branches
I'm not github expert, but I think it's probably best to delete branches when merging a pull request each time

I've deleted everything that had been merged in awhile ago.
@ViolaineCartONG  & @pedrito1414 are any of your *-patch-# branches still active?

ok for me, you can delete mines...

ditto.
On Tue, Apr 26, 2016 at 8:17 AM, ViolaineCartONG<EMAIL_ADDRESS>wrote:

ok for me, you can delete mines...
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/MissingMaps/missingmaps.github.io/issues/167#issuecomment-214648775

--
Pete Masters
Missing Maps Project Coordinator
+44 7921 781 518
missingmaps.org http://www.missingmaps.org/
@pedrito1414 https://twitter.com/TheMissingMaps
@theMissingMaps https://twitter.com/TheMissingMaps
facebook.com/MissingMapsProject
https://www.facebook.com/MissingMapsProject

thanks all. cleaner now. down to 6.


bug: Add duplicate prefix check for mark and unmark command

Resolves #173 and #174

This violates the feature freeze since:

Q5: Can we tweak validity checks for a user input, or error/exception handling?
A:

Can be allowed only if the current behavior causes the software to misbehave (i.e., crash, give incorrect results, store inconsistent data, or make it unusable for typical users).
Handling extraneous inputs (e.g., extra parameters, repeated parameters etc.) in commands: The command 'forgiving' these extraneous inputs (i.e., giving an output same as or similar to if those inputs are not present) is not incorrect. You can mention in the UG that such inputs will be ignored. AB3 already does a similar thing for some commands. Any special handling of such inputs can be left as a future enhancement.

We will have to put this in the planned enhancements section of the DG to protect us from this bug.

We can only have up to 10 of these immunities.

type.FeatureFlaw bug reports matching an item in this section will not be penalized for the team, and testers will not earn credit for reporting them either. However, testers can report type.FeatureFlaw bugs on the enhancements listed in this section, if they think the planned feature tweak itself is flawed/inadequate.

We lose more marks violating the feature freeze.

Ohhhh, that's tough. Will update the DG to reflect this then


github.com/esimov/pigo/webcam does not build

# github.com/esimov/pigo/webcam
src/github.com/esimov/pigo/webcam/main.go:127:28: multiple-value pigo.Unpack() in single-value context

Found by smallrepo.
Build log: https://smallrepo.com/builds/20180607-063653-c1d35e4f

I've updated the core API before (https://github.com/esimov/pigo/issues/2), this is why you got the above error. This issue is fixed now.


High priority: Hul'q'umi'num' audio not appearing on some of the individual species pages

Audio that that is available in the biodiversity panels in the storymap is not appearing in some of the individual species pages (under Browse all Species). I noticed this for Salmonberry, Heron, Camas, not sure if it's true for others. @amb26 is there an easy way to cross-check that we have all the audio that is available showing up on the individual species pages?

This should be resolved now - I've moved the main site to the same system for resolving audio links as the storymap site and copied across all the audio files


Enable hadoop high availability(HA) automatically

This PR enables enabling high availability for Hadoop stack automatically. In the past we have enabled HA by manually altering roles/attributes.

Closing this PR. Will open against friendly.


KeyVault Mgmt multiapi

(message created by the CI based on PR content)

Codecov Report

Merging #2927 into master will decrease coverage by <.01%.
The diff coverage is 69.28%.

@@            Coverage Diff             @@
##           master    #2927      +/-   ##
==========================================
- Coverage   56.91%    56.9%   -0.01%
==========================================
  Files        7774     7778       +4
  Lines      159828   159897      +69
==========================================
+ Hits        90960    90994      +34
- Misses      68868    68903      +35

Impacted Files
Coverage Δ

...yvault/v2018_02_14/operations/vaults_operations.py
47.63% <ø> (ø)

...re/mgmt/keyvault/v2018_02_14/models/ip_rule_py3.py
71.42% <ø> (ø)

...mt/keyvault/v2018_02_14/models/vault_properties.py
100% <ø> (ø)

...eyvault/v2018_02_14/models/network_rule_set_py3.py
44.44% <ø> (ø)

...t/v2018_02_14/models/vault_patch_properties_py3.py
26.66% <ø> (ø)

.../azure/mgmt/keyvault/v2018_02_14/models/ip_rule.py
71.42% <ø> (ø)

...mt/keyvault/v2018_02_14/models/network_rule_set.py
44.44% <ø> (ø)

...vault/v2018_02_14/models/vault_patch_properties.py
26.66% <ø> (ø)

...mgmt/keyvault/v2018_02_14/operations/operations.py
28.12% <ø> (ø)

..._02_14/models/key_vault_management_client_enums.py
100% <ø> (ø)

... and 94 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 4009970...912fd07. Read the comment docs.


nasu readme leads to unexisting page

in nasu sourcehut page in controls section there's a link to themes page, but it seems that it should point to this page instead.

fixed :) thanks!


Database init

Implement database connect, CURD, and test case.

Python filenames should follow snake_case not camelCase. You should rename shopCartFactory.py to shop_cart_factory.py to be PEP8 compliant.


Generic Thread-safe MSIDLRUCache

Proposed changes
While implementing throttling cache, it was brought up that it might be useful to extend the class to be more generic and usable by other data types.
Here's the implementation for generic LRU cache + unit test coverage.
Type of change

[x] Feature work
[ ] Bug fix
[ ] Documentation
[ ] Engineering change
[ ] Test
[ ] Logging/Telemetry

Risk

[ ] High – Errors could cause MAJOR regression of many scenarios. (Example: new large features or high level infrastructure changes)
[x] Medium – Errors could cause regression of 1 or more scenarios. (Example: somewhat complex bug fixes, small new features)
[ ] Small – No issues are expected. (Example: Very small bug fixes, string changes, or configuration settings changes)

Additional information

Added few minor comment, otherwise looks good. And thanks for the comments in the code, they help!

Added few minor comment, otherwise looks good. And thanks for the comments in the code, they help!


Don't call make_absolute more often than necessary in IRGenDebugInfo.

(cherry picked from commit 869dba0674f658277225bb78b12de69a16085586)
rdar://problem/31542995
• Explanation: Fix a compile time performance problem caused by invoking llvm::make_absolute repeatedly on every filename while generating debug info.
• Scope of Issue: Compiling swift code with -gline-tables-only and -g.
• Origination: Was there since the swift bringup.
• Risk: Low.  The fix is small and targeted.
• Reviewed By: @mxswd
• Testing: This is an NFC change.

@swift-ci please smoke test

@swift-ci please smoke test

I think this is obsolete now.


Animated water looks absurdly strange from different angles

What you were trying to do
Trying to turn on animated water and look nice.
What actually happened
When I attempted to turn on the animated water (though successfully turned on), the behaviors of the animated water seemed strange. When looked from different viewports (e.g. from the north and the south), the level of the water varies differently, and constantly changes according to viewport. Probably because the water is rendered separately from the blocks and entities, it seems to have a de-sync between water rendering and block rendering, where they should stick to each other at borders.
In other words, at the borders where water meet blocks, from some angles of view we may see through the water (a gap between the water surface and the edge of the land).
How to reproduce

Turn on animated water
View from different angles

Log details and game version
Pre-Alpha #63 / Alpha 3.
Computer details

Intel Core 2 Duo T7500
NVidia Quadro FX570M
1GB Java Heap Space

A screenshot would be added later.

Hey there - yep, the animated water is meant to have "waves" which pretty much work, but do not connect well to the existing block grid on a beach, for instance. Same issue as #440 with trees and one suggestion was #504 to hide the gap using a crashing foam type effect when the waves hit land. There are probably other options as well.
Both those issues are sadly pretty old as we lost @begla who was the wizard of such things :-) Right now we're refactoring the rendering system to make it easier to implement new effects, actually have a Google Summer of Code student working on it. I'm still not sure when it'll be worked on though. But we may not have an explicit issue covering the request so this issue should work well for that, thanks!


Umami demo login help required

I have followed the example of setting up the umami demo but am stuck on the last bit, logging in.
I notice from the drupal site it states:

Simple OAuth is an implementation of the OAuth 2.0 Authorization Framework RFC. Using OAuth 2.0 Bearer Token is very easy. This project is focused in simplicity of use and flexibility. When deciding which project to use, also consider other projects like OAuth, an OAuth 1 implementation that doesn't rely on you having https in your production server.

I am assuming for this to work I need to have https setup?
Based on this assumption, is there any support for https when running this codebase locally? I am also not sure if both client and server need to be behind https or if in fact this is a red herring.
I have tried installing a self signed certificate on the drupal site (head) but node js complains that the certificate is not signed etc. I can override this using NODE_TLS_REJECT_UNAUTHORIZED = "0" but then the other issue is I cannot see any detail pages and still cannot login from the client.
Apologies if this has been asked before but I would like to be able to test logging etc  in on my local if possible.

Just to update on this, client seems to be connecting but I am now getting
Unrecognized username or password. Please try again. I have tried logging in as super user as well as an editor or admin user.

Might have mentioned this else where but resolved this by using Simple_auth client_id for DRUPAL_CLIENT_ID


Window jump between monitors

I'm using a setup with two monitors with the tiling plugin only. When moving a window to the other monitor, it seems to behave correctly. However when I sometimes exchange two windows between the monitors, the second move often trigger a reset in the position of the first window (return to its previous monitor). A restart of chunkwm is often required to be able to perform such switch.
Not sure it is linked, but chunkwm seems to lose track of hidden windows after some times. It often appears at the same time as the exchange issue.

However when I sometimes exchange two windows between the monitors, the second move often trigger a reset in the position of the first window (return to its previous monitor).

How is this exchange performed?

Not sure it is linked, but chunkwm seems to lose track of hidden windows after some times. It often appears at the same time as the exchange issue.

Just for clarification, do you mean hidden as in hiding applications (cmd + h) or hidden as in minimized windows (cmd + m) ?

How is this exchange performed?

Taking the first window on the other screen with the mouse. Then same in the other direction with the second window.

Just for clarification, do you mean hidden as in hiding applications (cmd + h) or hidden as in minimized windows (cmd + m) ?

Hidden (cmd + h) ones, minimized work fine.

The same behaviour seems to happen when I open (e.g.) a PDF A in a PDF reader app which already has another open PDF B, then both PDF A&B jump to one of the monitors at the same position (one over the other).

Taking the first window on the other screen with the mouse. Then same in the other direction with the second window.

This should be resolved in the lastest version (0.3.5). If you still experience issues with this in the new version, there is not much more that can be done, and you'd be better of using the built-in commands for moving windows around.

Not sure it is linked, but chunkwm seems to lose track of hidden windows after some times. It often appears at the same time as the exchange issue.

I have not been able to reproduce the issue with hidden windows.
Closing this.
If you are having issues with the latest version, feel free to create a new issue report(s)

Thanks!


After VSC upgrade source control diff inline does not show old lines

Type: Bug

Modify a line in package.json
Click on package.json line in source control
The inline view show only the new line, not the old one
Instead, the split view show both lines.
This problem does not happens with all files of the project, only some of them.

 Unfortunately, it's hard for us to understand what issue you're seeing. Please help us out by providing a screen recording showing exactly what isn't working as expected. While we can work with most standard formats, .gif files are preferred as they are displayed inline on GitHub. You may find https://gifcap.dev helpful as a browser-based gif recording tool.
If the issue depends on keyboard input, you can help us by enabling screencast mode for the recording (Developer: Toggle Screencast Mode in the command palette). Lastly, please attach this file via the GitHub web interface as emailed responses will strip files out from the issue.
Happy coding!

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!

After machine reboot the problem does not happen anymore.

Today happened again. In line 46 I changed the value from true to false, but the working tree shows only the new value. Note that in the scrollbar both kind of line are show.

The same happened at line 213 where I changed two lines into one.

/gifPlease

Thanks for reporting this issue! Unfortunately, it's hard for us to understand what issue you're seeing. Please help us out by providing a screen recording showing exactly what isn't working as expected. While we can work with most standard formats, .gif files are preferred as they are displayed inline on GitHub. You may find https://gifcap.dev helpful as a browser-based gif recording tool.
If the issue depends on keyboard input, you can help us by enabling screencast mode for the recording (Developer: Toggle Screencast Mode in the command palette). Lastly, please attach this file via the GitHub web interface as emailed responses will strip files out from the issue.
Happy coding!

Besides the screenshot I sent, no operation needs to be documented with a gif. The problem appears suddenly. Now VSC works as usual, so I cannot provide any more information.

@hediet, could you please take a look as this seems to be related to the diff editor? Thanks!

This should be fixed with https://github.com/microsoft/vscode/pull/201714
/duplicate https://github.com/microsoft/vscode/issues/198471


Store split offsets for ORC files

I had to reopen the file with an ORC reader to get the stripe offsets. Stripe information is cached in the writer but it is not made public AFAICT.  If folks are OK with the approach, I will try to add tests for this, similar to #186
cc: @edgarRd

Thanks @rdsr! Can you add a test for this like the one for Parquet?

@rdblue I guess you mean this test TestBasicWrite. The problem here is that I cannot simple update that test as Spark write support for ORC is not available. I'll try to write a separate ORC standalone test similar to TestBasicWrite but without the Spark engine support.
Thanks

Good point. Let's at least get some test in that validates we get the splits, but I see what you mean that we can't build an end-to-end test.

Thanks for adding this @rdsr. I assume that a test within the ORC package should be possible and validating that the splits are correctly retrieved.

On the other hand, I think this may be a separate question, but do we want write support in ORC at all? Or should we just remove all the code related to writes and just not support it in Iceberg?
I assume for most people the main use case would be to easily migrate existing ORC datasets, but moving forward to write in Parquet.
What do you think?

Hi @edgarRd, my take would be to keep the write support we currently have. Different companies will have different preferences and if folks would like to contribute and improve ORC support, without negatively affecting the Iceberg abstractions/APIs,  we should allow that.  This could help Iceberg get more adoption and contributions.

I agree, there's no need to make that choice for people using Iceberg. If someone wants to use ORC, it should ideally work. But we need to get it to where we can guarantee the same behavior as the other formats.

Thanks for adding a test, @rdsr! I just merged this.


curators should be in a separate service

everything in server/main.js should be moved to a standalone service

Maybe we can try start it with another process manager and remove the server code from Nginx passenger.

this is causing more and more bugs, therefore mark as P1

Build the front and back ends in separate apps and connect them via DDP. Then we can keep all reactivities.
https://stackoverflow.com/questions/44246337/multiple-meteor-apps-with-same-backend

close with curator branch.


Unable to reference a term in the default section !? :thinking:

Re,
It most probably must be me, but I'm unable to reference a term defined in the default section:
The term is defined as
myterm
:   Myterm tests default glossary section

And referenced as:
Referencing <:myterm> <_:myterm> in default section.

Which renders as "<:myterm>" and "<_:myterm>"
Thanks in advance for your help

Thanks for your feedback.
On the first glance, this seems to be a bug, I try to address this ASAP.

This was in fact a bug since the suggested link syntax lead to some quoting issues.
So the link syntax has now changed slightly to either
<term:>

or
<default:term>

This is released now with version v1.5.6 and available on pypi.org


Update dependency qs to v6.11.2

This PR contains the following updates:

Package
Type
Update
Change

qs
dependencies
patch
6.11.1 -> 6.11.2

Release Notes

ljharb/qs
v6.11.2
Compare Source

[Fix] parse: Fix parsing when the global Object prototype is frozen (#473)
[Tests] add passing test cases with empty keys (#473)

Configuration
📅 Schedule: Branch creation - "before 3am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Self-Hosted Renovate Bot. Find all logs here.

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: package.json
Command failed: make bs _bootstrap-doc-tools build
npm notice
npm notice New patch version of npm available! 9.6.5 -> 9.6.7
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.6.7>
npm notice Run `npm install -g<EMAIL_ADDRESS>to update!
npm notice
Creating a virtualenv for this project...
Pipfile: /tmp/renovate/repos/github/coda/packs-sdk/Pipfile
Using /opt/buildpack/tools/python/3.11.3/bin/python3 (3.11.3) to create virtualenv...
created virtual environment CPython3.11.3.final.0-64 in 344ms
  creator CPython3Posix(dest=/home/ubuntu/.local/share/virtualenvs/packs-sdk-9EXwiP-0, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/ubuntu/.local/share/virtualenv)
    added seed packages: pip==23.1.2, setuptools==67.7.2, wheel==0.40.0
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

✔ Successfully created virtual environment!
Virtualenv location: /home/ubuntu/.local/share/virtualenvs/packs-sdk-9EXwiP-0
/bin/bash: sudo: command not found
make: *** [Makefile:65: _bootstrap-doc-tools] Error 127

Thanks for fixing this, David.


How to create a Xml document with same class, different structures with C#?

I have to create a XML structure but dont know how to do this. I have in one xml document two different structures with the same class. The first structure shows a structure that element is a List of . Also element is a list from itself.
The second structure shows that element Member also a List is from . These two structures must generated in one xml document. If I create a another class that is a List and give the Xmlroot with the name "Member", the Xml-Generator give an exception that soms classes have the same name. Can anyone help me to solve this? How to get the structure of Subelements also in these classes?
First structure

Second structure

The code of the classes what I now have is:
public class Section : List<Member>
{
    public Section() {}

    public Section(string aName)
    {
      Name = aName;
    }

    [XmlAttribute] public string Name { get; set; }
}

 public class Member : List<Member>
  {
    public Member()
    {
    }

    public Member(string aName, string aDatatype, string aRemanence)
    {
      Name = aName;
      Datatype = aDatatype;
      Remanence = aRemanence;
      Sections = new List
();
    }

    public Member(string aName, string aDatatype, string aAccessibility, string aRemanence)
    {
      Name = aName;
      Datatype = aDatatype;
      Accessibility = aAccessibility;
      Remanence = aRemanence;
    }

    [XmlAttribute] public string Name { get; set; }
    [XmlAttribute] public string Datatype { get; set; }
    [XmlAttribute] public string Accessibility { get; set; }
    [XmlAttribute] public string Remanence { get; set; }

    public List
 Sections { get; set; }

    [XmlArrayItem("BooleanAttribute")]
    public bool[] AttributeList{ get; set; }
    public string StartValue { get; set; }

    [XmlArrayItem("MultiLanguageText")]
    public string[] Comment { get; set; }

Hi @aGreefa thank you for writing in with your question.  I am a little confused however by what you mean by "Xml Generator".  Do you mean the serializer?  Can you verify you are using the classic XmlSerializer or ExtendedXmlSerializer?
Additionally, it appears the code you are using didn't make it all through and I had to edit your code sample.  Please ensure all code is available and I can further assist.
Finally, I do see that you are making use of classic XmlSerializer properties.  While some properties are supported, some are not.  One of which would be the XmlArrayItem attribute, which after a quick search of the codebase there are no supporting components.  You can see more here for more context of classic serialization support:
https://github.com/ExtendedXmlSerializer/home/wiki/FAQs#systemxmlserializer-vs-extendedxmlserializer
The general recommendation is that if you are using XML that has trouble with ExtendedXmlSerializer, the best recourse is to run it through XSLT and produce an XML document that ExtendedXmlSerializer understands.  From there, you can then load the document in ExtendedXmlSerializer and continue with further processing.
Please let me know the answer to the above questions and/or any further questions you have and I will do my best to assist you. 👍

Hi Mike-E-angelo. I am using the ExtendedXmlSerializer.  I mean the with Xml Generator the ExtendedXmlSerializer. This is the class code what I have for generating Xml. The Xml I sended, did I make by hand, that's what I need to have but dont know how to get the good Classes structure to get this output.

OK @aGreefa thank you for the further and additional context.  If you are able to provide some sample XML along with a failing test/code sample of what you are experiencing I can take a look into it for you.

Thanks for helping. I created the failing test code for this.
This is the Main program:
public class Program
{
static void Main(string[] args)
{
GenerateOutput();
}
static List
 fSections =
  new List

  {
    new Section("Static")
    {
      Members = new List<Member>
      {
        new Member("Section0", "Struct")
        {
          SubMember = new List<object>()
          {
            new Member("ACR_5603", "\"UDT_ACR_Settings\""),
            new Member("ACR_5604", "\"UDT_ACR_Settings\""),
            new Member("BUC_0001_0016", "Array[1..16] of \"UDT_BUC_Settings\"")
            {
              SubMember = new List<object>()
              {
                new Section("None")
                {
                  Members = new List<Member>
                  {
                    new Member("CanalFull", "\"UDT_DEV_DIG_INPUT_Settings\"")
                    {
                      SubMember = new List<object>
                      {
                        new List

                        {
                          new Section("None")
                          {
                            Members = new List<Member>
                            {
                              new Member("SettOnDelay", "Time")
                              {
                                SubMember = new List<object>
                                {
                                  new Subelement
                                  {
                                    Path = 1, StartValue = "T#OMS"
                                  },
                                  new Subelement
                                  {
                                    Path = 2, StartValue = "T#OMS"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
  };

public static XDocument GenerateXml<T>(T aModel)
{
  ConfigurationContainer lConfiguration = new ConfigurationContainer();

  var lSerializer = lConfiguration
    .Type<List<object>>(aTypeConfiguration => aTypeConfiguration.Ignore(typeof(List<object>).GetProperty(nameof(List<object>.Capacity))))
    .Create();

  XDocument lXDocument = XDocument.Parse(lSerializer.Serialize(aModel));

  return lXDocument;
}

public static void GenerateOutput()
{
  XDocument lOutputDocument = GenerateXml(fSections);

  using (XmlWriter lXmlWriterDB = XmlWriter.Create(File.Create("C:\\Users\\AvanBeem\\Documents\\Automation2021\\Test_Subelement\\Test_Subelement.xml"),
    new XmlWriterSettings {Indent = true, IndentChars = "\t", OmitXmlDeclaration = true, CloseOutput = true}))
  {
    lOutputDocument.Save(lXmlWriterDB);
  }
}

}
This are all the classes for the Xml:
public class Section
{
public Section()
{
}
public Section(string aName)
{
  Name = aName;
}

[XmlAttribute] public string Name { get; set; }

[XmlElement("Member")]
public List<Member> Members { get; set; }

}
public class Member
{
public Member()
{
}
public Member(string aName, string aDatatype)
{
  Name = aName;
  Datatype = aDatatype;
}

[XmlAttribute] public string Name { get; set; }

[XmlAttribute]
public string Datatype { get; set; }

[XmlElement("Sections", typeof(List
))]
[XmlElement("Member", typeof(Member))]
[XmlElement("Subelement", typeof(Subelement))]
public List<object> SubMember { get; set; }

}
public class Subelement
{
[XmlAttribute]
public int Path { get; set; }
[XmlElement]
public string StartValue { get; set; }

}
The Xml what i want to have:

OK great, thank you for all that information @aGreefa, and for taking the time to compile it.  I see now what you mean by Xml generator.  I thought that you might have been doing some legacy XSD/XML generation based on the attributes and wanted to be sure.
Now as far as your desired output, I am afraid we are running into a few known issues with ExtendedXmlSerializer here, particularly when it involves classic XML serialization.
My recommendation for this scenario is to use XSLT on the document created by ExtendedXmlSerializer.  You should be able to format the document exactly as desired via XSLT, and then send that resulting document onto the next consumer in your scenario.
I know that isn't ideal, and will involve some more work for you, but that's the best option I can recommend.  There are some configurations we can apply to the ConfigurationContainer, but at the end of the day, we're running into a few issues in how ExtendedXmlSerializer creates the output, particularly with properties that are list elements.
There is also the issue with the exs:member="true" which is a hacky way that is currently implemented to discern between member properties that have the same names as types in the same namespace.  This is easily removed via XSLT if needed.
Sorry that I am not able to provide a helpful answer here.  If you do have any further questions/comments please do let me know and I will see if I can assist you further.

Going through the issues here, and this appears to be addressed as much as we address it.  It has been added as a known issue for others to view when reading the README.  Please do let me know if you have any additional questions/issues and I will do my best to assist. Closing for now.


Test Plan

Mapepire test cases

Test Case: Connect to Database
Test Case ID: TC01
Type: Connect
Description: Verify successful connection to the database. Ensure existing connections are implicitly disconnected.
Inputs:
props: "system=mySystem;uid=user;pwd=password"
application: "MyApp"
technique: "cli"
Expected Outputs:
Status Code: 200 OK
Response Fields:
job: Should return the server job identifier (e.g., "QPADEV0001")
Validation Criteria:

Test Case: Connect to Database with Invalid Properties
Test Case ID: TC02
Type: Connect
Description: Verify that connection fails when invalid connection properties are provided.
Inputs:
props: "system=invalidSystem;uid=wrongUser;pwd=wrongPassword"
application: "MyApp"
technique: "cli"
Expected Outputs:
Status Code: 401 Unauthorized or appropriate error code
Response Fields:
error: A descriptive error message indicating connection failure (e.g., "Invalid credentials or system not found.")
Validation Criteria:

Ensure that the error field provides a clear reason for the connection failure.
Confirm that no job identifier is returned.

Test Case: Run CL Command Successfully
Test Case ID: TC03
Type: CL
Description: Verify that a CL command is executed successfully and returns the correct job log entries.

Preconditions:
A valid database connection must be established.
Inputs:
cmd: "WRKACTJOB"
Expected Outputs:
Status Code: 200 OK
Response Fields:
data: Should return a list of job log entries related to the executed command.
Validation Criteria:
Confirm that the data field contains relevant job log entries.
Verify that the command was executed successfully by checking the contents of the job log.

Test Case: Run Invalid CL Command
Test Case ID: TC04
Type: CL
Description: Verify that an invalid CL command returns an appropriate error message and job log.

Preconditions:
A valid database connection must be established.
Inputs:
cmd: "INVALIDCOMMAND"
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
error: A descriptive error message indicating the failure of the command.
data: Should return job log entries indicating the nature of the error.
Validation Criteria:
Ensure that the error field clearly indicates the reason for the command failure.
Verify that the data field contains job log entries corresponding to the error.

Test Case: Connect to Database via TCP Technique
Test Case ID: TC05
Type: Connect
Description: Verify that the connection can be established using the TCP technique.

Inputs:
props: "system=mySystem;uid=user;pwd=password"
application: "MyApp"
technique: "tcp"
job: ""
Expected Outputs:
Status Code: 200 OK
Response Fields:
job: Should return the server job identifier.
Validation Criteria:
Verify that the connection is successfully established using the TCP technique.
Confirm that the job field is populated with a valid job identifier.

Test Case: Implicit Disconnection on New Connect Request
Test Case ID: TC06
Type: Connect
Description: Verify that making a new connection request from the same client implicitly disconnects any existing connection.

Preconditions:
A valid database connection must be established.
Inputs:
props: "system=mySystem;uid=user;pwd=password"
application: "MyApp"
technique: "cli"
job: ""
Expected Outputs:
Status Code: 200 OK
Response Fields:
job: A new server job identifier.
Validation Criteria:
Confirm that the job identifier returned differs from the previous connection, indicating an implicit disconnection.
Ensure that no errors are reported in the response.
Test Cases for SQL Request

Test Case: Run a Simple SQL Query
Test Case ID: TC01
Type: SQL
Description: Verify that a simple SQL SELECT statement is executed successfully and returns the correct data.

Inputs:
sql: "SELECT * FROM QGPL.TEST_TABLE"
rows: 10
terse: false
Expected Outputs:
Status Code: 200 OK
Response Fields:
metadata: Contains column metadata (e.g., column names, data types).
data: Contains up to 10 rows of data from QGPL.TEST_TABLE.
is_done: true if all rows have been fetched, false if more rows are available.
Validation Criteria:
Verify that the metadata field correctly describes the result set.
Confirm that the data field contains the expected rows.
Check that is_done is true when the result set contains 10 or fewer rows.

Test Case: Run an SQL Query with Large Dataset
Test Case ID: TC02
Type: SQL
Description: Verify that the API handles large result sets by returning only the specified number of rows on the first request.

Inputs:
sql: "SELECT * FROM QGPL.LARGE_TABLE"
rows: 50
terse: false
Expected Outputs:
Status Code: 200 OK
Response Fields:
metadata: Contains column metadata for QGPL.LARGE_TABLE.
data: Contains the first 50 rows of the result set.
is_done: false if there are more rows available, true if the entire dataset has been returned.
Validation Criteria:
Ensure that only the specified number of rows (50) is returned in the data field.
Confirm that is_done is false if more rows are available.
Check that subsequent requests can retrieve additional rows until is_done is true.

Test Case: Run an SQL Query in Terse Format
Test Case ID: TC03
Type: SQL
Description: Verify that the SQL query results are returned in terse format when requested.

Inputs:
sql: "SELECT * FROM QGPL.TEST_TABLE"
rows: 5
terse: true
Expected Outputs:
Status Code: 200 OK
Response Fields:
metadata: Contains column metadata in a compact format.
data: Contains 5 rows of data in terse format.
is_done: true if all rows have been fetched, false if more rows are available.
Validation Criteria:
Confirm that the metadata and data fields are returned in terse format, reducing data verbosity.
Ensure that the data field still accurately represents the expected rows.

Test Case: Run an Invalid SQL Query
Test Case ID: TC04
Type: SQL
Description: Verify that an invalid SQL query returns an appropriate error message.
Inputs:
sql: "SELECT * FROM NON_EXISTENT_TABLE"
rows: 10
terse: false
Expected Outputs:

Status Code: 400 Bad Request or appropriate error code
Response Fields:
error: A descriptive error message indicating the reason for the query failure.
Validation Criteria:
Ensure that the error field provides a clear and descriptive message regarding the invalid query.
Verify that no data or metadata fields are returned.

Test Case: Run an SQL Query with Edge Case Inputs
Test Case ID: TC05
Type: SQL
Description: Verify that the API handles edge case inputs such as an empty sql string or rows set to 0.

Inputs:
sql: ""
rows: 0
terse: false
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
error: A descriptive error message indicating the nature of the invalid input.
Validation Criteria:
Ensure that the error field clearly explains why the input is invalid.
Confirm that the API gracefully handles edge cases without crashing or returning unexpected results.

Test Case: Fetch Remaining Rows of a Large Dataset

Test Case ID: TC06
Type: SQL
Description: Verify that the API allows fetching of additional rows after an initial request that did not return the full dataset.
Preconditions:
Initial request returned partial data with is_done set to false.
Inputs:
sql: "SELECT * FROM QGPL.LARGE_TABLE"
rows: 50
terse: false
Expected Outputs:
Status Code: 200 OK
Response Fields:
metadata: Should match the metadata of the initial request.
data: Contains the next set of rows from the result set.
is_done: true if all rows have been fetched, otherwise false.
Validation Criteria:
Confirm that the subsequent request retrieves additional rows starting from where the last request left off.
Ensure that is_done eventually returns true when all data has been fetched.
Test Cases for Prepare SQL Request

Test Case: Prepare a Simple SQL Statement
Test Case ID: TC01
Type: prepare_sql
Description: Verify that a simple SQL SELECT statement is prepared successfully.

Inputs:
sql: "SELECT * FROM QGPL.TEST_TABLE"
terse: false
Expected Outputs:
Status Code: 200 OK
Response Fields:
Status: SQL statement is prepared successfully.
Statement Handle: A unique identifier for the prepared SQL statement.
Validation Criteria:
Confirm that the SQL statement is prepared without errors.
Ensure that a valid statement handle is returned for future execution.

Test Case: Prepare SQL Statement in Terse Format
Test Case ID: TC02
Type: prepare_sql
Description: Verify that the SQL statement is prepared and returns metadata in terse format.

Inputs:
sql: "SELECT * FROM QGPL.TEST_TABLE WHERE COLUMN1 = ?"
terse: true
Expected Outputs:
Status Code: 200 OK
Response Fields:
Status: SQL statement is prepared successfully.
Metadata: Metadata returned in terse format.
Statement Handle: A unique identifier for the prepared SQL statement.
Validation Criteria:
Ensure that the terse format reduces verbosity while retaining necessary information.
Verify that the metadata accurately describes the prepared statement.

Test Case: Prepare an Invalid SQL Statement
Test Case ID: TC03
Type: prepare_sql
Description: Verify that an invalid SQL statement returns an appropriate error message.

Inputs:
sql: "SELECT * FROM NON_EXISTENT_TABLE"
terse: false
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
Error: A descriptive error message indicating why the SQL statement could not be prepared.
Validation Criteria:
Ensure that the error message clearly explains the issue with the SQL statement.
Confirm that no statement handle is returned.

Test Case: Prepare SQL Statement with No Terse Option Provided
Test Case ID: TC04
Type: prepare_sql
Description: Verify the default behavior when the terse option is not provided.

Inputs:
sql: "SELECT * FROM QGPL.TEST_TABLE WHERE COLUMN1 = ?"
Expected Outputs:
Status Code: 200 OK
Response Fields:
Status: SQL statement is prepared successfully.
Metadata: Metadata is returned in the default format.
Statement Handle: A unique identifier for the prepared SQL statement.
Validation Criteria:
Verify that the default format (non-terse) is used for metadata when terse is not specified.
Ensure that the statement handle is returned and valid.

Test Case: Prepare a Complex SQL Statement
Test Case ID: TC05
Type: prepare_sql
Description: Verify that a complex SQL statement involving joins, subqueries, and functions is prepared successfully.

Inputs:
sql: "SELECT A.COL1, B.COL2 FROM QGPL.TABLE_A A JOIN QGPL.TABLE_B B ON A.ID = B.ID WHERE A.COL3 IN (SELECT COL3 FROM QGPL.TABLE_C)"
terse: false
Expected Outputs:
Status Code: 200 OK
Response Fields:
Status: SQL statement is prepared successfully.
Metadata: Metadata reflecting the complex SQL statement.
Statement Handle: A unique identifier for the prepared SQL statement.
Validation Criteria:
Ensure that the complex SQL statement is prepared without errors.
Verify that the metadata accurately reflects the structure of the prepared SQL statement.

Test Case: Prepare SQL with Edge Case Inputs
Test Case ID: TC06
Type: prepare_sql
Description: Verify that the API handles edge cases such as an empty sql string.

Inputs:
sql: ""
terse: false
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
Error: A descriptive error message indicating why the SQL statement could not be prepared.
Validation Criteria:
Ensure that the API returns an appropriate error message for empty SQL input.
Confirm that no statement handle is returned.
Test Cases for Execute SQL Request

Test Case: Execute Prepared SQL Statement
Test Case ID: TC01
Type: execute
Description: Verify that a prepared SQL statement is executed successfully using a valid cont_id.

Inputs:
cont_id: "valid-prepared-statement-id"
batch: false
parameters: ["value1", "value2"]
Expected Outputs:
Status Code: 200 OK
Response Fields:
data: Resulting data from the executed SQL statement.
Validation Criteria:
Confirm that the SQL statement executes successfully and returns the expected results.
Ensure that the returned data matches the expected output based on the SQL statement.

Test Case: Execute SQL Statement in Batch Mode
Test Case ID: TC02
Type: execute
Description: Verify that multiple SQL operations can be added to a batch and executed together.

Inputs:
cont_id: "valid-prepared-statement-id"
batch: true
parameters: [["value1a", "value2a"], ["value1b", "value2b"]]
Expected Outputs:
Status Code: 200 OK
Response Fields:
data: Combined result set from all SQL operations in the batch.
Validation Criteria:
Ensure that all operations in the batch are executed successfully.
Verify that the returned data includes results from all executed SQL statements.

Test Case: Execute SQL with Missing cont_id
Test Case ID: TC03
Type: execute
Description: Verify that an error is returned when the cont_id is missing.

Inputs:
cont_id: ""
batch: false
parameters: ["value1"]
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
Error: A descriptive error message indicating that cont_id is required.
Validation Criteria:
Ensure that the error message clearly states that cont_id is missing.
Confirm that no data is returned.

Test Case: Execute SQL with Invalid cont_id
Test Case ID: TC04
Type: execute
Description: Verify that an appropriate error is returned when an invalid cont_id is provided.

Inputs:
cont_id: "invalid-prepared-statement-id"
batch: false
parameters: ["value1"]
Expected Outputs:
Status Code: 404 Not Found or appropriate error code
Response Fields:
Error: A descriptive error message indicating that the prepared SQL statement was not found.
Validation Criteria:
Ensure that the error message clearly explains that the provided cont_id is invalid.
Confirm that no data is returned.

Test Case: Execute SQL in Batch Mode without Parameters
Test Case ID: TC05
Type: execute
Description: Verify that executing in batch mode without parameters executes the batch correctly.

Inputs:
cont_id: "valid-prepared-statement-id"
batch: true
parameters: []
Expected Outputs:
Status Code: 200 OK
Response Fields:
data: Resulting data from the executed batch of SQL operations.
Validation Criteria:
Confirm that the batch is executed even when no parameters are specified.
Ensure that the returned data matches the expected output based on the SQL operations in the batch.

Test Case: Execute SQL with Empty Parameter Array
Test Case ID: TC06
Type: execute
Description: Verify that an error is returned when parameters are specified incorrectly in batch mode.

Inputs:
cont_id: "valid-prepared-statement-id"
batch: true
parameters: [[]]
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
Error: A descriptive error message indicating that parameters must not be empty.
Validation Criteria:
Ensure that the error message clearly states that empty parameter arrays are invalid.
Confirm that no data is returned.

Test Case: Execute SQL Statement with Mixed Parameters
Test Case ID: TC07
Type: execute
Description: Verify that SQL operations with mixed parameters execute correctly in batch mode.

Inputs:
cont_id: "valid-prepared-statement-id"
batch: true
parameters: [["value1a", "value2a"], ["value1b"]]
Expected Outputs:
Status Code: 200 OK
Response Fields:
data: Combined result set from all SQL operations in the batch.
Validation Criteria:
Ensure that all SQL operations in the batch execute successfully, regardless of the number of parameters.
Verify that the returned data includes results from all executed SQL statements, with proper handling of missing parameters where applicable.
Test Cases for Prepare and Execute SQL Request

Test Case: Prepare and Execute Valid SQL Statement
Test Case ID: TC01
Type: prepare_sql_execute
Description: Verify that a valid SQL statement is prepared and executed successfully.

Inputs:
parameters: ["value1", "value2"]
terse: false
Expected Outputs:
Status Code: 200 OK
Response Fields:
data: Resulting data from the executed SQL statement.
Validation Criteria:
Confirm that the SQL statement executes successfully and returns the expected results.
Ensure that the returned data matches the expected output based on the SQL statement.

Test Case: Prepare and Execute SQL Statement with Missing Parameters
Test Case ID: TC02
Type: prepare_sql_execute
Description: Verify that an error is returned when required parameters are missing.

Inputs:
parameters: []
terse: false
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
Error: A descriptive error message indicating that parameters are required.
Validation Criteria:
Ensure that the error message clearly states that required parameters are missing.
Confirm that no data is returned.

Test Case: Prepare and Execute SQL with Invalid Parameters
Test Case ID: TC03
Type: prepare_sql_execute
Description: Verify that an error is returned when invalid parameter types are provided.

Inputs:
parameters: [123, true] // Assuming SQL expects strings
terse: false
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
Error: A descriptive error message indicating that parameters must be of valid types.
Validation Criteria:
Ensure that the error message clearly explains that the provided parameters are invalid.
Confirm that no data is returned.

Test Case: Prepare and Execute SQL in Terse Format
Test Case ID: TC04
Type: prepare_sql_execute
Description: Verify that the SQL statement can be executed and the results returned in terse format.

Inputs:
parameters: ["value1", "value2"]
terse: true
Expected Outputs:
Status Code: 200 OK
Response Fields:
data: Resulting data in terse format from the executed SQL statement.
Validation Criteria:
Confirm that the SQL statement executes successfully and returns the expected results in terse format.
Ensure that the returned data matches the expected output based on the SQL statement.

Test Case: Prepare and Execute SQL Statement with No Parameters
Test Case ID: TC05
Type: prepare_sql_execute
Description: Verify that a SQL statement can be prepared and executed without parameters if the statement does not require them.

Inputs:
parameters: []
terse: false
Expected Outputs:
Status Code: 200 OK
Response Fields:
data: Resulting data from the executed SQL statement.
Validation Criteria:
Ensure that the SQL statement executes successfully without any parameters if allowed.
Verify that the returned data matches the expected output.

Test Case: Prepare and Execute SQL Statement with Large Parameter Array
Test Case ID: TC06
Type: prepare_sql_execute
Description: Verify that a SQL statement can be prepared and executed with a large array of parameters.

Inputs:
parameters: ["value1", "value2", "value3", "value4", "value5", ...] // Large array
terse: false
Expected Outputs:
Status Code: 200 OK
Response Fields:
data: Resulting data from the executed SQL statement.
Validation Criteria:
Confirm that the SQL statement executes successfully with the large array of parameters.
Ensure that the returned data matches the expected output based on the SQL statement.

Test Case: Prepare and Execute SQL Statement with SQL Syntax Error
Test Case ID: TC07
Type: prepare_sql_execute
Description: Verify that an error is returned when the SQL statement has a syntax error.

Inputs:
parameters: ["value1", "value2"]
terse: false
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
Error: A descriptive error message indicating that there is a syntax error in the SQL statement.
Validation Criteria:
Ensure that the error message clearly states that there is a syntax error in the SQL statement.
Confirm that no data is returned.
Test Cases for SQL More Request

Test Case: Fetch More Rows from a Valid Request
Test Case ID: TC01
Type: sqlmore
Description: Verify that more rows can be fetched successfully from a previous valid SQL request.

Inputs:
cont_id: "valid_request_id" // Valid request ID from a previous SQL request
rows: 10 // Maximum number of rows to return
Expected Outputs:
Status Code: 200 OK
Response Fields:
data: Array of the next set of data rows.
is_done: false (indicating more rows are available)
Validation Criteria:
Confirm that the response contains the expected data and the is_done field indicates more rows are available.
Ensure that the number of rows returned does not exceed the specified limit.

Test Case: Fetch More Rows with Invalid Request ID
Test Case ID: TC02
Type: sqlmore
Description: Verify that an error is returned when an invalid request ID is provided.

Inputs:
cont_id: "invalid_request_id" // Invalid request ID
rows: 10
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
Error: A descriptive error message indicating that the request ID is invalid.
Validation Criteria:
Ensure that the error message clearly states that the request ID is not valid.
Confirm that no data is returned.

Test Case: Fetch More Rows When All Rows Have Been Fetched
Test Case ID: TC03
Type: sqlmore
Description: Verify that the response indicates no more rows are available when all rows have been fetched.

Inputs:
cont_id: "request_id_all_fetched" // Valid request ID where all rows have been fetched
rows: 10
Expected Outputs:
Status Code: 200 OK
Response Fields:
data: [] (empty array, indicating no more data)
is_done: true (indicating that all rows have been fetched)
Validation Criteria:
Confirm that the response data is an empty array and the is_done field is set to true.
Ensure that the API correctly identifies that there are no more rows to fetch.

Test Case: Fetch More Rows with Zero Limit
Test Case ID: TC04
Type: sqlmore
Description: Verify that an error is returned when the maximum number of rows to return is zero.

Inputs:
cont_id: "valid_request_id" // Valid request ID from a previous SQL request
rows: 0 // Maximum number of rows to return
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
Error: A descriptive error message indicating that the number of rows must be greater than zero.
Validation Criteria:
Ensure that the error message clearly states that the number of rows requested must be greater than zero.
Confirm that no data is returned.

Test Case: Fetch More Rows with Negative Row Limit
Test Case ID: TC05
Type: sqlmore
Description: Verify that an error is returned when a negative maximum number of rows is specified.

Inputs:
cont_id: "valid_request_id" // Valid request ID from a previous SQL request
rows: -5 // Invalid number of rows
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
Error: A descriptive error message indicating that the number of rows must be a positive integer.
Validation Criteria:
Ensure that the error message clearly states that the number of rows requested must be a positive integer.
Confirm that no data is returned.

Test Case: Fetch More Rows with Large Row Limit
Test Case ID: TC06
Type: sqlmore
Description: Verify that more rows can be fetched with a large row limit.

Inputs:
cont_id: "valid_request_id" // Valid request ID from a previous SQL request
rows: 1000 // Maximum number of rows to return
Expected Outputs:
Status Code: 200 OK
Response Fields:
data: Array containing up to 1000 rows of data.
is_done: false (indicating more rows are available, or true if all rows are fetched)
Validation Criteria:
Confirm that the response contains the expected number of data rows without exceeding the specified limit.
Ensure that the is_done field reflects whether more rows are available.

Test Case: Fetch More Rows with Empty Previous Request
Test Case ID: TC07
Type: sqlmore
Description: Verify that an error is returned when trying to fetch more rows from a previous request that returned no data.

Inputs:
cont_id: "request_id_no_data" // Valid request ID from a previous SQL request that returned no data
rows: 10
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
Error: A descriptive error message indicating that no data is available to fetch.
Validation Criteria:
Ensure that the error message clearly states that there are no rows available to fetch from the previous request.
Confirm that no data is returned.
Test Cases SQL Close Request

Test Case: Successfully Close a Cursor
Test Case ID: TC01
Type: sqlclose
Description: Verify that a cursor can be closed successfully using a valid request ID.

Inputs:
cont_id: "valid_request_id" // Valid request ID from a previous SQL/prepare_sql/prepare_sql_execute request
Expected Outputs:
Status Code: 200 OK
Response Fields:
data: Confirmation message indicating that the cursor has been closed successfully.
Validation Criteria:
Confirm that the response indicates successful closure of the cursor.
Ensure that subsequent requests using the same cont_id return an error indicating the cursor is closed.

Test Case: Close Cursor with Invalid Request ID
Test Case ID: TC02
Type: sqlclose
Description: Verify that an error is returned when an invalid request ID is provided.

Inputs:
cont_id: "invalid_request_id" // Invalid request ID
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
Error: A descriptive error message indicating that the request ID is invalid.
Validation Criteria:
Ensure that the error message clearly states that the request ID is not valid.
Confirm that no data is returned.

Test Case: Close Cursor That is Already Closed
Test Case ID: TC03
Type: sqlclose
Description: Verify that an error is returned when trying to close a cursor that has already been closed.

Inputs:
cont_id: "already_closed_request_id" // Valid request ID from a previous SQL operation where the cursor has already been closed
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
Error: A descriptive error message indicating that the cursor is already closed.
Validation Criteria:
Confirm that the error message states that the cursor has already been closed.
Ensure that no data is returned.

Test Case: Close Cursor with Empty Request ID
Test Case ID: TC04
Type: sqlclose
Description: Verify that an error is returned when an empty request ID is provided.

Inputs:
cont_id: "" // Empty request ID
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
Error: A descriptive error message indicating that the request ID cannot be empty.
Validation Criteria:
Ensure that the error message clearly states that the request ID cannot be empty.
Confirm that no data is returned.

Test Case: Close Cursor with Null Request ID
Test Case ID: TC05
Type: sqlclose
Description: Verify that an error is returned when a null request ID is provided.

Inputs:
cont_id: null // Null request ID
Expected Outputs:
Status Code: 400 Bad Request or appropriate error code
Response Fields:
Error: A descriptive error message indicating that the request ID cannot be null.
Validation Criteria:
Ensure that the error message clearly states that the request ID cannot be null.
Confirm that no data is returned.

Test Case: Close Cursor with Non-Existent Request ID
Test Case ID: TC06
Type: sqlclose
Description: Verify that an error is returned when attempting to close a cursor with a non-existent request ID.

Inputs:
cont_id: "non_existent_request_id" // Non-existent request ID
Expected Outputs:
Status Code: 404 Not Found or appropriate error code
Response Fields:
Error: A descriptive error message indicating that the request ID does not exist.
Validation Criteria:
Ensure that the error message clearly states that the request ID does not exist.
Confirm that no data is returned.

Test Case: Close Cursor with Multiple Requests
Test Case ID: TC07
Type: sqlclose
Description: Verify that closing a cursor does not affect the ability to close the same cursor from different requests.

Inputs:
cont_id: "valid_request_id" // Valid request ID from a previous SQL operation
Expected Outputs:
Status Code: 200 OK for the first close request.
Status Code: 400 Bad Request or appropriate error code for the subsequent close request.
Response Fields:
First close request: data: Confirmation message indicating successful closure.
Second close request: Error: A message indicating the cursor is already closed.
Validation Criteria:
Confirm that the first close request is successful.
Ensure that the second close request returns an error indicating the cursor is already closed.

@ajshedivy Is this something you will be using for the py client tests? I wonder if this issue should be a nicely formatted page in the docs.

@ajshedivy Is this something you will be using for the py client tests? I wonder if this issue should be a nicely formatted page in the docs.

yes working on that now!


Output is an empty image

Hi, i am using the demo code + a small file to test what I am doing.
The code looks like this
<?php
	ini_set('memory_limit','-1');
	ini_set('max_execution_time', 0); //0=NOLIMIT
	ini_set('set_time_limit', 0); //0=NOLIMIT
	error_reporting(E_ALL);
	ini_set('display_errors', 1);

	require "vendor/autoload.php";
	use Endroid\QrCode\QrCode;

	$file_data = file_get_contents('small 1.6mb file');
	$data = base64_encode($file_data);

	$qrCode = new QrCode($data);

	header('Content-Type: '.$qrCode->getContentType());
	echo $qrCode->writeString();
?>

However the output is just a blank empty image

Hi @JosephShenton could you include the file so I can try to reproduce the issue here? Also, have you tried setting the image size and are you using the latest version?

Sure
I haven't tried setting the image size and yes latest version from composer.
Here is the file
You'll have to unarchive it since GitHub didn't support the file type. It successfully converts to base64 and I can decode it and get the exact file back but I need to either make one QRCode for the entire file or I need to make a sequence of QR Codes to store up to 10 GB of base64 strings. (I'm making a file storage service based on images and QR Codes can do exactly what I need)
xd-2.aep.zip

@JosephShenton Thank you. When I run your code I see that this is caused by the fact that the internal QR code encoder throws an exception "Data too big" even when I set the error correction to the lowest. In other words you should try a smaller string. I don't know the exact rule / maximum size as I do not use QR codes to store large chunks of data so you could try or maybe ask the creator of the https://github.com/Bacon/BaconQrCode what determines this size.


lowercase x-identity-header used in IMDS

This is inserting headers. The reason to standardize on lowercase is in https://github.com/Azure/azure-sdk-for-rust/pull/872#discussion_r909066411.


allow android build.gradle defaultConfig overrides

This package defaultConfig properties are not inline with react native, for instance latest react native minSdkVersion is 21.
So instead of forcing developers to use tools:overrideLibrary in their manifest file we can use root project ext properties like kotlin_version is already used.

There is a better way of doing this.


Robots List (Connectivity): Display Reachable Robots

As a Run App user, I would like to be able to see and interact with robots that are reachable, even if I cannot connect to them.
Acceptance Criteria
Robots that are reachable are displayed in the Robots List Sidebar

[ ] Card is not greyed out
[ ] Card should not display pipettes and modules
[ ] Card should not have a connection toggle

Robot Details Page should display a modified set of information and affordances:

[ ] Update button
[ ] Information panel (current behavior)

[ ] Information panel includes robot name, server version, and firmware version (current behavior)
Note we have access to but do not display API server version and System/Container version

[ ] All other cards and affordances are greyed out / inactive

User should see a warning explaining their robot's connectivity state over the Robot Details Page

[ ] (copy below)

Design and Copy

@pantslakz
warning copy: TBD

Implementation Notes

This scenario is possible in two cases:

Robot is advertising but cannot boot any of its servers
Robot is advertising and can only boot update server

This scenario is possible in two cases:

Robot is advertising but cannot boot any of its servers

In this scenario, the "update" button cannot function. But this state is still very important to differentiate from a robot that is non-advertising

Robot is advertising and can only boot update server

In this state, however, with the update server up, the "Update" button can function


classBasedClassifierDeducerFor doesn't work with bundlers/minifiers

classBasedClassifierDeducerFor uses the constructor.name property that bundlers and minifiers will potentially change. I managed to break it just by importing an unrelated "Property" function; the bundler decided to rename Lionweb's Property class to Property2, thus making it impossible to deserialize any language.
In Tylasu we solved this with an optional property one can add to classes to fix their name, and a decorator that makes setting the property easier. Something like:
@Classifier("Property")
export class Property {
  ...
}

The easiest way to fix this is probably to add a field metaType to the abstract class M3Node and populate that with the correct string.

See PR #146

Fixed by PR #146


Rename "preference" to "settings"

Changes occurrences of "preferences" to "settings" and almost finishes #76  -- renaming the source folder and README is not done here, yet.

There's also:

While I'm doing that, also rename preferencePaneIdentifier to paneIdentifier and preferencePaneTitle to paneTitle

But I'm happy to do that if you don't want to do it in this PR.

Friendly bump :)

@sindresorhus I'll resolve conflicts before merging, unless you prefer I rebase before you take a look

Looks good. Feel free to merge.


Duplicate shell entries in the drop down

Environment
Platform ServicePack Version      VersionString
-------- ----------- -------      -------------
 Win32NT             10.0.18995.0 Microsoft Windows NT 10.0.18995.0

Windows Terminal version (if applicable): nightly build from Oct 3

Any other software?

Steps to reproduce

Add another profile in the json. Drop down shows too many.
Expected behavior

The list of profiles in the drop down should match the profiles.json
Actual behavior
An extra entry is in the list. There is no profile 5. What's strange is that when I launch that bogus profile, it doesn't look like the one I set up:

The "real" profile for Windows PowerShell looks like this:

Here's the profile list as shown by Terminal. Note the extra bogus profile that's not in the profiles.json

{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "globals" :
    {
        "alwaysShowTabs" : true,
        "defaultProfile" : "{5fa4ec8f-b1ff-4d94-b239-1321ccccc69b}",
        "initialCols" : 120,
        "initialRows" : 40,
        "keybindings" :
        [
            {
                "command" : "closeTab",
                "keys" :
                [
                    "ctrl+w"
                ]
            },
            {
                "command" : "newTab",
                "keys" :
                [
                    "ctrl+t"
                ]
            },
            {
                "command" : "newTabProfile0",
                "keys" :
                [
                    "ctrl+shift+1"
                ]
            },
            {
                "command" : "newTabProfile1",
                "keys" :
                [
                    "ctrl+shift+2"
                ]
            },
            {
                "command" : "newTabProfile2",
                "keys" :
                [
                    "ctrl+shift+3"
                ]
            },
            {
                "command" : "newTabProfile3",
                "keys" :
                [
                    "ctrl+shift+4"
                ]
            },
            {
                "command" : "newTabProfile4",
                "keys" :
                [
                    "ctrl+shift+5"
                ]
            },
            {
                "command" : "newTabProfile5",
                "keys" :
                [
                    "ctrl+shift+6"
                ]
            },
            {
                "command" : "newTabProfile6",
                "keys" :
                [
                    "ctrl+shift+7"
                ]
            },
            {
                "command" : "newTabProfile7",
                "keys" :
                [
                    "ctrl+shift+8"
                ]
            },
            {
                "command" : "newTabProfile8",
                "keys" :
                [
                    "ctrl+shift+9"
                ]
            },
            {
                "command" : "nextTab",
                "keys" :
                [
                    "ctrl+tab"
                ]
            },
            {
                "command" : "prevTab",
                "keys" :
                [
                    "ctrl+shift+tab"
                ]
            },
            {
                "command" : "scrollDown",
                "keys" :
                [
                    "ctrl+shift+down"
                ]
            },
            {
                "command" : "scrollDownPage",
                "keys" :
                [
                    "ctrl+shift+pgdn"
                ]
            },
            {
                "command" : "scrollUp",
                "keys" :
                [
                    "ctrl+shift+up"
                ]
            },
            {
                "command" : "scrollUpPage",
                "keys" :
                [
                    "ctrl+shift+pgup"
                ]
            },
            {
                "command" : "switchToTab0",
                "keys" :
                [
                    "alt+1"
                ]
            },
            {
                "command" : "switchToTab1",
                "keys" :
                [
                    "alt+2"
                ]
            },
            {
                "command" : "switchToTab2",
                "keys" :
                [
                    "alt+3"
                ]
            },
            {
                "command" : "switchToTab3",
                "keys" :
                [
                    "alt+4"
                ]
            },
            {
                "command" : "switchToTab4",
                "keys" :
                [
                    "alt+5"
                ]
            },
            {
                "command" : "switchToTab5",
                "keys" :
                [
                    "alt+6"
                ]
            },
            {
                "command" : "switchToTab6",
                "keys" :
                [
                    "alt+7"
                ]
            },
            {
                "command" : "switchToTab7",
                "keys" :
                [
                    "alt+8"
                ]
            },
            {
                "command" : "switchToTab8",
                "keys" :
                [
                    "alt+9"
                ]
            }
        ],
        "requestedTheme" : "system",
        "showTabsInTitlebar" : true,
        "showTerminalTitleInTitlebar" : true,
        "wordDelimiters" : " ./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}~?\u2502"
    },
  "profiles": [
    {
      "acrylicOpacity": 0.75,
      "background": "#2E3436",
      "closeOnExit": true,
      "colorScheme": "Ubuntu (Brad)",
      "commandline": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
      "cursorColor": "#B5BBAE",
      "cursorShape": "bar",
      "fontFace": "UbuntuMono NF",
      "fontSize": 10,
      "guid": "{5fa4ec8f-b1ff-4d94-b239-1321ccccc69a}",
      "historySize": 9001,
      "icon": "ms-appx:///ProfileIcons/{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.png",
      "name": "Windows PowerShell",
      "padding": "0, 0, 0, 0",
      "snapOnInput": true,
      "startingDirectory": "d:\\dev",
      "useAcrylic": true
    },
    {
      "acrylicOpacity": 0.75,
      "closeOnExit": true,
      "colorScheme": "Campbell",
      "commandline": "cmd.exe",
      "cursorColor": "#FFFFFF",
      "cursorShape": "bar",
      "fontFace": "Consolas",
      "fontSize": 10,
      "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
      "historySize": 9001,
      "icon": "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
      "name": "cmd",
      "padding": "0, 0, 0, 0",
      "snapOnInput": true,
      "startingDirectory": "d:\\dev",
      "useAcrylic": true
    },
    {
      "acrylicOpacity": 0.5,
      "closeOnExit": true,
      "colorScheme": "Campbell",
      "commandline": "wsl.exe -d Ubuntu",
      "cursorColor": "#FFFFFF",
      "cursorShape": "bar",
      "fontFace": "Consolas",
      "fontSize": 10,
      "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
      "historySize": 9001,
      "icon": "ms-appx:///ProfileIcons/{9acb9455-ca41-5af7-950f-6bca1bc9722f}.png",
      "name": "Ubuntu",
      "padding": "0, 0, 0, 0",
      "snapOnInput": true,
      "startingDirectory": "d:\\dev",
      "useAcrylic": false
    },
    {
        "acrylicOpacity": 0.75,
        "background": "#2E3436",
        "closeOnExit": true,
        "colorScheme": "Ubuntu (Brad)",
        "commandline": "pwsh.exe",
        "cursorColor": "#B5BBAE",
        "cursorShape": "bar",
        "fontFace": "UbuntuMono NF",
        "fontSize": 10,
        "guid": "{5fa4ec8f-b1ff-4d94-b239-1321ccccc69b}",
        "historySize": 9001,
        "icon": "ms-appx:///ProfileIcons/{574e775e-4f2a-5b96-ac1e-a2962a402336}.png",
        "name": "PowerShell Core",
        "padding": "0, 0, 0, 0",
        "snapOnInput": true,
        "startingDirectory": "d:\\dev",
        "useAcrylic": true
      }

  ],
    "schemes" :
    [
        {
            "background" : "#2E3436",
            "black" : "#2E3436",
            "blue" : "#3465A4",
            "brightBlack" : "#696B67",
            "brightBlue" : "#729FCF",
            "brightCyan" : "#34E2E2",
            "brightGreen" : "#8AE234",
            "brightPurple" : "#AD7FA8",
            "brightRed" : "#F49797",
            "brightWhite" : "#FBFBFB",
            "brightYellow" : "#FCE94F",
            "cyan" : "#06989A",
            "foreground" : "#B5BBAE",
            "green" : "#4E9A06",
            "name" : "Ubuntu (Brad)",
            "purple" : "#75507B",
            "red" : "#AE5E5E",
            "white" : "#B5BBAE",
            "yellow" : "#C4A000"
        },
        {
            "background" : "#0C0C0C",
            "black" : "#0C0C0C",
            "blue" : "#0037DA",
            "brightBlack" : "#767676",
            "brightBlue" : "#3B78FF",
            "brightCyan" : "#61D6D6",
            "brightGreen" : "#16C60C",
            "brightPurple" : "#B4009E",
            "brightRed" : "#E74856",
            "brightWhite" : "#F2F2F2",
            "brightYellow" : "#F9F1A5",
            "cyan" : "#3A96DD",
            "foreground" : "#F2F2F2",
            "green" : "#13A10E",
            "name" : "Campbell",
            "purple" : "#881798",
            "red" : "#C50F1F",
            "white" : "#CCCCCC",
            "yellow" : "#C19C00"
        },
        {
            "background" : "#282C34",
            "black" : "#282C34",
            "blue" : "#61AFEF",
            "brightBlack" : "#5A6374",
            "brightBlue" : "#61AFEF",
            "brightCyan" : "#56B6C2",
            "brightGreen" : "#98C379",
            "brightPurple" : "#C678DD",
            "brightRed" : "#E06C75",
            "brightWhite" : "#DCDFE4",
            "brightYellow" : "#E5C07B",
            "cyan" : "#56B6C2",
            "foreground" : "#DCDFE4",
            "green" : "#98C379",
            "name" : "One Half Dark",
            "purple" : "#C678DD",
            "red" : "#E06C75",
            "white" : "#DCDFE4",
            "yellow" : "#E5C07B"
        },
        {
            "background" : "#FAFAFA",
            "black" : "#383A42",
            "blue" : "#0184BC",
            "brightBlack" : "#4F525D",
            "brightBlue" : "#61AFEF",
            "brightCyan" : "#56B5C1",
            "brightGreen" : "#98C379",
            "brightPurple" : "#C577DD",
            "brightRed" : "#DF6C75",
            "brightWhite" : "#FFFFFF",
            "brightYellow" : "#E4C07A",
            "cyan" : "#0997B3",
            "foreground" : "#383A42",
            "green" : "#50A14F",
            "name" : "One Half Light",
            "purple" : "#A626A4",
            "red" : "#E45649",
            "white" : "#FAFAFA",
            "yellow" : "#C18301"
        },
        {
            "background" : "#073642",
            "black" : "#073642",
            "blue" : "#268BD2",
            "brightBlack" : "#002B36",
            "brightBlue" : "#839496",
            "brightCyan" : "#93A1A1",
            "brightGreen" : "#586E75",
            "brightPurple" : "#6C71C4",
            "brightRed" : "#CB4B16",
            "brightWhite" : "#FDF6E3",
            "brightYellow" : "#657B83",
            "cyan" : "#2AA198",
            "foreground" : "#FDF6E3",
            "green" : "#859900",
            "name" : "Solarized Dark",
            "purple" : "#D33682",
            "red" : "#D30102",
            "white" : "#EEE8D5",
            "yellow" : "#B58900"
        },
        {
            "background" : "#FDF6E3",
            "black" : "#073642",
            "blue" : "#268BD2",
            "brightBlack" : "#002B36",
            "brightBlue" : "#839496",
            "brightCyan" : "#93A1A1",
            "brightGreen" : "#586E75",
            "brightPurple" : "#6C71C4",
            "brightRed" : "#CB4B16",
            "brightWhite" : "#FDF6E3",
            "brightYellow" : "#657B83",
            "cyan" : "#2AA198",
            "foreground" : "#073642",
            "green" : "#859900",
            "name" : "Solarized Light",
            "purple" : "#D33682",
            "red" : "#D30102",
            "white" : "#EEE8D5",
            "yellow" : "#B58900"
        }
    ]
}

Hey @onovotny, we touched on this in the 0.5 release notes a bit. Your Windows PowerShell profile's guid doesn't match the "default" one (hold down Alt and click on Settings), so it's technically a different profile. If you'd like to override the default profile or reorder it, copy its guid over yours -- or just delete yours if you don't have any custom settings.

You'll probably also see a duplicate pwsh.exe, eventually (if you install one in Program Files) -- the reason is the same.

Might be worth a "reset to defaults" gesture in the UI?

That's a fair request. I think that on account of we're 0.5 and our settings model hasn't been declared stable, it's also not unfair to expect users to absorb some amount of "please delete your file to get back to the defaults."
Moving forward, our "defaults" are way way better. It does glorious things if you delete profiles.json today.

Also, there's #947 for that request :)

(Thanks for the suggestion! I know we'll need it going forward, and I think we have a backlog item for it. I can't find it at the moment.)

Ding!


Cannot start Docker container

Which version are you using?
v0.21.0
Which operating system are you using?

[ ] Linux amd64 standard
[x ] Linux amd64 Docker
[ ] Linux arm64 standard
[ ] Linux arm64 Docker
[ ] Linux arm7 standard
[ ] Linux arm7 Docker
[ ] Linux arm6 standard
[ ] Linux arm6 Docker
[ ] Windows amd64 standard
[ ] Windows amd64 Docker (WSL backend)
[ ] macOS amd64 standard
[ ] macOS amd64 Docker
[ ] Other (please describe)

Describe the issue
Even when I fill these parameters the container still complaining and do not start.
The only things I've changed was:
webrtcICEHostNAT1To1IPs: [<IP_ADDRESS>]
# Address of a ICE UDP listener in format host:port.
# If filled, ICE traffic will come through a single UDP port,
# allowing the deployment of the server inside a container or behind a NAT.
webrtcICEUDPMuxAddress: :8189
# Address of a ICE TCP listener in format host:port.
# If filled, ICE traffic will come through a single TCP port,
# allowing the deployment of the server inside a container or behind a NAT.
# At the moment, setting this parameter forces usage of the TCP protocol,
# which is not optimal for WebRTC.
webrtcICETCPMuxAddress: :8190

My old version was working fine until I update to the latest today with WebRTC feature.
I'm in doubt if webrtcICEHostNAT1To1IPs is the container address or the Docker host address.
Describe how to replicate the issue
Just start the container like this:
docker run --name midiaserver --hostname=midiaserver \
	-e RTSP_PROTOCOLS=tcp \
	-p 8554:8554 \
	-p 9997:9997 \
	-p 1935:1935 \
	-p 8888:8888 \
	-p 8889:8889 \
	-p 8189:8189/udp \
	-p 8189:8189 \
	--restart=always \
	-v /srv/midiaserver/rtsp-simple-server.yml:/rtsp-simple-server.yml \
	-d aler9/rtsp-simple-server:latest

Did you attach the server logs?
yes
ERR: non-existent parameter: 'webrtcICETCPMuxAddress'
ERR: non-existent parameter: 'webrtcICETCPMuxAddress'
ERR: non-existent parameter: 'webrtcICEUDPMuxAddress'
ERR: non-existent parameter: 'webrtcICEHostNAT1To1IPs'
ERR: non-existent parameter: 'webrtcICEHostNAT1To1IPs'
ERR: non-existent parameter: 'webrtcICETCPMuxAddress'

Did you attach a network dump?
no

Hello, the new parameters you're trying to use are not yet included in an official release, you have to wait for a new release or build from source.

So please be more specific because ERR: non-existent parameter was not clear to me if it is asking for a parameter that I not fill or is telling me that I gave a parameter that it was not expecting.


Add collapse/expand functionality to notebook code cells.

Expanded:

Collapsed:

Currently writing some tests.

CI Tests are currently stuck, but local unit tests passed, so I'll go ahead and merge this.


Issue installing on Apple M1

I'm trying to install Cartography on a Mac that has an Apple M1 chip, and haven't had much luck. When I do:
pip3 install cartography

It fails with:

Failed to build cryptography
ERROR: Could not build wheels for cryptography, which is required to install pyproject.toml-based projects

Earlier in the output I see:
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders -iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/Headers -arch arm64 -arch x86_64 -Werror=implicit-function-declaration<EMAIL_ADDRESS>-I/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8 -c build/temp.macosx-10.14-arm64-3.8/_openssl.c -o build/temp.macosx-10.14-arm64-3.8/build/temp.macosx-10.14-arm64-3.8/_openssl.o -Wconversion -Wno-error=sign-conversion
      build/temp.macosx-10.14-arm64-3.8/_openssl.c:575:10: fatal error: 'openssl/opensslv.h' file not found
      #include <openssl/opensslv.h>
               ^~~~~~~~~~~~~~~~~~~~
      1 error generated.

Has anyone managed to get this running on a Mac with arm64 platform?
Note: I've already upgraded pip to the latest version.

I have not tried, but have you seen this? https://github.com/pyca/cryptography/issues/3489

@ramonpetgrave64 yes, I also tried a lot of different things without any luck.
Thing is, if I do pip3 install cryptography (not cartography), it works.
I just don't know what it is with cryptography bundled with cartography that is making it fail like this.

@ramonpetgrave64 I realised today that nothing I can try will get this working.
Cartography requires Neo4j 3.5, and there's no arm64 image for that.
So even if I were to solve the problem with cryptography, Apple M1 can't be supported before #521 is completed.

@danielsaporo I think you should still be able to install cartography without installing the neo4j database.

@ramonpetgrave64 yes, a newer version of cryptography seems to work. Still, I won't be able to use Cartography without a more recent version of Neo4j.

@danielsaporo We are going to upgrade to Neo4j database 4.x. It's an effort we are planning to finish in the next couple months.

Neo4j now has some pre-release docker images for ARM. And I've verified with my team that they do work with Apple M1.
https://hub.docker.com/r/neo4j/neo4j-arm64-experimental/tags


Add local server for dev

Add somethign to grunt to launch a server, like cody did with leaflet map

Added with e9d92c08ae18cc2553a2c603cd4607f46d1beddb


No mood tracker data file found at /data//mood-tracker-data.json. Creating a new one...

Hi! When activating the plugin, the following warning appears: No mood tracker data file found at /data/mood-tracker-data.json. Creating a new one...

@smirnovmaksim91 have you tried to:

reinstalling the plugin;
changing the folder location in settings?
Also, what OS are you using?

I see the popup every time I launch Obsidian or toggle the plugin off and on. I can't seem to find this file either so it never created it I think.

Do you have the 'data' folder at the root of your vault?
Also (again) what OS are you using?
пт, 2 июн. 2023 г., 23:34 Charlie @.***>:

I see the popup every time I launch Obsidian or toggle the plugin off and
on. I can't seem to find this file either so it never created it I think.
—
Reply to this email directly, view it on GitHub
https://github.com/dartungar/obsidian-mood-tracker/issues/6#issuecomment-1574285165,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AITT22M37LBSCSTSIUL26TDXJJE6XANCNFSM6AAAAAAYYRHIWY
.
You are receiving this because you were assigned.Message ID:
@.***>

Good afternoon.
I am using a 2018 MacBook Pro.
After this message disappears, nothing happens. The command to control the plugin does not appear.

Seems like I will need to setup MacOS emulator or something like this to
reproduce this.
сб, 3 июн. 2023 г., 11:09 smirnovmaksim91 @.***>:

Good afternoon.
I am using a 2018 MacBook Pro.
After this message disappears, nothing happens. The command to control the
plugin does not appear.
[image: Screenshot 2023-06-03 at 11 05 51]
https://user-images.githubusercontent.com/70570280/243068297-b044d2e7-fc23-46f2-b136-bf703f213800.png
—
Reply to this email directly, view it on GitHub
https://github.com/dartungar/obsidian-mood-tracker/issues/6#issuecomment-1574769084,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AITT22JWEJTRIREFIJTXY53XJLWJZANCNFSM6AAAAAAYYRHIWY
.
You are receiving this because you were assigned.Message ID:
@.***>

Do you have the 'data' folder at the root of your vault? Also (again) what OS are you using? пт, 2 июн. 2023 г., 23:34 Charlie @.>:
…
I see the popup every time I launch Obsidian or toggle the plugin off and on. I can't seem to find this file either so it never created it I think. — Reply to this email directly, view it on GitHub <#6 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AITT22M37LBSCSTSIUL26TDXJJE6XANCNFSM6AAAAAAYYRHIWY . You are receiving this because you were assigned.Message ID: @.>

Do you have the 'data' folder at the root of your vault? Also (again) what OS are you using? пт, 2 июн. 2023 г., 23:34 Charlie @.>:
…
I see the popup every time I launch Obsidian or toggle the plugin off and on. I can't seem to find this file either so it never created it I think. — Reply to this email directly, view it on GitHub <#6 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AITT22M37LBSCSTSIUL26TDXJJE6XANCNFSM6AAAAAAYYRHIWY . You are receiving this because you were assigned.Message ID: @.>

I do not see a Data folder and i'm on Windows 11.

@KingRecycle @smirnovmaksim91 turns out it was an issue with handling non-existing 'data' folder... should be fixed in v0.1.1. Sorry for that!


Big amount of data

I need tables with bit amoun of data(50 colums or more) i try to make add bootstrap table and the result is this, my question is that if this table is prepared to bit amount of columns or not.

Here you can see my code:

Hi @valinol, this problem I doesn't have any idea currently. Maybe in the future.


Add flag to suppress warning closes 41669

In React, when you add the contentEditable, you get a warning in the console that warns you about the problems you might encounter using that prop. To remove that warning you have to add another prop: suppressContentEditableWarning.
To remove the warning message add suppressTextareaWarning flag to the component.
<Autocomplete
  options={yourOptions}
  renderInput={(params) => <TextField {...params} multiline />}
  suppressTextareaWarning
/>

#41669

Duplicate of https://github.com/mui/material-ui/pull/41671?

@charlesinto2 Thanks for working on this ~ would you be interested in contributing a test to https://github.com/mui/material-ui/pull/41671 instead?