Meltano supported target-postgres

Repo: https://github.com/MeltanoLabs/target-postgres
Slack channel: https://meltano.slack.com/archives/C04CLA0S4G0/p1669058552528759

Development Scope:

[x] tagged release
[x] tests pass in CI
[x] branch protection
[x] cookiecutter TODOs completed and removed
[x] clean README
[x] Added to meltano hub
[ ] feature coverage relative to Hub default https://hub.meltano.com/loaders/target-postgres--transferwise/?

[ ] ?

@tayloramurphy I created this to define the scope of development for these new plugins, track status, and decide when its ready to recommend. Can you help fill in the description with the features (specific to this source) we expect the initial release to support? It will help us and users understand what done is and when we're there.

cc @visch

I don't know when we want to make the swap for the default variant the MeltanoLabs variant.
What I can say is what features does transferwise have that we don't have. Note that because transferwise has been used for a lot longer time they have a lot of "longtail" fixes that we just haven't hit yet with the meltanolabs variant. I also haven't been trying to build at feature parity. Maybe we could take the tests from their variant just to verify everything works as expected.
"Important" features missing from meltanolabs variant. I'm not sure these should hold up the swap to default variant recommendation. The target does work today in a lot of use cases:

Activate Version - https://github.com/MeltanoLabs/target-postgres/pull/89 (Done, just needs to get merged)
anyOf - https://github.com/MeltanoLabs/target-postgres/issues/86
SSL - https://github.com/MeltanoLabs/target-postgres/issues/71 (Should be easy)
Append Only - https://github.com/MeltanoLabs/target-postgres/issues/54
Allow Column Alters - https://github.com/MeltanoLabs/target-postgres/issues/2
Parallelism - https://github.com/MeltanoLabs/target-postgres/issues/3  (Should be easy)
Native Batch Support - https://github.com/MeltanoLabs/target-postgres/issues/73

@aaronsteers  has prioritized these for me generally in the order from top to botom (Not including anything Parallelism or below)

Thanks, @visch! If SSH (https://github.com/MeltanoLabs/target-postgres/issues/71) becomes difficult, we can push it back. And for anyOf, we can keep the scope there nice and small by focusing on the "nullable" use cases - and not yet handling more complex data type intersections.
With those two notes, I think the above list looks great. Thanks again.

@aaronsteers @visch this is great! I updated the issue checklist with what I think is the consensus in/out of scope items. Definitely feel free to change them if more stuff comes up thats blocking us recommending this variant.

@aaronsteers @visch I did ^^^ the same thing as I mentioned in  https://github.com/MeltanoLabs/Meta/issues/35#issuecomment-1413982770


Have to re-authorise after every deploy - bug?

Lovely node but everytime I redeploy the flow, I have to goto localhost:3456 and re-authorise
Is this just the way it is or have I got a bug?

You may not have defined the file path in the Alexa account node configuration. Only with a valid file path the cookie is stored persistently and is read in again after a Redeploy. If a file path has been set, the permissions may not match. In this case I would check if the file was created and contains a cookie.

You should see a warning in the debug log if saving or loading the file didn't work.

"you may not have defined the file path in the Alexa account node configuration. "
That was it :)
Thanks


Can't access /people on production

I guess it is throwing an exception.
http://www.startupwichita.com/people

It looks like this is caused by a tag with a nil value.
A Person has added a tag that the template can't handle.
@pulkitsharma07 is this something you'd like to work on?

I'd like to work on it if there are no takers yet :)

@alienxp03 It's all you, friendo

@kentonh Any chance I can see the log errors?

