Export common binaries

So...I started working on the hollowverse/validate-filenames package, and as expected I got annoyed when I tried to setup the repo from scratch. So I went back to my old routine of thinking of how to improve common config sharing.
It occurred to me that maybe we don't need to have our common development and build time CLIs and their dependencies be peerDependencies but rather let hollowverse/common manage them and expose them.
That's what this PR does. If a downstream package depends on hollowverse/common, that downstream package then gets access to common-prettier, common-eslint, common-tslint, common-tsc, etc. That way, the downstream package doesn't need to install those CLIs or their dependencies. It just needs to install hollowverse/common.
...not sure if I've overlooked anything but I've tested things out and everything seems to be working as expected.
Do you foresee any problems with this approach? Is it reasonable?
(I'll send a PR to hollowverse/hollowverse right now to show what it looks like to be using this new pattern) This is the corresponding PR for hollowverse/hollowverse https://github.com/hollowverse/hollowverse/pull/213
To-do:

[ ] Fix yarn check-js (For some reason, yarn check-js is erroring out due to checking node_modules. @forabi do you know how to fix this?)

Fix yarn check-js (For some reason, yarn check-js is erroring out due to checking node_modules.

On which repo did you run check-js?

Do you foresee any problems with this approach? Is it reasonable?

I'm not sure how we should handle dependency upgrades in this setup. What if we need TS 2.7? Should we upgrade the dependency in common or add TypeScript as an immediate dependency of the other repo? If it's the latter then we still need to add the dependencies to the other repos anyway.
The way peerDependencies work makes sense to me. When you install react-redux, it does not install redux as a dependency, because you may want a later or an older version of redux. react-redux does not depend on redux directly, it expects that your project depends on it. So it makes sense to have redux as a peer dependency for react-redux, and yarn warns you in case you don't have it installed. I think the same logic applies for common.
Still, I don't have a strong opinion on that matter. If that makes it easier to start a new repo and does not create any issues with upgrades, let's do it!

As a possible alternative solution, we could add a post install script for common that adds the required peer dependencies to the project if they are missing. In that scenario, we would just have to yarn add hollowverse/common and all the peer dependencies will be installed automatically. We could further improve that idea to also create the linter configuration files in case they are missing.

@forabi As we discussed on Discord, I tried keeping the original names in hollowverse/common and then used it in hollowverse/hollowverse. All the required dependencies (tslint, prettier, eslint, tsc, etc) were installed in hollowverse/hollowverse/node_modules/.bin but they symlinked to their original locations, not hollowverse/common!
Because I'm not sure why that's happening, I don't feel comfortable proceeding with this solution. It's also a non-standard practice so without sufficient knowledge of what's going on behind the scenes, we risk introducing issues.
...I'll consider this some more, but will probably eventually close this PR.
I'm not sure how the alternative solution you proposed would work. But I'm up for any solution that will make setting up a new repo easier!

All the required dependencies (tslint, prettier, eslint, tsc, etc) were installed in hollowverse/hollowverse/node_modules/.bin but they symlinked to their original locations, not hollowverse/common!

Was that behavior consistent? I kind of expected this to be non-deterministic.

I'm not sure how the alternative solution you proposed would work. But I'm up for any solution that would make setting up a new repo easier!
Packages can specify a postinstall script in their package.json file which will be executed when the package is installed as a dependency. The script can basically do anything (which, by the way, exposes a serious security risk).

We could write a simple JS script that would check if .eslintrc.json, for example, exists, and if not, creates one that extends from @hollowverse/common/.eslintrc. For new projects, the file won't be found, so it's safe to create one. When hollowverse/common is upgraded, the file will exist so we do not overwrite it.
The script would also copy all peer dependencies from this repo's package.json to the other repo's package.json as devDependencies (only if not already installed) and run yarn to install and lock the packages.

Was that behavior consistent? I kind of expected this to be non-deterministic.

I only tried it once. So I'm not sure if it would be consistent or not in the future.

We could write a simple JS script that would check if .eslintrc.json, for example, exists, and if not, creates one that extends from @hollowverse/common/.eslintrc. For new projects, the file won't be found, so it's safe to create one. When hollowverse/common is upgraded, the file will exist so we do not overwrite it.

I doubt the dynamic creation of config files can be a simple task.
Automatic installation of peerDependencies as part of the postinstall script would also not work, I think. I've tried a similar approach with commonpkg and I ran into issues. postinstall scripts cannot reliably interfere with the yarn install or npm install process of the downstream package.
Exporting a binary from hollowverse/common that the developer can manually run to install the hollowverse/common peerDependencies might work. But that only solves one part of the problem so I'm not that enthusiastic about it.

I doubt the dynamic creation of config files can be a simple task.

Can you elaborate on this? I don't see why. We could have a template of the extending file in this repo and just copy it to the root of the project.

Automatic installation of peerDependencies as part of the postinstall script would also not work, I think. I've tried a similar approach with commonpkg and I ran into issues. postinstall scripts cannot reliably interfere with the yarn install or npm install process of the downstream package.

Is that because writing to package.json during installation causes some race condition? If not, what if we do not run yarn automatically and instead only copy the dependencies to package.json and then print a note that the user needs to run yarn again?

I doubt the dynamic creation of config files can be a simple task.

In case it wasn't clear: I didn't mean we try to extend an already existing file with new fields. Either the file does not exist, so we create it, or it does exist, in which case we do nothing.

@forabi What you're saying is starting to make more sense. But the more I think about what you're saying, the more my thoughts are leading me to the idea of simply creating a hollowverse/template repo which has our initial setup and we can clone that repo and build from there. We could use it with degit to avoid git history issues.

@wholesomedev one difference between the suggested approach and degit would be that the former could add new dependencies and configuration files by upgrading hollowverse/common. degit, on the other hand, would copy a snapshot of the template repo at a specific point in time.

@forabi The degit approach is dead simple though. I could get it setup in two hours. With what you're suggesting, I'm not really sure how to implement it with the "upgrade" functionality?

With what you're suggesting, I'm not really sure how to implement it with the "upgrade" functionality?

I think postinstall is executed on upgrades as well, so our script could run again and add new configuration files, while skipping the already existing ones. We shouldn't need to write extra code to get this working.
I agree that degit is much simpler though.

There is no further action that I can take on this at this moment. Will close for now...


db-factfinder - incorporate new census data

#70
https://github.com/NYCPlanning/edm-overview/issues/956
Main logic here is in the pipelines folder, in python files. Each one of these files generates a dataset - acs and acs_manual_update making the same output dataset using different data sources.
Key notes for review

decennial_manual_update.py is the new file with new logic needed for this update. Rather than update with latest decennial census data via api (which has logic around in factfinder folder but no actual pipeline file), population division has supplied us with a pre-transformed file. The columns in this file line up with the factfinder/data/metadata file for decennial census data. Meaning, we don't need to apply "calculations" logic in factfinder folder

side note - around both this and EDDE it would be good to get a bit of context why we've moved away from pulling from API and doing calculations ourselves. Are housing/population doing slightly different things between updates? Did they want a bit more control over that process? Do they have "new" calculation scripts that we should incorporate so we can more fully automate the process again?
data sources were added to data library in this pr

acs_manual_update.py has been updated to follow the same format, and not have xlsx file checked into repo but instead pulls from data library
utils.py (still in pipelines folder) for pulling/uploading data

More minor things

Some update of both acs.py and acs_community_profiles.py. These both seem slightly broken at the moment, but also aren't being used. Updated slighly just to keep in line with the other pipelines
bash logic - not being used right now either, but still wanted to bump to shared utils.

One remaining thing really is docs - a bit orthogonal to this PR but I'll add to the wiki now. Aside from copying in wiki from pff, I'll add

explanation of different outputs of PFF (4 entirely distinct outputs rather than 1 primary)
explanation of what the input data updates are (and why we get them)
"manual" updates vs currently not-used api-based updates

Still waiting on some clarity around output folder structure, if we need to be labelling geom in the folder structure if we just do the same label for every dataset even when it doesn't quite seem relevant. But in the meantime, think it would be worth getting this into main and iterating later as needed

One outstanding issue on folder structure - currently we export with geog as part of the folder structure. Python functionality has options for "2010", "2010_to_2020" (converting 2010 data to estimates in 2020 geographies), "2020"... but we exclusively output in "2010_to_2020" at the moment, so these options don't really have meaning for the outputs. I asked TM and he's unsure

Not entirely related to this PR but just noticed - we have python-geosupport in requirements coming from a not-found commit hash. FacDB says this is supposed to be pinned to 21c. Any idea why that would be?
Dev container and build-geosupport images have latest geosupport (python included) installed, I think we should remove this in requirements and use latest for FacDB

So one remaining thing really is docs - a bit orthogonal to this PR but I'll add to the wiki now. Aside from copying in wiki from pff, I'll add

explanation of different outputs of PFF (4 entirely distinct outputs rather than 1 primary)
explanation of what the input data updates are (and why we get them)
"manual" updates vs currently not-used api-based updates

Still waiting on some clarity around output folder structure, if we need to be labelling geom in the folder structure if we just do the same label for every dataset even when it doesn't quite seem relevant. But in the meantime, think it would be worth getting this into main and iterating later as needed

@damonmcc this is ready to go once more

@damonmcc this is ready to go once more

Actually let's see a github action build succeed with my latest changes before you dive in


Unknown error occurred

Entered email address, password and submitted. Received error "Unknown error occurred".
How to determine what is the error?

You can try and put the following in your configuration file and then look for an error in your log
logger:
  logs:
    # log level for a custom component
    custom_components.rinnai: debug

    # log level for the `aiohttp` Python package
    aiorinnai: debug

From the logs:
This error originated from a custom integration.
Logger: aiohttp.server
Source: custom_components/rinnai/config_flow.py:58
Integration: Rinnai Control-R Water Heater (documentation)
First occurred: 9:23:34 PM (2 occurrences)
Last logged: 10:00:57 PM
Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request
resp = await request_handler(request)
File "/usr/local/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle
resp = await handler(request)
File "/usr/local/lib/python3.10/site-packages/aiohttp/web_middlewares.py", line 117, in impl
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 82, in ban_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 236, in auth_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 136, in handle
result = await result
File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 180, in post
return await super().post(request, flow_id)
File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 73, in wrapper
result = await method(view, request, data, *args, **kwargs)
File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 110, in post
result = await self._flow_mgr.async_configure(flow_id, data)
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 280, in async_configure
result = await self._async_handle_step(
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 367, in _async_handle_step
result: FlowResult = await getattr(flow, method)(user_input)
File "/config/custom_components/rinnai/config_flow.py", line 58, in async_step_user
options={
TypeError: unhashable type: 'list'

Can you try the latest release and see if that resolve your issue

Yup, that fix has resolved the issue.
Thanks!

Glad it's working. Thanks for the logs. Enjoy.


Fixes trace index row key generation

This fixes incorrect byte length used for generating trace index row key.
Trace index row key generated using agent ids have been removed as they are deprecated and no longer used.
resolves #4312

Codecov Report

Merging #4325 into master will increase coverage by 0.01%.
The diff coverage is 25%.

@@            Coverage Diff             @@
##           master    #4325      +/-   ##
==========================================
+ Coverage   40.95%   40.96%   +0.01%
==========================================
  Files        2419     2419
  Lines       74791    74763      -28
  Branches    10102    10096       -6
==========================================
- Hits        30628    30625       -3
+ Misses      41351    41327      -24
+ Partials     2812     2811       -1

Impacted Files
Coverage Δ

...ector/dao/hbase/HbaseApplicationTraceIndexDao.java
0% <0%> (ø)
:arrow_up:

...vercorp/pinpoint/common/server/util/SpanUtils.java
13.04% <28.57%> (+1.27%)
:arrow_up:

...r/bo/serializer/trace/v2/TraceRowKeyDecoderV2.java
73.33% <0%> (-13.34%)
:arrow_down:

...pc/server/LoggingServerMessageListenerFactory.java
90% <0%> (-10%)
:arrow_down:

.../profiler/sender/StandbySpanStreamDataStorage.java
72.88% <0%> (-3.39%)
:arrow_down:

...tor/metric/datasource/DefaultDataSourceMetric.java
75.75% <0%> (-3.04%)
:arrow_down:

...corp/pinpoint/rpc/stream/StreamChannelManager.java
70.68% <0%> (-1.73%)
:arrow_down:

...java/com/navercorp/pinpoint/rpc/DefaultFuture.java
72.5% <0%> (-1.67%)
:arrow_down:

...m/navercorp/pinpoint/test/OrderedSpanRecorder.java
72.11% <0%> (ø)
:arrow_up:

...orp/pinpoint/rpc/server/DefaultPinpointServer.java
80.41% <0%> (+0.34%)
:arrow_up:

... and 5 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 7f1eec8...d929810. Read the comment docs.


[GEODE-1887] #comment Fix for Client PROXY region should delegate all operations to server

Fix for Client PROXY region should delegate all operations to server

Resubmitting the PR.
Separated the Test
Ran Precheckin and no failures.

Totally understand this fix but we are recommending not changing size() functionality as it might break current expected behavior.   However adding a new .serverSize() or .localSize() would be non breaking.  We also plan on addressing these client/server API issues in a new client.

^^^ Changing we to I in above comment, because we all come to the project as individual contributors :-)

I think this pull request should be closed. GEODE-1887 will be updated with a plan for doing it without breaking backwards compatibility.

closing this PR as per the comment above.


mgmt, switch to AAD token for Kudu

See email thread for detail.
From chat, will target a patch 2.26.1 in April.

We can start with branch https://github.com/Azure/azure-sdk-for-java/tree/mgmt_appservice-kudu-aad-token
commit https://github.com/Azure/azure-sdk-for-java/commit/67385fb9710db9b9ee02f98c3db450020333abb2

2.26.1 released.


Getting some errors with Rushti 1.4

Hi, I am getting the following errors with RushTi 1.4. Same with 1.3. With 1.2 the process runs but not multithreaded. Am i doing some wrong. Please advise. Thank you
E:\rushti>python RushTI.py Tasks.txt 4
Traceback (most recent call last):
File "E:\rushti\RushTI.py", line 829, in
tm1_service_by_instance = setup_tm1_services(maximum_workers, tasks_file_path, execution_mode)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\rushti\RushTI.py", line 92, in setup_tm1_services
tm1_instances_in_tasks = get_instances_from_tasks_file(execution_mode, max_workers, tasks_file_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\rushti\RushTI.py", line 145, in get_instances_from_tasks_file
tasks = get_ordered_tasks_and_waits(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\rushti\RushTI.py", line 466, in get_ordered_tasks_and_waits
return extract_ordered_tasks_and_waits_from_file_type_norm(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\rushti\RushTI.py", line 271, in extract_ordered_tasks_and_waits_from_file_type_norm
original_tasks = [extract_task_or_wait_from_line(line) for line in file.readlines() if not line.startswith('#')]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\rushti\RushTI.py", line 189, in extract_task_or_wait_from_line
instance_name=line_arguments.pop("instance"),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyError: 'instance'

Your line in the tasks file misses the instance argument

Thanks for the help Marius. I was able to fix the instance issue. Now the process runs but it does not use multiple threads. It just runs as a normal process with one thread. Is this due to a Tm1 setting ?


Update README timeout

PR Checklist:

[x] I have run npm test locally and all tests are passing.
[x] I have added/updated tests for any new behavior.

[x] If this is a significant change, an issue has already been created where the problem / solution was discussed: [N/A]

PR Description
Timeout argument description is currently very misleading. It was split into two bullets here but the note regarding OS-wide timeout does not apply to the first bullet, but rather the second. In addition, this change made the wording more confusing, in my opinion. I reverted it back to what it was originally.

I am still confused with the timeout doc. Does the value apply to both bullet points (read timeout and connection timeout)? Or can it set different value to them?

@lalau "integer containing number of milliseconds, controls two timeouts." then those two timeouts are listed below. So yes, it applies to both. I think it makes sense now but maybe you have a suggestion for further clarity?


Feat(mongo): Add support

@ronnathaniel  looks good! added some commets. Let's talk about the signatures of the wrapper funcs and the error handling :)


Allow to use HotReload without modifying all code-behind files

It would be awesome to avoid writing of next lines in every xaml.cs file
this.InitComponent(InitializeComponent);

Done!
Check newest version. It will be available in very short time


Fix Str to Byte conversion

Function expeceted list of Strings but got bytes instead. This is fix
for Py 3.x
So after passing this error, I get this:
from django.test.simple import DjangoTestSuiteRunner
ImportError: No module named 'django.test.simple'

Which makes sense since i'm on 1.9.x and this is pre 1.6 but wondering what can I do to fix this? :)

Thanks for the patch!
As for the 1.9 problem - the usual approach is to speculatively import the module you want, catch the possible ImportError, and handle that case if it happens. There's and example of this approach here

Ah gotcha.
Out of curiosity, if that example worked and helped with this problem, then why was it removed?

It was removed because I was thinking that Cricket shouldn't have to support versions of Django that aren't officially supported by the Django core team. In retrospect, that was probably a little premature - in the year since I removed that line, it's become clear to me how many people are still using Django < 1.8, even when it is against the advice of the Django core team. As long as it's not especially onerous (such as in this case), I don't object to the shim being added back in.

Just a note but looks like after this pr Py3 is able to run without problems. ( I only did a quick test run in which I only ran all tests or randomly select 1)
Would have to test more if there are no further Py3 problems


⚠ Bofrost.at has degraded performance

In d377a07, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1907 ms

Resolved: Bofrost.at performance has improved in a865afd after 6 minutes.


[Event Request] codeunit 312  "Cust-Check Cr. Limit" - OnSetCustCheckCreditLimitSalesHeaderCheck

Hello, would it be possible to add OnSetCustCheckCreditLimitSalesHeaderCheck,  event to codeunit 312  "Cust-Check Cr. Limit", like this:
    procedure SalesHeaderCheck(var SalesHeader: Record "Sales Header") CreditLimitExceeded: Boolean
...

         if GuiAllowed then begin
             OnNewCheckRemoveCustomerNotifications(SalesHeader.RecordId, true);

>             OnSetCustCheckCreditLimitSalesHeaderCheck(CustCheckCreditLimit);//New Event
             if not CustCheckCreditLimit.SalesHeaderShowWarningAndGetCause(SalesHeader, AdditionalContextId) then
                 SalesHeader.CustomerCreditLimitNotExceeded()
             else begin
                 CreditLimitExceeded := true;

     [IntegrationEvent(false, false)]
     local procedure OnSetCustCheckCreditLimitSalesHeaderCheck(var CustCheckCreditLimit: Page "Check Credit Limit")
     begin
     end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 10644.


Error: There are no commands defined in the "tracker" namespace.

I get that error when i trayed to create the UA Parser regex file using the command :  "php artisan tracker:updateparser".

I get an error "PHP Fatal error:  Class 'PragmaRX\Tracker\Vendor\Laravel\ServiceProvider' not found in /var/www/storage/framework/compiled.php on line 6391"


Bulkify UOW methods for List wherever possible

Make UnitOfWork methods bulkified wherever possible :-)

Merged, thanks @MayTheSForceBeWithYou ! :+1:


Immersive Mode in Dialogs?

Is it possible to show the dialog in Immersive Mode (without navigation buttons)??

Setting the action button's text to null hides them.

Setting the action button's text to null hides them.

Hi again! Thank you for your reply, but seems like we have a little misunderstanding here. I was talking about using material dialog with immersive window mode described here: https://developer.android.com/training/system-ui/immersive.html

This library is not for full screen "dialogs". You need to use an Activity  for that.


add --language to brew-cask manpage

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[ ] Have you successfully run brew tests with your changes locally?

Fixes: https://github.com/caskroom/homebrew-cask/issues/31129
Add --language to various parts of manpage for brew-cask
Any feedback/criticism is appreciated :)

You need to edit the Markdown file and then run brew man to regenerate the man page.

Updated the .md file, ran brew man to generate the manpage. A lot simpler than writing the manpage syntax yourself :)

Done. I squashed all the commits to one. Thanks :)

Thanks, @yzguy!


Refactor CamelIdeaUtils to use extensions

The CamelIdeaUtils should refactors to use the extension system like the IdeaUtils. You will find a few examples on how to refactor the utils to use the extension system instead.
     /**
     * Is the element from a java setter method (eg setBrokerURL) or from a XML configured <tt>bean</tt> style
     * configuration using <tt>property</tt> element.
     */
    boolean isElementFromSetterProperty(@NotNull PsiElement element, @NotNull String setter) {
        return enabledExtensions.stream()
            .anyMatch(extension -> extension.isElementFromSetterProperty(element, setter));
    }
´´´

Fixed in #364


IOS Support

Is there any way to get this on ios? Thanks

Sadly i can't tell, i don't own an iPhone, so i have no way to know


Something wrong with immediate execute function if I won't add ';' before it.

When I'm using useref and uglify. If one page just has an immediate execution function, it will remove the ',' which at the end of previous page.  Then I'll be told it isn't a immediate execute function.

I don't know how to reproduce this.


Add subcategories to functional documentation

Adds subcategory to functional documentation, file filtering so that it's easier to see the separation in utilities and feature extractions.

Is there a way to expand / collapse all categories at once?

I tried removing :hidden: role, but it did not help. I am not sure how we can achieve that.
I will merge this as-is for now.

Thanks!


Make the entire button clickable (save/reset/copy)

makes the entire button clickable so that it is easy & consistent with the "links"

Thanks @mrassili, that works great!

Thanks @mrassili, that works great!


Per sensor type function names, dedicated i2c init, shtc3 fixes, ...

Merge request containing a bunch of separate fixes and improvements each in their respective commits:

Dedicated function names and headers for SHT sensors (shtc1_probe, sht3x_probe instead of just sht_probe)
Dedicated i2c bus initialization that must now be called before sht*_probe
Rename git_version to sht_git_version
Fix the release symlink not being updated properly
Fix SHTC3 standby issues

General question: Are we OK with the fact that this introduces repetition of common stuff?

Actually, I have a second PR waiting (needs testing) that makes the SHT drivers use the common helper functions, that reduces the duplication to a minimum (~2 lines). It's gonna be another major version though.. If you don't mind, I'd merge this as is and then submit on top of that.


add isTemplate function

port https://github.com/microsoft/botbuilder-dotnet/issues/2904

Pull Request Test Coverage Report for Build 106928

10 of 12 (83.33%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.003%) to 72.685%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

libraries/botbuilder-lg/src/evaluator.ts
10
12
83.33%

Totals

Change from base Build 106918:
0.003%

Covered Lines:
8522

Relevant Lines:
11211

💛  - Coveralls


native language names

It appears the only way to print a language is using {% tl language %}
While it may seem reasonable to do that it actually requires the visitor of a webpage to understand the language he's on. A chinese visitor on an english page needs to know that "Chinese" refers to his language. It would really help if there was a tln (translate language native) tag that renders "de" as Deutsch and "en" as English. Wikipedia does it right already.

I have merged your pull request and released version 1.3.4.


TestInterrupts is flacky

https://travis-ci.org/mattn/anko/builds/356702741?utm_source=github_status&utm_medium=notification

Unfortunately, not surprised. Any ideas on better ways to do this? Maybe I will just increase the number of loops.

I don't surprised too. Just a note.

Maybe https://github.com/mattn/anko/pull/140 will help?

@MichaelS11 Could you please try to make PR for this again?

Yes. Also been trying to figure out if there is a better way.

To update this issue, new PR https://github.com/mattn/anko/pull/149 was merged.

@mattn
Truly to be helpful, thought you might like to know the word you are probably looking for is flaky.
https://www.urbandictionary.com/define.php?term=flaky

Thanks.


Unable to access root level macros in plugins

What version of Elysia.JS is running?
1.0.20
What platform is your computer?
Darwin 23.2.0 arm64 arm
What steps can reproduce the bug?
The steps for this bug our outlined in this thread. @SaltyAom already patched a fix for usage in groups, but the same patch for plugins feels like the next step given the documentations recommendation to use plugins as a means of cleaning up routes.
What is the expected behavior?
Macros applied at the global level are inherited by plugins
What do you see instead?
Plugins don't have access to the macros
Additional information
No response

Should be resolved in 3d0adcf, published on 1.0.27
Feels free to tag me to reopen the issue if the problem still persists.


Add WireGuard connectivity test to functional_testing.sh CI script

The .ci/functional_test.sh script should include a connectivity check to an external site, such as ping -c 4 <IP_ADDRESS>.
This will require a device to be created beforehand.

#392 will enable this

Closing in favor of firezone/product#387


Pressing ESC on credentials view reveals underlying screen

There is no wallet loaded, but the screen activates. Just needs the window close to be disabled.

I've added an extra constructor to the AbstractWizard (a boolean) so you can suppress the ESC keybinding to the close action.
Tested with hard and soft wallets
Awaiting review and closing

Added similar support to the WelcomeWizard since it also operates outside of an unlocked wallet.
Verified working in both cases so closing.


Implement [Fiber Framework] Middleware Rate Limiter

By submitting this pull request, I confirm that my contribution is made under the terms of the MIT license.
Problem/Feature
Implementing this rate limiter is pretty useful. I've been using it on my large RESTful APIs (500+ Handlers) with HTMX (for front end).
Description of Changes:

[+] feat(program.go): add middleware limiter to fiber package
[+] feat(fiber.go.tmpl): add rate limiter to HelloWorldWithRateLimiterHandler
[+] feat(fiber.go.tmpl): add setRouteRateLimiter function to set rate limit configuration

Checklist

[X] I have self-reviewed the changes being requested
[ ] I have updated the documentation (if applicable)

some ci error lmao
run golangci-lint
  Running [/home/runner/golangci-lint-1.55.2-linux-amd64/golangci-lint run --out-format=github-actions --path-prefix=fiber --timeout=5m] in [/home/runner/work/go-blueprint/go-blueprint/fiber] ...
  Error: : # fiber/internal/server
  internal/server/routes.go:9:2: time redeclared in this block
  	internal/server/routes.go:4:2: other declaration of time
  internal/server/routes.go:9:2: "time" imported and not used (typecheck)
  Error: could not import fiber/internal/server (-: # fiber/internal/server
  internal/server/routes.go:9:2: time redeclared in this block
  	internal/server/routes.go:4:2: other declaration of time
  internal/server/routes.go:9:2: "time" imported and not used) (typecheck)
  Error: could not import fiber/internal/server (-: # fiber/internal/server
  internal/server/routes.go:9:2: time redeclared in this block
  	internal/server/routes.go:4:2: other declaration of time
  internal/server/routes.go:9:2: "time" imported and not used) (typecheck)

  Error: issues found
  Ran golangci-lint in 12550ms

@H0llyW00dzZ can you add a limiter to all the frameworks?

Any changes like this would need to be applied to all frameworks.

I haven't tested it yet for other frameworks, but currently, it works well for Fiber since it provides everything needed for web applications. Also Fiber's performance is particularly impressive for serverless applications when combined with Sonic for JSON decoding/encoding, marshaling, and unmarshaling.

@H0llyW00dzZ another concern with these PRs is that go-blueprint is intended to be an un-opinionated way of setting up a boilerplate Go project. I think this and the other PRs you have opened are good ideas though.
I'll discuss with the team to decide if this is something we'd like to see.

@H0llyW00dzZ another concern with these PRs is that go-blueprint is intended to be an un-opinionated way of setting up a boilerplate Go project. I think this and the other PRs you have opened are good ideas though.
I'll discuss with the team to decide if this is something we'd like to see. I just didn't want you to think we're ignoring your PRs.

@briancbarrow Yeah, it's fine. I came here to contribute so that I don't have to write the code again when using this boilerplate Go project for other RESTful APIs or front-end websites written in Go.

Also it might useful for anyone who need it that, and don't have write again

@H0llyW00dzZ after discussing it with @Melkeydev and @Ujstor we have decided that this feature is beyond the scope of what go-blueprint is supposed to be. It is intended to just be a scaffold from which to start projects. Users can add more robust features/middleware as they see fit.
Thanks though for your PRs. We appreciate the contribution even if it ends up not being a fit.


Contact email address not valid

At the bottom of the README.md it says: Contact "Kaito devs"<EMAIL_ADDRESS>That email address is not valid. What should it be?

Thanks for finding the issue. Fixed with PR #317 .


no effect of change v-model value

I use CurvedBottomNavigation:
CurvedBottomNavigation(:options="navOptions" v-model="selected" replaceRoute)
I try change selected value throw my code, but navigation doesn't work.

It is fixed in the new version (2.3.4)
Thank you.

It doesn't work in Vue3


Don't ask again option in disable codelens notification doesn't work

https://github.com/pester/vscode-adapter/blob/7b21a036e075bc0855955f52b311740c7b4d9fd4/src/extension.ts#L46-L49
This tries to update powershell.pester.suppressCodeLensNotice, doesn't it? Should be pester.suppressCodeLensNotice

@fflaten thanks! Probably a goof, as I recall it was working before. I'm finishing up a major change for multi-root workspace support and then I'll double check this after that.

@fflaten thanks, I had a fire and forget on this so wasn't seeing the error that I was trying to update the powershell setting context and not the pester one. Fixed.


add scalajs support

fixes https://github.com/tpolecat/atto/issues/49

Wow this is great! Thank you. I will give it a try on the plane tomorrow.

The scala-js plugin creates a bunch of empty directories including a top-level src/ tree and .js and .jvm dirs within each module. Do you know how to turn that off?

Would you mind upgrading scalacheck to 1.13.4 on your branch? It builds in CI but not locally for some reason, and upgrading seems to fix it.
I published 0.5.2-SNAPSHOT from your branch to make sure that stuff works, and it seems fine. But can you take a look here and verify that the expected artifacts are there, with the correct names? Looks ok to me but I'm not very familiar with Scala-JS so another set of eyes would be helpful.
otherwise 👍 👍  👍

Hi!
Regarding all the hidden folders that ScalaJS creates... that's the normal way, I think. ScalaJS creates that for using hidden folders as the true project's root in terms of SBT.
As for the artifacts, everything seems correct.


entrega 4 - grupo 02

Integrante 1 - Giacobbe, Juan Ignacio
Integrante 2 - Fernandez Boch, Valeria
Integrante 3 - Olaran, Sebastian
Integrante 5 - Cusihuaman Altagracia, Luis Eduardo
GUI BASICA

Codecov Report

Merging #8 (3ba2ff5) into release/entrega_03 (5c5be9d) will decrease coverage by 1.53%.
The diff coverage is 75.54%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@                   Coverage Diff                    @@
##             release/entrega_03       #8      +/-   ##
========================================================
- Coverage                 80.20%   78.68%   -1.53%
- Complexity                  229      246      +17
========================================================
  Files                        54       52       -2
  Lines                       672      746      +74
  Branches                     49       50       +1
========================================================
+ Hits                        539      587      +48
- Misses                      118      137      +19
- Partials                     15       22       +7

Impacted Files
Coverage Δ

...du/fiuba/algo3/modelo/defensas/NoRalentizador.java
75.00% <0.00%> (-25.00%)
:arrow_down:

...edu/fiuba/algo3/modelo/defensas/TrampaArenosa.java
76.92% <0.00%> (-6.42%)
:arrow_down:

...va/edu/fiuba/algo3/modelo/enemigos/NoDaniable.java
40.00% <0.00%> (-26.67%)
:arrow_down:

.../java/edu/fiuba/algo3/modelo/parcelas/Parcela.java
90.90% <ø> (ø)

...edu/fiuba/algo3/modelo/parcelas/PasarelaComun.java
71.42% <0.00%> (-5.50%)
:arrow_down:

...ain/java/edu/fiuba/algo3/modelo/enemigos/Topo.java
65.51% <25.00%> (+15.51%)
:arrow_up:

.../java/edu/fiuba/algo3/modelo/enemigos/Lechuza.java
63.33% <40.00%> (-1.67%)
:arrow_down:

...ava/edu/fiuba/algo3/modelo/estados/EstadoVivo.java
91.66% <50.00%> (+1.66%)
:arrow_up:

.../main/java/edu/fiuba/algo3/modelo/AlgoDefense.java
71.42% <64.81%> (-5.72%)
:arrow_down:

...convertidor/ConvertidorEnemigosImplementacion.java
67.85% <67.85%> (-20.83%)
:arrow_down:

... and 14 more

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


[TypeScript Plugin] ENOENT: no such file or directory 'node_mnode_modules/...'

When I set external in the serverless.yml options to be the name of two node modules (which exist) I get the following error:
ENOENT: no such file or directory, lstat '/Users/darbio/Repositories/tsz/tsz-serverless-api/.build/node_mnode_modules/nodemailer'
Function:
  wp-shared-email:
    handler: functions/workers/shared/email/handler.index
    optimize:
      external: [
        'nodemailer',
        'email-templates'
      ]
    events:
      - sns:
          topicName: ${self:custom.sns-topic-shared-email}
          displayName: SNS topic for sending email

Error:
192-168-1-101:tsz-serverless-api$ serverless deploy function -f wp-shared-email --aws-profile tsz-dev --stage dev
Serverless: Configuring serverless offline -> localstack
Serverless: Configuring serverless offline -> kinesis consumer
Serverless: Compiling with Typescript...
Serverless: Using local tsconfig.json
Serverless: Typescript compiled.
Serverless: Optimize: starting engines
Serverless: Optimize: tsz-serverless-api-dev-wp-shared-email

  Error --------------------------------------------------

  ENOENT: no such file or directory, lstat '/Users/darbio/Repositories/tsz/tsz-serverless-api/.build/node_mnode_modules/nodemailer'

     For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Forums:        forum.serverless.com
     Chat:          gitter.im/serverless/serverless

  Your Environment Information -----------------------------
     OS:                     darwin
     Node Version:           6.9.4
     Serverless Version:     1.26.0

Anyone understand why this is happening? I can't find anywhere in the source code where this would be a problem but if someone can point me in the right direction happy to debug and PR.

@darbio I never used TS with SLS. So this needs to be fixed.
Have you came to a externalDir code that works with TS? I can give it a test without TS.

@goncaloneves I got it working with the code above, however I never got around to doing a PR as we ditched the external library.
The TS plugin transpiles to a ‘.build’ folder.

@darbio are you still using TS plugin with optimize? Want to understand if the issue here is TS compatibility or specific only to those libraries. Thanks for taking the time to explain.

Still using the package.
The problem only manifested itself when I used the external config option.
The problem is that the TS gets transpiled to a folder (.build) which changes the substring dry algorithm in this plugin.
Changing the code as per my above post fixes the issue - however I haven't tested with non TS projects. It should work, but it needs to be tested.
The external library that I was using failed because it symlinked to other external packages that no longer existed at that symlink.
Another failed due to not being compatible with the minification process (not a problem with this project).

Awesome @darbio. I will give it a go in the next few days without TS 👍

I'm having the same issue above. Any fix from the library distribution side?

Same for me - is there any progress on this topic
OperationalError: ENOENT: no such file or directory, stat 'XXXX/server/.build/node_mnode_modules/swagger-ui-dist'] {
  cause: [Error: ENOENT: no such file or directory, stat 'XXXX/server/.build/node_mnode_modules/swagger-ui-dist'] {
    errno: -2,
    code: 'ENOENT',
    syscall: 'stat',
    path: 'XXXX/server/.build/node_mnode_modules/swagger-ui-dist'
  },
  isOperational: true,
  errno: -2,
  code: 'ENOENT',
  syscall: 'stat',
  path: 'XXXX/server/.build/node_mnode_modules/swagger-ui-dist'

custom:
  optimize:
    external: ['swagger-ui-dist']

This might help: https://github.com/serverless/serverless-plugin-typescript/issues/239#issuecomment-1313951913


reserved identifier violation

I would like to point out that identifiers like “_CNFG_ANDROID_H” and “_DRAWFUCNTIONS_H” do not fit to the expected naming convention of the C language standard.
Would you like to adjust your selection for unique names?

Yes... But I also have to decide what I'm going to do for overall nomenclature of this whole project.  Maybe right now is the correct time for that.

Now would be the time to think about it. I will likely commit this tomorrow.

How do you think about to avoid that this software depends on undefined behaviour?

You would need to be much more specific in your suggestions/requests.

I suggest to reduce the tampering with the reserved name space.
Please read the linked information sources.


docs(bootstrap): point to 4.0.0-alpha.4 css

Coverage remained the same at 100.0% when pulling 160d3359c00329fca8e93e211e30a2dce4df2b63 on alpha-4 into f4c31d585ddd92a54c96ede3c7cfb0211297cb9d on master.


Output of Dimension Cluster

https://github.com/leetenki/YOLOv2/blob/cd2b69c36ccee8babc0ba013ab47bc8f4177c850/dimension_cluster.py#L66
Hi!
Thanks for your really nicely documented work! I had a quick question on the above snippet ^^. Why is it that you multiply the final centroid width and height by the grid width and height?
In my use case, the centroid widths and height correspond to say 20 pixels in the true image. I imagine this should then be divided by the grid width and height to determine the final anchor values (as the anchor values are multiplied by the grid width and height correct?).
Could you help me understand why you instead multiply by the grid dimensions to get the anchor values? If I did this method I would get anchor values of (260 etc.)

@dhruvp Hello. I currently bumped into the same question as you.  Though this is only my guess, since we can't see the annotation file, the width and height in the annotation file seems to be written in the relative coordinate.  That is,
relative_object_width = object_width/image_width/grid_width


Enhancement Avoid update_process_fd_num reporting no such file error indiscriminately.

Proposed changes
Cherry-pick from https://github.com/apache/doris/pull/26013
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Launch-a-Shell command

Something like:

shell_image = sk8s.docker_build("shell-image",
                                conda=["tmux", "vim", "less"])

shell_job = sk8s.run(lambda: subprocess.run("tmux"), name="shell-{s}", image=shell_image)

def connect(shell_job):
    subprocess.run("kubectl exec {shell_job} -it -- tmux attach")

...or some such 🤔

would be nice for it to do the tmux thing, but let's not let the great be the enemy of the good here. Closing.


bulk_wait_interval is unused

I can't see any reference to where bulk_wait_interval is being used. Is there a planned future use of it? If not, would you accept a PR to update the README?

Yes, we plan to make it work as described in the README.

This has been fixed. https://github.com/infinitered/elasticsearch-elixir/commit/81fa49bb787eefe6ce6113dd67dd2fe9f6f8b3b7


Dependency on itself?

I don't understand this line:
https://github.com/tox-dev/sphinx-autodoc-typehints/blob/d7613ad3beb4d0e90102675b90fff8aad671a446/pyproject.toml#L42
This looks to me like the project has a dependency on itself, but on a newer version than currently exists (1.23.0).
Perhaps this is a misunderstanding, then I'd like an explanation what this means. Thank you!

I guess this is just some hack to install the dependencies in the docs building CI.
Read The Docs seems to be set up via the UI there.
For the maintainers, there is a toggle you can click to install the package itself.
Otherwise, create a [.readthedocs.yaml file](https://docs.readthedocs.io/en/stable/config-file/v2.html) to the repo with appropriate setting.

This is a bug PR welcome to remove it.

Thanks for the feedback, PR submitted.


HW Acceleration disabled despite plugin saying its enabled

In the jellyscrub plugin settings, I have full hardware acceleration enabled. In my playback settings I have Nvidia hardware acceleration enabled, for all codecs.
The jellyscrub plugin used to run ffmpeg with CUDA, but it randomly stopped using CUDA. I have tried restarting Jellyfin and my computer. Why would the plugin not use HW accel if the plugin setting has it enabled?

Similar problem. Processor i5-12100, hardware encoding configured. When watching movies, everything is fine, I see through intel_gpu_top that the video core is loaded and used for encoding. When using jellyscrub, for the first 10-30 minutes after activating the plugin, it works using hardware encoding, and after that it starts to load only the processor, without using the video core.

Are you guys doing HW acceleration through some virtualization layer like docker? Also, if you force a video to transcode, for instance by lowering the bitrate during video playback, do you see that your GPU is being correctly used by Jellyfin even when it is not being used by Jellyscrub?

Are you guys doing HW acceleration through some virtualization layer like docker? Also, if you force a video to transcode, for instance by lowering the bitrate during video playback, do you see that your GPU is being correctly used by Jellyfin even when it is not being used by Jellyscrub?

Yes, I'm using a docker container.
I've tested the nvidia-smi command and it worked great and video are transcoded.
There is only the bug which display that display that there is transcodes but is not listing them. But that's another thing.
Only jellyscrub still using the CPU.


Drop Old Data

Currently Kapacitor expects data to arrive in order. If data arrives out of order the behavior of the task is undefined. It would be nice to improve Kapacitor to simply drop old data so that writing old data doesn't cause unknown or unwanted behavior.
My initial thoughts are that the StreamNode could easily accomplish this.

Something I had not thought about being an issue but clearly can cause issues.
Does kapacitor not take into account the metric timestamps?

@elvarb Kapacitor only takes into account the metric timestamps, it does not care what the current time is according to the system. Meaning if you write data to Kapacitor with timestamps of last year then that task will think it is last year. All times are computed as per the timestamps on the metrics.  Each task keeps track of the current time which is defined as the greatest timestamp seen from any data point.  The challenge is that Kapacitor expects the data to arrive in order for a given measurement.  That is why the replay system exists as it will start a new instance of your task and feed it the data from the recording with its isolated clock etc.
The issue here is rather than just let what ever bugs exist happen, prevent old data from being written by dropping any points that are less than the current task time.

How does it handle queued up metrics?
For example disaster strikes network is down, local queues start to fill. When the network comes back up hours worth of metrics is pushed to kapacitor.

@elvarb So long as the metrics are written in increasing time order then the result is the same as if the metrics arrived in realtime.
This is this nice thing about using the metrics timestamps is it doesn't matter what the current time is the result is always the same for identical datasets.

Ok then the chances of running into this issue is pretty slim. Only when backfilling old data.

What about having multiple active window nodes? When a new window is started, allow some time for the old one to remain active before the points it has collected are emitted.


[Backport] LPC55XXX Series system clock hw cycles per sec configuration is wrong

Describe the bug
LPC 55xxx series system timer hw clock cycle configuration is wrong
Impact
System time on LPC55xxx series is recorded as 150% of reality
see #64787 for details and fix, affects 3.5 too

Closing as https://github.com/zephyrproject-rtos/zephyr/pull/64835 was merged.


ntfy support?

Heyho,
is it on your roadmap to have some additional notification service available? Maybe ntfs or apprise?

Komf supports webhooks, and you can use webhooks with ntfy.
So ntfy is already supported.

I've added basic Apprise cli integration, it'll require system install of Apprise (It will be available in docker image),
you should be able to call ntfy with it
I'm not sure if I want to add Apprise-api integration yet. If you want that then it'll be better to create a separate issue for that


Key events when keep pressing an arrow key

When keep pressing an arrow key (up, down, left, right) of keyboard, the key event seems to occur only once.
Repro

In any TextField, type any characters
Keep pressing an arrow key to move cursor continuously.
But, the cursor moves single step.

Expected
The cursor should be moved continuously like typing any other characters.
This isn't limited to TextField, it happens in general, like moving a Widget's focus.
Environment

Device : RPI4
Platform: tizen-unified_20220713.2_tizen-headed-armv7l
Embedder: Latest

I can't reproduce the problem. We're already taking repeated key events into account.
Which device did you use?

RPI4 34bit :(

Some keys (return, arrow keys, numbers, etc) do not constantly generate ECORE_EVENT_KEY_DOWN event.
https://github.com/flutter-tizen/engine/blob/06ddbce069b64d4e5471665eceb36292bb38cb8f/shell/platform/tizen/tizen_window_ecore_wl2.cc#L314-L336
Maybe there's an API that can change which keys should be keep generating ECORE_EVENT_KEY_DOWN events?

To share findings so far, ecore_wayland module listens a single keyboard press down event and determines if it should generate repeating ECORE_EVENT_KEY_DOWN events. The module determines this internally by calling xkb_keymap_key_repeats which returns whether the given key should be repeated or not (https://github.com/xkbcommon/libxkbcommon/blob/57af9cb71f19f37394399b549f7cb7b0d9fe3988/include/xkbcommon/xkbcommon.h#L1263-L1279).


Hub-Refinement: Design

[x] Make fontsize in the three "cards" on the Landingpage much bigger - and centered on all screensizes if possible
[x] Remove the Vase + Slogan Picture in the subpages --> use Slogan only instead

implemented


Parameterize literal types

Once upon a time, Dragon had a set of built-in literal types, the numeric types of which were parameterized by bit precision and signedness. From the very beginning of Hydra (https://bit.ly/hydra-design-doc), we have had instead of parameterized literal types, a simple nested enumeration of literal types, e.g. with built in bigfloat, float32, float64, bigint, int8, ... int64, uint8, ..., uint64. This enumeration hasn't changed since the doc was written. IIRC there was a good reason for choosing this design, but I didn't record the reason and can't recall it now. Most likely, the parameterized types in Dragon had been inconvenient in some way. However, there is now pressure to add even more literal types, including decimal numbers of varying bit precision, and I think the enums are going to become unwieldy. Instead, I propose to investigate parameterized literal types once again, in a branch, and see how they work out. The literal value grammar will likely break symmetry with the literal type grammar for the first time.

Actually, I did describe the reasons in the design doc; parameters were dropped for the sake of inference:
No parameterized primitive types: Hydra does not currently parameterize primitive types like Dragon does. For example, there is no "precision" parameter for integer or floating-point types, no "signedness" parameter for integer types, and no "maximumLength" parameter for string types. In Hydra, the complete type of an atomic value can be inferred from the value itself, whereas Dragon's primitive type cannot. In Hydra we relieve some of the need for parameters by providing additional value constructors like int16, int32, uint64, float32, float64, etc. as well as bigint and bigfloat types. Dependent types like integers with bounds, strings with bounded length regex, etc. are possible using metadata, but are not part of the Hydra Core type system.
That's a valid reason, but removing the parameters is not the only solution; another solution is simply to include literal types within literal value representations, so the type does not need to be inferred. The more verbose values shouldn't be a problem for typical applications, in which Hydra Core is used as an intermediate representation, not as a representation for data exchange. TBD what the best compromise is between verbosity of data vs. schema representations.


dockerfile: more gracefully handle partial parsing. Fixes https://github.com/windmilleng/tilt/issues/3331

Hello @maiamcc,
Please review the following commits I made in branch nicks/ch6997/mount:
5f4d2bafd7744ef13cb2d9c14df2dae32214189e (2020-05-13 21:24:52 -0400)
dockerfile: more gracefully handle partial parsing. Fixes https://github.com/windmilleng/tilt/issues/3331
Code review reminders, by giving a LGTM you attest that:

Commits are adequately tested
Code is easy to understand and conforms to style guides
Incomplete code is marked with TODOs
Code is suitably instrumented with logging and metrics

haha, I think this is a pretty classic "oh ya, the bug is almost entirely unrelated to the thing we thought it was"


Getting ##[error]Cannot read property 'number' of undefined

Hi, tried using your code for github actions via marketplace, getting the following error while trying to build and run my html. Have you encountered the same?
Run pavi2410/html-preview-action@v1a
with:
msg: Click here to preview HTML page in browser
html_file: docs/html/index.html
gh_token: ***
##[error]Cannot read property 'number' of undefined

First of all, thanks for using this Action.
Regarding the error, I think this is the cause of it
https://github.com/pavi2410/html-preview-action/blob/380ab8301465549934d5a27f4430bb28ab770057/index.js#L14
This can happen if the Action is not run from a PR. Can I check your workflow file?
BTW, I have thought of removing the comment system from this Action and let users use another comment Action from the marketplace.

Thanks, yes figured out that the action was being run on "push" rather than a PR hence the issue


Revert "unskip some sidecar integ tests in the ambient suite"

Reverts istio/istio#46957

https://istio.slack.com/archives/C049TCZMPCP/p1694807602521989

@hzxuzhonghu: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
3020c4b0b62e86e5389c787aa90a4ca75c3b6e1e
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


refactor(*): general refactoring on typings, coding style and etc

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
General refactoring on types and etc

I tested the build locally and it's passing. merging this in


Last seen feature

Adding last_seen timestamp when user is offline/invisible might be useful since it can tell when the last time user is active.

this feature sucks, respectfully kill yourself.

@dustinrouillard add me and say it to my face @schizophrenicshotgunowner in discord


x/pkgsite: highlight above "Discover Packages" is less helpful than it should be

This is a UX issue following on from #39767. I don't believe it fits into the form of the x/pkgsite page issue report, so this is freeform-ish.
The upper menu for the page includes a pale blue highlight bar above the "Discover Packages" item. In the current incarnation of the page, this appears as an obstructed widget (hence the confusion in the ref'd issue).
It is unclear what the purpose of the highlight above the item in them menu is for, though presumably to draw attention to it. It doesn't really do this well given its pale colouring and perhaps another approach should be chose. Or alternatively just let people read the text, which could remain bolded as it is currently.

What is the URL of the page with the issue?
https://pkg.go.dev/
What is your user agent?

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:77.0) Gecko/20100101 Firefox/77.0
Screenshot

/cc @julieqiu

Thanks for the feedback, @kortschak!
/cc  @Joanne881107 @spf13 @fflewddur for product / UX input

I agree with this feedback. It's something to consider as we look to improve the site design.
FWIW, the primary indication here is the bolded text. The color bar is stylistic first and functional second.


[release 1.3] bugfix: In case of err in vmrestore, leave VM without RestoreInProgress annotation allowing it to be started

This is a manual backport of PR https://github.com/kubevirt/kubevirt/pull/12835
(removed the last commit which is only relevant to main since in this release we still use statusUpdater)

Fixes # Jira-ticker: https://issues.redhat.com/browse/CNV-48787
Why we need it and why it was done in this way
The following tradeoffs were made:
The following alternatives were considered:
Links to places where the discussion took place:
Special notes for your reviewer

Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

[ ] Design: A design document was considered and is present (link) or not required
[ ] PR: The PR description is expressive enough and will help future contributors
[ ] Code: Write code that humans can understand and Keep it simple
[ ] Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
[ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required
[ ] Testing: New code requires new unit tests. New features and bug fixes require at least on e2e test
[ ] Documentation: A user-guide update was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature / API change.
[ ] Community: Announcement to kubevirt-dev was considered

Release note

bugfix: In case of err in vmrestore, leave VM without RestoreInProgress annotation allowing it to be started

/retest

/lgtm
/approve


Stack using STL

Description
Stack using STL
Domain
C/CPP
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

/assign


Memoize subdivision YAML loading

Currently the subdivision YAML files are being loaded for every new Country instance. This PR memoizes the loaded YAML file on a class instance variable.
Also replaced the inject -> merge pattern with a more performant version.
Performance changes:
From:
pry(main)> Benchmark.realtime { 10000.times { Country['US'].subdivisions } }
=> 17.20118099998217

To:
pry(main)> Benchmark.realtime { 10000.times { Country['US'].subdivisions } }
=> 0.6878289999440312

@mdehoog What are the memory benchmarks on this?  But this is awesome.

Before:
pry(main)> Benchmark.memory { |x| x.report { Country.all.each(&:subdivisions) } }
Calculating -------------------------------------
                        16.663M memsize (     0.000  retained)
                       130.895k objects (     0.000  retained)
                        50.000  strings (     0.000  retained)

After:
pry(main)> Benchmark.memory { |x| x.report { Country.all.each(&:subdivisions) } }
Calculating -------------------------------------
                         8.122M memsize (     4.710M retained)
                       121.002k objects (    64.401k retained)
                        50.000  strings (    50.000  retained)

More memory is retained (~4.7mb), but interestingly not as much is allocated.

And for clarity these only loaded if you call subdivisions?  So no performance change if you are not using subdivisions?

Correct, the subdivisions are still loaded lazily, but are now memoized at a class level rather than an instance level.

Well hell yea, this is great.


Visual Studio formatting is wrong in some cases

Here is an example
var webApps: ng.ui.IState[] = [{
    name: "home.webapp",
    templateUrl: "templates/empty-shell.html"
}, {
    name: "home.webapp.templates",
    templateUrl: "templates/templates.html"
}, {
    name: "home.webapp.work",
    templateUrl: "templates/work.html"
}];

VS formats it to
var webApps: ng.ui.IState[] = [{
    name: "home.webapp",
    templateUrl: "templates/empty-shell.html"
}, {
        name: "home.webapp.templates",
        templateUrl: "templates/templates.html"
    }, {
        name: "home.webapp.work",
        templateUrl: "templates/work.html"
    }];

another example is
function test($http: ng.IHttpService) {
    $http({
        url: "https://github.com",
        method: "GET"
    })
    .success((d) => {
        console.log(d);
    })
    .finally(() => {
        console.log("finally");
    });
}

VS formats it to
function test($http: ng.IHttpService) {
    $http({
        url: "https://github.com",
        method: "GET"
    })
        .success((d) => {
            console.log(d);
        })
        .finally(() => {
            console.log("finally");
        });
}

I agree on array thing.
The method chain call is another story. Hard to say if its the bug, as probably it would depend on personal preferences.
Take this example of 2 functions:
function test1() {
return
"a".
toLower().
toUpper().
toCrap();
}
function test2() {
return $http({}).
success({}).
finally({});
}

The first function might be as those two variants (at least!)
function test1() {
  return "a"
  .toLower()
  .toUpper()
  .toCrap();
}
OR
function test1() {
  return "a"
    .toLower()
    .toUpper()
    .toCrap();
}

I would like to see it even as:
function test1() {
  return "a"
    .toLower()
    .toUpper()
    .toCrap()
  ;
}

... where "return" and ";" defines range statement.
Now apply this to test2 and see what are the results.

#3827 will cover the first example (not yet). Not sure about the second one. JSBeautifier even does this:
function test($http: ng.IHttpService) {
    $http({
            url: "https://github.com",
            method: "GET"
        })
        .success((d) => {
            console.log(d);
        })
        .finally(() => {
            console.log("finally");
        });
}

I also have run into strange formatting behaviour. Seems that it indents parameters one level only, independently of the actual nesting level of functions.
        public import() {
            if (this.isImporting) {
                return;
            }
            this.isImporting = true;
            this.floorPlansRepository.import()
                .then(
                success => {
                    this.fetch();
                },
                error => {
                    this.notificationService.showErrorResponse(error);
                })
                .finally(() => {
                    this.isImporting = false;
                });
        }

Which I think should look like:
        public import() {
            if (this.isImporting) {
                return;
            }
            this.isImporting = true;
            this.floorPlansRepository.import()
                .then(
                    success => {
                        this.fetch();
                    },
                    error => {
                        this.notificationService.showErrorResponse(error);
                    })
                .finally(() => {
                    this.isImporting = false;
                });
        }

Also, ReSharper code reformat does the indentation, is it is really frustrating to see code format changing every time when editing it, as VS keeps reformatting it back.

@mhegazy i don't understand HelpWanted tags that you put, there were a few pull requests about fixing formatting and all got nowhere without any comments: https://github.com/Microsoft/TypeScript/pulls?utf8=✓&q=is%3Apr+is%3Aopen+format


Tests should use running julia version for examples rather than whichever is on path

The #!/usr/bin/env julia line in the examples is fine, but the "Examples" testset shouldn't be relying on it to run them. It might be an entirely different version of Julia, or none at all, on the path.

ping @bicycle1885

Ah, thank you. #23 will fix it.


Quantum Kernel

Class (quantum_kernel.py) that calculates a quantum kernel for use in scikit-learn machine learning algorithms for classification (qsvc.py) and regression (qsvr.py) algorithms.

@stefan-woerner previously you mentioned that the QSVR and QSVC classes should perhaps directly take a QuantumKernel in their constructor, rather than a feature_map / quantum_instance. we should decide on this. I don't have a strong opinion about this either way.

@attp let's leave as is with feature map and quantum instance.

@attp let's leave as is with feature map and quantum instance.

Now that I'm adding documentation and tests, it makes more sense to initialise QSVC and QSVR with a QuantumKernel rather than a feature_map and quantum_instance.


[Suggestion] Display all resources in a list

Being able to see which resources are in the resources folder and being able to click on them and then start/stop them without having to type the name (which sometimes goes wrong)

@Neddings Please avoid adding [Suggestion] on the title, once I see the issue I'm going to add the enhancement label.

Just to clarify what I meant with this request:

Else it might be a different thing you might be thinking about

This was implemented on b445368936c42a8482eb8f8563df76a3d1d252b4. The list of resources will not be moved on the side of the console because there is no reason to.

What you showed does a refresh, what I want is the ability to restart a resource from the console area without having to manually type the start / restart / stop in the console area


MONDO:0009253 Fryns syndrome alt name

Mondo term (ID Label)
MONDO:0009253 Fryns syndrome
Bug/Typo/Error description
The synonym Moerman Van den Berghe Fryns syndrome is attributed to GARD
name" : "Moerman Van den Berghe Fryns syndrome",     "scope" : "hasRelatedSynonym",     "type" : null,     "xrefs" : [ {       "database" : "GARD",       "id" : "0003699",       "description" : null,       "url" : "https://rarediseases.info.nih.gov/diseases/0003699/index"
But I do not see this synonym on GARD's site: https://rarediseases.info.nih.gov/diseases/3699/fryns-syndrome
Also note that this related syn is conflicting with MONDO:0015424's alt name of Moerman-Vandenberghe-Fryns syndrome, but this entire Mondo record seems like it could/should be retired anyways (more to come from MedGen team along these lines, we have a number of Mondo IDs that we think should be obsoleted because the sources are obsoleted)
Your nano-attribution (ORCID)
If you don't have an ORCID, you can sign up for one here

Dear @kanems,
Thank you for reaching out to the Mondo Disease Ontology, part of the Monarch Initiative!
We have received your ticket and will review it as soon as possible.
If you have any additional information or updates relevant to your inquiry, please add them in a comment on this ticket. Your input is valuable in helping us understand and resolve the issue effectively.
Thank you for your patience and for your contributions to Mondo!
Sincerely,
The Mondo Team

@kanems now that some time has passed, MONDO:0015424 'lethal chondrodysplasia, Moerman type' is able to be obsoleted and I will make that change.
For MONDO:0009253 'Fryns syndrome', I am not sure why the synonym 'Moerman Van den Berghe Fryns syndrome' is attributed to GARD, but not on their web site. I am checking on this. However, I do see in UMLS that Fryns syndrome does include this term from MeSH https://uts.nlm.nih.gov/uts/umls/concept/C0220730 and can change the attribution to MeSH.


Update logging

Create a log file on each startup, if file reaches 1MB or one full day at one startup, it will be rolled back as zip archive.
All level logs are written to the file, console log displays only info for the user.

@AlexandraSokolova excellent, thanks!


Missing image constructor with file path in 2.x

Expected behavior
Can create an image from a URL or local path
$myImage = new Image( get_stylesheet_directory() . '/img/compass.png' );
Actual behavior
Constructor for images based on path no longer exists
Steps to reproduce behavior

What version of WordPress, PHP and Timber are you using?
PHP 7.4, WordPress 6.0, Timber 2.x beta 1
More information
Images used to have an init method that was called from the image constructor.
https://github.com/timber/timber/blob/master/lib/Image.php#L265
All the underlying code is still there (now in Attachment class), but it's protected and can't be directly used:
https://github.com/timber/timber/blob/2.x/src/Attachment.php#L129

Direct instantiation of Timber\Post and it's child classes is deprecated in 2.0, so new Image(); would not be expected to work (at all) for this reason.
The functionality you're after has been preserved though, after reviewing the docs I think this could be made clearer, but you're after Timber::get_attachment_by( $pathToImage ) - see https://github.com/timber/timber/blob/2.x/src/Timber.php#L600
This is also available in twig templates, so where you used to do {{ Image( 'path/to/image.jpg' ) }} you would now do {{ get_attachment_by( 'path/to/image.jpg' ) }}.
Highly recommend reviewing the upgrade guide a couple times - https://timber.github.io/docs/v2/upgrade-guides/2.0/#timber\image-and-timber\attachment - It's taken a few read-throughs for the implications to really sink in for me personally!
Hope this helps.

The behavior is not the same. That only works for attachments: images that have been uploaded to WordPress via the media manager.
But what I'm expecting is to be able to use Timber Image class for arbitrary images, maybe part of the theme.
When they are not attachments, this line returns null
https://github.com/timber/timber/blob/2.x/src/Timber.php#L615
But in timber 1, you could create Image objects based on arbitrary paths, and then use image manipulation functions with them.

Right, I can see this, and appreciate the nuance there - but I believe that the intention behind classes like Attachment is exactly that, to mirror a WP_Post backed object. Looking at the implementation in 1.x, Timber\Image created via URL or File Paths are very much second class citizens, and almost none of the methods on the actual Timber\Image class work or return anything useful.
If your main concern is resizing or other operations like this, are you aware they do not need to receive a Timber\Image class?
If you have the abspath OR an external URL, you can pass this into the resize filter in twig just fine, and if you're trying to do it in PHP then you'd be looking at calling Timber\ImageHelper::resize( $path_or_url, $w, $h ); instead, with the same result.
Other operations in the Image Helper class can be called directly or accessed via the twig filters or their PHP static functions without a Timber\Image being provided.
While I understand that it means some changes to existing code, 2.0 is definitely going to need that across the board - the whole API is being tightened so it can be better maintained, and this involves the team rolling back a lot of "grey areas" where the use over time has made it really hard to make meaningful changes to Timber.
Using a class like Timber\Attachment which is 99% of the time a WP_Post backed object doesn't make the most sense to me, as 90% of the methods don't work when instantiated with a file or url.
Don't take my word as gospel - definitely up to the core team to decide what's right here, but based on what I've laid out above, I think it makes sense for this not to be supported anymore.

I completely agree with you on a few things there.
But a few points

I was not using Timber\Attachment before. That's a new class introduced in 2.0. In 1.x, that class didn't even exist.
It feels weird that you can provide a URL using TimberImage constructor class, and leaves you with an "improperly formatted" object. Shouldn't it throw an exception (or have the constructor private so it can only be accessed from the factory, if that's the desire)?
Code is still here https://github.com/timber/timber/blob/2.x/src/Attachment.php#L129, but it's inaccessible. I would assume if the removal of this feature is a conscious one, then I wouldn't be there anymore, and it would be documented as part of the deprecated functionalities on the migration docs.

That's why I think this is a clear gap in 2.0. Not sure if the gap is functionality is missing (that was my guess), or deprecation documentation is missing (that's another option), but "everything is as expected" is clearly not what I see here 😅

Absolutely - totally agree with you that if this is how it's going to be then the docs and deprecation notices need to be improved.
In 1.x Timber\Image still extended Timber\Post, so in a similar way to the new Attachment class, the 'intent' for lack of a better word was for it to be backed by a Post in the majority of cases.
When dealing with Image manipulation, the main benefit I can see is that you don't need to treat external / theme provided images differently in your templates, and they can be agnostic to the "source" of the original image, even though in these cases really all the Image is doing is providing it's src method.
There's a few potential ways forward here, might need some input from @jarednova / @gchtr - allow this in Attachment, ban it and do better docs / deprecations, or some middle ground where we make a new helper object to represent non-wp post backed images that is compatible with uses of Timber\Image in templates.

Thanks @xavivars and @aj-adl for flagging this and thinking it through. This is really some shortcoming of the current image functionality. This particular functionality is still missing in 2.x. That’s why it also isn’t documented yet.
We thought about the concept of images from external URLs when the introduced the Attachment class. But we postponed it as a later task. This was even before we started working on the factory classes. It might have slipped through as a feature that we forgot we still should implement.
The relevant discussion can be found here:

https://github.com/timber/timber/pull/1788#pullrequestreview-155613762
https://github.com/timber/timber/pull/1788#issuecomment-422521668

We thought of a new ExternalImage or ImageAsset class (how should be best name this?) that doesn’t extend the Attachment class, because as you both have correctly assessed, images from URLs are not really attachments. It should be a class that provides the functionality you can actually use on these images, but no useless methods or properties. Using the object factories, it should be easy to instantiate such an object.
Basically what @aj-adl proposes:

or some middle ground where we make a new helper object to represent non-wp post backed images that is compatible with uses of Timber\Image in templates.

I didn’t look into what exactly is needed to make this work. If any of you feels like they could implement this, we would appreciate the help.

I'll take this. However, I'm wondering if I should add another method (like get_external_image) in the Timber class, to act as a factory method (like the existing ones, get_post, get_attachment, or get_image), or if it would be better to overload get_image...
I'll take the first approach for now, but happy to change it later.

A possible solution for this has been implemented in https://github.com/timber/timber/pull/2639

This was fixed in #2639.
Thanks for leading the way and taking the time to help with this, @xavivars 🥳.

Thank you! You did most of the work ☺


Try out \b character for spinner

It should then be easily possible to verify output correctness together with writerSpy's ticks.
Try with os.Stdout if console output looks good, i.e. is "animated" and not just appending.

This might be helpful.


Discrepancy in Vendor Plate

The vendorBarcode field is defined only as barcode in the table documenting the return model. Also, vendorBarcodeImageURL is not described.
https://github.com/plantbreeding/API/blob/master/Specification/ExternalVendorSamples/Vendor_PlateSearch_GET.md
compare model to:
https://github.com/plantbreeding/brapi-Java-TestServer/blob/master/src/main/java/org/brapi/test/BrAPITestServer/model/rest/VendorPlate.java

fixed in the move to swagger documentation


implement a retrying AddressProvider when it finds zero addresses in wka

Motivation:
Required to support coherence helm value "store.jmx.enabled=true".
This AddressProvider is needed to address a race condition between jmx server and coherence headless server startup. Failure scenario is jmx server  fails to resolve headless coherence service on its wka list on start up and forms its own cluster. (see COH_WKA in coherence/templates/management.yaml for config)  Tests to recreate failure are in PersistenceSnapshotHelmChartIT testActivePersistence(values/helm-values-coh-active.yaml) and testSnapshotWithoutPersistenceWithPvc(values/helm-values-coh-snapshot.yaml). See details in COH-19292.  Any coherence helm chart configuration that slows down coherence service startup is likely to result in this issue.
Needed for <IP_ADDRESS> and <IP_ADDRESS>.  Will eventually be fixed as part of another bug against coherence in <IP_ADDRESS>.1 and <IP_ADDRESS>.  (add coherence bug reference here on coherence wka should not immediately just fallback to mutlticast if can not resolve addresses on wka list)
Discovered in above described scenario but can happen in just forming a coherence cluster between cluster members (but much more rarely and not as recreatable).
Requirements:

A new AddressProvider in coherence-operator utils module is required that retries when zero addresses are found on start up. (probably with some sort of delay or backoff, but not too long)

configure via system properties to control the frequency of the reresolve and the retry timeout.

needs to configure the AddressProvider to coherence overrides file so that it applies to all versions.

in existing overrides file for <IP_ADDRESS> that it will need to be added to
put in new overrides file for pre-<IP_ADDRESS> coherence versions.

update startCoherence.sh for new override file for pre-<IP_ADDRESS>
enable configuration of reresolve frequency and timeout to join cluster in coherence yaml and document in readme.

Success Criteria

unit  test for new AddressProvider in coherence-utils
integration test that explicitly defers start up of coherence headless server assigned in wka override for a cluster and ensure cluster is well formed.
passing PersistenceSnapshotHelmChartIT test that previously required a workaround

Closed by PR-26 merge to master.


Fix compiler errors for ARM64 build

My understanding is this code loads the image then reads the exception entries. Unfortunately in this case, the only runtime function entry struct that winnt.h loads is for the current architecture being compiled for. This pull request brings both AMD64 and ARM64 runtime function entry definitions into Process Hacker's headers in order to fix errors due to struct entries that are missing.

👍


Update NuGet issue number

NuGet issue #2582 was closed a duplicate of NuGet issue #352

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference/msbuild-targets.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


No Cluster install abort when a host is in installing-pending-user-action

There's recently review-in-progress of the states enabling/disabling the installation abort. Potential outcome will be implemented in follow-ups.


how can i compile it on raspberry pi

I ran build.sh
but i stuck in building libraries for linuxarmv7l ... i got this message "Missing lib build target ..."

This is fixed on the develop branch.  Call scripts/./bootstrap.sh.


Add toggle for pw visibility

@gildub Just pushed a change to not show initial placeholder values in the UI. We don't have acces to the user/pw fields of existing credentials at the moment.


Network Segregation of Lambdas

Describe the task
Segregate the lambdas via new custom network security groups.
Acceptance Criteria

[x] analysis of segmentation requirements documented in Confluence
[x] confirm this is possible within ASEA
[x] security groups created via terraform
[x] lambdas updated to use new security groups
[x] ensure minimal traffic is allowed for each security group

Additional context

Design recommendation here
See Confluence risk #16
See https://apps.nrs.gov.bc.ca/int/confluence/display/FSAST1/Network+Architecture

@catherinecarlson will merge


Improved accuracy of tracked source positions

And Simplified and detangled the inserts in HtmlTreeBuilder and XmlTreeBuilder.

See also - #1933 for some discussion


Misplaced Tooltip

In the screenshot below, I hover on bottom right chart, however, the tooltip shown at the top left

I fixed it by giving angularchart directive a position: relative style.
Shouldn't angularchart directive have position: relative style by default?

Hi @eckyputrady,
thank you for mentioning this, other people had the same problem. In the next release the css file will be part of the main files you automatically include with bower. The used styles are set in there.


Fix #31: Introduce RevertibleMigrationInterface

Q
A

Is bugfix?
❌

New feature?
❌

Breaks BC?
✔

Fixed issues
#31

Are you going to merge it?

What questions?

Added it. Note that for me dropping a column is not revertible.. If you readd it, there is no data. In this context revertible should mean revertible without data loss. Otherwise everything is revertible; just drop all and rerun migrations to the point in history you want.

My last comment was aimed at template for dropcolumn migration; I don't think that should be marked revertible since it is not

Ah, alright. I'll adjust it.

Hmm... it is except data. We can have down() and we can apply it.

Yeah but from that perspective everything is revertible. Just drop the  whole schema and reapply to the point you want... Name one migration that is not revertible if you don't consider data 🤔

That may be a separate marker, not an interface...

Fair enough. But what is the use of the revertible part then?
I tend to not implement a down() if it would cause data destruction... It makes no sense to make that so accessible.

Yes, that seems to be up to end user to decide.

Yeah it is, but we can provide guidance on it..

Absolutely but we disagree on the approach here :)


Please merge revision 13335ebf97cbdabe3b3b0c9b3a13f4ffa6fb49d4  into dev channel

@ricowind @whesse @kasperl
This changes DEPS so three third-party repos are fetched from their chromium mirror, not from github.
13335ebf97cbdabe3b3b0c9b3a13f4ffa6fb49d4

Merged in version 1.12.0-dev.5.1


Update to readout scheme files

This PR includes a large update to the readout schema. it significantly complicates things but I think that is necessary.
The new files are broken into additional sections. Under data we have

CommandName - this should be used in the target XML file in place of where we are currently using NIRDA/VDA.
IncludedMnemonics - this is the list of readout scheme names that are included in the file
FixedParameters - these should always be included in the science calendar XML file, with the values provided

All values that go into the science calendar XML are strings or integers. The only floats here are IntegrationTime, and these don't go into the XML file, but are used to calculate the number of integrations

You will notice that I have added two special keywords in the files

SET_BY_SCHEDULER
SET_BY_TARGET_DEFINITION_FILE

SET_BY_SCHEDULER is fairly simple, its the number of integrations and the scheduler should calculate this and add it to the XML block.
SET_BY_TARGET_DEFINITION_FILE are parameters that come from the target defintion files. So for example, TargetID and TargetRA are the parameters that are directly in the target defintion files.
@benhord we do need to think about how we handle these four lines. They are all relating to the reference stars
"StarRoiDetMethod": "SET_BY_TARGET_DEFINITION_FILE",
"numPredefinedStarRois": "SET_BY_TARGET_DEFINITION_FILE",
"PredefinedStarRoiRa": "SET_BY_TARGET_DEFINITION_FILE",
"PredefinedStarRoiDec": "SET_BY_TARGET_DEFINITION_FILE",

The full target block should be have the tag "CommandName" and then within that block have all the parameters from both "FixedParameters" and the particular readout scheme mnemonic named in the target defintion file. so here is an example for each channel
			<Payload_Parameters>
				<AcquireInfCamImages>
					<AverageGroups>1</AverageGroups>
					<ROI_StartX>0</ROI_StartX>
					<ROI_StartY>824</ROI_StartY>
					<ROI_SizeX>80</ROI_SizeX>
					<ROI_SizeY>400</ROI_SizeY>
                                          <TargetID>TOI-836 b</TargetID>
					<SC_Resets1>1</SC_Resets1>
					<SC_Resets2>1</SC_Resets2>
					<SC_DropFrames1>0</SC_DropFrames1>
					<SC_DropFrames2>16</SC_DropFrames2>
					<SC_DropFrames3>0</SC_DropFrames3>
					<SC_ReadFrames>4</SC_ReadFrames>
					<SC_Groups>2</SC_Groups>
					<SC_Integrations>525</SC_Integrations>
				</AcquireInfCamImages>
				<AcquireVisCamScienceData>
                                         <NumExposuresMax>1</NumExposuresMax>
                                         <IncludeFieldSolnsInResp>1</IncludeFieldSolnsInResp>
					<TargetID>TOI-836 b</TargetID>
					<TargetRA>225.08082665422998</TargetRA>
					<TargetDEC>-24.45408163177</TargetDEC>
					<StarRoiDetMethod>0</StatRoiDetMethod>
					<numPredefinedStarRois>5</numPredefinedStarRois>
					<FramesPerCoadd>50</FramesPerCoadd>
					<PredefinedStarRoiRa>
                                                  <RA1>60.1</RA1>
                                                  <RA2>60.2</RA2>
                                                  <RA3>60.3</RA3>
                                                  <RA4>60.4</RA4>
                                                  <RA5>60.5</RA5>
                                         </PredefinedStarRoiRa>
					<PredefinedStarRoiDec>
                                                  <Dec1>-30.1</Dec1>
                                                  <Dec2>-30.2</Dec2>
                                                  <Dec3>-30.3</Dec3>
                                                  <Dec4>-30.4</Dec4>
                                                  <Dec5>-30.5</Dec5>
                                         </PredefinedStarRoiDec>
					<StarRoiDimension>50</StarRoiDimension>
					<MaxNumStarRois>0</MaxNumStarRois>
					<ExposureTime_us>200000</ExposureTime_us>
                                         <NumTotalFramesRequested>9000</NumTotalFramesRequested>
				</AcquireVisCamScienceData>
			</Payload_Parameters>

I also updated the readme

I changed the code that produces the target definition files to now mesh with the new format of the readout schemes and tested it so there shouldn't be any issues creating JSON files with the new changes.

You will notice that I have added two special keywords in the files

SET_BY_SCHEDULER
SET_BY_TARGET_DEFINITION_FILE

SET_BY_SCHEDULER is fairly simple, its the number of integrations and the scheduler should calculate this and add it to the XML block.
SET_BY_TARGET_DEFINITION_FILE are parameters that come from the target defintion files. So for example, TargetID and TargetRA are the parameters that are directly in the target defintion files.
@benhord we do need to think about how we handle these four lines. They are all relating to the reference stars "StarRoiDetMethod": "SET_BY_TARGET_DEFINITION_FILE", "numPredefinedStarRois": "SET_BY_TARGET_DEFINITION_FILE", "PredefinedStarRoiRa": "SET_BY_TARGET_DEFINITION_FILE", "PredefinedStarRoiDec": "SET_BY_TARGET_DEFINITION_FILE",

I agree. I'm polishing the code in pandorasim that picks the best ROIs and spits out the coordinates. Once that's done, I'll integrate ROI selection into the target definition file generation workflow and regenerate all of the files. I've added an issue about it here: #10

@vbkostov what do you think about these changes?

Per discussion with @vbkostov on slack, he approves this merge.


Add 'Last' run time to report;

This provides the time the test took to run last time it was ran. The label changes colour to signify whether the last run set the new minimum (ie. faster; bright green) or set the new maximum (ie. slower; bright red). This helps to identify improvements or degradations on a per test basis, especially if you are focussing on this particular test/method as part of your refactor/optimisation cycle.

The change looks fine with one minir issue (I've missed this during review of previous changes)
you write escape sequences directly and so user will see them if her terminal doesn't support colors.
Could you please update the reporter to use (https://github.com/kern/minitest-reporters/blob/master/lib/minitest/reporters/ansi.rb) instead.

Hi Oleg,
Hope everything is going well. Just a little nudge on my pull request. Is there anything further you would like me to do with this?
Kind Regards,
Gav

Hi Gav,
the changes look fine.  The problem is on my side :( I'm relocating and temporary out of computer :(  And so I can merge the changes but can not release them :(
Hope to do this by the end of this week (if not feel free to ping me)


change core-export-service to a driver

As this has been metioned since plenary meeting, and also related to recent manifest v2 migration
so open an issue here to provide a place of discussion and progress tracking

I think that that (apps writing to driver stores) should work already. Like with actuators, they would just need write permissions to that driver's store for a certain URL (and read permissions if they're expecting a reply, the two linked with a UID like with current export service).
As far as access control/ permissions goes, I think we can go about it a bit more elegantly (rather than cramming everything into paths and/or making new rules for different store types). I think we can define constraints inside hypercat rels for "general purpose" caveats, like this. The simplest case is where e.g. we require that a POST param exactly match some string (like the URL of an export destination). Fancier cases are equality operators for numbers, and wildcards and such (/^https*/g).
As a plus, this would also let us generalise the code for APIs like /ts/range such that we don't need to repeat ourselves for every new kind of data, i.e. we can just have a hypercat rel for URL or POST param from and to and they must both be greater than some number. Then later, say we wanted to have some caveat for image data, we can reuse the same definition for x-resolution and y-resolution to be lower than some number etc. Very DRY.

@yousefamar ha didn't know that we could do this, could you point me to some apps that use/have/act as an actuator? I need to see how they work, also with respect to access control and permissions

I did some thinking about this a while back (about an RPC/passthrough store type in general). My current demo is also throwing up use cases for it, e.g. a driver to send emails.
I've sketched out a possible job queue store API which I think might do the job.
The main permissions implication would be the need for some kind of client identification/authentication (needn't actually be client authentication; could just be a bearer identity in the macaroon) so that different clients to the same service can't access each other's requests.


MatsSocket: Fail the reply future on errors

When either the RECEIVED or REPLY envelope indicates an error, the future from the MatsSocket for request needs to fail with an exception.

This has been fixed with the introduction of resolve/reject results.