Insane amount of data written during synchronisation

Basically, when launching a new node from scratch, Teku wears out 1 TB of SSD for 6 GB of effective data stored. Maybe is there something to optimize in the software when it rewrites 166× everything ?
After the synchronisation, the problem stops.
I noticed this problem with smartctl on my Samsung Evo 970 Plus last week (31 TB written for 1 TB of data stored after synchronisation with Mainnet) but I was not sure whether it was a bug of smartctl or Besu or the controller of the SSD. Since then, I separated Teku and Besu on two different SSDs. I'm synchronizing with Görli since yesterday and today I notice that the new SSD devoted to Teku (Samsung PM961) stores 6GB more data but the Data units written field of smartctl gained almost 1 TB. iostat confirms that 1TB has been written since yesterday on this disk used exclusively by Teku.
No swap. Teku runs with -Xmx22G. There is always between 10 and 17 GB of RAM free (so used by Linux to cache files).

Is this a checkpoint sync?

I tried both and it seems to write less with a checkpoint : about ×20 instead of ×166.

Given that checkpoint sync is the preferred, safer, recommended way, I’m not sure this is a thing that needs to be fixed.

There is something in the code which rewrite every byte at least 20 times and that's fine? Is it how serious the developers of a software managing tens of billions of dollars are?

@RogerHKW I appreciate the feedback and the details from your investigation and reporting this to the team. We will take a look into it.
As a separate note, please keep in mind that we have a code of conduct for our projects and it applies to any of the developers that contribute to the project and people participating in the community (Discord, GH Issues, etc.). We do ask you to be mindful of your tone and the way you talk to our developers and members of the community. We won't tolerate abusive behaviour.

Chillax @RogerHKW . I am not a Teku dev btw. I am expressing how it impacts me as a user. Optimization is a rabbit hole without a bottom, and squeezing the last half TB of writes out of a process may not be a good use of dev time.
Couple data points @lucassaldanha . Two servers running since mid-2021, one Lighthouse and one Teku. Total TB written for both.
Lighthouse/Erigon: 291 TB
Teku/Besu: 319 TB
That's within "margin of error", particularly given that these figures include the EL. I doubt there's actually a "there", here. Teku is likely as optimized as it can be, or as it is reasonable to be. Ethereum as a whole writes almost nothing. I've been up for two years on those and haven't meaningfully scratched the durability of the drives.


Upgrade go version to 1.18

The latest Red Hat supported ubi for go is 1.18. We should upgrade the go version used by InstaScale to bring this more in line with the CodeFlare Operator.

Resolved with #54 :)


Fix authentication

Authentication was returning the wrong RconPacket (in response to an authentication request, the server returns an empty generic response packet, then an auth response packet)

Just bumping this request. The updated code works as intended.

I am archiving this project, you are of course free to make forks according to the license.


Pie chart sometimes work strange

Reproduced bug: https://pie-chart-bug.demo.community.intersystems.com/dsw/index.html#/IRISAPP/Bug/Drilldown with Clickfilter.dashboard

Looks like the issue is in crossjoins.

fixed in 3.1.45


API endpoints to initially expose

Below is a list of api endpoints to expose in addition (may overlap) with the normal endpoints listed in the dev documentation:
http://developers.hubspot.com/docs/endpoints
All GET unless specified
Sources
/analytics/v2/sources/summary/daily
Pages
/pages/v3/pages
Contacts
/contacts/v1contacts
/contacts/v1/forms
/leads/v2/forms
/contacts/v1/lists/all/contacts/all
/contacts/v1/properties
Prospects
/prospects/v1/timeline
Events
/reports/v1/events
POST /analytics/v2/event/completions

sources_daily no longer works..
Do you know another api endpoint for this?
https://api.hubapi.com/pages/v3/pages?hapikey=demo


Simplify NPM Package Uploading and Standardize VS Code Standard

@elie222 ,
The package.json file is to solve the issue of https://github.com/exo-digital-labs/ERC721R/issues/7.
Simplify your task in publishing the npm package.
Prettier config file is to standardize the code format in all visual studio code editor. Some programmer prefer to use single quote, some prefer to use double quote. For my case, I prefer single code, everytime I save the file, it will convert all the double quote to single code. I do believe other have the same problem as well.
Hope it helps. :)

Thanks for the PR :) Merged :)
Maybe we even add pretty-quick to auto run prettier on each commit


20230915-preview

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.ResourceManager.CosmosDB