Here's what I pulled when I filed the ticket.
2017-09-29T20:18:54.610486+00:00 app[web.1]: Processing by NewsController#show as HTML
2017-09-29T20:18:54.610535+00:00 app[web.1]:   Parameters: {"id"=>"220"}
2017-09-29T20:18:54.625640+00:00 app[web.1]:   Rendered topics/_disqus.html.erb (0.1ms)
2017-09-29T20:18:54.628260+00:00 app[web.1]:   Rendered news/show.html.erb within layouts/application (12.5ms)
2017-09-29T20:18:54.630830+00:00 app[web.1]: Completed 200 OK in 20ms (Views: 12.5ms | ActiveRecord: 4.2ms)
2017-09-29T20:19:41.198442+00:00 app[web.1]: Started GET "/people" for <IP_ADDRESS> at 2017-09-29 20:19:41 +0000
2017-09-29T20:19:41.201160+00:00 app[web.1]: Processing by PeopleController#index as HTML
2017-09-29T20:19:41.371193+00:00 app[web.1]:   Rendered people/index.html.erb within layouts/application (166.8ms)
2017-09-29T20:19:41.372009+00:00 app[web.1]: Completed 500 Internal Server Error in 171ms (ActiveRecord: 72.5ms)
2017-09-29T20:19:41.375694+00:00 app[web.1]:
2017-09-29T20:19:41.375696+00:00 app[web.1]: ActionView::Template::Error (undefined method `id' for nil:NilClass):
2017-09-29T20:19:41.375699+00:00 app[web.1]:     27:

2017-09-29T20:19:41.375701+00:00 app[web.1]:     28:
Interests

2017-09-29T20:19:41.375701+00:00 app[web.1]:     29:

2017-09-29T20:19:41.375702+00:00 app[web.1]:     30:               <% if Person.all_interest_tags.size > 0 %>
2017-09-29T20:19:41.375703+00:00 app[web.1]:     31:                 <% Person.all_interest_tags.each do |tag| %>
2017-09-29T20:19:41.375704+00:00 app[web.1]:     32:                   <%= link_to tag['name'], people_with_interests_path(tag: tag['name']) %>
2017-09-29T20:19:41.375705+00:00 app[web.1]:     33:                 <% end %>
2017-09-29T20:19:41.375706+00:00 app[web.1]:   app/models/person.rb:66:in `block in all_interest_tags'
2017-09-29T20:19:41.375707+00:00 app[web.1]:   app/models/person.rb:66:in `all_interest_tags'
2017-09-29T20:19:41.375708+00:00 app[web.1]:   app/views/people/index.html.erb:30:in `block in _app_views_people_index_html_erb___3240603264314269510_69913411392160'
2017-09-29T20:19:41.375709+00:00 app[web.1]:   app/views/people/index.html.erb:1:in `_app_views_people_index_html_erb___3240603264314269510_69913411392160'
2017-09-29T20:19:41.375709+00:00 app[web.1]:   app/controllers/people_controller.rb:16:in `index'
2017-09-29T20:19:41.375710+00:00 app[web.1]:
2017-09-29T20:19:41.375711+00:00 app[web.1]:```

Seems like an issue with acts_as_ordered_taggable_on. Created PR 102 🙂

@alienxp03 I've deployed this PR to production, but the problem persists.

Same error I suppose? I'll check on it later tonight (my timezone) 😁

I'll take a look into it tonight, btw, isn't the page taking too long to load ?
It takes about 10-11 seconds for me.
@kentonh, Did this happen after deploying the PR #102 ?

@pulkitsharma07 you're right! and @alienxp03, it's not the same error. It looks like a Heroku timeout, probably based all the gravitar checks on #98.


Adding transform workflow - examplar for EDGAR emissions

Adding a new workflow to add emissions to the object store by creating a new netcdf output from EDGAR database.

Created new Emissions.transform_data() static method workflow with flexible inputs. Links to underlying openghg.transform.emissions modules.

Current option included is parse_edgar function within the transform.emissions._edgar module. This allows  EDGAR data ("Annual gridmaps 1970-2018") to be used to create an emissions map of the right format.

For this new workflow additional functionality was also added:

Created functions to manage attributes for emissions within openghg.meta.attributes includes:

assign_flux_attributes and get_flux_attributes functions

Added details around specifying and storing domain latitude, longitude details including:

openghg.util._domain functions
"openghg/data/domain_info.json" file with details of domain definitions
"openghg/data/domain/* files containing explicit latitude and longitude values as csv files for domains

Added regridding algorithms contained within transform._regrid module. Additional xesmf module included within try-except statements and details added to README.md for how to install this if needed.

This also adds an emissions data_type="openghg" option for the standardise workflow as the default. The idea here was to emulate the workflow in obssurface. By default this should work in the same way as before, but more options can be added.
Tests added for:

parse_edgar function with multiple species (ch4, co2, n2o) for annual, global inputs (unzipped and zipped inputs)
domain algotithms (within util)
regridding algorithms (within transform)
data stored and retrieved from object store using Emissions.transform_data method (within store)

Closes issue #243

Codecov Report

Merging #350 (ab60d73) into devel (6f0e765) will decrease coverage by 0.64%.
The diff coverage is 71.19%.

:exclamation: Current head ab60d73 differs from pull request most recent head 1b2330a. Consider uploading reports for the commit 1b2330a to get more accurate results

@@            Coverage Diff             @@
##            devel     #350      +/-   ##
==========================================
- Coverage   80.64%   80.00%   -0.65%
==========================================
  Files         152      162      +10
  Lines       10763    11552     +789
==========================================
+ Hits         8680     9242     +562
- Misses       2083     2310     +227

Impacted Files
Coverage Δ

openghg/transform/_regrid.py
15.58% <15.58%> (ø)

tests/transform/test_regrid.py
48.88% <48.88%> (ø)

tests/store/test_emissions.py
78.94% <55.55%> (-21.06%)
:arrow_down:

tests/transform/emissions/test_edgar.py
58.94% <58.94%> (ø)

openghg/transform/emissions/_edgar.py
79.44% <79.44%> (ø)

openghg/util/_domain.py
88.88% <88.88%> (ø)

openghg/standardise/emissions/_openghg.py
89.36% <89.36%> (ø)

openghg/store/_emissions.py
91.20% <91.11%> (+1.20%)
:arrow_up:

openghg/standardise/meta/_attributes.py
95.54% <94.54%> (-0.41%)
:arrow_down:

openghg/standardise/emissions/__init__.py
100.00% <100.00%> (ø)

... and 12 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 6f0e765...1b2330a. Read the comment docs.

I think this looks good to be merged in.


Widget: Fix flakey customizer e2e test

Context

Summary
Harden this test by wait for selectors. I was completely unable to replicate this issue locally. Even tried throlling CPU and network with no luck.
As the output gives no line number, I just added wait selector in a number of places to make sure elements have loaded. The customizer can take some time to load, it maybe hard a random thing that is not loading in fast enough.
Relevant Technical Choices

To-do

User-facing changes

Testing Instructions

QA

[ ] This is a non-user-facing change and requires no QA

This PR can be tested by following these steps:

UAT

[ ] UAT should use the same steps as above.

This PR can be tested by following these steps:

Reviews
Does this PR have a security-related impact?

Does this PR change what data or activity we track or use?

Does this PR have a legal-related impact?

Checklist

[ ] This PR addresses an existing issue and I have linked this PR to it in ZenHub
[ ] I have tested this code to the best of my abilities
[ ] I have verified accessibility to the best of my abilities (docs)
[ ] I have verified i18n and l10n (translation, right-to-left layout) to the best of my abilities
[ ] This PR contains automated tests (unit, integration, and/or e2e) to verify the code works as intended (docs)
[ ] I have added documentation where necessary
[ ] I have added a matching Type: XYZ label to the PR

Fixes #

Await validation from running e2e in ci before merging.


[Android + Crossplatform][TextInput] Add autoComplete prop

Motivation
TL;DR: Setting autoComplete will allow the system to suggest autofill options for the <TextInput> component.
Android Oreo introduced the AutoFill Framework, for secure communication between an app and autofill services (e.g. Password managers). When using <TextInput> on Android Oreo+, the system already tries to autofill (based on heuristics), but there is no way to set configuring options or disable.
The quick solution would be to just add the same Android attributes (autofillHints & importantForAutofill) in React Native TextInput, but that doesn't bond well with the cross-platform nature of the library.
This PR
Introduces an autoComplete prop based on HTML's autocomplete attribute, mapping to Android autofillHints & importantForAutofill and serving as a proper placeholder for autofill/autocomplete in other platforms:
Also gives you the ability to disable autofill by setting autocomplete="off".
Test Plan
Adding autoComplete equal to username, password or any other available options should give you an autofill-bar bellow the TextInput which will let you fill in values from an AutoFill Service.
(The image show an example using Google's sample AutoFill Service

Setting the appropriate autoComplete will fill in the correct value in the TextInput.
Usage:
<TextInput
    value={this.state.username}
    onChangeText={this.setUserName}
    autoComplete="username"
/>
<TextInput
    value={this.state.password}
    onChangeText={this.setPassword}
    secureTextEntry={true}
    autoComplete="password"
/>

To disable:
<TextInput
    value={this.state.password}
    onChangeText={this.setPassword}
    secureTextEntry={true}
    autoComplete="off"
/>

References

Feature Request on React Native's Canny: https://react-native.canny.io/feature-requests/p/autocomplete-prop-for-textinput

Android AutoFill Framework documentation: https://developer.android.com/guide/topics/text/autofill

HTML autocomplete attribute spec: https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofilling-form-controls%3A-the-autocomplete-attribute

Related PR:
Docs PR: facebook/react-native-website#606
Release Notes:
Help reviewers and the release process by writing your own release notes. See below for an example.
[ANDROID] [FEATURE] [AutoComplete] - Allow control over autofill suggestions for the <TextInput> component.

+1

@cassiozen Thanks for the PR! We already have https://facebook.github.io/react-native/docs/textinput#textcontenttype for iOS, I think we could reuse this prop and make it cross platform. We probably just have to specify which values are platform specific.

Another argument in favor of a cross-platform solution: iOS is introducing password recipes (and Android might do something similar in the future) - we could embrace all those solutions with a single, unified API.

Hopefully this gets merged soon. I need it to fix  a whole host of bugs involving the autofill manager:
android.os.RemoteException: Remote stack trace: at com.android.server.autofill.AutofillManagerServiceImpl.assertCallerLocked(AutofillManagerServiceImpl.java:552) at com.android.server.autofill.AutofillManagerServiceImpl.createSessionByTokenLocked(AutofillManagerServiceImpl.java:510) at com.android.server.autofill.AutofillManagerServiceImpl.startSessionLocked(AutofillManagerServiceImpl.java:375) at com.android.server.autofill.AutofillManagerService$AutoFillManagerServiceStub.startSession(AutofillManagerService.java:897) at android.view.autofill.IAutoFillManager$Stub.onTransact(IAutoFillManager.java:117)

Hi there,
I'm the technical lead of the Android Autofill Framework. See my replies below..

@cassiozen We already have https://facebook.github.io/react-native/docs/textinput#textcontenttype for iOS

When we designed the Autofill Framework, we consider using Android's InputType to convey the semantic of the field type, but we decide to add a new property (autofillHints) for 2 reasons:
1.The inputType is only associated with text fields, and the framework supports more types, so that information would not be available on those types (for example, a Spinner).
2.This "automatic" mapping is error prone. For example, an app could use a inputType="textPassword" in a CVC field, which would make its "hint"  to be "password", not "creditCardVerificationNumber"

I think we could reuse this prop and make it cross platform.

I think an "autocomplete" property would be cross-platform as well, as this is a W3C standard. In fact, for Android apps using WebView, the WebView implementation automatically maps the autocomplete tag to autofillHints.
-- Felipe

We noticed some crashes on pre-26 devices. We're rolling out a fix to prevent setTextContentType from calling the Oreo+ APIs on pre-26.

Going to revert manually in 0.60-stable now.

Fix is in https://github.com/facebook/react-native/commit/d4aa1e7a52b51fa5d7fc9ded132b7b50170f2190.


Laravel PreShift

This pull request contains changes from the Laravel PreShift to give you a feel for upgrading with Shift. All Shifts open a pull request with the changes in nice, atomic commits. This allows you to review each change in isolation.
Shifts also leave comments with details on any additional manual changes you may need to make, or changes you may want to implement to follow the latest Laravel conventions.
To complete a Shift:

Checkout the shift-134131 branch
Review all pull request comments for additional changes
Run composer update (if the scripts fail, try with --no-scripts)
Clear any config, route, or view cache
Thoroughly test your application (no tests?, no CI?)

If you have any issue with your Shift, never hesitate to contact<EMAIL_ADDRESS>or check out the Human Shifts for more hands-on support.

:warning: Shift did not detect a code style within your project. All Shifts format your code to "normalize" files before performing comparisons. This improves the automation.Shift supports Pint, PHP CS Fixer, or PHP CodeSniffer. By default, Shift will apply the Laravel code style as defined by Pint. For more information on customizing the code style applied by Shift, you may watch this short video.


Removed phase_estimation example that depends on grove

pyquil.algorithms was moved into grove.

Good call, it is now part of grove here: https://github.com/rigetticomputing/grove/tree/master/grove/phaseestimation


Update installpsh amazonlinux for container build

PR Summary
Fix #7906 - add packages tar and gzip so that install will work on amazon linux 2 container image which has minimal packages
Fix #7903  - change "if" to "fi"
PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[x] Change is not breaking
[x] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[x] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: to the beginning of the title and remove the prefix when the PR is ready.

User-facing changes

[x] Not Applicable
OR
[ ] User-facing Documentation needed

[ ] Issue filed - Issue link:

Testing - New and feature

[x] Not Applicable or can only be tested interactively
OR
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed

[ ] Add [feature] if the change is significant or affects feature tests

@DarwinJS Please rebase to get latest commit and add more information in description.

@DarwinJS  Did you look at the CodeFactor issues?

@TravisEz13  - I did look at the issues - seems like a lot of refactoring to cleanup long standing syntax.  I would like to just get this small update worked in without touching that much code if that is ok?

@bmanikm  Can you review? Failures are unrelated to @DarwinJS's changes

I restarted all CI's


Marketplace Download Packs

Status
Ready
Related Issues
fixes: https://github.com/demisto/etc/issues/43870
Description
Add the option to download packs from xsoar.pan.dev.
Screenshots

The PR is waiting for https://github.com/demisto/content/pull/16330
Should be handled by next week.


Int parse error STREAM_MANAGER_SERVER_PORT

Actually, I'm using the SDK.
from stream_manager import (
        ExportDefinition,
        KinesisConfig,
        MessageStreamDefinition,
        ReadMessagesOptions,
        ResourceNotFoundException,
        StrategyOnFull,
        StreamManagerClient
    )

and in my code, I'm trying to create the below object:
client = StreamManagerClient()
But getting the attached error.
The error message says:
port = int(os.getenv("STREAM_MANAGER_SERVER_PORT", 8088))
The above line of code returns an empty string. This could be an issue with the Greengrass component where it is not assigning the port. Ideally, it should pick port 8088. Thanks
Originally posted by @balram-vis in https://github.com/aws-greengrass/aws-greengrass-stream-manager-sdk-python/issues/18#issuecomment-1645646196

Created an issue for you for discussion @balram-vis.
How are you executing this code? Do you have a Greengrass component? If so, what is the recipe for that component?
As I mentioned earlier, Greengrass does not set STREAM_MANAGER_SERVER_PORT environment variable for you. So if you're getting an empty string, that has to be something that you've done.

I have defined the configuration while deploying aws.greengrass.StreamManager component.
{
"STREAM_MANAGER_ENABLE_LOCK_ON_METADATA_STORE": "false",
"STREAM_MANAGER_AUTHENTICATE_CLIENT": "true",
"STREAM_MANAGER_EXPORTER_THREAD_POOL_SIZE": "5",
"port": "",
"STREAM_MANAGER_SERVER_PORT": "8088",
"JVM_ARGS": "",
"STREAM_MANAGER_STORE_ROOT_DIR": ".",
"LOG_LEVEL": "INFO",
"STREAM_MANAGER_EXPORTER_MAX_BANDWIDTH": "2147483647",
"STREAM_MANAGER_EXPORTER_S3_DESTINATION_MULTIPART_UPLOAD_MIN_PART_SIZE_BYTES": "5242880"
}

That is the stream manager component, I'm asking about your custom component which is using the stream manager SDK.

my test component recipe :
{
"RecipeFormatVersion": "2020-01-25",
"ComponentName": "test",
"ComponentVersion": "1.0.0",
"ComponentType": "aws.greengrass.lambda",
"ComponentDescription": "",
"ComponentPublisher": "AWS Lambda",
"ComponentSource": "test:1",
"ComponentConfiguration": {
"DefaultConfiguration": {
"lambdaExecutionParameters": {
"EnvironmentVariables": null
},
"containerParams": {
"memorySize": 16384,
"mountROSysfs": false,
"volumes": {},
"devices": {}
},
"containerMode": "GreengrassContainer",
"timeoutInSeconds": 3,
"maxInstancesCount": 100,
"inputPayloadEncodingType": "json",
"maxQueueSize": 1000,
"pinned": true,
"maxIdleTimeInSeconds": 60,
"statusTimeoutInSeconds": 60,
"pubsubTopics": {}
}
},
"ComponentDependencies": {
"aws.greengrass.LambdaLauncher": {
"VersionRequirement": "=2.0.9",
"DependencyType": "HARD"
},
"aws.greengrass.TokenExchangeService": {
"VersionRequirement": ">=2.0.0 <3.0.0",
"DependencyType": "HARD"
},
"aws.greengrass.LambdaRuntimes": {
"VersionRequirement": "=2.0.8",
"DependencyType": "SOFT"
}
},
"Manifests": [
{
"Platform": {},
"Lifecycle": {},
"Artifacts": [
{
"Uri": "greengrass:lambda-artifact.zip",
"Digest": "cw8=",
"Algorithm": "SHA-256",
"Unarchive": "ZIP",
"Permission": {
"Read": "OWNER",
"Execute": "NONE"
}
}
]
}
],
"Lifecycle": {
"startup": {
"requiresPrivilege": true,
"script": "{aws.greengrass.LambdaLauncher:artifacts:path}/lambda-launcher start"
},
"setenv": {
"AWS_GREENGRASS_LAMBDA_CONTAINER_MODE": "{configuration:/containerMode}",
"AWS_GREENGRASS_LAMBDA_ARN": "function:test:1",
"AWS_GREENGRASS_LAMBDA_FUNCTION_HANDLER": "lambda_function.lambda_handler",
"AWS_GREENGRASS_LAMBDA_ARTIFACT_PATH": "{artifacts:decompressedPath}/lambda-artifact",
"AWS_GREENGRASS_LAMBDA_CONTAINER_PARAMS": "{configuration:/containerParams}",
"AWS_GREENGRASS_LAMBDA_STATUS_TIMEOUT_SECONDS": "{configuration:/statusTimeoutInSeconds}",
"AWS_GREENGRASS_LAMBDA_ENCODING_TYPE": "{configuration:/inputPayloadEncodingType}",
"AWS_GREENGRASS_LAMBDA_PARAMS": "{configuration:/lambdaExecutionParameters}",
"AWS_GREENGRASS_LAMBDA_RUNTIME_PATH": "{aws.greengrass.LambdaRuntimes:artifacts:decompressedPath}/runtime/",
"AWS_GREENGRASS_LAMBDA_EXEC_ARGS": "["python3.8","-u","/runtime/python/lambda_runtime.py","--handler=lambda_function.lambda_handler"]",
"AWS_GREENGRASS_LAMBDA_RUNTIME": "python3.8"
},
"shutdown": {
"requiresPrivilege": true,
"script": "{aws.greengrass.LambdaLauncher:artifacts:path}/lambda-launcher stop; {aws.greengrass.LambdaLauncher:artifacts:path}/lambda-launcher clean"
}
}
}

OK, so this is a lambda. Lambda will set STREAM_MANAGER_SERVER_PORT to the value of port in the stream manager configuration. Your lambda must add a dependency on Stream manager in order to be started after stream manager is running and the port value is set.

Closing issue for now with the resolution that your lambda needs to have a dependency on Stream Manager. Reopen as needed.


update k8s dependencies to 1.16.7

This change is

never-tell-me-the-odds

never-tell-me-the-odds

test-upstream-k8s

test-me-please

test-missed-k8s

test-docs-please

test-docs-please

never-tell-me-the-odds

test-me-please


nixos/tests/centrifugo: fix shards address list order in tests

Description of changes
Redis shards list must be consistent between Centrifugo nodes. Before this change, NixOS tests were using invalid configurtaion since shards[hash(ch)] may select different Redis shard instance on each Centrifugo node. We don’t currently have any tests that exposed this behavior though.
Things done

Built on platform(s)

[ ] x86_64-linux
[x] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@ofborg test centrifugo


Feature: Add test-suite support to IReporter interface and JUnit-Reporter

Description
Currently, the doctest::IReporter interface lacks methods to add test-suite information.
CURRENT STATE:

The junit reporter just provides only <testsuite/> XML element(s) for the test-program that is executed
JUnitXML supports nested testsuite(s), meaning a <testsuite/> XML element(s) within another <testsuite/> XML element.

BUT:

Testsuites (as a general concept) provide a hierarchical grouping mechanism
JUnitXML nested testsuites map well to the concept how testsuites are used in the C++ source code.

NOTES:

IDE(s), like Jetbrains, etc. normally provide a TestRunner/TestExplorer where this hierarchical testsuite grouping is shown.

Steps to reproduce
MOTIVATING EXAMPLE:
// -- FILE: test_example_with_testsuites.cpp
#include "doctest/doctest.h"

TEST_SUITE("test_suite_1") {
    TEST_CASE("one")
    {
        MESSAGE("Part of testsuite_1: test=one");
    }

    TEST_CASE("two")
    {
        MESSAGE("Part of testsuite_1: test=two");
    }
}

TEST_SUITE("test_suite_2") {
    TEST_CASE("one")
    {
        MESSAGE("Part of testsuite_2: test=one");
    }

    TEST_CASE("two")
    {
        MESSAGE("Part of testsuite_2: test=two");
    }
}

When you build the test program and run it with ... --reporters=junit, you get the following JUnitXML report:
<!-- FILE: junit_test_report.xml -->
<testsuites>
  <testsuite name="test_example" errors="0" failures="0" tests="4" ... doctest_version="2.4.11">
    <testcase classname=".../test_testsuite.cpp" name="one" time="0" status="run"/>
    <testcase classname=".../test_testsuite.cpp" name="two" time="0" status="run"/>
    <testcase classname=".../test_testsuite.cpp" name="one" time="0" status="run"/>
    <testcase classname=".../test_testsuite.cpp" name="two" time="0" status="run"/>
  <testsuite>
<testsuites>

PROBLEM:

Currently, it is completely unclear why tests "one" and "two" occur twice
Testsuite context is lost in the report

DESIRED OUTPUT:
<!-- FILE: junit_test_report.xml -->
<testsuites>
  <testsuite name="test_example" errors="0" failures="0" tests="4" ... doctest_version="2.4.11">
    <testsuite name="test_suite_1" errors="0" failures="0" tests="2" ... >
      <testcase classname=".../test_testsuite.cpp" name="one" time="0" status="run"/>
      <testcase classname=".../test_testsuite.cpp" name="two" time="0" status="run"/>
    </testsuite>
    <testsuite name="test_suite_2" errors="0" failures="0" tests="2" ... >
      <testcase classname=".../test_testsuite.cpp" name="one" time="0" status="run"/>
      <testcase classname=".../test_testsuite.cpp" name="two" time="0" status="run"/>
    </testsuite>
  </testsuite>
</testsuites>

EXAMPLE 2: Test suite name provides context info for test-cases
// -- FILE: test_example2_with_testsuites.cpp
#include "doctest/doctest.h"

TEST_SUITE("Function A") {
    TEST_CASE("It should succeed if ...") { ... }
    TEST_CASE("It should fail if ...") { ... }
    ...
}

TEST_SUITE("Function B") {
    TEST_CASE("It should succeed if ...") { ... }
    TEST_CASE("It should fail if ...") { ... }
    ...
}

CONSIDERED ALTERNATIVES: TEST_CASE/SUB_CASE combination

This disambiguates the example above
This combines the TEST_CASE name with the SUB_CASE name in one <testcase name="{TEST_CASE.name}/{SUBCASE.name}" /> XML element
The testcase.name can become rather large
BUT: The grouping gets slightly lost or must be rediscovered from the name info.

Extra information
DESIRED CHANGE:

Add methods to doctest::Reporter to add testsuite entry/exit.
Default implementation of these methods could be empty (to avoid to break existing reporters).
Call theses methods when a testsuite entry/exit is encountered by the doctest framework

NICE TO HAVE:

An extended junit reporter implementation that uses this additional testsuite context information to create the test report with the desired information

VERSION INFO:

doctest version: v2.4.11

I agree with everything you have described, and believe the current behavior is not intentional.
Since the current output is completely broken when using test suites I think it's fine to break downstream who depend on it (or this should have been reported earlier).
I think most consumers will enjoy a fix for it.
Just want to check, since I am no JUnit expert, are there several JUnit formats available that needs to be considered?

In my opinion, you need to decide first which XML schema you want to support (even if you do not use the complete functionality). That allows that user can build readable report-generator tools around it (for HTML, …).
CANDIDATES:

JenkinsCI XUnit format: https://github.com/jenkinsci/xunit-plugin/blob/master/src/main/resources/org/jenkinsci/plugins/xunit/types/model/xsd/junit-10.xsd
JUnit5 refers to a slightly different XML format by now, defined by open-test-reporting
…

NOTES:

pytest, a Python based test framework, changed to this XML schema a while ago to the JenkinsCI XUnit format.

IMPORTANT ASPECTS (in my opinion):

properties to be able to describe the context of the test run (which versions are used, tests ran on which host/target, which BUILD variant was used, …)

Captured output (stdout, stderr, log-output) should be supported (in principle)

Composibility: testsuiteXML elements can contain testcase XML elements and also other testsuite XML child elements.
SEE ALSO:

https://github.com/jenkinsci/xunit-plugin/blob/master/src/main/resources/org/jenkinsci/plugins/xunit/types/model/xsd/junit-10.xsd

https://junit.org/junit5/docs/current/user-guide/#junit-platform-reporting-open-test-reporting

https://github.com/ota4j-team/open-test-reporting/

JUnit5 also supports "legacy XML": https://junit.org/junit5/docs/current/user-guide/#junit-platform-reporting-legacy-xml
Open Test Reporting support two different schemas as well:

Event based: https://github.com/ota4j-team/open-test-reporting/?tab=readme-ov-file#event-based-format
Hierarchical: https://github.com/ota4j-team/open-test-reporting/?tab=readme-ov-file#hierarchical-format

I agree, need to pick a schema. Question is, which one do you use? Doctest can't support any available schema out there, and it's unnecessary to implement reporters for schemas that no one uses.
I suggest you implement the desired functionality using the reporter API, and share your implementation here for others to use. If you one of the JUnit10 schema, then I suggest we call the corresponding reporter JUnit10Reporter in C++ and the CLI option junit10. Similarly, if you use the Open Test Reporting schema, the C++ classes could be called something like OpenTestEventReporter and OpenTestHierarchicalReporter respectively, and the corresponding CLI options ote and oth. Just suggestions, open for a discussion.
Whatever reporter schema is implemented we can make the junit reporter CLI option default to one of them.
If you can't implement this using the current reporter API as hinted in your initial description, then please elaborate on your suggested improvements to the IReporter interface that are necessary to implement the actual reporter implementation (code > text). These changes would be in two PRs to make it reviewable.

I use the JenkinsCI JUnitXML format mostly.
NOTES:

The Events format of open-test-reporting is primarily intended if you need to stream the events during test execution to another service that listens to these stream of events. This can have advantages when you have rather long test run durations, like: multiple hours or days.


Support static data tables in ecto.dump mix task

In progress, depending on outcome of https://groups.google.com/g/elixir-ecto/c/FtyKyZWJGjI

Sorry for the delay on the replies. Your email got stuck on the group spam filter and then flagged on my own inbox as spam later. :/
Can you please send a PR with the flag approach? I think it is less internal bookkeeping for us to take care of.

@josevalim Yeah, something with that message is strange. I don't see why it would be rated as spam based on content and the sender is a google account as well...
I've added support for flags in the Mix.Task. I did however not remove the config value description. The reasoning for this is that all configs are passed through automatically:
https://github.com/elixir-ecto/ecto_sql/blob/d624288611a9c2f69b62c044cd849065a60a287a/lib/mix/tasks/ecto.dump.ex#L64
This means, that without specifically excluding the value, it will be supported via config.
Therefore the only question is if we should officially document & support it or not. I thought that if it is already supported, then we should better document it properly.
How would you like me to proceed?

Remove documentation
Remove documentation and exclude value being passed through from the config
Leave as is

Oh, sorry, there was a misunderstanding. I don't mind as Mix.Task flags, but rather implementing the feature through generic flags:
config :my_app, MyApp.Repo, dump_flags: ~w(--data-table foo --data-table bar)

The idea is that PG/MySQL do not have to know about this feature, instead we just append the given flags. WDYT?

@josevalim That solution would really depend on the implementation of the specific dump commands.
Already with MySQL / Postgres, exporting the whole schema and only specific tables can only be achieved by calling the command twice. (Once for the schema, once for the table)
It seems that in SQlite, one would need to call the command once per export. (See https://github.com/elixir-sqlite/ecto_sqlite3/blob/e118505193320388cd2a65c264baf754b5ae056b/lib/ecto/adapters/sqlite3.ex#L458)
If going with a more generic approach as opposed to supporting dumping specific tables, I think we would need to provide a better interface than just exposing arguments to the command used for dumping stuff.

I see, thanks! In this case, I don't see a reason to have this as part of Ecto. It is more for us to maintain and it would be implemented by a custom alias that dumps and then adds information to the dump, right?

@josevalim A custom alias was my first idea on how to solve this. Unfortunately that means copying a lot of code since all the functions are private.
I believe this to be a helpful and simple addition that is worth its maintenance.
Would you be open to posting about this in the Elixir Forum to see if the community is interested in this feature or if it is just me?

Why do you need to copy code? Can't you append to the generated file after the initial dump?

@josevalim I could append manually to the file for sure, but then I'll have to do that manually with every dump.
We normally update the dump regularly since it takes quite some time to run all the migrations to speed up development.
If I want to automate the export, I would have to create an alias / mix task and copy most of the dumping stuff from the Postgres adapter into it. (All relevant parts of the adapter are private)
(We have ecto.load inside the ecto.reset alias and normally do an ecto.dump before every release.)

Sorry, I don’t get the concern with updating the file. The location of the file is public, you can append your the file without concerns. Either the task or the alias can call the existing dump.

@josevalim It is basically the same concern as not supporting the dump command at all:
The dump command solves a few issues like authenticating the pg_dump command etc. automatically. It could also be done by hand but it is just a lot more convenient using it.
The same applies to this issue: I can either write some elixir code that does the same as the adapter (Reading the config, setting up auth for the command etc.) or I'll have to do that manually.
I thought that this addition might save some people some time / copying code. This is not that important though and I don't want to steal more of your time. I'll therefore go ahead and close the PR. I will also link to a Gist later that shows how I solved it for people having the same issue.

Or also Ecto.Adapters.SQL.dump_cmd, if that's a functionality most adapters can provide.

@josevalim I haven't thought about that one.
Something along those lines?
@callback run_cmd(config :: Keyword.t(), args :: [String.t()], into :: Collectable.t()) :: {:ok, Collectable.t()} | {:error, term()}

(Collectable.t() does not exist, so I'm not sure about the type...)
This could be used something like this:
defmodule Mix.Tasks.Acme.DumpSql do
  @shortdoc "Dumps the repository database structure & static tables"

  use Mix.Task

  import Mix.Ecto
  import Mix.EctoSQL

  alias Acme.Repo

  @impl Mix.Task
  def run(args) do
    ensure_repo(Repo, args)

    config = Repo.config()

    with {:ok, location} <- Repo.__adapter__().structure_dump(source_repo_priv(Repo), config),
      output_stream = File.stream!(location, [:append]),
         {:ok, _stream} <- Repo.__adapter__().dump_cmd(config, ["--table", "table_name"], output_stream) do
      Mix.shell().info("The structure for #{inspect(Repo)} has been dumped to #{location}")
    else
      {:error, term} when is_binary(term) ->
        Mix.raise("The structure for #{inspect(Repo)} couldn't be dumped: #{term}")

      {:error, term} ->
        Mix.raise("The structure for #{inspect(Repo)} couldn't be dumped: #{inspect(term)}")
    end
  end
end

Another way that comes to mind would be something along the lines of this:
  def structure_dump(default, config) do
    # ...

    after_dump_callback = case config[:migration_after_dump_callback] do
      {module, function} -> Function.capture(module, function, 2)
      nil -> fn _run_cmd_fn, output_stream -> {:ok, output_stream} end
    end

    with {:ok, output_stream} <- dump_structure(config, output_stream),
         {:ok, has_versions?} <- has_versions(migration_table, config),
         {:ok, output_stream} <- dump_versions(config, output_stream),
         {:ok, _output_stream} <- after_dump_callback.(&pg_dump(config, &1, &2), output_stream),
         do: {:ok, path}
  end

with this one could do that and use the builtin ecto.dump mis task:
# config.exs
config :acme, Acme.Repo, migration_after_dump_callback: {Acme.DumpExtension, :call}

# lib/acme/dump_extension.ex
defmodule Acme.DumpExtension do
  def call(dump_cmd_fn, output_stream) do
    with {:ok, output_stream} <- dump_cmd_fn.(["--table", "table_name"], output_stream), # Dump Extra Table
         {:ok, output_stream} <- Enum.into(["REFRESH MATERIALIZED VIEW bla"], output_stream), # Add something by hand
         do: {:ok, output_stream}
  end
end

Yes! Perhaps we add Ecto.Adapters.SQL.dump_cmd(repo | config, args, opts) instead? So you don't need to directly call the adapter.
I am just not sure if the third argument should be opts or into. I am thinking about proxying all of System.cmd options instead. Why did you pick into? :)

I think we don't need the migration_after_dump_callback callback. You can override "ecto.dump" as an alias an Ecto should pick it up.

The reason why I proposed the into (which we could default to an empty string) is so that we do not have to keep large amounts of data in memory.
Potentially the outputs of a dump command could be quite large.
If we allow supplying opts directly to the cmd command, that should work as well since into can be specified.
So the callback should be this?
@callback dump_cmd(repo_or_config :: module() | Keywrod.t(), args :: String.t(), opts :: Keyword.t()) ::{Collectable.t(), exit_status :: non_neg_integer()}


cli/containerd-shim-kata-v2/config-generated.go is not gitignored

Description of problem
cli/containerd-shim-kata-v2/config-generated.go is a link created during build, but not ignored by git.

Already fixed in Kata 2 by 66d385d7edf933dd1251cc071242ed61ca6aeb5e


Support Expand/Collapse mode

Hi
I added some codes to support Expand/Collapse mode ;)

@ValYouW
As you wish !
$('#propGrid').jqPropertyGrid(theObj, theMeta,true); // isCollapsible : true
Check it please

Hey,
Looking at the added option I thought it would be a good time to introduce an options object, so in the future we could add more options without breaking the API.
So I just did it quickly and now there is an options object which has currently only the metadata parameter in it, so go ahead and feel free to add your isCollapsible option (default: false). (You will need to update your fork with the latest changes first).
Also, please read the contribution guidelines, it seems that jscs is failing, and don't forget to update the README so others will know about this feature!
If you have issues with jscs let me know and I'll take a look (note that in the project root there is a .editorconfig file, so if your editor supports this it will be easier for you to use this file).
Thx!


Credential request loop when proxy port 81

Checklist

Have you pulled and found the error with jc21/nginx-proxy-manager:latest docker image?

Yes

Are you sure you're not using someone else's docker image?

Yes

Have you searched for similar issues (both open and closed)?

Yes, nothing found

Describe the bug
I want to expose the Nginx Proxy manager admin interface to public, but not on port 81. So i created a new "Proxy Hosts" entry with:

domain name: mydomain.ext (redacted, i use a real domain and TLD)
scheme: http
forward hostname / ip: <IP_ADDRESS>
forward port: 81

And then added an "Access List" that require (basic) authentication, and permit all source. In addition I have linked an ssl certificate created in the "ssl certificates" section
When i try to autenticate to mydomain.ext i get an infinite loop of authentication requests. Even if I enter the credentials correctly, the server asks me again to enter them and so on and on. In some tests (using cancel button on authentication request) I can get to the login page (after several insertions of credentials) but when sending the form they get the infinite loop again.
The same "access list" is working fine on another proxied host.
Nginx Proxy Manager Version
v2.9.18
To Reproduce
Steps to reproduce the behavior:

Go to mydomain.ext
Insert the auth basic credential

Expected behavior
I expect to log in after I have entered the credentials only once
Screenshots
Configuration screenshot:

Operating System
I'm working with Google Chrome
Additional context
Nothing

Steps I have taken to make solution,
Disclaimer ** Am not a contributor or Developer of Nginx Proxy Manager **
Follow the steps I have taken for solution.
Inside Nginx Control Panel

Create SSL certificate for domain or Subdomain

Navigate to Proxy Host

Add Proxy Host with the following

Domain or Subdomain you wish to use
Scheme (http)
Forward Hostname / IP  (localhost) - Not using (<IP_ADDRESS>)
Forward Port - 81

Under SSL Tab - Ensure SSL Certificate for domain is included.
Do not use Force SSL
Do not use HTTP/2 Support
If you are having the same problems do double check the domain entered under proxy host, because I have had similar issue to yours from missing 1 letter in domain by accident.
The SSL certificate did not match with proxy host and summoned an SSL connection error.
Hope this helps


Add typing and numpy in fallbacks

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 96.947%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
127

Relevant Lines:
131

💛  - Coveralls


Use an entrypoint in volto.config.js or in package.json to load a theme

here's my ideal scenario:

volto provides a hook that addons can hook into and be a part of the addons registry processing. Right now it could be done from razzle extend, but the addons registry would have to be reinitialized, etc. So we need a way, from razzle.config.js, to trigger additional hooks with a signature like (webpackConfig, addonRegistry) => config. These can come from the addons or, for this theming engine, from Volto itself
this would allow getCustomThemeAddons()  to be removed from the addons-registry and into its own module, the "theming engine"

Other then that, I love it! Thanks for working on this!

@stevepiercy thanks for the review! Yesterday I was not specially tuned for documenting, and the subject was not easy either.

@tiberiuichim I see, yeah, we could iterate over it, by all means! Right now, this implementation was one that made sense to me, specially for people not having to paste a recipe in their add-ons and then the entry points...
/cc @plone/volto-team let me know if you are fine with this and we all agree with merging it.

@stevepiercy I made a few last time amendments, do you mind take a final look?

Please integrate theme.md in docs/addons/index.md

@ksuess I amended here and there, please take a look. Also always when we talk about a theme, is as in a Volto Semantic UI theme. It's true that we are overloading the term, here and there. Maybe it does need more rework.
Let me know what do you think.

I'm not able to outsource a simple (very simple) theme. For getting familiar with this topic, I set up a vanilla project and a simple add-on and followed the first section of addons/theme.md. But do not see the theme add-on customizations.
If you are too busy, no problem. But as I see myself as a multiplier, it could maybe help to enhance the docu for newbies.
So may I point you to
https://github.com/rohberg/project-with-theme
https://github.com/rohberg/springtime-theme/blob/main/src/theme/theme.config
and ask what I am missing in this very reduced example setup.

@ksuess I amended here and there, please take a look. Also always when we talk about a theme, is as in a Volto Semantic UI theme. It's true that we are overloading the term, here and there. Maybe it does need more rework. Let me know what do you think.

Ah, OK, so it's the theme.config that is THE theme. The Semantic UI theme.

I'm not able to outsource a simple (very simple) theme. For getting familiar with this topic, I set up a vanilla project and a simple add-on and followed the first section of addons/theme.md. But do not see the theme add-on customizations.
If you are too busy, no problem. But as I see myself as a multiplier, it could maybe help to enhance the docu for newbies.
So may I point you to
https://github.com/rohberg/project-with-theme
https://github.com/rohberg/springtime-theme/blob/main/src/theme/theme.config
and ask what I am missing in this very reduced example setup.

Looking!

I'm not able to outsource a simple (very simple) theme. For getting familiar with this topic, I set up a vanilla project and a simple add-on and followed the first section of addons/theme.md. But do not see the theme add-on customizations.
If you are too busy, no problem. But as I see myself as a multiplier, it could maybe help to enhance the docu for newbies.
So may I point you to
https://github.com/rohberg/project-with-theme
https://github.com/rohberg/springtime-theme/blob/main/src/theme/theme.config
and ask what I am missing in this very reduced example setup.

@ksuess it does work here like a charm! Not with the custom CSS you tried (the breadcrumbs). But:
body {
  background-color: red;
}

Works well.
Also, did you yalc'd the Volto version with the one in the PR, right?
The breadcrumb one should have been :)
.ui.secondary.segment {
  background-color: magenta;
}

May I suggest to provide a simple project and a simole theme.
My example does not work at all.
I think it cannot, cause https://github.com/plone/volto/blob/14de8670a4cd13bc4cf8b7333eafb2e975e53680/addon-registry.js#L362 requires

I'm not able to outsource a simple (very simple) theme. For getting familiar with this topic, I set up a vanilla project and a simple add-on and followed the first section of addons/theme.md. But do not see the theme add-on customizations.
If you are too busy, no problem. But as I see myself as a multiplier, it could maybe help to enhance the docu for newbies.
So may I point you to
https://github.com/rohberg/project-with-theme
https://github.com/rohberg/springtime-theme/blob/main/src/theme/theme.config
and ask what I am missing in this very reduced example setup.

@ksuess it does work here like a charm! Not with the custom CSS you tried (the breadcrumbs). But:
body {
  background-color: red;
}

Works well.
Also, did you yalc'd the Volto version with the one in the PR, right?
The breadcrumb one should have been :)
.ui.secondary.segment {
  background-color: magenta;
}

With a fresh set up, this is now OK for me. Thank you.


Adding Thermal to blade, enclosure and rack chassis

Closes #57, closes #58 and closes #59

This change is

Reviewed 17 of 17 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Reviewed 17 of 17 files at r1.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

Comments from Reviewable

Review status: all files reviewed at latest revision, 8 unresolved discussions.

oneview_redfish_toolkit/api/blade_chassis.py, line 54 at r1 (raw file):

<EMAIL_ADDRESS>= "/redfish/v1/Chassis/" \
                + server_hardware["locationUri"].split("/")[-1]
        self.redfish["Thermal"] = collections.OrderedDict()

This next 3 lines should be in chassis class

oneview_redfish_toolkit/api/enclosure_chassis.py, line 57 at r1 (raw file):

<EMAIL_ADDRESS>= \
            "/redfish/v1/Chassis/" + environmental_configuration["rackId"]
        self.redfish["Thermal"] = collections.OrderedDict()

same as above

oneview_redfish_toolkit/api/thermal.py, line 60 at r1 (raw file):

            self.redfish["Temperatures"][0]["UpperThresholdCritical"] = \
                utilization_dict["metricList"][0]["metricCapacity"]
            self.redfish["Temperatures"][0]["MinReadingRangeTemp"] = 10

is this and the below being hard coded ok?

oneview_redfish_toolkit/mockups/BladeChassis.json, line 25 at r1 (raw file):

    "Model": "HPE Synergy 480 Gen9 Compute Module",
    "IndicatorLED": "Off",
    "Thermal": {

Check where its gonna be after moving thermal info to chassis. Also be aware that this was changed on Rack Chassis patch due to missing fields on chassis class

oneview_redfish_toolkit/mockups/EnclosureChassis.json, line 46 at r1 (raw file):

    "Model": "Synergy 12000 Frame",
    "IndicatorLED": "Lit",
    "Thermal": {

Same comment as on BladeChassis

oneview_redfish_toolkit/tests/blueprints/test_thermal.py, line 143 at r1 (raw file):

    #############
    # Enclosure #
    #############

missing tests for enclosure not found and unexect error

oneview_redfish_toolkit/tests/blueprints/test_thermal.py, line 181 at r1 (raw file):

    ########
    # Rack #
    ########

same as above

Comments from Reviewable

I'm not sure of how a RESTful service should be organized and I don't intend this to be a final decision at all... but is there any special reason for this feature not be part of the Chassis blueprint?

Reviewed 1 of 17 files at r1.
Review status: all files reviewed at latest revision, 8 unresolved discussions.

Comments from Reviewable

I thought I organized it correctly but its a good question.  Its probably one for the team to decide.  There will be other work that will be affected by the decision we make.

Review status: all files reviewed at latest revision, 8 unresolved discussions.

oneview_redfish_toolkit/api/blade_chassis.py, line 54 at r1 (raw file):
Previously, ffdarkpenguin wrote…
This next 3 lines should be in chassis class

Ok will do.

oneview_redfish_toolkit/api/enclosure_chassis.py, line 57 at r1 (raw file):
Previously, ffdarkpenguin wrote…
same as above

Ok will do.

oneview_redfish_toolkit/api/thermal.py, line 60 at r1 (raw file):
Previously, ffdarkpenguin wrote…
is this and the below being hard coded ok?

Yes its hard coded, these values will never change.  They will always be the same for each hardware device in OneView.

oneview_redfish_toolkit/mockups/BladeChassis.json, line 25 at r1 (raw file):
Previously, ffdarkpenguin wrote…
Check where its gonna be after moving thermal info to chassis. Also be aware that this was changed on Rack Chassis patch due to missing fields on chassis class

OK

oneview_redfish_toolkit/mockups/EnclosureChassis.json, line 46 at r1 (raw file):
Previously, ffdarkpenguin wrote…
Same comment as on BladeChassis

OK

oneview_redfish_toolkit/tests/api/test_blade_thermal.py, line 1 at r1 (raw file):
Previously, llvieira (Lucas Lima Vieira) wrote…
@danielreed this file would not have the name like test_thermal.py and test Thermal class using Enclosure, Blade and Rack? Overall it's a great PR, and I'll accept it as soon as this question is resolved.

Are you saying this file should be named test_thermal.py?

oneview_redfish_toolkit/tests/blueprints/test_thermal.py, line 143 at r1 (raw file):
Previously, ffdarkpenguin wrote…
missing tests for enclosure not found and unexect error

Do we really need those tests? They all use the same code path that the blade tests covered.

oneview_redfish_toolkit/tests/blueprints/test_thermal.py, line 181 at r1 (raw file):
Previously, ffdarkpenguin wrote…
same as above

Do we really need those tests? They all use the same code path that the blade tests covered.

Comments from Reviewable

Review status: all files reviewed at latest revision, 4 unresolved discussions.

oneview_redfish_toolkit/tests/api/test_blade_thermal.py, line 1 at r1 (raw file):
Previously, danielreed (Daniel Reed) wrote…
Are you saying this file should be named test_thermal.py?

Agreed on name and tests

oneview_redfish_toolkit/tests/api/test_blade_thermal.py, line 2 at r1 (raw file):

# -*- coding: utf-8 -*-

yes, the name should be test_thermal.py

oneview_redfish_toolkit/tests/blueprints/test_thermal.py, line 143 at r1 (raw file):
Previously, danielreed (Daniel Reed) wrote…
Do we really need those tests? They all use the same code path that the blade tests covered.

I let ricardo decide on that. Closed on my part

oneview_redfish_toolkit/tests/blueprints/test_thermal.py, line 181 at r1 (raw file):
Previously, danielreed (Daniel Reed) wrote…
Do we really need those tests? They all use the same code path that the blade tests covered.

Ill let ricardo decide that, closing on my part

Comments from Reviewable

I like them apart like Daniel did.

Review status: all files reviewed at latest revision, 2 unresolved discussions.

Comments from Reviewable

Review status: all files reviewed at latest revision, 2 unresolved discussions.

Comments from Reviewable

Review status: all files reviewed at latest revision, 2 unresolved discussions.

oneview_redfish_toolkit/tests/api/test_blade_thermal.py, line 1 at r1 (raw file):

Are you saying this file should be named test_thermal.py?

Quoted 10 lines of code…
>
>
>
>                   1 hour ago
>
>
>
>
>
>               ffdarkpenguin

>
>
>
>
Yeah, this file would have the name  test_thermal.py, and it will test all chassis resources, not only for blade chassis.

Comments from Reviewable

In my opinion, endpoints that have the same URL prefix ("/redfish/v1/Chassis/") should be the same blueprint. It's really a good question.

Review status: all files reviewed at latest revision, 2 unresolved discussions.

Comments from Reviewable

Reviewed 5 of 8 files at r3.
Review status: all files reviewed at latest revision, 2 unresolved discussions.

Comments from Reviewable

Review status: all files reviewed at latest revision, 2 unresolved discussions.

oneview_redfish_toolkit/tests/api/test_blade_thermal.py, line 2 at r1 (raw file):
Previously, ffdarkpenguin wrote…
yes, the name should be test_thermal.py

Done.

Comments from Reviewable

Review status: all files reviewed at latest revision, 2 unresolved discussions.

oneview_redfish_toolkit/tests/api/test_blade_thermal.py, line 1 at r1 (raw file):
Previously, llvieira (Lucas Lima Vieira) wrote…

Are you saying this file should be named test_thermal.py?
              1 hour ago

          ffdarkpenguin

Yeah, this file would have the name  test_thermal.py, and it will test all chassis resources, not only for blade chassis.

Done.

Comments from Reviewable

Reviewed 1 of 8 files at r3.
Review status: all files reviewed at latest revision, 2 unresolved discussions.

Comments from Reviewable

Done.

Review status: all files reviewed at latest revision, 1 unresolved discussion, all commit checks successful.

Comments from Reviewable

It still seems strange to me making them separate from Chassis... but whatever you guys decided I'm on!!

Review status: :shipit: all files reviewed at latest revision, all discussions resolved, all commit checks successful.

Comments from Reviewable


Special characters with webservice target and WebApi

Question
I would like to send the logdata to a Asp.Net WebApi Backend. But all special characters are encoded wrong. I tried to change the formatters in WebApi and tried all possible combinations of the HttpPost protocol (encoding and BOM) of the WebService target. But still the special characters are received as the unknown unicode character �.
What can I do?
NLog version: 4.3.9
Platform: .Net 4.6
Current NLog config
<target xsi:type='WebService'
   name='ws'
   url='http://localhost:8084/Logs'
   protocol='HttpPost'
   encoding='utf-8'
   includeBOM='false'>
...
</target>

WebApi Controller:
[HttpPost]
public async Task<HttpResponseMessage> Post([FromBody] LogEntry logEntry)...

Example
Test Application
logger.Debug("a b c é k è ï ?");
Result

Checked the code in NLog (in short) and it should work. Any change to check it with fiddler?

I could reproduce the issue. See https://github.com/NLog/NLog/pull/1725
I looks like the problem is in UrlHelper.UrlEncode, see source
not sure how to fix.

I think I could use Uri.EscapeDataString ?

Resolved with #1735

Thanks! We will close this one as it has been merged :)


close popup on back button

how the popup can be closed with the back button / gesture, any suggestions?
thanks a lot.

Hi! the first solution is not available, and the second one is not enough clear, could you add some detail? thanks in advance.


Add: Vietnamese version

This is the PR for issues #143
That added the vi-vn folder and translate total about 13 file into Vietnamese.
Checklist:

[x] config the _config.yml
[x] translate index.md
[x] translate conlusion.md
[x] config _data/tooltips.yml
[x] change _layouts/default.html
[x] translate lessons

[x] lesson 1
[x] lesson 2
[x] lesson 3
[x] lesson 4
[x] lesson 5
[x] lesson 6
[x] lesson 7
[x] lessons plants

[x] double check translation content with the requirement of the example question.
[ ] build for test content (bug in jekyll serve in my device)

Note: please check if any problem exist please let me know (my machine not able to run the jekyll serve command)

Thank you so much! This looks great!


Set fullscreen from a prop or something?

Hi,
Is there any way to set window fullscreen without having to click on a maximize button in the top bar?

Sorry for inconvenience. I see now that there is a prop for that, and it is called startState.


Missing lint config?

Is the ESLint config missing? I did a fresh install after cloning and npm run start failed because there was no lint config. Does this seem right?
Thanks!

How did you "clone"? There is a hidden file named .eslintrc.js. Try list all files in your project folder and see if it exist.

I'm so sorry. I totally forgot that I'd moved the folder.


EEL Documentation Draft

Overview
The following EEL usage patterns describe reading and writing data to and from various file formats and storage systems.
A typical use case is sourcing data from a RDBMS system like Oracle to Hive via the JDBCSource and HiveSink respectively - a trivial exercise (no more than a dozen lines of code) using the EEL Scala API.
Note the below source -> sink patterns examples are NOT completely exhaustive.
EEL

The API supports most of the native types for a given storage file format for sources and sinks
The API is a thin abstraction layer over all the native storage file format APIs such Parquet, Orc and Hive.
APIs such as Kite are bound to the primitive types supported by the underlying  AVRO schema – at the time of this writing AVRO schema doesn’t directly support Decimals and Timestamps – if the underlying native API (Parquet, Orc, etc…) supports it then EEL will support it.
Parallelism is at the sink level and controlled by configuring a number of threads - for each assigned thread the sink writes out a part file (a portion of the data).
Only a single database connection is required for a JDBCSource economizing  on scarse database connection resources, e.g. if Sqoop is configured with 20 mappers then 20 database connections are allocated on the server.
Hive Partition keys are inferred by mapping the source (e.g. JDBCSource) column names to partition keys defined in the Hive Metastore.
The Hive sink automatically performs partition splitting of the data into their respective file buckets - no additional logic required.
Reduced startup time due to no dependency on the YARN resource manager.
Several out-of-the-box  support for Source -> Sink combinations without requiring an intermediate transformation layer
Transformation is also supported via the EEL map function on the source’s underlying frame.
Unlike Kite no external metadata required for EEL datasets - Kite holds additional metadata describing its dataset on disk (HDFS)
The upcoming EEL 1.2 release will have an EEL CLI supporting common tasks such as importing/exporting data, Hive DDL generation, Data Compaction, etc...

Sources and Sink Usage

I've merged your docs into the main readme, and removed from this issue the bits that have been done.

Maps in Parquet
EEL supports Parquet MAPS of any primitive type including structs. The following example extends the previous examples by making PHONE_NUMBERS a Map:

The key to the Map is either home or mobile
The value is simply the phone number

Writing with a MAP of string of string
    val parquetFilePath = new Path("hdfs://nameservice1/client/eel_array/person.parquet")
    implicit val hadoopConfiguration = new Configuration()
    implicit val hadoopFileSystem = FileSystem.get(hadoopConfiguration)
   // Create the schema with a STRUCT and an ARRAY
    val personDetailsStruct = Field.createStructField("PERSON_DETAILS",
      Seq(
        Field("NAME", StringType),
        Field("AGE", IntType.Signed),
        Field("SALARY", DecimalType(Precision(38), Scale(5))),
        Field("CREATION_TIME", TimestampMillisType)
      )
    )
    val schema = StructType(personDetailsStruct, Field("PHONE_NUMBERS", MapType(StringType, StringType)))

    // Step 3: Create 3 rows
    val rows = Vector(
      Vector(Vector("Fred", 50, BigDecimal("50000.99000"), new Timestamp(System.currentTimeMillis())), Map("home" -> "322", "mobile" -> "987")),
      Vector(Vector("Gary", 50, BigDecimal("20000.34000"), new Timestamp(System.currentTimeMillis())), Map("home" -> "145", "mobile" -> "082")),
      Vector(Vector("Alice", 50, BigDecimal("99999.98000"), new Timestamp(System.currentTimeMillis())), Map("home" -> "534", "mobile" -> "129"))
    )

 // Write the rows
    Frame.fromValues(schema, rows)
      .to(ParquetSink(parquetFilePath))

If you have the parquet-tools installed on your system you can look at its native schema like so:
$ parquet-tools schema person.parquet
message row {
  optional group PERSON_DETAILS {
    optional binary NAME (UTF8);
    optional int32 AGE;
    optional fixed_len_byte_array(16) SALARY (DECIMAL(38,5));
    optional int96 CREATION_TIME;
  }
  repeated binary PHONE_NUMBERS (UTF8);
}

-- Notice PHONE_NUMBERS is represented as a repeated UTF8 (String) in Parquet, i.e. an unbounded map.
Read back the rows via ParquetSource
ParquetSource(parquetFilePath)
  .toFrame()
  .collect()
  .foreach(row => println(row))

The results
[PERSON_DETAILS = WrappedArray(Fred, 50, 50000.99000, 2017-02-03 11:29:52.56),PHONE_NUMBERS = Map(home -> 322, mobile -> 987)]
[PERSON_DETAILS = WrappedArray(Gary, 50, 20000.34000, 2017-02-03 11:29:52.56),PHONE_NUMBERS = Map(home -> 145, mobile -> 082)]
[PERSON_DETAILS = WrappedArray(Alice, 50, 99999.98000, 2017-02-03 11:29:52.56),PHONE_NUMBERS = Map(home -> 534, mobile -> 129)]
Looking at the Parquet file through Hive
On the Parquet file just written we can create a Hive External table pointing at the HDFS location of the file.
CREATE EXTERNAL TABLE IF NOT EXISTS `eel_test.struct_map_person_phone`(
   PERSON_DETAILS STRUCT<NAME:String, AGE:Int, SALARY:decimal(38,5), CREATION_TIME:TIMESTAMP>,
   PHONE_NUMBERS Map<String,String>
)
ROW FORMAT SERDE
   'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
   'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
   'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION '/client/eel_map';

The location /client/eel_array is the root directory of where all the files live - in this case its the root of folder of the Parquet write

Here's a Hive session show the select:
hive> select * from eel_test.struct_map_person_phone;
OK
{"NAME":"Fred","AGE":50,"SALARY":50000.99,"CREATION_TIME":"2017-02-03 12:29:52.56"}     {"home":"322","mobile":"987"}
{"NAME":"Gary","AGE":50,"SALARY":20000.34,"CREATION_TIME":"2017-02-03 12:29:52.56"}     {"home":"145","mobile":"082"}
{"NAME":"Alice","AGE":50,"SALARY":99999.98,"CREATION_TIME":"2017-02-03 12:29:52.56"}    {"home":"534","mobile":"129"}
Time taken: 1.27 seconds, Fetched: 3 row(s)
hive>

Here's another Hive query asking for Alice and Gary's age HOME phone numbers:
hive> select person_details.name, person_details.age, phone_numbers['home']
    > from eel_test.struct_map_person_phone
    > where person_details.name in ('Alice', 'Gary' );
OK
Gary    50      145
Alice   50      534
Time taken: 0.183 seconds, Fetched: 2 row(s)
hive>

HiveQL has some nice features for cracking nested types - the query returns scalar values for name and age in the person_details structure and HOME phone numbers from the phone_numbers MAP.
The same query is supported in Spark via HiveContext or SparkSession in version >= 2.x

What if I want to look at all MOBILE phone number:
hive> select person_details.name, person_details.age, phone_numbers['mobile']
    > from eel_test.struct_map_person_phone;
OK
Fred    50      987
Gary    50      082
Alice   50      129
Time taken: 0.079 seconds, Fetched: 3 row(s)
hive>

To retrieve a specific map element, HiveQL requires the column key string, e.g. phone_numbers['mobile']

Query to show name, age, home number and mobile number from the phone_numbers map
hive> select person_details.name, person_details.age, phone_numbers['home'], phone_numbers['mobile']
    > from eel_test.struct_map_person_phone;
OK
Fred    50      322     987
Gary    50      145     082
Alice   50      534     129
Time taken: 0.076 seconds, Fetched: 3 row(s)
hive>

Sam could you merge in the last comment about MAPS into the MD - should come straight after ARRAY section.


Question: why increase sReqCode for each call to getChangeTempIntent ?

This code:
private PendingIntent getChangeTempIntent(int value) {
    Intent intent = new Intent(ACTION_CHANGE_TEMP);
    intent.setClass(context, MyBroadcastReceiver.class);
    intent.putExtra(EXTRA_TEMP_VALUE, value);
    return PendingIntent.getBroadcast(getContext(), sReqCode++, intent,
            PendingIntent.FLAG_UPDATE_CURRENT);
}

I think it's not really needed to increase it all the time, as the request might interfere with other kinds of codes.
I think it's easier to split it to inc&dec. For example:
private PendingIntent getChangeTempIntent(int value, boolean hasIncreased) {
    Intent intent = new Intent(ACTION_CHANGE_TEMP);
    intent.setClass(context, MyBroadcastReceiver.class);
    intent.putExtra(EXTRA_TEMP_VALUE, value);
    return PendingIntent.getBroadcast(getContext(), hasIncreased ? 0 : 1, intent,
            PendingIntent.FLAG_UPDATE_CURRENT);
}

And the usage:
    SliceAction tempUp = new SliceAction(getChangeTempIntent(sTemperature + 1, true),
            IconCompat.createWithResource(context, R.drawable.ic_temp_up).toIcon(),
            "Increase temperature");
    SliceAction tempDown = new SliceAction(getChangeTempIntent(sTemperature - 1, false),
            IconCompat.createWithResource(context, R.drawable.ic_temp_down).toIcon(),
            "Decrease temperature");

Seems to work fine...

I rewrote the codelab in Kotlin, and it is a bit different now, so I am closing this issue. Please reopen if you see the same issue and I will look into it ASAP.


Support classic Drag'n'drop on Destkop applications

Currrently, user needs to wait a certain amount of time before he/she can Drag an element. This is counter-intuitive for Desktop applications. There is no feedback or hint to help guess it.
@riccardo-forina you mentioned that it is a limitations of the UI framework used. Can you point to the upstream issue please?

@apupier you can test the fix directly on Atlasmap's Netlify https://atlasmap.netlify.com/
This should address your concern.


refactor(wallet): remove unused wallet store fields

Description

remove all unused fields from wallet reducer
move addressTypes out of reducer

Type of change
Refactoring (improving code without creating new functionality)
Tests
No test

This LGTM. My only suggestion is that we leave blacklistedUtxos in. Otherwise, we'll have to migrate it in at a later date once we add that feature.


GSLUX-704: Save drawn features

JIRA issue
https://jira.camptocamp.com/browse/GSLUX-704
Description
This PR implements the logic for saving drawn features and persisting them in the URI. It is still WIP. Persisting and restoring is functional, except for a remaining issue that the restored feature is not yet displayed on the map according to its properties. The persist step can also be tested by copying the features=... queryParam to the prod instance where the features are displayed in the according "style". (Note that the style encoding/decoding in the code is not used for this, but the style should work based on the properties).
To-dos for this PR include:

[ ] fix aforementioned restore of feature (correct rendering on map)
[ ] potentially some refactoring:

All content in the utils folder was taken and adapted from v3. It could possibly be better integrated into the v4 architecture.
ol import syntax is not consistent in FeatureHash
declaration of modules and typing could be further cleaned
Note: encode/decodeUriComponent has been removed from FeatureHash and to let state persistor take care of this.

[ ] fix & add tests

Future to-dos that depend on other features and can not yet be covered by this PR are:

migrate functionality related to 3D
migrate functionality related to MyMaps (save, check if map id present, refreshProfile => GSLUX-710
selecting features (selectedFeatures) => GSLUX-705
on prod draw tools are deactivated after drawing a feature and the feature is selected

Style decoding form short URL format to mymaps format is done via helper file.
V3 code is still being reused without much refactoring.
User Features with various styling can be tested with this URL:
http://localhost:5173/theme/main?version=3&X=662256&Y=6359947&zoom=17&features=Fa(bse9-fs65Hp-w_d!d_Dm_u!s_!a*~display_order*0'd*'__refreshProfile__*false'a*0'c*%2523ed1c24'e*1'i*false'l*plain'n*Polygone%25201'o*0.2'r*false's*circle't*10'u*false)a(yxe9-ht65H8Dt_h_g*y!1-~display_order*1'd*'__refreshProfile__*false'a*0'c*%25231dcaed'e*1'i*false'l*plain'n*Polygone%25202'o*1'r*false's*circle't*10'u*false)a(yqe9-nq65Hf*sLeEe*n_jCK2_-c_~display_order*2'd*'__refreshProfile__*false'a*0'c*%25232a1ded'e*4'i*false'l*plain'n*Polygone%25203'o*0.48'r*false's*circle't*10'u*false)a(hqe9-9n65H.N!L!L!LCJCLEHGHGHIFIDIDKBK*M_K.K.K-M!IAKCICIEGGGGEGCKAIAK!K-K-M_K_K*KBKBKDIFIHGHEJEJELAJAN!L-L-L_N_L*LBJBJFJFHFHHFJDJDL*L*L*L~display_order*5'__refreshProfile__*false'd*'a*0'c*%2523ed1c24'e*1'i*false'l*plain'n*Kreis%25206'o*0.2'r*false's*circle't*10'u*true)p(s1e9-1f65H~display_order*6'__refreshProfile__*false'd*'a*0'c*%2523ed1c24'e*1.25'i*true'l*plain'n*Mon%2520Label'o*0.2'r*false's*circle't*26'u*false)p(1yd9-ut65H~display_order*7'__refreshProfile__*false'd*'a*-0.8726646259971648'c*%25231ded2a'e*1.25'i*true'l*plain'n*Mon%2520Label'o*0.2'r*false's*circle't*23'u*false)

for demo, the link below can be used:
github pages demo
It contains some styled features created with v3 and some features created with v4.

When new features are added, they accumulate in the permalink
deletion of features is not yet implemented

Thanks for the rebase and the link.
I noticed the component for styling the feature is not displayed anymore (probably somethign wrong about the feature type):

Thanks for the rebase and the link.
I noticed the component for styling the feature is not displayed anymore (probably somethign wrong about the feature type):

fixed


Run demo in live JupyterLab environment

👋I've added a button to your README so that anyone can quickly try out your example notebooks in a live JupyterLab environment on FloydHub. This workspace environment is very flexible - users can switch to GPU-powered machine easily, or mount public datasets, or create model serving endpoints.
Let me know if this is helpful for you! You can also add the button to your Medium post, too. I can help with that if you want.

Thanks. Trying it out now.


Allow user to set default locale

Didnt actually run tests. Just figured you meant to have this uncommented and made a quick PR through github GUI.
Currently where we use the gem, we were getting a warning of trying to override a constant. Found out that this was the problem. Thanks Adam! Cheers
PIVOTAL: https://just-kidding :)

Ahah! Thanks!


[WIP] Monitoring

Here to be discussed & changed. Possibly replaced by better approach & discarded.
Idea
Create a feature file which starts CRC and regularly calls oc node describe. Ouput of this and a couple of other commands is then pushed to https://github.com/jsliacan/crc-data. This job is run more-or-less perpetually on an Openstack instance.
Note
Can run this PR without worries, it doesn't have my github token so no spoiler uploads.

I would prefer a new small go program to do that (and you can even remove clicumber with that, far more simpler!). WDYT?

I would prefer a new small go program to do that (and you can even remove clicumber with that, far more simpler!). WDYT?

Yes I would prefer have it independently, maybe it can be run from a scheduled container?, My initial thought, at least to get information (at least for ocp pods) with some format would be use something like crictl stats -o .., but an specific development also makes total sense

Sure - sounds good. When I was writing that thing, I reused as much as I could (including jenkins jobs for running tests). We can change it to anything we want.

Will do this differently - separate module.

Will do this differently - separate module.


Add bans and whitelists

Allows managing bans using the /ban, /ban-ip, /banlist, /pardon and /pardon-ip commands and whitelisting them with /whitelist.
Closes #11.

@XfedeX, @Felix14-v2, could you add translations for the new keys?


Clean-up: Remove AggregateExec::group_by()

Which issue does this PR close?

Closes #.
Rationale for this change

AggregateExec already has
pub fn group_expr(&self) -> &PhysicalGroupBy {
     &self.group_by
 }

No need for
 pub fn group_by(&self) -> &PhysicalGroupBy {
     &self.group_by
 }

What changes are included in this PR?

AggregateExec:: group_by() is removed.
Are these changes tested?
Yes, existing tests.

Are there any user-facing changes?
A public function is removed, but it has an existing duplicate.

Looks good to me -- thank you 🙏


atMost API

I'm planning to replace GHC's PSQ file in concurrent-dns-cache with psqueues. One missing API is atMost: https://github.com/ghc/ghc/blob/master/libraries/base/GHC/Event/PSQ.hs#L266
It would be great if atMost will be implemented.

Ping.
I really want this API.

Thanks for pinging.  I have a long train ride ahead of me today so I should
be able to give it a look.
On Jun 28, 2017 12:57, "Kazu Yamamoto"<EMAIL_ADDRESS>wrote:
Ping.
I really want this API.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/bttr/psqueues/issues/18#issuecomment-311556524, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAF1DSKPpPYSwphbc-0IUlbpF336CDbyks5sId0pgaJpZM4MN_rl
.

@kazu-yamamoto Do you need the elements in the first element of the returned tupled to be ordered by key?  The GHC PSQ promises this and I think it's perhaps doable (but tricky) for our versions, but it's not sensible for at least HashPSQ.  That means I'd rather not provide it if it's not necessary, so the three versions have a consistent interface.
I've added this function (without the key ordering) to the atmost branch.

I don't care the ordering of the first element because I use only the second element to implement caches.
I will try the atmost branch today. Thank you for your effort!

atMostView works well.
I hope you will release the new version soon.

I should be able to release the new version tomorrow..

I can't wait! 👍

Released as <IP_ADDRESS> on Hackage.

@kazu-yamamoto Do you think it would be worthwile to steal the IntPSQ implementation and use it for GHCs timer manager?

@jaspervdj Than you. I appreciate.

@alexbiehl Yes. If you do so, please also consider to merge the following patch to GHC. We don't have to wake up the time manager when the PSQ root is not changed.
diff --git a/libraries/base/GHC/Event/TimerManager.hs b/libraries/base/GHC/Event/TimerManager.hs
index c1ab64c..9407098 100644
--- a/libraries/base/GHC/Event/TimerManager.hs
+++ b/libraries/base/GHC/Event/TimerManager.hs
@@ -219,14 +219,12 @@ registerTimeout mgr us cb = do
       let expTime = fromIntegral us / 1000000.0 + now

       editTimeouts mgr (Q.insert key expTime cb)
-      wakeManager mgr
   return $ TK key

 -- | Unregister an active timeout.
 unregisterTimeout :: TimerManager -> TimeoutKey -> IO ()
 unregisterTimeout mgr (TK key) = do
   editTimeouts mgr (Q.delete key)
-  wakeManager mgr

 -- | Update an active timeout to fire in the given number of
 -- microseconds.
@@ -236,8 +234,19 @@ updateTimeout mgr (TK key) us = do
   let expTime = fromIntegral us / 1000000.0 + now

   editTimeouts mgr (Q.adjust (const expTime) key)
-  wakeManager mgr

 editTimeouts :: TimerManager -> TimeoutEdit -> IO ()
-editTimeouts mgr g = atomicModifyIORef' (emTimeouts mgr) $ \tq -> (g tq, ())
-
+editTimeouts mgr g = do
+    wake <- atomicModifyIORef' (emTimeouts mgr) f
+    when wake $ wakeManager mgr
+  where
+    f q = (q', wake)
+      where
+        q' = g q
+        wake = case Q.minView q of
+            Nothing              -> True
+            Just (Q.E _ t0 _, _) -> case Q.minView q' of
+                Nothing          -> False -- just in case
+                Just (Q.E _ t1 _, _)
+                  | t0 == t1     -> False
+                  | otherwise    -> True


Doc

Codecov Report

Merging #33 into next will increase coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             next      #33      +/-   ##
==========================================
+ Coverage   79.01%   79.05%   +0.03%
==========================================
  Files         179      179
  Lines        4928     4936       +8
  Branches      574      574
==========================================
+ Hits         3894     3902       +8
  Misses        799      799
  Partials      235      235

Impacted Files
Coverage Δ

packages/metrics/src/index.ts
100% <0%> (ø)
:arrow_up:

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 9b9469d...6cc6013. Read the comment docs.


Minor mode for freeze (code here)

Hi there.
I made a minor mode that lets you move around and add frozen cursors until you exit the mode (hitting return), when it unfreezes them.  This makes it kind of like rectangular region mode, except you mark where each cursor goes.  It's different from mc/freeze-fake-cursors-dwim because it does not unfreeze until you hit return.  Here's my code:
;; Suggested binding is C-. C-.
;; (global-set-key (kbd "C-. C-.") 'mc/add-one-frozen-cursor)

(defun mc/add-one-frozen-cursor ()
  "Add a frozen cursor at point and enter mc/freeze-minor-mode.

RET exits the mode and unfreezes the frozen cursors."

  (interactive)
  (if (or (> (mc/num-cursors) 1) (null mc-freeze--frozen-cursors)) (message "Time stop!"))
  (setq mc/freeze-minor-mode t)
  (mc/create-fake-cursor-at-point)
  (mc/for-each-fake-cursor
    (mc-freeze--add-frozen-cursor (overlay-start cursor)))
  (mc/remove-fake-cursors))
(define-minor-mode mc/freeze-minor-mode
  "mc-freeze minor mode."
  nil "" `(
    (,(kbd "RET") . mc/exit-freeze-mode)
    (,(kbd "C-g") . mc/abort-freeze-mode)
  ))
(defun mc/exit-freeze-mode ()
  "Exit freeze mode and unfreeze multiple cursors."
  (interactive)
  (mc/unfreeze-fake-cursors)
  (setq mc/freeze-minor-mode nil))
(defun mc/abort-freeze-mode ()
  "Abort freeze mode and remove current multiple cursors."
  (interactive)
  (loop for ov in mc-freeze--frozen-cursors do
          (delete-overlay ov))
  (setq mc-freeze--frozen-cursors nil)
  (setq mc/freeze-minor-mode nil))

Er, I was able to simplify this and not use freeze, so never mind :)


Add CompiledModuleCreator

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (6e711ac) to head (5d475a8).
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #412   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files          118       119    +1
  Lines         3482      3499   +17
  Branches       281       281
=========================================
+ Hits          3482      3499   +17

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

🚨 Try these New Features:

Flaky Tests Detection - Detect and resolve failed and flaky tests


Add Name to PodOptions

Change Overview
Add an option to have fixed name for a pod
Pull request type
Please check the type of change your PR introduces:

[ ] :construction: Work in Progress
[ ] :rainbow: Refactoring (no functional changes, no api changes)
[ ] :hamster: Trivial/Minor
[ ] :bug: Bugfix
[ ] :sunflower: Feature
[ ] :world_map: Documentation
[ ] :robot: Test