Please follow below guides to fix the CI:
Generated code is not up to date.
    You may need to rebase on the latest main,
    run 'eng\scripts\Update-Snippets.ps1' if you modified sample snippets or other *.md files (https://github.com/Azure/azure-sdk-for-net/blob/main/CONTRIBUTING.md#updating-sample-snippets),
    run 'eng\scripts\Export-API.ps1' if you changed public APIs (https://github.com/Azure/azure-sdk-for-net/blob/main/CONTRIBUTING.md#public-api-additions).
    run 'dotnet build /t:GenerateCode' to update the generated code.
    run 'dotnet build /t:GenerateTests' to update the generated test code.

To reproduce this error locally, run 'eng\scripts\CodeChecks.ps1 -ServiceDirectory cosmosdb'.

The build failed, please build locally or refer to the CI log

@archerzz Is there a documentation on how we can release the beta SDK separate from stable SDK?

Since the source code is the same, we're forced to release one single SDK for the preview API version. But from your comment it seems like the beta/preview version process is different.

@archerzz Is there a documentation on how we can release the beta SDK separate from stable SDK?

@pjohari-ms Release a beta version is the same as releasing a stable version, except for the version in metadata. See this PR as an example: https://github.com/Azure/azure-sdk-for-net/pull/39215


Swagger parser ignores response entries when there's an extension

Problem statement
According to the OpenAPI Spec, OpenAPI Extensions are allowed to be under responses. But when loading the spec via load.Spec(), the response codes are completely ignored if there is an extension. If there is no extension, then the response codes are parsed and hydrated just fine.
Swagger specification
OpenAPI Extensions
Steps to reproduce
Spec file (spec.json)
{
  "swagger": "2.0",
  "info": {
    "title": "Swagger Fixture",
    "version": "1.0",
    "x-ext-info-1": "a",
    "x-ext-info-2": "b"
  },
  "paths": {
    "/b/": {
      "get": {
        "responses": {
          "200": {
            "description": "200 response"
          },
          "x-ext-resp": "response ext"
        }
      }
    }
  }
}

Code:
package main

import (
	"github.com/davecgh/go-spew/spew"
	"github.com/go-openapi/loads"
)

func main() {
	storedSpec, err := loads.Spec("./spec.json")
	if err != nil {
		panic(err)
	}

	spew.Dump(storedSpec.Spec().Paths.Paths["/b/"].Get.Responses)
}

Output:
aven30@COMP archive % go run main.go
(*spec.Responses)(0x140001a4df8)({
 VendorExtensible: (spec.VendorExtensible) {
  Extensions: (spec.Extensions) (len=1) {
   (string) (len=10) "x-ext-resp": (string) (len=12) "response ext"
  }
 },
 ResponsesProps: (spec.ResponsesProps) {
  Default: (*spec.Response)(<nil>),
  StatusCodeResponses: (map[int]spec.Response) <nil>
 }
})

But when you remove the  "x-ext-resp": "response ext", it ends up dumping the following:
aven30@COMP archive % go run main.go
(*spec.Responses)(0x140000a2df8)({
 VendorExtensible: (spec.VendorExtensible) {
  Extensions: (spec.Extensions) <nil>
 },
 ResponsesProps: (spec.ResponsesProps) {
  Default: (*spec.Response)(<nil>),
  StatusCodeResponses: (map[int]spec.Response) (len=1) {
   (int) 200: (spec.Response) {
    Refable: (spec.Refable) {
     Ref: (spec.Ref)
    },
    ResponseProps: (spec.ResponseProps) {
     Description: (string) (len=12) "200 response",
     Schema: (*spec.Schema)(<nil>),
     Headers: (map[string]spec.Header) <nil>,
     Examples: (map[string]interface {}) <nil>
    },
    VendorExtensible: (spec.VendorExtensible) {
     Extensions: (spec.Extensions) <nil>
    }
   }
  }
 }
})

Environment
swagger version:latest dev
go version: 1.19.1
OS:  Mac

@Aven30 I think the issue should be raise under go-openapi/loads repo


Add ability to execute a query in a single pass against content clusters

Today we only support doing two phased query execution where

search phase executes the query plan over nodes involved and computes ranking models (e.g a onnxModel)
summary phase where top-k hits are filled from search phase and where ranking summary features are re-computed

With the integration of onnx-rt on the content nodes I think it would be very beneficial if we one could force a single pass as it would make several use cases faster.

Model evaluation with a single document,query pair and where we want to use several outputs of the model returned as ranking summary features. E.g the model could be an embedding function which maps the input query to a dense embedding representation which is returned as a tensor which is used to retrieve in another query, e.g using ANN where we use normal two pass query execution.

Model evaluation with query,[documents] where the number of documents is low and where we are only interested in the top 1-2 documents per node but for which we need several outputs of the model to further re-rank in the container level or produce the answer, e.g for a question answering task.

Yes, and this should be much less work now after switching protocol and dispatching from the container.

This is now possible after adding the new match-features feature where tensors and computations can be returned in a single execution phase.
https://docs.vespa.ai/en/reference/schema-reference.html#match-features


Styled components selector ".class" not specific enough to override ".class tagname"

Version
2.1.0
Reproduction
https://www.webpackbin.com/bins/-L-2M40p6gvgtP9kOCIe
Steps to reproduce
Have class on the <body class="ios"> with this CSS:
.ios p {
  background-color: blue;
  color: white;
  font-size: 120%;
}

and a styled p component
const Text = styled.p`
  font-size: 70%;
  background-color: white;
`

Expected Behavior
Text should have a white background and small font.
Actual Behavior
Text has the font size and background of the body via more stronger selector .ios p. Which is stronger than the styled components selector. When the styled components selector would be p.<generatedname> it would take precedence and all would work good.
Is there a way to force the tag name to the generated styled class name?

This is expected behaviour and there are some tricks to make this work correctly: https://www.styled-components.com/docs/advanced#existing-css
In the case of having your Text component have a higher specificity, you can let it repeat its own classname:
const Text = styled.p`
  & { /* or add more & here until specificity is high enough */
    font-size: 70%;
    background-color: white;
  }
`;

Since this is not that nice, generally we don't recommend using global rules like the one you have here, but I suppose that's not new code but legacy?

I tried the & trick but it did not work.
The "global" rule is just fine CSS. The real rule in my mobile app to enforce the iOS text font on paragraphs.

@pke I'd recommend you to move the code for this into a css helper tag: https://www.styled-components.com/docs/api#helpers or maybe you can even code a more complex helper, like this one: https://www.styled-components.com/docs/advanced#media-templates
If that's on an option you have to repeat the parent selector until the specificity is high enough (in this case &&): https://www.webpackbin.com/bins/-L-2WWEg3jLDspr0Hwou
But I really don't recommend working with global classes together with styled-components, as it defeats the purpose of 1) not having to worry about specificity, and 2) encapsulation & componentisation


Log naming

What if you add php_sapi_name() to larave log file name?
Or add filePermission to RotatingFileHandler creating?
Ref: http://stackoverflow.com/questions/27674597/laravel-daily-log-created-with-wrong-permissions

Not a bug. If you want to make proposal create an issue in laravel/internals repo

@Dylan-DPC okey, thanks


Include trademark/copyright/license information in app UI

At the bottom of the page we should include a notice to make it clear we are not associated with Korg:

The Volca Sampler app was created by Ben Wiley. "volca sample" is a trademark of KORG Inc. KORG Inc. has not endorsed, nor participated in, the development of the Volca Sampler app. Volca Sampler relies on the open-source SYRO library published by KORG Inc., which facilitates the encoding of audio data to be sent to the volca sample.

Because Syro is run in the browser we need to include its license somewhere, which we can link to from a "legal" button:

Copyright (c) 2014, KORG Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

That said, we also need to include licenses for other dependencies served to the frontend. To be determined how to render them all.

Consider scancode toolkit for finding all the licenses: https://scancode-toolkit.readthedocs.io/en/latest/tutorials/how_to_run_a_scan.html

Done for Syro, need to find the best way to include licenses for other packages.


Simple-Ontology

In order to be able to write a working mapping script, Mattheo provided us with his personal minimum mapping example. It can be found in lebedigital/SimpleOntology on the Simple-Ontology branch.
The tasks are now:

[x] converting the synthetic data in Data.xlsx to yaml files, one for each specimen.
[x] accessing the content of the .ttl file with Python
[ ] writing a script that replaces the placeholders within the SimpleOntology.ttl with the metadata
[ ] comparing the result to Mattheos result (SimpleOntologyMapped.ttl) → for this we have the problem that the word "length" and "diameter" are misspelled, so keep this in mind when comparing the two files or just keep it spelled like this.

I looked into the example that is given in the SimpleOntology.ttl. Some remarks

please rename the branch to match the issue as we have done with all other branches. This way, it is easier to find that branch and relate it to the work that is done
why are the used namespaces ns1 and ns2 different, that is weird. What is that link (http://w3id.com/concrete or http://w3id.org/concrete) referencing to? ns1 seems not to be used apart from the ontology definition
how do we distinguish placeholders from comments? I would suggest replacing "Diametre_Value" by "$$Diameter_Value$$ (correct spelling), thus "everything that is within "$$somePlaceholder$$" is to be replaced

As for the synthetic data, directly start with the yaml files, there is no need to convert xlxs files first for testing the mapping.

To answer your question @alFrie: I have not worked with ttl files. As far as I know, the rdflib package should be able to do that.

why are the used namespaces ns1 and ns2 different, that is weird. What is that link (http://w3id.com/concrete or http://w3id.org/concrete) referencing to? ns1 seems not to be used apart from the ontology definition
Like @alFrie said it's just a simple example and the link to http://w3id.com/concrete was something Juliette and me tried to do when creating taxonomie ontology. However the Link doesn't work and was only used because it was still set as a standard in Protege. I can change it to something like http://www.semanticweb.org/mkrueger/ontologies/2023/5/SimpleOntology which is the standard way in protege however I don't think it makes a difference in this simple example

Well, as you @alFrie/@mattheokru are looking for an answer asap, I will try to answer with my opinion, as Jörg is on vacation this week and will probably not answer before Monday.
From my understanding, I would say it does not matter as long as we can access the data. I thought it should not make a difference, as long as it is possible to link the data, so that we can querry e.g. hydration data for a specific mix for which we also have youngs modulus data.
In conclusion: I would say, you can decide which ever seems to be less work in the long run, as long as the functionality is the the same.

Please talk to Stephan or Thilo about that. In my opinion, we would like to map each step individually. If you only have E-modulus measured, there is no need to map the heat of hydration, and similarly, if you have a heat of hydration test, there is not necessarily a Emodulus test. In addition, those might be separated in time (e.g. first you map the mix composition) and then 28 days later (when the tests are performed) the compression/Youngs modulus data.


networkingMode: mirrored not working but virtioproxy does.

Windows Version
10.0.19045.3570
WSL Version
<IP_ADDRESS>
Are you using WSL 1 or WSL 2?

[X] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>-1
Distro Version
Ubuntu 22.04
Other Software
No response
Repro Steps
.wslconfig
networkingMode=virtioproxy
or
networkingMode=mirrored
Expected Behavior
For me, a mirrored network. It des not work.
EventViewer:
"No se admite el modo de red reflejada, revirtiendo a las redes NAT"
Actual Behavior
I think I found a not documented mode that works:
networkingMode=virtioproxy
It shows a new lookback0 interface with a 169 network and eth0 gets the same IP as the host network. Example (redacted)
sergio@desktop:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet <IP_ADDRESS>/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether [redacted] brd ff:ff:ff:ff:ff:ff
altname [redacted]
altname [redacted]
inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global eth0 [THIS IP ADDRES IS THE SAME AS IN WINDOWS]
valid_lft forever preferred_lft forever
inet6 [redacted]/64 scope link
valid_lft forever preferred_lft forever
3: loopback0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether [redacted] brd ff:ff:ff:ff:ff:ff
altname [redacted]
altname [redacted]
inet <IP_ADDRESS>/30 brd <IP_ADDRESS> scope global loopback0
valid_lft forever preferred_lft forever
inet6 f[redacted]/64 scope link
valid_lft forever preferred_lft forever
In windows:
Adaptador de Ethernet vEthernet (WSL):
Sufijo DNS específico para la conexión. .  :
Adaptador de LAN inalámbrica Wi-Fi:
Sufijo DNS específico para la conexión. .  Virtio is already used in WSL for GPU, but seems to be something is going to be used in networks?

Diagnostic Logs
No response

@ssantosv you need Windows 11 for mirrored mode to work!

Yeps, I guessed that it was for Windows 11 only (but it is mentioned in logs, as an option in Windows 10).
But what is interesting is "virtioproxy" seems to be undocumented yet and working in Windows 10. Any information about it?

@ssantosv, as @zcobol says, mirrored is not supported on Win11. I'm having a hard time following your writing. If the issue is that NAT mode is not working, feel free to reopen the bug.

Is there any documentation on VirtuoProxy?  I'm getting error message after ugprading to Windows 11 22H2:
wsl: Failed to configure network (networkingMode Nat), falling back to networkingMode VirtioProxy.

what is virtioproxy mode?


Support @OptionGroup on Recipe

Enables composing Recipe of one or more objects annotated with @OptionGroup to support
re-use of recipe options between multiple recipes.
Supports serialization/deserialization correctly through the use of Jackson's @JsonUnwrapped annotation.
Signed-off-by: Jonathan Leitschuh<EMAIL_ADDRESS>
What's changed?
Modifies Recipe's getOptionDescriptors to support a new @NestedOption annotation.
What's your motivation?
As I'm building out recipes within rewrite-java-security I'm finding a desire to share the same configuration
options between multiple recipes.
In general, for security fix recipe, you only want to apply those recipes when both test and production source is modified.
Before 8.0 that heavily refactored recipes and how many source files were loaded into memory, this was possible with the anySource applicability test.
Eg:
type: specs.openrewrite.org/v1beta/recipe
name: com.example.SecurityModifyRecipe
displayName: Apply `SecureTempFileCreation`
description: Applies the `SecureTempFileCreation` to non-test sources first, if changes are made, then apply to all sources.
applicability:
  anySource:
    - org.openrewrite.java.search.IsLikelyNotTest
    - org.openrewrite.java.security.SecureTempFileCreation
recipeList:
  - org.openrewrite.java.security.SecureTempFileCreation

See: https://github.com/openrewrite/rewrite/discussions/2849
However, in 8.0 this was broken. As such, the current advice is to put this filtering into each security recipe individually.
In order to achive this, and reduce code-duplication, being able to compose recipes with a common set of options, will enable that, while reducing code duplication.
Anything in particular you'd like reviewers to focus on?

As this feature will need to integrate with the Moderne SaaS as the interface for how these new composed options are tested, I'd want to sanity check that
SaaS invocation of Recipes uses jackson deserialization to instantiate them as I expect. If that is the case, then this feature should work seemlessly with the Moderne SaaS
without any needed changes there to support this functionality.
This feature should have no impact on any existing recipes or how those recipes are invoked by the SaaS.
I will test and verify this functionality works as-expected by modifying the recipes in rewrite-java-security to verify this works with the Moderne SaaS as expected.
Anyone you would like to review specifically?
@sambsnyd
Have you considered any alternatives or workarounds?

A single base-class with base options doesn't work as the fields on the base-class still need to be surfaced in the constructor of the subclasses for proper deserialization by Jackson. Additionally, Recipe#getOptionDescriptors currently uses Class#getDeclaredFields which, as documented, does not include inherited fields, so would not be seen when creating the OptionDescriptor
Lots of duplicate code, including duplicating option annotations between multiple recipes.
Using multiple hard-coded constants for each duplicated annotation.
This solution is more elegant IMHO.
Any additional context

Checklist

[x] I've added unit tests to cover both positive and negative cases
[x] I've read and applied the recipe conventions and best practices
[x] I've used the IntelliJ IDEA auto-formatter on affected files

@sambsnyd thoughts on merging this?

I think @OptionGroup would be a better name and the tight coupling with the @JsonUnwrapped annotation is not so nice. As an alternative we could check if the @JacksonAnnotationsInside meta annotation works for us. https://fasterxml.github.io/jackson-annotations/javadoc/2.9/com/fasterxml/jackson/annotation/JacksonAnnotationsInside.html
Further, I also wonder if we should possibly move the annotation to the option group type instead. Then it would be very similar to how this all works in Quarkus with @ConfigItem and @ConfigGroup, IIRC. Although, I have no idea if this aligns with how @JsonUnwrapped works or not.

I just checked: @JsonUnwrapped has to be declared on the property side. But maybe the meta annotation approach works?

Already using @JacksonAnnotationsInside
https://github.com/openrewrite/rewrite/pull/3764/files#diff-e4085063acbc846936645bf5269d26d05193cd41027e06014841b7afa02ee32bR38

Take a look at the current code and see if that aligns with your vision or not

Anything else needed to get this across the finish line?

@timtebeek anything we can do to get this across the finish line?

@timtebeek can we push this forward?

Appreciate the work done here @JLLeitschuh , but I've just discussed your open PRs with Sam and we've decided for now not to support option groups. There would have to be additional changes both on the OpenRewrite side as well as the Moderne side to for instance recipe loading from Yaml, that we feel would add too much complexity for a use case that we feel is relatively rare.
Thanks for both the initial work done here and the above discussion!


Full typescript refactor

[x] Add typescript config
[x] Refactor files from .js to .ts

@t8 could you take a look at this?

Don't think we talked about that, but I think the best would be to merge it now. What do you think?

I don't have a problem with that. Sounds good!


Add handlers for unix signals

I am attempting to containerize the Noso wallet for eventual deployment in a kubernetes cluster. In order to fully support that, the noso wallet must handle unix signals, such as SIGINT, SIGTERM, etc.
I attempted to add the functionality myself, but after speaking with @gcarreno I believe the current wallet implementation makes this task too difficult for me.

Some references for how other FPC programs do this:
http://tech406.com/kdocs/signals.xml
https://fossies.org/linux/fpcbuild/fpcsrc/packages/fcl-extra/src/unix/daemonapp.inc

Now console output is sent directly to a log file.


chore: Revert Request types to old in X Components.

EX-6299

There are some request types to be changed:

NextQueriesRequest in packages/x-components/src/x-modules/next-queries/store/actions/fetch-and-save-next-queries.action.ts
NextQueriesRequest in packages/x-components/src/x-modules/next-queries/events.types.ts
SearchRequest in packages/x-components/src/x-modules/search/store/actions/fetch-and-save-search-response.action.ts

There are some request types to be changed:

NextQueriesRequest in packages/x-components/src/x-modules/next-queries/store/actions/fetch-and-save-next-queries.action.ts
NextQueriesRequest in packages/x-components/src/x-modules/next-queries/events.types.ts
SearchRequest in packages/x-components/src/x-modules/search/store/actions/fetch-and-save-search-response.action.ts

fixed


Rollbar integration

We want to have Rollbar reporting info of client side errors, to have better understanding of the problems and ability to debug client side issues.
The idea is that once we identify an error on client, we'll be able to send proper info through Rollbar.

Serverless
See example here
Quick overview of the app:

We're using ExpressJS to create a simple router that accepts only POST requests
Doing a bunch of validations
Loading the correct API public/ private key based on the env.
Send the message to the other service. On the example it's Pusher, but in this case it will be rollbar, using their own SDK
Finally, result with 200 to the client side.

Elm
What I imagine is that upon Sync, if there's a decoder error we would send a message to the serverless. Client side could be smart enough not to send the exact same error twice.
Deciding which decoder error and what error to send, is likely the chalenging part. Let's start with one use case example. Maybe  the one where there are no matcing shard_changes to a measurement change?
It can be a valuable feature to help with proactive and quicker troubleshooting. @anvmn what do you think about this estimation?

Serverless code - 5h
Deploy serverless - 2h
Call serverless on SyncManager.Update - 4h
Hook into the Sync process - 8h
IndexDB to prevent sending the same message twice - 4h

cc @adamhstewart

@amitaibu
This looks fine to me. I'd add that the events we'd want to notify about are not limited to the Sync process.
For example, the probelm that we get when content is written into shards table, but not found at shardChanges table happens when we save content which translates to issuing POST request to JS layer that works with IndexedDB.
The prevent sending the same message twice part is tricky, as we'll have define the definition of 'same error', and it will have to be expended, as we add more events. Also, querying and writing into IndexedDB is complex, development wise.
So, I would include this as a follow up, after we have the core developed and functioning.
In any case, we're talking here about ~20h estimation.
If @adamhstewart approves and makes this a priority, I can start the work.

The prevent sending the same message twice part is tricky

I imagine a new indexDB table with md5_errors. So when you have the JSON you want to send, you then JSON.Stringfy and md5 it. If it exists in the DB, you don't send it.

But sure, can be a follow up.

@amitaibu
What's the benefit of wrapping Rollbar with a serverless function?
How I see that anyways we need a credential to store on the client side, to authenticate - either to serverless or Rollbar.
In both cases, someone can misuse it and flood our channel.
In both cases, Elm can filter out duplicated messages.
Or if we keep serverless wide-open, we will have nothing in our hands if someone starts to flood or misuse. With Rollbar, they provide out-of-the-box revoking tokens, block IPs, etc.

https://docs.rollbar.com/docs/preventing-client-side-access-token-abuse - if this is the main concern, with serverless, basically we put this responsibility in our shoulders, but it does not solve it.

@AronNovak Fair enough, we can skip the serverless part.
(On Circuit we had ot use serverless, as it had to do with sending messages via Pusher)

I'd go with a single Rollbar for TIP. It can be a paid account.

Deployed to live


Enable ES tests and reduce the resource size of circle ci build

Merging this pr it only changed test config.


fix time after memory leak

Please provide a description of this PR:
The underlying Timer is not recovered by the garbage collector until the timer fires. We should not wait long for select using time.After, This will create many timers in memory

/retest


UI: @Mention filter doesn't work in Entity page activity feeds tab

Affected module
Does it impact the UI, backend or Ingestion Framework?
UI
Describe the bug
@Mention filter doesn't work in Entity page activity feeds tab
To Reproduce
Change the filter to @Mention
Expected behavior
It filters only the mentioned conversations
Version:

OS: [e.g. iOS]
Python version:
OpenMetadata version: [e.g. 0.8]
OpenMetadata Ingestion package version: [e.g. openmetadata-ingestion[docker]==XYZ]

Additional context
The payload does not include user id to filter by @Mentions.

Hey @vivekratnavel , I think there is some backend issue as well for the mention filter with entity link.
Uploading Screen Recording 2022-09-02 at 12.49.28 AM.mov…

@Sachin-chaurasiya I have updated PR #7143 with backend fixes.


eos_cli_config_gen: Missing variables

Enhancement summary
We are implementing dot1x and some missing variables. We need to generate the following config
dot1x
captive-portal url http://portal-nacm08/captiveredirect/
supplicant logging
to work around it it we are using:
eos_cli: |
dot1x:
supplicant logging
captive-portal url http://portal-nacm08/captiveredirect/
Which component of AVD is impacted
eos_cli_config_gen
Use case example
to work around it it we are using:
eos_cli: |
dot1x:
supplicant logging
captive-portal url http://portal-nacm08/captiveredirect/
Describe the solution you would like
If model can be extended to support above that will be very useful
https://avd.arista.com/4.7/roles/eos_cli_config_gen/docs/input-variables.html?h=dot1x#__tabbed_22_2
Describe alternatives you have considered
eos_cli: |
dot1x:
supplicant logging
captive-portal url http://portal-nacm08/captiveredirect/
Additional context
dot1x global configuration
Contributing Guide

[X] I agree to follow this project's Code of Conduct

Hi, please use code blocks so your issue is easier to read. Tripple backtick like ``` or click the <> button.

Thank you for feedback, this is my first issue, i will remember it next time. I have amended it.


add InsiderSec open source SAST tool

Insider is the OSS CLI project from the Insider Application Security Security Team for the community. This project have a simplified version of the proprietary Static Application Security Testing engine developed internally by us 😄, to make source code analysis to find vulnerabilities right in the source code, focused on a agile and easy to implement software inside your DevOps pipeline.

Hi there!
Any news here? The Insider community are growing fast.
Tks.

Hey @danilodeveloper,
the project looks good now and can be merged. Was waiting for the number of Github stars and contributors to go up a bit to match our contribution guidelines.
If you have some time, could you migrate this PR to the new machine-readable format?
Basically you'd have to remove the change from the README.md and add the tool to data/data.yml. That's it! (Rendering of the list happens when we merge pull requests now.)
Cheers!

Done on #344. Tks @mre!


update the usage way of jdbc Parameter

It is recommended to use the correct github email and username
Otherwise, there is no way to associate the user's contribution


bug:报警链接打开报错

Describe the bug
A clear and concise description of what the bug is, ideally within 20 words.
ClickVisual Running Environment
Please provide the following information:

ClickVisual version:

clickvisual-1.0.0-rc11

ClickVisual.LOG:

配置的报警规则

收到报警后，点击报警链接，跳转到 http://ip:19001/share/?end=1700198883&index=2&kw=SELECT
  count(1) AS val%2C
  status
FROM
  naccess
WHERE
  stat_date %3D today()
  AND status %3D '200'

GROUP BY
  status
ORDER BY
  val DESC&logState=NaN&mode=0&page=1&queryType=rawLog&size=10&start=1700198758&tab=custom&tid=1
报错
{"data":{"code":1,"msg":"SELECT * FROM default.naccess WHERE time_local >= toDateTime64(1700198758, 3) AND time_local < toDateTime64(1700198883, 3) AND (SELECT\n  count(1) AS val,\n  status\nFROM\n  naccess\nWHERE\n  stat_date = today()\n  AND status = '200'\n \nGROUP BY\n  status\nORDER BY\n  val DESC) ORDER BY time_local DESC LIMIT 10 OFFSET 0: code: 43, message: Illegal type (Tuple(UInt64, String)) of 3 argument of function and: While processing (time_local >= toDateTime64(1700198758, 3)) AND (time_local < toDateTime64(1700198883, 3)) AND __getScalar('13359105264446300049_16948636661821004205')","data":"SELECT * FROM default.naccess WHERE time_local >= toDateTime64(1700198758, 3) AND time_local < toDateTime64(1700198883, 3) AND (SELECT\n  count(1) AS val,\n  status\nFROM\n  naccess\nWHERE\n  stat_date = today()\n  AND status = '200'\n \nGROUP BY\n  status\nORDER BY\n  val DESC) ORDER BY time_local DESC LIMIT 10 OFFSET 0: code: 43, message: Illegal type (Tuple(UInt64, String)) of 3 argument of function and: While processing (time_local >= toDateTime64(1700198758, 3)) AND (time_local < toDateTime64(1700198883, 3)) AND __getScalar('13359105264446300049_16948636661821004205')"}}

提供下告警目标数据库的结构，我这边本地构造下复现问题后解决。

提供下告警目标数据库的结构，我这边本地构造下复现问题后解决。

CREATE TABLE default.naccess
(
    `country` String,
    `upstream_uri` String,
    `upstream_addr` String,
    `uri` String,
    `request_method` String,
    `http_host` String,
    `http_user_agent` String,
    `stat_hour` String,
    `manufacturer` String,
    `remote_user` String,
    `upstream_status` String,
    `request_time` Float32,
    `province` String,
    `browser` String,
    `model` String,
    `browser_version` String,
    `brand` String,
    `remote_addr` String,
    `stat_date` Date,
    `stat_min` String,
    `time_local` DateTime64(3),
    `http_version` String,
    `city` String,
    `body_sent_bytes` String,
    `http_referrer` String,
    `server_name` String,
    `upstream_response_time` String,
    `status` String,
    `application_code` String,
    `create_time` DateTime64(3) DEFAULT now()
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(stat_date)
ORDER BY time_local
SETTINGS index_granularity = 8192

在本次提交 https://github.com/clickvisual/clickvisual/pull/1115 进行了修复，之后会进行版本发布


Improve docs for accessing shoot in provider-local setup

How to categorize this PR?

/area documentation
/kind enhancement
What this PR does / why we need it:
In the provider-local setup by default we create Shoot without Static Token. So there is no kubeconfig present in the project namespace in the garden cluster. To access shoot one need to follow this guide.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

NONE

/milestone v1.64


Explain billing expectations

"What is this going to cost me" is probably a question that should be addressed up front. Not everyone's going to have an account in the free tier, and people are scared of AWS billing surprises!

This would be a good section to be added in https://github.com/arun-gupta/kubernetes-aws-workshop/tree/master/cluster-install.
@QuinnyPig Do you want to take a shot at it?

Sure. I'll validate this before PRing, but back-of-the-envelope numbers for the resources on that page come out to around $1 an hour, plus 50¢ for the Route53 zone.
Or "hundreds of dollars on the next bill if you forget that this is there," so definitely worth calling that out up front. Will PR as I go through it back on a non-conference machine later in the week.

this is resolved


Warning when compile last Fluter Version

when compile:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
/Users/flavio/.pub-cache/hosted/pub.dev/flutter_overlay_window-0.4.5/android/src/main/java/flutter/overlay/window/flutter_overlay_window/FlutterOverlayWindowPlugin.java:54: warning: [unchecked] unchecked call to BasicMessageChannel(BinaryMessenger,String,MessageCodec) as a member of the raw type BasicMessageChannel
messenger = new BasicMessageChannel(flutterPluginBinding.getBinaryMessenger(), OverlayConstants.MESSENGER_TAG,
^
where T is a type-variable:
T extends Object declared in class BasicMessageChannel
/Users/flavio/.pub-cache/hosted/pub.dev/flutter_overlay_window-0.4.5/android/src/main/java/flutter/overlay/window/flutter_overlay_window/FlutterOverlayWindowPlugin.java:54: warning: [unchecked] unchecked conversion
messenger = new BasicMessageChannel(flutterPluginBinding.getBinaryMessenger(), OverlayConstants.MESSENGER_TAG,
^
required: BasicMessageChannel
found:    BasicMessageChannel
/Users/flavio/.pub-cache/hosted/pub.dev/flutter_overlay_window-0.4.5/android/src/main/java/flutter/overlay/window/flutter_overlay_window/FlutterOverlayWindowPlugin.java:56: warning: [unchecked] unchecked method invocation: method setMessageHandler in class BasicMessageChannel is applied to given types
messenger.setMessageHandler(this);
^
required: MessageHandler
found:    FlutterOverlayWindowPlugin
where T is a type-variable:
T extends Object declared in class BasicMessageChannel
/Users/flavio/.pub-cache/hosted/pub.dev/flutter_overlay_window-0.4.5/android/src/main/java/flutter/overlay/window/flutter_overlay_window/FlutterOverlayWindowPlugin.java:56: warning: [unchecked] unchecked conversion
messenger.setMessageHandler(this);
^
required: MessageHandler
found:    FlutterOverlayWindowPlugin
where T is a type-variable:
T extends Object declared in class BasicMessageChannel
/Users/flavio/.pub-cache/hosted/pub.dev/flutter_overlay_window-0.4.5/android/src/main/java/flutter/overlay/window/flutter_overlay_window/FlutterOverlayWindowPlugin.java:59: warning: [unchecked] unchecked method invocation: method setMessageHandler in class BasicMessageChannel is applied to given types
WindowSetup.messenger.setMessageHandler(this);
^
required: MessageHandler
found:    FlutterOverlayWindowPlugin
where T is a type-variable:
T extends Object declared in class BasicMessageChannel
/Users/flavio/.pub-cache/hosted/pub.dev/flutter_overlay_window-0.4.5/android/src/main/java/flutter/overlay/window/flutter_overlay_window/FlutterOverlayWindowPlugin.java:59: warning: [unchecked] unchecked conversion
WindowSetup.messenger.setMessageHandler(this);
^
required: MessageHandler
found:    FlutterOverlayWindowPlugin
where T is a type-variable:
T extends Object declared in class BasicMessageChannel
/Users/flavio/.pub-cache/hosted/pub.dev/flutter_overlay_window-0.4.5/android/src/main/java/flutter/overlay/window/flutter_overlay_window/FlutterOverlayWindowPlugin.java:171: warning: [unchecked] unchecked call to BasicMessageChannel(BinaryMessenger,String,MessageCodec) as a member of the raw type BasicMessageChannel
BasicMessageChannel overlayMessageChannel = new BasicMessageChannel(
^
where T is a type-variable:
T extends Object declared in class BasicMessageChannel
/Users/flavio/.pub-cache/hosted/pub.dev/flutter_overlay_window-0.4.5/android/src/main/java/flutter/overlay/window/flutter_overlay_window/FlutterOverlayWindowPlugin.java:175: warning: [unchecked] unchecked call to send(T,Reply) as a member of the raw type BasicMessageChannel
overlayMessageChannel.send(message, reply);
^
where T is a type-variable:
T extends Object declared in class BasicMessageChannel
/Users/flavio/.pub-cache/hosted/pub.dev/flutter_overlay_window-0.4.5/android/src/main/java/flutter/overlay/window/flutter_overlay_window/OverlayService.java:59: warning: [unchecked] unchecked call to BasicMessageChannel(BinaryMessenger,String,MessageCodec) as a member of the raw type BasicMessageChannel
private BasicMessageChannel overlayMessageChannel = new BasicMessageChannel(FlutterEngineCache.getInstance().get(OverlayConstants.CACHED_TAG).getDartExecutor(), OverlayConstants.MESSENGER_TAG, JSONMessageCodec.INSTANCE);
^
where T is a type-variable:
T extends Object declared in class BasicMessageChannel
/Users/flavio/.pub-cache/hosted/pub.dev/flutter_overlay_window-0.4.5/android/src/main/java/flutter/overlay/window/flutter_overlay_window/OverlayService.java:59: warning: [unchecked] unchecked conversion
private BasicMessageChannel overlayMessageChannel = new BasicMessageChannel(FlutterEngineCache.getInstance().get(OverlayConstants.CACHED_TAG).getDartExecutor(), OverlayConstants.MESSENGER_TAG, JSONMessageCodec.INSTANCE);
^
required: BasicMessageChannel
found:    BasicMessageChannel
Note: /Users/flavio/.pub-cache/hosted/pub.dev/flutter_overlay_window-0.4.5/android/src/main/java/flutter/overlay/window/flutter_overlay_window/OverlayService.java uses or overrides a deprecated
Note:
Note: Recompile with -Xlint:deprecation for details.

This is similar to that #116


Enhance version management

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

9 of 9 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
909

Relevant Lines:
909

💛  - Coveralls


Want to have a "when" like in kotlin a switch were all values are mandotary

Suggestion

🔍 Search Terms

When, switch mandatory
✅ Viability Checklist

My suggestion meets these guidelines:

[ ] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[ ] This wouldn't change the runtime behavior of existing JavaScript code
[ ] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion

It would be nice to have an transpile check that some cases are missing in switch case.
The keyword when is already used so we can use strict before switch case, that everyone know thats an special switch.
In runtime this keyword will be removed.
📃 Motivating Example
if we have an type | enum and want to switch over all known types:
type status = 'none' | 'loading' | 'done' | 'intermediate'
// missing Intermediate dont show any compile errors
switch (status){
 case 'none':
  ...
 case 'loading':
  ...
 case 'done':
  ....
 default:
  ....
}

type status = 'none' | 'loading' | 'done' | 'intermediate'
strict switch (status) {
 case 'none':
  ...
 case 'loading':
  ...
 case 'done':
  ....
}
// get compiler error because types are missing

💻 Use Cases

###What do you want to use this for?
Dont forget states in switch cases any more, will make the code more robust for changes and give us an hint that we are missing something.
What workarounds are you using in the meantime?
Write nicer code instead of using a Record as map

Duplicate of #33160.

When I want this behaviour I usually assign to never in default.
type Status = 'none' | 'loading' | 'done' | 'intermediate'
declare let s: Status;
let neverHere: never;
switch (s) {
    case 'none':
        break;
    case 'loading':
        break;
    case 'done':
        break;
    default:
        neverHere = s;
        break;
}

You can then hover over 's' to see the values you forgot to handle.
I'm pretty sure I picked it up from this tracker somewhere but I don't remember to whom I should give credit.

There are several ways to do this already (using never in the default branch). I don't think this merits a new top-level syntax production.


Don't write things that look like neo4j config environment variables …

but start with a number to the neo4j.conf
It causes neo4j to fail with very confusing errors.
N.b. this would be a problem if in future we had conf settings that start with numbers but that seems unlikely since A) it would cause the neo4j shell script to barf and B) it doesn't fit our naming convention.
full list of config settings is here for reference
https://neo4j.com/docs/operations-manual/current/reference/configuration-settings/

@eastlondoner I thought that we had a discussion somewhere about outputting a warning in case there is an env var being ignored by this -- otherwise someone is going to have a difficult time diagnosing a problem at some point.


Fix absolute function address calculation in the case when executable segment offset is not page-aligned

Test: OrbitBaseTests, run and capture on app from the bug, also look at disassembly of couple of function and check that they are correct.
Bug: http://b/194278190

LinuxTracingIntegrationTest

right. I am going to extract this to a function then. too many places involved.

There are similar address calculations in these locations:
line 706, 713 in
src/LinuxTracingIntegrationTests/LinuxTracingIntegrationTest.cpp
line 45
src/UserSpaceInstrumentation/FindFunctionAddress.cpp
Do they need to be adjusted as well?

done.

Actually hooking still does not work. looking.


Unstable test: raftstore::test_prevote::test_server_isolated_follower_leader_does_not_change

https://internal.pingcap.net/idc-jenkins/blue/rest/organizations/jenkins/pipelines/tikv_ghpr_test/runs/7296/nodes/140/steps/1137/log/?start=0

Long time no update. I will close it


Implement Activity->Fragment dagger component nesting

Task/Issue URL: https://app.asana.com/0/414730916066338/1201432423603230/f
Description
In PR #1597 we're harmonising the way we name dagger components and how we contribute dependencies to them. As a recap:

Use @SingletonIn(AppScope::class) for app scope
Use @SingletonIn(ActivityScope::class) for activity scope
Use @SingletonIn(FragmentScope::class) for fragment scope

This a follow up PR to enable nesting those scopes:

AppScope -> ActivityScope -> FragmentScope

Nesting means:

child scopes can get access to dependencies in their parent scopes (but not the other way around), ie.
FragmentScope would get access to deps in Fragment, Activity and App scopes
ActivityScope would get access to deps in Activity and App scopes
AppScope would get access to deps in App scope

The PR changes the fragments that were not in the FragmentScope to use that one instead. Functionality should not be affected at all
Steps to test this PR
Smoke tests for app and AppTP

Current dependencies on/for this PR:

develop

PR #1597

PR #1602  (this PR)

This comment was auto-generated by Graphite and will continue to be automatically updated while this PR remains open.


Make the flags checking in ReceiveMailSession more correct

Motivation:
Since the ReceiverBuilder has two field:
private Flags flagsToSet = new Flags();
private Flags flagsToUnset = new Flags();

So when use the ReceiverBuilder#get to receive mail, the flagsToSet and flagsToUnset of ReceiveMailSession#receiveMessages()'s parameter are always non-null:
public ReceivedEmail[] get() {
		...
		return session.receiveMessages(filter, flagsToSet, flagsToUnset, envelopeOnly, messages -> {
			(...)
		});
	}

	ReceivedEmail[] receiveMessages(
			final EmailFilter filter,
			final Flags flagsToSet,
			final Flags flagsToUnset,
			final boolean envelope,
			final Consumer<Message[]> processedMessageConsumer) {

and there are some null checks below ：
if (flagsToSet != null) {
	emails[i].flags(flagsToSet);
	msg.setFlags(flagsToSet, true);
}

if (flagsToUnset != null) {
	emails[i].flags().remove(flagsToUnset);
	msg.setFlags(flagsToUnset, false);
}

if (flagsToSet == null && !emails[i].isSeen()) {
	msg.setFlag(Flags.Flag.SEEN, false);
}

when use ReceiverBuilder , these null checks seem to be useless, so I think it might need a more correct check for empty flags
Modification:
Add a check method in EmailUtil to verify that  systemFlags and userFlags is Empty or not

Thank you, totally make sense.


Unfortunately app is stopped

Hi. Good morning.
I need to use cordova-plugin-app-update in my app. It's appears an error “unfortunately app is stopped” after only install this plugin.
This error appears in smartphone after install the apk file.
In forums, I did not get a solution.
Version IONIC: 3
Version your plugin: latest
Version Angular: 5
Thanks.
Thiago
(from Brazil)

same

same, but actually its easier to solve this problem, just unzip files from apk where u can get all necessary files

you can get a working version here https://github.com/MEGAMINDMK/Cordova-Mobile-Update


Draft: Add animation directives

As discussed in https://github.com/Polymer/lit-html/issues/1017, these are three directives I've been working on.
I've focused on doing the animations in CSS, with the directives just there to manage/communicate the state. This can be expanded on further using web animations from javascript. I'm not sure how well supported web animations are, I don't hear much about it.
trackAnimation / trackTransition
The trackAnimation and trackTransition directives are pretty straightforward. You apply them on a boolean attribute and provide a list of animations/transitions to track. The attribute it set/removed based on whether there is an active animation or transition:
html`

`;

This state can then be used in CSS/JS.
animate
Animating to/from display: none, or elements that are added/removed to/from the DOM is quite complex and impossible to do from CSS alone. The animate directive is intended to make this easier.
The animate directive should be used in a NodePart and renders whatever value is passed to it. When the value is a TemplateResult, it will apply a class to the first rendered child element and waits for an animation on that element to be finished.
It maintains two child parts, alternating between them as values passed to the part changes. This way it can animate the content of the previous part out while the content of the new part is being animated in.
For example to animate a float actioning button as it enters/exits:
@keyframes fab-entry {
  from { transform: scale(0) }
}

@keyframes fab-exit {
  to { transform: scale(0) }
}

.fab.fab-entry {
  animation: fab-entry 300ms;
}

.fab.fab-exit {
  animation: fab-exit 300ms;
}

html`${animate(showFab ? html`

` : nothing, { entry: 'fab-entry', exit: 'fab-exit' })}`

When the element is added, it adds a fab-entry class until all animations on the element finish. When the element needs to be removed, it adds a fab-exit class and removes the element after the animation finishes.
The directive can work with any amount of templates, for example you can use it in an application router to animate page transitions:
html`${animate(this._renderPage(), { entry: 'page-entry', exit: 'page-exit' })}`

I didn't write any tests yet, as I'd like to iron out the API first. I did add a demo to demonstrate how it works.

After testing, I ran into some subtle race condition and some issues on browsers on the shady dom polyfill. I relied on passing along an animation name to the directive, but in shady dom animation names are rewritten in order to be able to globally scope them.
I've reworked the approach now to no longer rely on a hardcoded animation name, instead dynamically tracking any events which are started. It's a bit more code, but I'm actually quite happy with it. It makes the API a lot cleaner and easier to manage for a developer.
I've updated the code samples too.

This looks exciting. I'm thinking if it is possible to add some kind of hooks to the end of an animation or transition? So that it allows devs can schedule moar tasks when an animation or a transition finishes which I think that this is a pretty useful feature.

@motss how would you envision the API for that to look?

html${animate(this._renderPage(), { entry: 'page-entry', exit: 'page-exit' })}`

How about using enter/leave instead of entry/exit?

html${animate(this._renderPage(), { entry: 'page-entry', exit: 'page-exit' })}`

How about using enter/leave instead of entry/exit?

I went with the terminology of https://github.com/PolymerElements/neon-animation, completely open to changing the name though.

Having been working in React for a while now, I have seen enter/leave, start/end, transition/transitionEnd. Just wanted to add options I have seen from outside the webcomponent realm.

@stramel thanks for the links. Those libraries do a lot of CSS-in-JS which isn't a goal for this PR, and probably shouldn't land in the main lit-html library.
This is just helpers to manage animation states, where the animations themselves are defined in CSS.

For the record vue and angularjs uses enter/leave
https://vuejs.org/v2/guide/transitions.html
https://docs.angularjs.org/api/ngAnimate
BTW: the vue page has some simple and nice demos. Would be nice this abstraction could support those use cases (they are based on CSS)

Thanks, I will take a look at those

For the record vue and angularjs uses enter/leave

Also matches with native events such as mouseenter and mouseleave.

@LarsDenBakker Thanks for taking a look at my comment.

Those libraries do a lot of CSS-in-JS which isn't a goal for this PR, and probably shouldn't land in the main lit-html library.
This is just helpers to manage animation states, where the animations themselves are defined in CSS.

I understand a lot of it is CSS-in-JS and not really what we're going for. I find it useful when defining an API to look for inspiration in other libraries/frameworks. Just wanted to chime in with stuff I had seen in React world. 😄

I've been doing some animations with lit-html and CSS transitions recently, so I think have a little better perspective to check this out with now. I still haven't used CSS animations much though. @LarsDenBakker would you be able to just on a chat to walk me through a few things?

Hi i am author of a lit-html-framework i don't want to call the name out here
Solution
Don't use directives for that!!! use customElement api for that  put all logic inside that element.

The Template will work in SSR Scenarios and webworkers

We're adding a flip() directive to @lit/labs soon!


[Question] Set theme using command API ?

Hello,
How can I set AriaNg's theme using the command API ?
Thanks

AriaNg does not provide command API for theme

Could that be added ?
Or, alternatively, use system theme as default instead of light ?
Thanks

This is not a frequently used feature and there is no need to make command api support it.
I want to keep the consistency of the GUI of AriaNg all the times. I don't think it is a good idea that set an option that might break consistency to default value. Although I add dark theme to AriaNg, I always think the dark theme should be set by user own operation.

So, in one hand, there's webui-aria2 which allows setting default configurations for everything but has no dark theme, in the other hand, there's AriaNg which features a dark theme but only allow setting a few default configurations.
Anyone willing to provide both ?

@KaKi87 you can set defaults....by editing aria-ng js file

Which file exactly are you talking about ?
I can't find aria-ng.js.
Thanks

@hapylestat Hello ?


TST: reorganize tools.tests

[x] tests passed
[x] passes git diff upstream/master | flake8 --diff

merge, join and concat related tests are mixed each other. Cleaned up these tests.

Looks good!

[Current coverage][cc-pull] is 84.33%

Merging [#13619][cc-pull] into [master][cc-base-branch] will not change coverage

@@             master     #13619   diff @@
==========================================
  Files           138        138
  Lines         51100      51100
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits          43097      43097
  Misses         8003       8003
  Partials          0          0

Powered by Codecov. Last updated by [2f7fdd0...9431ce1][cc-compare]
[cc-base-branch]: https://codecov.io/gh/pydata/pandas/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/pydata/pandas/compare/2f7fdd07eb0925016a28cf9ff324e351eac0c4df...9431ce166c5848ec1f145af019ee415d83dc334f?src=pr
[cc-pull]: https://codecov.io/gh/pydata/pandas/pull/13619?src=pr

lgtm, prob will require rebase after #13147

Thanks @sinhrks !


Reorganizing Imports Plugin doesn't work anymore.

Unused modules + alphabetical sorting doesn't work anymore:

It works in my IDE when I save the file.
Can you elaborate where it doesn't work?
I added prettier to the lint script: https://github.com/liteflow-labs/starter-kit/pull/103


Updating ASGfor VMSS through CLI shows the below error. Doesnt allow to add ASG for VMSS.

All IPConfigurations on a Network Interface should reference the same set of Application Security Groups. IPConfiguration ipconfig2 references ASG(s) , wheras IPConfiguration /subscriptions/<subsription id>/resourceGroups/MC_AKS_AKS_CENTRALINDIA/providers/Microsoft.Compute/virtualMachineScaleSets/aks-agentpool-11552782-vmss/updateGroups/3b0dd537-b47b-485a-967b-6a214f8975be/networkInterfaceConfigurations/aks-agentpool-11552782-vmss/ipConfigurations/ipconfig1 references ASG(s) /subscriptions/<subsription id>/resourceGroups/aks-centralindia/providers/Microsoft.Network/applicationSecurityGroups/vmss-asg.
AZ CLI Command used is below.
az vmss update -n aks-agentpool-11552782-vmss -g MC_aks_aks_centralindia --set virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].ipConfigurations[0].applicationSecurityGroups='[{"id":"/subscriptions//resourceGroups/aks-centralindia/providers/Microsoft.Network/applicationSecurityGroups/vmss-asg"}]'
Is there any workaround this to add it to all ipConfigurations or any other way to do this ?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 58c3ba2e-4447-da7a-02d2-a5637cd1d1c8
Version Independent ID: 9e27ac75-fbd1-79b2-e816-a65e27e5b6ed
Content: Networking for Azure virtual machine scale sets
Content Source: articles/virtual-machine-scale-sets/virtual-machine-scale-sets-networking.md
Service: virtual-machine-scale-sets
GitHub Login: @mayanknayar
Microsoft Alias: manayar

@ameetkonnur Thanks for the feedback! We are currently investigating and will update you shortly.

@ameetkonnur not sure I fully understand what you are trying to achieve. In addition looks like you are attempting to modify the AKS cluster networking which I assume you are using AKS with VMSS. What exactly is the end goal here?

Hi Micah
I have a vmss backed AKS cluster. I want to attach a ASG to this VMSS to control a set of ports to be opened.
So was trying to attach a ASG using CLI to the ipConfigurations property of VMSS where I am getting this error.
So not sure if this is supported.
Please advise.
Regards
—
Ameet
@ameetk |<PHONE_NUMBER>

From: Micah<EMAIL_ADDRESS>Sent: Friday, October 25, 2019 10:31:56 PM
To: MicrosoftDocs/azure-docs<EMAIL_ADDRESS>Cc: Ameet Konnur<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/azure-docs] Updating ASGfor VMSS through CLI shows the below error. Doesnt allow to add ASG for VMSS. (#41470)
@ameetkonnurhttps://github.com/ameetkonnur not sure I fully understand what you are trying to achieve. In addition looks like you are attempting to modify the AKS cluster networking which I assume you are using AKS with VMSS. What exactly is the end goal here?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/issues/41470?email_source=notifications&email_token=AE4P6W63VANCFESE4PDUW6DQQMRAJA5CNFSM4JE7AML2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECI6NYQ#issuecomment-546432738, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AE4P6WYSLKP36DHZIOW6ZNDQQMRAJANCNFSM4JE7AMLQ.

@ameetkonnur thanks for clarifying. I am honestly not sure if Application Security Groups are supported on AKS clusters running on VMSS.
@MicrosoftDocs/aks-pm can anyone confirm or deny?

@ameetkonnur I am still working to confirm on this. Many of our product team members are currently attending Microsoft Ignite so responses have been delayed. Just an FYI that I am still working on this and will find the answer.

Thanks for the update Micah.
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10

From: Micah<EMAIL_ADDRESS>Sent: Friday, November 8, 2019 2:45:12 AM
To: MicrosoftDocs/azure-docs<EMAIL_ADDRESS>Cc: Ameet Konnur<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/azure-docs] Updating ASGfor VMSS through CLI shows the below error. Doesnt allow to add ASG for VMSS. (#41470)
@ameetkonnurhttps://github.com/ameetkonnur I am still working to confirm on this. Many of our product team members are currently attending Microsoft Ignite so responses have been delayed. Just an FYI that I am still working on this and will find the answer.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/issues/41470?email_source=notifications&email_token=AE4P6W3NNYAWGF6YPSWIWGTQSSAOBA5CNFSM4JE7AML2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEDN2XNY#issuecomment-551267255, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AE4P6WZAYBT6XEMHUG64E3DQSSAOBANCNFSM4JE7AMLQ.

@ameetkonnur it is looking like this is not supported. However I have worked offline with some of the AKS Product Team members and they have requested you open an issue here: https://github.com/Azure/AKS/issues
That way they can have engineering look further into it and better track the progress. You can also CC me on that issue so I can help as well.


Use ENV parameters in CORS middleware

I have been trying to access c.env to inject my environment variables into the CORS configuration. However, it does not work as expected.
import { Hono } from 'hono';
import { cors } from 'hono/cors';

const app = new Hono();

app.use('*', async (c, next) => {
    cors({
        origin: c.env.APP_URL,
        allowedHeaders: ['Origin', 'Content-Type', 'Authorization'],
        allowMethods: ['GET', 'OPTIONS', 'POST', 'PUT', 'DELETE'],
        credentials: true
    });
    await next();
});

This code above returns the following error when trying to access the local worker (http://localhost:8000) from the browser (http://localhost:3000):

Access to XMLHttpRequest at 'http://localhost:8000/test' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

When I hardcode this value, it works fine:
app.use('*', cors({
    origin: 'http://localhost:3000',
    allowedHeaders: ['Origin', 'Content-Type', 'Authorization'],
    allowMethods: ['GET', 'OPTIONS', 'POST', 'PUT', 'DELETE'],
    credentials: true
}));

Is there any way to use my environment variables from c.env in the CORS configuration middleware?

Hi @justinwride !
How about writing like the following?
app.use('*', async (c, next) => {
  const corsMiddleware = cors({
    origin: c.env.APP_URL,
    allowedHeaders: ['Origin', 'Content-Type', 'Authorization'],
    allowMethods: ['GET', 'OPTIONS', 'POST', 'PUT', 'DELETE'],
    credentials: true,
  })
  await corsMiddleware(c, next)
})

Hi @justinwride !
How about writing like the following?
app.use('*', async (c, next) => {
  const corsMiddleware = cors({
    origin: c.env.APP_URL,
    allowedHeaders: ['Origin', 'Content-Type', 'Authorization'],
    allowMethods: ['GET', 'OPTIONS', 'POST', 'PUT', 'DELETE'],
    credentials: true,
  })
  await corsMiddleware(c, next)
})

@yusukebe thanks, this is perfect! I couldn't find this pattern in the documentation for middleware, but it would be very helpful to add here: https://honojs.dev/docs/api/middleware

I was getting a 404 error from the code above when the browser made an OPTIONS request.
Also this error:

Error: Context is not finalized. You may forget returning Response object or await next()

Adding a return at the end fixed that issue:
app.use('*', async (c, next) => {
  const corsMiddleware = cors({
    origin: c.env.APP_URL,
    allowedHeaders: ['Origin', 'Content-Type', 'Authorization'],
    allowMethods: ['GET', 'OPTIONS', 'POST', 'PUT', 'DELETE'],
    credentials: true,
  })
  return await corsMiddleware(c, next)
})

Actually there are some simple issues I have faced "giving the locolhost with slash on the end (avoid that)"
which is not a big issue but it took me a half busy day :)
and also try to specify return await as previous contriubutors says 👍
app.use('*', async (c, next) => {
  const corsMiddleware = cors({
    origin: "http://localhost:5173",
    allowMethods: ['GET', 'OPTIONS', 'POST', 'PUT', 'DELETE'],
    credentials: true,
  })
  return await corsMiddleware(c, next)
})

Something else worth mentioning is you don't need to await the middleware. The function being async means it will already return a promise, so awaiting the middleware and then immediately returning just doubles up the promise unnecessarily.
Instead you can do the following
app.use('*', async (c, next) => {
  const corsMiddleware = cors({
    origin: "http://localhost:5173",
    allowMethods: ['GET', 'OPTIONS', 'POST', 'PUT', 'DELETE'],
    credentials: true,
  })
  return corsMiddleware(c, next) // <-- no need to await
})

Please tell me how to solve this problem. I encountered the same problem.
this is client:
  const sendHeartbeat = useCallback(async () => {
    try {
      await ofetch(`${BASE_URL}/api/v1/heart/${userId}`, {
        method: "POST",
        headers: {
            Authorization: `Bearer ${authToken}`, // 添加授权头
        },
        body: { message: "ping" },
      });
    } catch (error) {
      console.error("Failed to send heartbeat:", error);
    }
  }, [userId]);

backend:
import { cors } from "hono/cors";

const app = new Hono().basePath("/api");

// 添加 CORS 中間件
app.use(
  "/api/*",
  cors({
    origin: ["http://localhost:6035", "http://localhost"],
    allowHeaders: ["Origin", "Content-Type", "Authorization", "X-Custom-Header", "Upgrade-Insecure-Requests"], // 允許的 headers
    allowMethods: ["OPTIONS", "GET", "POST", "PATCH", "PUT", "DELETE"], // 允許的 HTTP 方法
    exposeHeaders: ["Content-Length"], // 暴露的 headers
    maxAge: 600, // 預檢請求的結果可以被快取多久（秒）
    credentials: true // 是否允許發送 cookies
  })
);

result:

And the front end still displays CORS errors：

🙏Could you please give me an answer to solve the problem


thcrap_tsa: Support translation of the th08 spell card owner

th08 spell owner
Description
Just so I don't forget, since #15 is done now. :)
Prerequisites
None.
Implementation

Implemented by @DankRank in https://github.com/thpatch/thcrap/commit/3d5c311713df435eab9240aa11cc1f256282ba6b.


Ebook formats

Thanks for a great guide! I’ve just started reading it this morning and already love it ;-)
But it’s a bit long so having it an ebook format (epub, mobi) would be very helpful. What do you think about that?
The simplest solution would be pandoc. There are some issues with HTML and formatting but in general it looks acceptable.
npm i -g replace
brew install pandoc

replace '\t?<img src="(.*?)"[^>]*>' '![]($1)' *.md
replace '</?(p|aside|div|label).*?>' ''
replace '  <input type="checkbox" id="cbox\d+" class="d-block float-left mt-1 mr-2" value="checkbox">\n  \n  ' '* '
replace ']\(/assets/' '](../assets/'

pandoc -S -o opensource.epub how-to-contribute.md starting-a-project.md finding-users.md building-community.md best-practices.md leadership-and-governance.md getting-paid.md code-of-conduct.md metrics.md legal.md

This requires some tweaking but it’s already something ;-) Let me know if should send a pull request.

But it’s a bit long so having it an ebook format (epub, mobi) would be very helpful. What do you think about that?

Hey @sapegin, great suggestion!  I think it'd be great to have ebook versions.  It's not a high priority right now, but if you wanted to get a PR started, we could work on it!

Awesome! I‘ll try to implement a basic script to generate epub and mobi and we‘ll see how we could integrate it.

Closing this via #305. Additional ebook needs are being discussed in #316.


Scion 2e v1.02; display and roll error fixes

Submission Checklist
Required

[X] The pull request title clearly contains the name of the sheet I am editing.
[X] The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).
[X] The pull request makes changes to files in only one sub-folder.
[X] The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)

New Sheet Details

The name of this game is: <   >  (i.e. Dungeons & Dragons 5th Edition, The Dresden Files RPG)

The publisher of this game is: <   > (i.e. Wizards of the Coast, Evil Hat)

The name of this game system/family is: <   > (i.e. Dungeons & Dragons, FATE)

[ ] I have followed the Character Sheets Standards when building this sheet.

[ ] This sheet has been made on behalf of, or by, the game's publisher.
[ ] This game is not a traditionally published game, but a copy of the game rules can be purchased/downloaded/found at: <   >
[ ] This sheet is for an unofficial fan game, modification to an existing game, or a homebrew system.

Changes / Description

v1.02
New Features

Rolls were missing the ability to add additional dice to them
Added a missing innate power field to birthrights

Bug Fixes

Rolls were not processing correctly and frequently crashed.
Fixed a display error that occured when marking deeds as completed
Fixed incorrect Approach names
Clash rolls were not working

Character Sheet Info Roll20 Internal Use only.


DEL-4734 - Add MAPI code samples for webhooks

Add new webhooks MAPI net code samples
https://kontent-ai.atlassian.net/jira/software/c/projects/DEL/boards/501?selectedIssue=DEL-4734

Hi @lenkaklimcikova, thanks for the PR! I appreciate you fixed the typo in get_webhook where we incorrectly had GetContentTypeAsync. I'll merge this and update the naming of a few files so that we use "legacy" webhooks consistently in the code samples.


feat: CLI autocomplete

Migrated from GitLab: https://gitlab.com/meltano/sdk/-/issues/95
Originally created by @edgarrmondragon on 2021-04-12 06:34:44

As I was trying to add shell autocompletion for a tap built with the SDK, I was able to do so following the click documentation. However, it felt like an unnecessarily complicated process and something the SDK should offer to plugin developers for free. Then I came across Typer, a library for building CLIs, built on top of click and extending it with a friendlier API and other perks. I was able to subclass singer_sdk.tap_base.Tap to use the library without any changes to the already working tap code (except for the super class).
I found some immediate benefits by using Typer.
End user

Easy to install completion for common shells (Bash, Zsh, Fish, Powershell)
More descriptive --help command with typed options, including enums. For example --format [plain|json]  [default: plain]

Plugin developer:

Automatic markdown documentation for your plugin

SDK developer:

Use type annotations to declare option types
Less code repetition (e.g. CLI Option decorator for --catalog and a function argument catalog)

At the moment, the particular tap is not public but I plan to do the same to tap-confluence, and I can also start a MR if this is something you think the SDK should have.

View 5 previous comments from the original issue on GitLab

Any update on this feature everyone?

@edgarrmondragon I think we've actually done most of these in the SDK at this point, right? Easy to install completion for common shells is likely the only one missing I think (unless I'm misunderstanding that one).

@edgarrmondragon I think we've actually done most of these in the SDK at this point, right? Easy to install completion for common shells is likely the only one missing I think (unless I'm misunderstanding that one).

@tayloramurphy Yeah, that's only missing bit. I've updated the title.

@tikikun we've update the title of this issue to focus just on autocomplete as everything else mentioned has been shipped in previous releases 🎉

Still relevant


Datastore RPC Service

#150

Defines a new service, DatastoreService and provides an implementation for accessing the Dynamo datastore.
Refactors references out of the Transactor.proto, as the Datastore service uses MultihashReferences as well.

👍 this is looking good.   Let's wait til the python side catches up to merge, since this moves the rpc MultihashReference.  Can we add the max data size to the config properties?  I have a feeling that any limit we set is eventually going to need to be tweaked.

looks good overall


create-plugin --backend

Feature Suggestion
We should have a backend plugin version of backstage-cli create-plugin.
Possible Implementation
We'd need a template for backend plugins in packages/cli/templates, an a way to specify that you want to create a backend plugin. It could for example be done via a --backend or --template=backend flag. Could also be a separate command or an interactive choice during the cli wizard.
Context
We want backend plugin creation to be as smooth as frontend plugin creation :grin:

Right now this isn't super easy to pick up or even something we want to do at this point, since we're about to change the backend dev setup a bit. Once that's done it'll be easier to pick this up if anyone wants to though.


Expose the Jersey injection manager

Expose the Jersey injection manager to be able to use it outside of Jersey resources
Description of changes:
This PR just add a method on the JerseyLambdaContainerHandler that exposes the Jersey injections manager. It's very useful as it allows to use it to build the whole dependency tree.
// List of application bindings to configure injections, this
// allows to have different injection in tests
protected abstract List<Binder> binders();

public AbstractServiceHandler() {
  ResourceConfig jerseyApplication = new ResourceConfig()
                                             .packages("com.acme.jaxrs.resources");

  binders().forEach(jerseyApplication::register);

  handler = JerseyLambdaContainerHandler.getAwsProxyHandler(jerseyApplication);
  im = handler.getInjectionManager();
  ServiceFactory.setInstance(im.getInstance(Service.class));
}

If the lambda code also handles other type of event, the same injector can then be reused:
public String handleS3Request(S3Event s3Event) {
  Service service = im.getInstance(Service.class);
  return service.handleEvent(adapt(s3Event));
}

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Merged manually in the core branch where I'm working on the new changes. Closing this PR.


remove old win32 versions from conda forge

https://github.com/conda-forge/feedstocks/issues/22

https://github.com/conda-forge/beakerx-feedstock/issues/9

https://github.com/Anaconda-Platform/support/issues/139


Spotify Now Playing isn't Showing Up

Required information
In order to help us sort your issue, we ask that you provide the following information:

Mac model: MacBook Pro (13-inch, M1, 2020)
macOS version: macOS Monterey 12.2.1
Monitor setup: Single Monitor

Description of issue / Feature request
Hello! I want to address this issue that's been skeptical to me. To keep things short, I use Spotify for music, and I've set the music provider with Spotify instead of Apple Music. The problem is that the Now Playing doesn't show up on the screensaver itself.

Hi @scepterdoescode
So just to confirm, two things :

Are you using the macOS app for Spotify playback ? That's required for me to grab the tracks
When Aerial starts it can't detect the currently playing track (because of security restrictions). It should however display any subsequent track from your playlist

Can you confirm that with those two it doesn't work ? I don't use Spotify personnally but unless they changed their client it worked on previous versions.

Hi there! I use the Spotify macOS app, and apparently it works on subsequent tracks. Don’t know why it happens, but I just discover it last night.

Ok then, that's "normal". I hope to have a workaround for the current track at some point, macOS makes it hard. It will require Companion to be installed though.


How to slow down node group migration when applying a change

Description
We have a few clusters deployed with the module, both QA and PROD.
From time to time, we make some changes on the instance type used by the cluster which, obviously, triggers a node group re-creation and a full migration of all the deployment on newly created node group and the old one is destroyed.
While this isn't an issue in QA since pod dies constantly and we're using spot instances so devs are used to it, for production, it is way to violent as all the pod get evicted at once and while it being transferred to the new node group, there isn't enough spawned deployment to handle to load and boom, website goes down for a split second as everything stabilize. We have different nodegroup defined and they all get handled at the same time too. We could split the changes per node group but it still create a massive migration within these groups.
We are looking for a way to have this move happen slowly so that enough pods are available before all the eviction happens.
It seems that terraform just blindly delete/recreate while kube just try its best to stay alive as quickly as possible.
Sorry if this isn't the correct way to get input, I don't think that's a bug since it's probably the expected behavior from terraform so I'm looking for pointers or if there's already a built-in mecanism feel free to refer me and close this :) (yes, I did search a bunch but couldn't find much except options to affect the ASG itself but terraform seems to be a little more direct.
Versions

Terraform: 1.1.4

Provider(s):

Module:

Reproduction

Steps to reproduce the behavior:

Deploy a cluster
Have some workload on it
Change instance type

Code Snippet to Reproduce

Expected behavior

We would like a slow migration from old nodegroup to new nodegroup
Actual behavior

Everything is evicted too quickly which create a downtime
Terminal Output Screenshot(s)

Additional context
Probably not a bug

I think your safest route would be to add a new node group(s) when you want to make an instance type change, taint the nodes in the old node group - once the old nodes no longer have pods running on them then you can remove that node group
I suspect theres an OSS operator of sorts out there that does this - I don't know of a way of natively doing it in the module here. The closest example I could point you to would be https://github.com/terraform-aws-modules/terraform-aws-eks/tree/master/examples/irsa_autoscale_refresh

@hetile-ssense if you use Managed-Node-Groups, EKS will take partial responsibility of gracefully cordoning and draining workloads to the new nodes.
however as you described, this can lead to short downtimes if all replicas of a deployment are evicted in parallel. you can mitigate this with adding Pod Disruption Budgets to your deployments, ensuring that some are always up

evitction of pods is controlled by deployments definition, so you must setup this on Kubernetes objects level.

closing for now since its outside the purview of this module

https://github.com/terraform-aws-modules/terraform-aws-eks/tree/master/examples/irsa_autoscale_refresh

The link is dead. Facing a similar issue where the old node group gets terminated sooner than I expect it to.
Is the deletion time of old node group configurable?
I understand that it's not recommended but still, if one wants, can they configure the old nodegroup to stay alive for 'x' minutes and then terminate?


Feature Request: Provide a way of getting/setting the browser zoom level

I believe the CEF project exposes APIs to get and set the browser's zoom level and I see a couple of references to zoom levels in the Chromely codebase, but no usable API to set it. It'd be really useful for the project I'm working on to be able call an API to change the zoom level and read the current zoom level.

@wwarby sure that can be done. Holiday season... will see this weekend.

Sweet - no rush obviously 👍

@wwarby you can also actually do this without the fix.
SetZoomtDemo.zip

    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            AppBuilder
            .Create()
            .UseWindow<DemoWindow>()
            .UseApp<DemoApp>()
            .Build()
            .Run(args);
        }
    }

    public class DemoApp : ChromelyBasicApp
    {
    }

    public class DemoWindow : Window
    {
        public DemoWindow(IChromelyNativeHost nativeHost,
                      IChromelyConfiguration config,
                      ChromelyHandlersResolver handlersResolver)
            : base(nativeHost, config, handlersResolver)
        {
            FrameLoadStart += DemoWindow_FrameLoadStart;
        }

        public CefBrowserHost BrowserHost
        {
            get
            {
                return Browser?.GetHost();
            }
        }

        public double GetZoomLevel()
        {
           return BrowserHost == null ? 0 : BrowserHost.GetZoomLevel();
        }

        public void SetZoomLevel(double value)
        {
            BrowserHost?.SetZoomLevel(value);
        }

        private void DemoWindow_FrameLoadStart(object sender, FrameLoadStartEventArgs e)
        {
            SetZoomLevel(26.0);
        }
    }

Before zoom:

After zoom:

@wwarby you can also actually do this without the fix.
SetZoomtDemo.zip

    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            AppBuilder
            .Create()
            .UseWindow<DemoWindow>()
            .UseApp<DemoApp>()
            .Build()
            .Run(args);
        }
    }

    public class DemoApp : ChromelyBasicApp
    {
    }

    public class DemoWindow : Window
    {
        public DemoWindow(IChromelyNativeHost nativeHost,
                      IChromelyConfiguration config,
                      ChromelyHandlersResolver handlersResolver)
            : base(nativeHost, config, handlersResolver)
        {
            FrameLoadStart += DemoWindow_FrameLoadStart;
        }

        public CefBrowserHost BrowserHost
        {
            get
            {
                return Browser?.GetHost();
            }
        }

        public double GetZoomLevel()
        {
           return BrowserHost == null ? 0 : BrowserHost.GetZoomLevel();
        }

        public void SetZoomLevel(double value)
        {
            BrowserHost?.SetZoomLevel(value);
        }

        private void DemoWindow_FrameLoadStart(object sender, FrameLoadStartEventArgs e)
        {
            SetZoomLevel(26.0);
        }
    }

Before zoom:

After zoom:

Thanks so much for this - I can confirm it works like an absolute charm. I have a slider in my app that changes the page zoom level and up until now I'd been using the CSS zoom property with a CSS variable, which kind of works but causes all sorts of issues with third party components like the ones from Angular Material. Setting the zoom level at the browser level completely resolves all those issue :)

Thanks so much for this - I can confirm it works like an absolute charm. I have a slider in my app that changes the page zoom level and up until now I'd been using the CSS zoom property with a CSS variable, which kind of works but causes all sorts of issues with third party components like the ones from Angular Material. Setting the zoom level at the browser level completely resolves all those issue :)


The timeseries Lambda is getting invoked every 15 seconds

The timeseries Lambda function is being invoked with an empty event every 15 seconds. This is the event that is passed to the Lambda: Event - {'body': {}}
The following error is present on the Lambda function's "Triggers" Configuration: "The API with ID xxxxxxxxx doesn’t include a resource with path /* having an integration  on the ANY method."
But this may not be the source of the Lambda executions and instead related to API/Lambda permissions and solved by using the qualifier argument.

It looks like the API Gateway is being pinged every 15 seconds by a private IP address not associated with the SIT environment.

Explored set up with AWS Support and submitted request to NGAP to try to narrow down the origin of the private IP address. It does look like the IP address changes every so often and the IP address is also the source for API requests I make when testing.

I enabled execution logs for the Gateway and clued into the following method request header: User-Agent=Elastic-Heartbeat/7.16.2 for the requests that ping the gateway every 15 seconds.
My best guess is these requests originate from the Elastic Agent installed in each AWS account to collect metrics. This documentation seems to indicate similar behavior to what we are seeing in our SIT environment.
Waiting on NGAP support to confirm this behavior and to see if there is a way we can re-configure the Elastic Agent.

According to NGAP support:

Every endpoint that is configured in NGAP has an Elastic Heartbeat Health check every 15 seconds. So overall, this is actually a part of our process to have the heartbeat health check. Any IP that is begins with "10." is in house...the Lambda is averaging $3-5 every month so thats not an issue.

I have asked if we can configure a different endpoint for the Elastic heartbeat health check but it seems like it pings all API Gateway endpoints. I have requested that the ping include a unique response parameter that we can use to filter CloudWatch logs on. This way we can isolate the traffic we are actually interested in (from end users) and can be used with Cloud Metrics.

Try to pass header to lambda function.
Then check in lambda if empty request and user agent  is Elastic-Heartbeat do not log error


Documentation not up-to-date?

A store should be created in the following way according to the getting started guide:
let store = Store(directoryPath: "/path/to/the/store")
Note though that Store throws so Xcode will correctly show the following error:
Call can throw, but it is not marked with 'try' and the error is not handled
It would also be great to provide a real directory path suggestion for the Store constructor.

I've fixed the missing try, will see if I can find a simple way to get at a correct path that doesn't distract from the actual task of creating a store.

I just fixed the example Store path in the docs for the next release. Thank you for drawing my attention to it.

The fixed documentation is live now. Thank you again for bringing this to our attention.

I'm similarly unsure how to create a Store @uli-objectbox using the latest version: 0.9.1
/// Create a new store.
/// - Parameter model: A model description generated using ObjectBox.modelBuilder
/// - Parameter directory: The path to thedirectory in which ObjectBox is to save the files related to the database.
/// - Parameter maxDbSizeInKByte: Maximum size the database may take up on disk.
/// - Parameter fileMode: The unix permissions (like 0o755) to use for creating the database files.
/// - Parameter maxReaders: How many threads may be reading at the same time at once.
public init(model: OpaquePointer, directory: String, maxDbSizeInKByte: UInt64, fileMode: UInt32, maxReaders: UInt32)

How can we pass in this model?
I'm a bit curious how passing in the fileMode, when would a developer want anything besides read, write, execute for owner?

You can check out the example app included with the code to see how it's done. In short, you don't need to bother about the model. The code generator will create an extension on Store for you without the model parameter, which will set up your model correctly for you.

The Store constructor with only the path is private and cannot be used?

@seljabali If you're still not able to use the generated constructor, please let me know in #15 (which also contains more attempts by me to explain how it should work).


Add semester dropdown to scheduler

The user should be able to click a dropdown, select a previous semester, and create a schedule for a previous semester.
The dropdown should default to the current semester.
This is a popular request from the discord and emails

The new Berkeleytime rewrite will address this issue.


[AB#41994]Implemented the transactional outbox and inbox pattern for the media service

Pull Request
Prerequisites

[X] The PR is targeting the right branch (dev for features and master for
releases)
[ ] potential release notes to the PR description added
[ ] potential testing notes to the PR description added
[ ] appropriate labels for the PR applied

Description
This PR improves the messaging reliability by applying the transactional outbox and inbox patterns (e.g. https://softwaremill.com/microservices-101/). Messages are not sent immediately but first stored in the database together with the surrounding database transaction. So both message handling and message sending succeeds or none at all. Similar for the inbox side: either all the processing succeeds as well as marking the inbox message as handled - or nothing succeeds.

adding a soft-blocker to merge this:

since we encountered some issues with DB size growth when WAL, we should wait until we discuss in the PA round to understand risks/potential workarounds before releasing this change to the public template


Add support for One-Way Operations

I wanted to use this module for a webservice with some one-way soap operations (http://www.ws-i.org/profiles/basicprofile-1.1.html#One-Way_Operations) but it did not seem to support this.
So I ended up adding some code and tests. It would be nice if this would be included in the project.
The commit passed the Travis build: https://travis-ci.org/wimve/node-soap/builds/53335821

Thanks @wimve - seems like a really valuable addion to node-soap :+1:


Turn on security checker and do composer update

At Ibuildings we would like to take a more proactive role at monitoring and alerting for security updates of the software we create and deliver to customers.
As part of this, for this project we'd like to:

Upgrade to the latest patch level of Symfony 2.7
Upgrade to the latest patch level of Zend Framework 1
Upgrade to the latest minor level of simplesamlphp/simplesamlphp
Turn on the security checker and make it fail pull requests.

Unfortunately I had to do a full composer update as Composer got lost with all the interdependencies of EB, SSP, SAML2 and XMLSecLibs.
Please see the commit for a full overview of all upgraded packages.
Also we'd like to turn on nightly builds ( https://docs.travis-ci.com/user/cron-jobs/ ), though I think I can request this from Travis.

This would solve #213.

Upgrading our dependencies to more secure, less buggy versions seems like a plan to me.

Certainly a good plan! A rebase on master should be done though as more tests have been added/enabled to see if everything still works as intended, especially with the update of SimpleSamlPHP.
After rebase and succesful build a :+1: :x: :100:  from me!

Upgrading Symfony from 2.7.4 to 2.7.6 removes the ClockMock we're using to test our ExecutionTimeTracker which uses Symfony's Stopwatch.
Therefore, before we can update our Symfony version we should create our own mockable Stopwatch implementation. This would also be an opportunity to correct our occasionally failing tests regarding the ExecutionTimeTracker.

Implementing a custom Stopwatch is trivial and at the same time provides the opportunity to create a TimeProvider object that ensures all time/timing related features can be tested properly.

@DRvanR

A rebase on master should be done though as more tests have been added/enabled to see if everything still works as intended, especially with the update of SimpleSamlPHP.

This branch is based on the most recent master?

yes, I rebased it - hence the failing build and the note from @arothuis  😉

@DRvanR anything I can do to help this along?

@relaxnow, the build should succeed, so we could start by implementing a custom Stopwatch and TimeProvider. That way, we don't need Symfony's ClockMock to test our ExecutionTimeTracker anymore.

See #328

Closing in favor of #398


gotmpl files do not render values properly

Helmfile Version
Several versions checked:
helmfile version v0.85.2
helmfile version v0.90.1
helmfile version v0.118.5

Helm Version
Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}

Helmfile configs
helmfile.yml
repositories:
  - name: stable
    url: https://kubernetes-charts.storage.googleapis.com

releases:
  - name: {{ requiredEnv "NAME" }}-jenkins
    namespace: {{ requiredEnv "NAME" }}
    labels:
      app: {{ requiredEnv "NAME" }}-jenkins-master
    chart: stable/jenkins
    version: ~1.27.0
    hooks:
    - events: ["prepare"]
      command: "kubectl"
      args: ["apply","-f", "{{ requiredEnv "NAME" }}/casc-config-map.yaml", "-n", {{ requiredEnv "NAME" }}]
    - events: ["prepare"]
      command: "kubectl"
      args: ["apply","-f","jenkins-rabc.yaml","-n", {{ requiredEnv "NAME" }}]
    values:
    - values.yaml.gotmpl
    wait: true
    timeout: 280
    recreatePods: true
    force: true

values.yaml.gotmpl
https://github.com/helm/charts/blob/75a1020b6cce44cba3df11999b277e5c2c43db84/stable/jenkins/values.yaml
Crash Output
/ # NAME=ci helmfile -f /helm/jenkins/helmfile.yaml template
Adding repo stable https://kubernetes-charts.storage.googleapis.com
"stable" has been added to your repositories

Updating repo
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Successfully got an update from the "stable" chart repository
Update Complete.

helmfile.yaml: basePath=.
helmfile.yaml: basePath=.
Fetching stable/jenkins
in /helm/jenkins/helmfile.yaml: failed to render values files "values.yaml.gotmpl": failed to render [values.yaml.gotmpl], because of template: stringTemplate:336:36: executing "stringTemplate" at <.Values.master.servicePort>: map has no entry for key "master"
/ #

Expected Behavior
I expected the helm chart to be templated.
Actual Behavior
An unexpected crash as a result of... a missing key in the values? 🤷♂   (I am super confused by this error because in the values.yaml.gotmpl this value is clearly present.)
Steps to Reproduce

use helmfile.yaml and values.yaml.gotmpl provided (removing hooks sections)
do a helmfile -f helmfile.yml template

Remediation
I was able to remediate this by changed the helmfile like so:
diff --git a/jenkins/helmfile.yaml b/jenkins/helmfile.yaml
index 9f09eae..1f9de6e 100644
--- a/jenkins/helmfile.yaml
+++ b/jenkins/helmfile.yaml
@@ -17,7 +17,7 @@ releases:
       command: "kubectl"
       args: ["apply","-f","jenkins-rabc.yaml","-n", {{ requiredEnv "NAME" }}]
     values:
-    - values.yaml.gotmpl
+    - values.yaml
     wait: true
     timeout: 280
     recreatePods: true

and renaming values.yaml.gotmpl to values.yaml
References
https://github.com/roboll/helmfile#templates

I have found this doc to be inaccurate because regardless of file extension the values file is rendered if there is appropriate go templating in place.

Thinking about this in a different light I now understand that helm go templating and helmfile go templating are completely different. 🤦

Yes, that's a good/bad part of Helmfile 😞 It can be appealing that you can reuse some of your helm template technics in Helmfile templates. On the other hand, it makes on-boarding harder due to their difference(s).
In the longer term, I'm even considering to add HCL-based configuration language to dynamically generate helmfile state and values files, assuming many of K8s users would have a little or more experience in Terraform as well, while HCL-based config would provide enough distinction between helmfile syntax and helm syntax.
Regardless of how it goes, I'm eager to make it easier over time. Thanks for your using Helmfile / Have a great weekend, too!

Thinking about this in a different light I now understand that helm go templating and helmfile go templating are completely different. 🤦

@unacceptable Yes, that's a good/bad part of Helmfile 😞 It can be appealing that you can reuse some of your helm template technics in Helmfile templates. On the other hand, it makes on-boarding harder due to their difference(s).
In the longer term, I'm even considering to add HCL-based configuration language to dynamically generate helmfile state and values files, assuming many of K8s users would have a little or more experience in Terraform as well, while HCL-based config would provide enough distinction between helmfile syntax and helm syntax.
Regardless of how it goes, I'm eager to make it easier over time. Thanks for your using Helmfile / Have a great weekend, too!