Issues

fixes #issue-number

Test Plan

[ ] :muscle: Manual
[ ] :zap: Unit test
[ ] :green_heart: E2E

LGTM


RNN variants: Depth-Gated RNN, ResNet and Gated Feedback RNN

Please make sure that the boxes below are checked before you submit your issue. Thank you!

[X ] Check that you are up-to-date with the master branch of Keras. You can update with:
pip install git+git://github.com/fchollet/keras.git --upgrade --no-deps

[ X] If running on Theano, check that you are up-to-date with the master branch of Theano. You can update with:
pip install git+git://github.com/Theano/Theano.git --upgrade --no-deps

[ X] Provide a link to a GitHub Gist of a Python script that can reproduce your issue (or just copy the script here if it is short).

Dear sir,
I would like to ask if the following is implemented or will be soon:
1- Depth-Gated RNN,  http://arxiv.org/pdf/1508.03790v2.pdf
2- ResNet, https://arxiv.org/pdf/1512.03385v1.pdf
3- Gated Feedback RNN, https://arxiv.org/pdf/1502.02367.pdf
Regards

Here is resnet: https://github.com/raghakot/keras-resnet
New architectures come out every week. 95% of them end up never being used after the paper introducing them. Let's see what passes the test of time first (resnet did).


TypeScript does not recognize "isCollection" function

TypeScript does not recognize the isColletion function. The function documented here is not recognized by TypeScript 2.6.2.
TS2305: Module '"immutable"' has no exported member 'isCollection'.

@barbu110 Are you using a v4.0.0 release candidate (latest is 4.0.0-rc.9)? Confusingly, the docs point to the 4.x, while the latest stable remains 3.8.x. If memory serves, in pre-v4 versions, Immutable.isIterable was the equivalent utility.


Installaation steps?

I dont know how to install this software. Can I get some help on the steps to install this software?

First, you must install it on a machine running Windows. Then you can download MossApp/Publish/Setup.zip and run setup.exe contained within or download MossApp/Publish/setup.exe directly. Your browser will likely warn you about downloading an executable or may not allow you to download it at all. You will also likely get a warning from Microsoft Defender or your antivirus software when running setup.exe. You will need to click 'More Info' -> 'Run anyway'. It will then run the installer and you should be good to go.

@jstarr35 Thank for your request. I am able to run the app but it ask me about user id. How can i getthis id?

@ali3assi You can find more information about the Moss service here. Check out the Registering for Moss section for instructions on how to obtain a Moss account.


Compatibility with Witchery Resurrected

Witchery Resurrected has many of the same features of Witchery, including potions and transformations that can change your size.
With Aqua Acrobatics installed, the eye height remains constant regardless of transformations or potion effects.
You can also crawl in these new forms, despite it visually not matching up at all.

Thanks for the report. Unfortunately, as the mod appears to be closed-source and not officially released, I am not able to provide reliable compatibility for it at this time.

Compatibility will be available in 1.13.0. Thanks again to @Shazuli for this contribution.


fix(automations): use req.Plan in Create() for default value

resolves https://linear.app/prefect/issue/PLA-803/errors-when-trying-to-deploy-an-automation
while investigating https://github.com/PrefectHQ/terraform-provider-prefect/issues/317, I noticed that the default value we set in the prefect_automation.enabled resource schema attribute wasn't being respected.  We set it to be true if no user configuration is provided, but the user submitting #317 ran into an issue where omitting the enabled flag was causing a state value conflict - the API was returning false, because we were sending a false
It looks like we mistakenly used req.Config in the Create() method to pull the HCL configuration, when we should be using req.Plan

req.Config - raw, user-inputted configuration (so the enabled flag wouldn't be set).  Will be missing any computed/interpolated values as well
req.Plan - the full computed plan, which incorporates any schema defaults

We also do this in deployment and flow resource schemas - when we look at the TF plugin framework docs, it looks like:

Create() uses req.Plan
Update() uses req.Plan
Read() uses req.State
Delete() uses req.State

Additionally, this section in the framework docs calls out using either req.Plan or req.State to access values for different situations. req.Config is not mentioned
Net net, we should only use req.Config for certain situations when we need access to the raw user input.  Otherwise, we should be using req.Plan and req.State to reference the fully computed plan (or serialized state)

@mitchnielsen @jimid27 ok so fixing the req.Plan thing uncovered a couple of other bugs in the deployment schema that i think are worth calling out here (will do it in each code line)


Dreamweaver Theme is not working

VSCode Version:1.0.0
OS Version:windows

Steps to Reproduce:

Install extension
It's not working and no effect

Please report to them.


Choo choo choo

very much wip, creating this PR so I can track the changes made
Changes

use choo@4
serve browserify bundle over http on port 8093 so electron becomes closer to a regular browser env - we can optimize this later for production (e.g. prebundle and the likes)
switched dir structure a little bit - views is now elements to put in line with dat-elements, added a pages as a 1:1 reference to the pages our router renders
nope actually let's not use browserify quite yet, see #72

ok, like 70% there I think - left the cafe while running into a bug. Gonna make some food now, and then get back to this. Todo:

fix that bug (something with args passing)
move _app.js into app.js (this is a big-ish one)
split out RPC architecture into separate models and use event architecture
validate deps and remove what we don't need anymore (oops, browserify)

At the end we'll have the current app using choo. Couple more hours of focused work is my guess based on how long it's taken to get to this point

Alright, I think this is ready for review now. All functionality should work as expected. It might be a bit rough around the edges in terms of performance, but given we're moving the logic out to to dat-js I spent no time optimizing (perceived) performance, and did a reasonably raw port of the prior code.
The commits can be rebased using the rebase merge feature. We should probably not release this version as it has no gains for end users (and perf regressions might occur) - I think the round after this might be a good candidate for releasing tho.
Keen to hear what humans think of the code! :sparkles:
cc/ @juliangruber @karissa @Kriesse

LGTM!

feedback incorporated

Ok, merging! :sparkles:

@karissa could you perhaps add me / the team to the repo? Couldn't merge it myself. Thanks! :grin:

(tried to add yosh but also don't have admin rights)


Alpha2

fixes the rebase issues with alpha

Major Changes

removed bootstrap and rebuilt Sidebar with Material UI
deleted a majority of unused files from scaffold (kept hooks and a couple components that looked potentially useful)
removed styled components for original theming and replaced with material ui custom themes (see /themes)
Refactored Bonds view
Replaced majority of html in jsx files with Material UI counterparts
Implemented Typography (Material UI)
Refactored TopBar using Material UI and added OhmMenu for dropdown
Removed/refactored majority of redundant or conflicting scss
Implemented major design spec requirements within Material UI theme definitions
removed font-awesome and replaced icons with custom icons from figma


We should provide a MEDS synthetic data generator to help with testing

E.g., a simple function that takes an input directory and writes out one static MEDS dataset that is version compatible that users can see in this repo that they can use to test downstream tools.
@EthanSteinberg, would you have any objections to this?

I agree, but I would change the naming of this issue to "We should provide a MEDS synthetic data generator to help with testing"

This is not perfect by any means, but some starter code that I'm using is here: https://github.com/mmcdermott/MEDS_transforms/blob/main/tests/transform_tester_base.py in case (when we eventually get to this) it is helpful.


Support MyPlexUser

Would be nice to support loading up the user from myplex: https://python-plexapi.readthedocs.io/en/latest/modules/myplex.html#plexapi.myplex.MyPlexUser
This way we could load servers automatically.

Hey @lostb1t,
Thanks for submitting this issue.
The code in this repo is auto-generated from the API Specification here
I have a couple of plex.tv endpoints that I am looking to add to this spec, but I would love assistance documenting this endpoint if you would like to help!
Based on a cursory glance, it looks like this endpoint is a POST call to https://plex.tv/api/users/ with at least an email property in the JSON body, assuming you are already authenticated.
I'm happy to help if you want to take a crack at adding this endpoint!


rgbled.py example included int recipes.rst (Basic Recipes) does not work with Python 2

Hi! First, thanks for developing and maintaining this package.
Line 27 of rgbled.py example code that is included in the Basic Recipes documentation does not work in python 2, while it does in python 3.  Under python 2 this division calculation always results in 0, so the blue LED never gets lit, while in python 3 it returns the intended floating point value.
Recommend either dividing by 100.0 to force a floating point context, or putting a comment that python 3 is required.

Thanks for letting us know. Now fixed, and will appear on the "latest" branch of the docs shortly, but not "stable" (the default) until the next release.


Possibility to Overide default polling interval for each sensor

When sensors are used for other stuff then plants it might be needed to change the polling interval of that sensor to lower or higher then the default value.

@GrRivero this is already possible. The issue is only about supporting it or individual sensors.


redirect: add redirect app

so cloud.service.gov.uk redirects to www

Added a couple more domains


add the code in try and catch block

add the code in try and catch block this is done so to handle when the response is a non axios error

Hey @Vayras, thanks for your contribution.
I should've written a more descriptive issue, but what I was saying was just to detect in the first reject response interceptor, if the error was an axios error. (which can be checked with !!error.isAxiosError)

@arthurfiorette thank you for letting me know . Let me know if I can contribute more and help

I've made a review with some changes and a test case would be awesome :)

Implemented by 929054e


chore: classify new theorem / theorem porting notes

Classifies by adding issue number #10756 to porting notes claiming anything equivalent to:

"added theorem"
"added theorems"
"new theorem"
"new theorems"
"added lemma"
"new lemma"
"new lemmas"

Thanks!
bors merge


NTLM Authentication is missing

I built a shard that should handle this: https://github.com/spider-gazelle/ntlm
Some example HTTP usage against IIS
should be able to handle what you need, feel free to ping me if you have any questions

Hi @stakach,
thanks for this hint. I will have a look at this. Currently, I'm quite busy with other stuff.


Update DG details

Update overview and UI diagram

LGTM

Codecov Report

Merging #320 (f14fc6c) into master (8a09395) will increase coverage by 0.34%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #320      +/-   ##
============================================
+ Coverage     61.49%   61.84%   +0.34%
- Complexity      444      451       +7
============================================
  Files            90       90
  Lines          1748     1769      +21
  Branches        184      187       +3
============================================
+ Hits           1075     1094      +19
- Misses          619      620       +1
- Partials         54       55       +1

Impacted Files
Coverage Δ

src/main/java/seedu/unify/model/task/Task.java
96.29% <0.00%> (-1.86%)
:arrow_down:

...n/java/seedu/unify/logic/commands/ShowCommand.java
0.00% <0.00%> (ø)

...va/seedu/unify/logic/parser/ShowCommandParser.java
0.00% <0.00%> (ø)

...in/java/seedu/unify/logic/commands/TagCommand.java
77.27% <0.00%> (+31.81%)
:arrow_up:

...edu/unify/model/task/TaskContainsTagPredicate.java
100.00% <0.00%> (+100.00%)
:arrow_up:

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 8a09395...f14fc6c. Read the comment docs.


feat: add ability set custom icons for testrunner

I would like to be able to customize the icons in the test runner to use nerd font icons to match the rest of my setup.

Solved by #132


(Feature Request) Support for 1.19.4+ displayentities?

https://www.reddit.com/r/Minecraft/comments/1223aco/the_new_item_display_entity_is_fun/
Would love an action in Magic which allows us to spawn and manipulate display entities, it'd greatly improve VFX for spells. If possible, some sort of DisplayEntityProjectile action would also be greatly appreciated if possible.

more like effectlib feature, not magic itself

Not exactly, displayentities aren't particles, which is what effectlib handles. Either way, I'd much prefer it as an action if it ever gets implemented, however all things considered the chances of that are slim enough that I'm going to end up doing it myself anyways.

I will look into it- if there's Spigot API this should be easy. I would probably implement it as an EntityData flag (e.g. display: true) so you could use one in EntityProjectile, SpawnEntity, etc.

I haven't had a chance to look into it at all- but if there are such things and they are easily accessible via API (or maybe NMS), then probably :)


Fix typos in the OSSL_METHOD_STORE doc

Fixed some typos that I noticed when reading OSSL_METHOD_STORE docs.
Checklist

[x] documentation is added or updated

Closing as it's from wrong account.