Add CLI switch to "add resource" to inject the code that is auto-generated by the Inferencer feature into each file

Is your feature request related to a problem? Please describe.
The Inferencer feature is an amazing time saver. I find myself building the database, then creating empty Create, Edit, List, and Show pages, then adding the routes, and then visiting each page and copying and pasting the Inferencer code into each file, repeat for each resource type. After 40 mins of doing this, I started thinking, this could be done by the CLI? Could an "-addcode" switch be added to the Refine CLI when running the add resource command?
npm run refine add resource resume-skills -addcode
Describe alternatives you've considered
I realize this is a bit like the hole and the shovel. I really want a hole, but I need to go and buy a shovel to make the hole. What I really want in this context is the auto-generated form code. Starting function and visual tweaks, with a form that has all of the fields and query lookups, is a massive time save. Perhaps there would be another way to fill the need, but I can not see it at the moment.
Additional context
I am wondering if this could be done through a Curl or similar request. Perhaps the CLI already has a way to bootstrap the refine app and deal with authentication. .
Describe the thing to improve
Adding a way to include the Inferencer auto-generated code into each file generated by the "refine add resource" would create a much more robust scaffold code and save many hours on larger projects.

Hello @dervishmoose thanks for the issue!
So we are already generating resources with Inferencer component, but the thing is, inferencer is working on the client-side, this means you need to navigate to the route for inferencer to work. Inferencer will make requests to you api and bootstrap the code for you.
Having inferencer work through CLI may require big effort, but it should be possible.
One solution could be to have another button in Inferencer component, where we show the generated code. This button could basically update the relevant file with the generated code. But since inferencer works on the client-side, we wouldn't have access to file system.
I think it can be handled through our devtools tho. Since devtools has a running local express server, could navigate through your files and update it.
We need to discuss how it can be implemented. cc @aliemir


stepper  event onStepClick not work

In metro v3 it seem that the click event is not triggered:

Any idea?
thank you!

https://github.com/olton/Metro-UI-CSS-3

Sorry for my mistake but is V4 not V3 metro version

https://codepen.io/olton/pen/BazMWWL?editors=1011


Mod not working again...

https://github.com/cleolibrary/CLEO5/issues/26

@CanerKaraca23 is this still an issue with latest build? Can you share the script?

@CanerKaraca23 is this still an issue with latest build? Can you share the script?

Yes, i still have.
https://www.mixmods.com.br/2018/01/elm-emergency-lights-mod-v1-0-by-nyolc8/

@CanerKaraca23 Any extra reproduction details? I just tried it with alpha.70 and it seems to work ok.
I extracted mod to main cleo directory and changed two main scripts filetype to .cs4

Offset {118} from screen does not make much sense in that script:
{0} write_debug "SAMP CHAT STATE HELPER 1.0"
{30} write_debug "BY NYOLC8"
{43} write_debug "MADE FOR CONVOY TRUCKING COMMUNITY"
{81} write_debug "WWW.CONVOYTRUCKING.NET"
{107} script_name "SAMP_CHAT_STATE_HELPER"
{133} wait 1000

Are you sure that file is not damaged? Do you have CLEO Redux installed?

@MiranDMC I don't have CLEO Redux, i just open my game and it gives this error on launch. Files are not damaged, just downloaded again and renamed to .cs4 and still same. It's in cleo folder, not modloader.

Ok I'm now experiencing similar problem, but with my simple script, so there is something weird actually.

@CanerKaraca23 Ok the error I had was caused by starting mission script while another mission was in progress. Your issue is totally different.
Due to inability to reproduce at our side please do troubleshooting:
Make directory with clear GTA SA inside, put CLEO5 in it and Emergency light mod. Should work. Then try copying mods you have from your current game one by one and checking if it still works.
Seems like some cross contamination.

@CanerKaraca23 Ok the error I had was caused by starting mission script while another mission was in progress. Your issue is totally different. Due to inability to reproduce at our side please do troubleshooting: Make directory with clear GTA SA inside, put CLEO5 in it and Emergency light mod. Should work. Then try copying mods you have from your current game one by one and checking if it still works. Seems like some cross contamination.

I think i found the issue. The issue is OpenMP Launcher, and it's really odd. Because i don't have issue with SAMP's own launcher. Sorry for wasting your time. I was tried on vanilla (no mods) game on SAMP but with OpenMP Launcher and then somehow I guessed maybe it's because of OpenMP and yes...
You can close the issue, i will open issue on OpenMP Launcher. @MiranDMC

@CanerKaraca23 can you confirm if this script works or not with CLEO 4.4.4 and OpenMP?

@CanerKaraca23 can you confirm if this script works or not with CLEO 4.4.4 and OpenMP?

@x87 I didn't tested with 4.4.4 but, yes it gives error with OpenMP but mod works. Without OpenMP, it's fine.
I can test with OpenMP + 4.4.4 if you want.

So issue was caused by OpenMP installing its own (faulty) hook on get tring script param function.
CLEO4 did not reported invalid/unknown opcodes, it just skipped 2 bytes and tried to read next data as opcodes.
In that script faulty read param function was leaving 4 unprocessed bytes, which then were ignored and by luck next command was processed correctly.
It would not work if script name length was even.


Document React Native entry point

You can import React Native-compatible version from react-redux/native but this isn't documented.

Documented in https://github.com/gaearon/react-redux/commit/c3e5b38dc5fb3d938a690cc335756047c24777f0.


Fixup trello days_left_in_sprint

Takes the modulus of the days left in sprint against 21 (3 weeks) so
the output is correct even if the sprint card has been updated prior
to end of sprint.

@jupierce Just want you to put eyes on this before I merge it :)


Tile indicators flicker when destination and current tile overlap

On the tick where the player arrives on the destination tile there is a brief period  where both the destination tile and current tile go invisible. This behavior does not seem present in the default tile indicators.
It gets more consistent with higher fps, so I feel like this is probably tied to a specific time window, as opposed to being frame-based. no clue if this is relevant at all since I'm not familiar with runelite plugins, but figured it might be useful info

fixed in 7d2b79ab5c54edd5db6ee5e849324fe5a8ab3cd3


Add minimum example to demonstrate look-and-feel

Here is the template which we'll use to host the main-documentation and technical blog.
The plan is, in a manner similar to langchain (https://docs.langchain.com/docs/):

Use sphinx to host the python API docs
Use this (docusaurus) to host everything else

Minimal edits are required to convert the current docs to docusaurus docs.

Looks like that...

Codecov Report
Patch coverage has no change and project coverage change: +0.43% :tada:

Comparison is base (2dc46cc) 78.17% compared to head (c351b0c) 78.61%.
Report is 24 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #866      +/-   ##
==========================================
+ Coverage   78.17%   78.61%   +0.43%
==========================================
  Files          80       89       +9
  Lines        5140     5802     +662
==========================================
+ Hits         4018     4561     +543
- Misses       1122     1241     +119

see 38 files with indirect coverage changes

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

I mean, literally none of this has anything to do with any of our code...?

Should have been a WIP to share the approach. Was not intended to be merged.


Error Exception thrown undefined property  Ratchet\Server\IoConnection::$app

So i am trying to use Custom WebSocket Handlers in this package . I followed all the steps as stated in the documentation https://docs.beyondco.de/laravel-websockets/1.0/advanced-usage/custom-websocket-handlers.html . After that using a javascript i tried to establish connection and then send message from it , connection establishes but i receive the strange error
Starting the WebSocket server on port 4222...
New connection opened for app key .
Exception ErrorException thrown: Undefined property: Ratchet\Server\IoConnection::$app
Unknown app id: exception ErrorException thrown: Undefined property: Ratchet\Server\IoConnection::$app.
my javascript code is
`
var conn = new WebSocket('ws://<IP_ADDRESS>:4222/my-socket');
conn.onopen = function(e) {
conn.send('Hello World!');
};
conn.onmessage = function(e) {
console.log(e.data)
}
`
please Look at it ..

Hello @shahabgohar, same issue here.
I fixed it by setting $app and $socketId manually :
public function onOpen(ConnectionInterface $connection)
{
    $socketId = sprintf('%d.%d', random_int(1,<PHONE_NUMBER>), random_int(1,<PHONE_NUMBER>));
    $connection->socketId = $socketId;
    $connection->app = App::findById('YOUR_APP_ID');
    // ...

Had the same issue, should be documented in the custom handler section and not just a super hard to find closed issue

@Tofandel  agreed !!
Got answer after a week but by then i switched to swoole

@maximerenou hi
I have added your  this code answer in my application
<?php
// ...
use BeyondCode\LaravelWebSockets\Apps\App;
// ...
public function onOpen(ConnectionInterface $connection)
{
    $socketId = sprintf('%d.%d', random_int(1,<PHONE_NUMBER>), random_int(1,<PHONE_NUMBER>));
    $connection->socketId = $socketId;
    $connection->app = App::findById('YOUR_APP_ID');
    // ...

but it is still showing error this
New connection opened for app key your-pusher-key. Connection id 441865230.936318383 closed. Exception ErrorExceptionthrown:Trying to get property 'id' of non-object``
please share how can i resolve it??

@faizan-glowlogix If you didn't declare an app because you're not using as a pusher replacement (hence App::findById('some_id') will not return anything) you can just do $connection->app =  new \stdClass(); $connection->app->id = 'my_app'; to get rid of the error


create a docker image for helm

It would be useful in CI systems, and other docker-centric environments to have a Helm image that included kubectl, so that you could run something along these lines:
docker run -v ~/.kube:/home/.kube -e HOME=/home -v ~/.helm:/hlm -e HELM_HOME=/hlm quay.io/helm/helm:0.3.0 helm install deis

And have Helm install the deis chart to your already-configured k8s cluster.

I know there's been some recent chatter about possibly using helm as part of the development workflow to facilitate loading hacked components into a running k8s cluster instead of the current make targets used to facilitate what I've called "side-loading."  I have had some misgivings about that because it makes helm a requirement for hacking on Deis... but this would address that pretty nicely and existing make targets could simply be re-implemented to leverage it, so +1.

+1

I'm working with @chaitanyaenr on getting us a container with helm, kubectl, etc that we can use to make kicking off our e2e tests a lot nicer in CI.


Typo in workshop ContinuousDeployment

@freddydk @mazhelez Thank you so much for approving my PR, i would be super happy to have my first contribution in on this repository.
Considering this PR is now approved by 2 people and its a trivial change, when can i expect it to be merged?

@freddydk @mazhelez Thank you so much for approving my PR, i would be super happy to have my first contribution in on this repository.
Considering this PR is now approved by 2 people and its a trivial change, when can i expect it to be merged?

Thank you for your contribution, @justlucdewit
Your PR is now merged.


Suggestion: Map Editor

It's been a while searching for Terraria Map Editor, and I just found TEdit, but I don't have PC/Windows.
👍 if you add Editor in Terrafirma

Way beyond TF's scope.


CNET documentation

Add CNET documentation.

@KeithWiles can you fix you the merge conflicts? I suggest you close this PR and create a new one based on the main branch.


My git clone is unable to access please tell me why and solve my problem as quick you can

Add
.git at the last of the link text

maybe you misspelled the url, if this is not the case and you also tried with @devil989 ´s solution check that git is up to date
I hope I have helped

Have you checked the URL?


[ts_proto_library] - Editor support

🚀 feature request
Relevant Rules
ts_proto_library
Description
Currently ts_proto_library produces .js generated code and .d.ts files to match those, which works well from the perspective of the compiler but for devs it makes for a bad experience since your editor will highlight those imports as errors because you're importing files which don't exist at dev time. This means you loose all type support for any of the apis and interfaces used from your proto files
Describe the solution you'd like
ts_proto_library should generate .d.ts files into your source directory instead of output so they can be used at dev time.
Describe alternatives you've considered
An alternative would be to manually write interfaces to match the proto files you've written, but then whats the point of using it in the first place?

This can be done through path mapping (https://github.com/bazelbuild/rules_typescript#writing-typescript-code-for-bazel). In case you are not using non-relative imports, add bazel-bin to rootDirs next to .. Which will make your ts-server to pick up those generated files.
IMHO, Generating code to the source tree is generally a bad idea, as we should aim to have a single source of truth when possible, mixing generated files with the source will make future maintenance difficult.

I see your point about generated code, you're right, we should rely on the .proto, not the generated code.
While using your proposed solution of adding bazel-out/host/bin into rootDirs would work I suspect that it wont scale.
Doing this means that the TS language will pick up at minimum 2x of every source file  - 1 - the actual source file, 2 - the .d.ts's generated by ts_libraray.
Then if you're using ng_module it's at least 4x of each file - 2 as above, 3 - ngfactory, 4 - ngsummary
Having to read and parse so many files will quickly bring tsserver to a crawl and language support within the editor down with it.

You are right about the numbers.  However, the conclusion here is a bit off. The problem here is that ts language server itself is not designed to scale, as it doesn't load files in a heuristic way and use a sensible cache strategy. It will fail eventually when your repo grows, regardless of using the path mapping or not.
We have O(1k) ts files with O(1k) generated files. So far, ts server can cope with that, as once the symbols are loaded it will only do the incremental patches to the indices in the memory. However, the initial bootstrap time will take a while.


Direct API docs visitors to the resource docs

This change adds a shortcode and a few additions to the Python and Node.js API doc generators to show an info blurb at the top of API-docs pages directing users to the resource docs. It looks like this, and appears only on those pages whose providers have corresponding resource docs:

Fixes #2885.
Part of #3389.

Hmm, I didn't see this on the AWS pages:

@joeduffy You won't see the new blocks in the docs as a result of this PR -- this PR just introduces the doc-generator changes and shortcode that'll be used when the next round of API docs are generated.
@leezen I'm totally not married to these words, for sure. But my understanding is that we want to be quite clear here that in most cases, these really aren't the docs you probably want to be wading into. Adding the word "specification" makes sense to make that even more clear, but I do think the second paragraph clarifies (or at least tries to clarify) the difference between these docs and the resource docs. So since this isn't meant to be a "just FYI" sort of notice, but more of an actual nudge, I'm tempted to lean more toward keeping the stronger wording than playing it down.
@joeduffy @lukehoban Do y'all have thoughts? Again, I'm totally happy to make whatever changes work best; I'm just going on my current assumption of the intent.

I do think it's worth making it clear that you almost certainly want the other docs. All of the feedback I get is that someone got lost in the weeds trying to navigate our (frankly not very good) Python docs, for example, and either eventually found the resource pages or -- more often than not -- gave up and assumed we didn't have what they are looking for.
"Resource docs versus API docs" is a bit inside baseball and the average user probably doesn't understand the subtlety. As such, I'm guessing they'd ignore and keep scrolling. Something that grabs your attention seems warranted.
That said, I'm certainly sympathetic to the feedback that there are cases where you want the API docs. I just think it's the vast minority so if we're going to err on one side or the other, I'd suggest using a blunt instrument personally :-)

@leezen I'm totally not married to these words, for sure. But my understanding is that we want to be quite clear here that in most cases, these really aren't the docs you probably want to be wading into. Adding the word "specification" makes sense to make that even more clear, but I do think the second paragraph clarifies (or at least tries to clarify) the difference between these docs and the resource docs. So if it's true that this isn't meant to be a "just FYI" sort of notice, but more of an actual nudge, I'm tempted to lean more toward the more suggestive wording.

I agree that in most cases the API docs aren't what customers are looking for. However, I think having clear wording about what they're reading and what other documentation is available should be enough to let them make that determination vs. trying to make it for them?
I'm not super attached to any phrasing either, but I don't want to say anything along the lines of "you want something else" because then there's no reason for them to be here in the first place when there are very valid reasons for doing so.
On a separate note, can we also incorporate this message at the top of the documentation for godoc and .NET docs? Thinking about godoc could be a useful exercise imho since it's not hosted on the docs site, so there's some sense of separation. I think whatever phrasing we use should apply equally well for the description there around what those docs are vs. using resource docs.

After chatting a bit with @leezen out of band, I've adjusted the wording a bit to use "package" rather than "API", as that's consistent with what we're using on the API Reference page. Here's what it'll look like in the Node and Python pages:


uid is missing from usage type in GetUsage method

uid is marked as valid params but it is missing from Usage struct type.
https://github.com/ceph/go-ceph/blob/9d74c3c2b1a08ad171d14bb78cc59273434030e3/rgw/admin/usage.go#L54
https://github.com/ceph/go-ceph/blob/9d74c3c2b1a08ad171d14bb78cc59273434030e3/rgw/admin/usage.go#L11-L49

CC: @thotz  @leseb

@amirhaa: It is definitely a bug, IMO API was written to collect the total objectstore usage than the individual user, but passed uid in the request.  We modify the usage struct and GetUsage() API to support both use cases or only the object store. In the later case, may need to add new API for individual use cases.


👌 Performance: Memoize Inline parser for build_need

As discussed in #967, build_need (called from print_need_nodes) is currently taking a large amount of build times.
A key reason for this is that the initialisation of the inline parser, which requires compiling numerous regexes, is being run on every call.
This is not required, since the initialisation is invariant.
In this PR therefore, we move the initialisation to a cached function, which will only run once per build.
As shown when using phinx-analysis  --project needs --pyinstrument --tree --tree-filter 0.01, compared to #967, this significantly reduces the print_need_nodes component of the build time; from taking ~25% to ~8%
In this example it reduces the total build time from ~1.6 seconds to ~1.2 seconds

Can you add also a small line to our /docs/cahngelog.rst file?
Feel also free to add yourself to our AUTHORS file as well.

done @danwos  👍


OCPBUGS-13532: Actually respond to changes in Secrets

Somehow I managed to miss out the most important part of the change in e920fe9a8340eb5f28273088020bc5686cfafcb6.

/cc @dtantsur

/jira refresh

/lgtm


Example with distributed

options

jax' multiprocess docs.
mpi4jax docs

Jax' built in option seems to automatically handle MPI so it might be the better starting point.

After some quick tests with Jax' built in distributed functions, it seems like a simpler approach from a development standpoint: for single machine cases, no MPI required, just set
import os
os.environ['XLA_FLAGS'] = "--xla_force_host_platform_device_count=2"

before importing Jax, then jax.pmap will just distribute work over available devices, in a single process context.
For multiprocess context, some more work is required.  The two main cases would be multi-node CPU & GPU.  For interactive use, we could use Dask/IPyParallel to run wrap the MPI-like lockstep execution that Jax parallel primitives require.

I couldn't get the jax parallel API to work, and the distributed systems that we'll have to work with are MPI-based, so expertise is mainly in MPI.


Use xcode 9.4 in .travis.yml

@alejandro-isaza can you take a look at this? Sounds like we need to modify project to bee compatible with Xcode 9.4

Looks like you broke master by adding BlockMode back. Remember to run pod install


Be able to setup a field level validation schema

Description
Hi! It would be nice to set some field level validation.
Example
My example is a multi-step form that shares the same  element. This form asks for phone, name and email.

HTML
 STEP 1
<form>
	<input name='name'>
	<button type='submit'/>
</form>

 STEP 2
<form>
	<input name='phone'>
	<button type='submit'/>
</form>

STEP 3
<form>
	<input name='email'>
	<button type='submit'/>
</form>

I use zod for validating things.
And I'm using the following schema:

### Schema
const validationSchema = z.object({
	name: z.string().nonempty(),
	phone: phoneRegexValidation,
	email: emailValidation
})

Example's issue
Every step is required. But I can't use like that. If all of them are required for submitting, I can't use the button as a submit button for controlling my form. And I do have some clear options:

Handle only the last button as submittable, control my "steps" out of onSubmit (a bit boilerplatey)
Separate into 3 forms, one with each validation (less svelte composable components power)

There is an option I used on react, using the library react-hook-form

dynamically setup my validationSchema when "step" changed

### Schema
const validationSchema = step => z.object({
	name: z.string().nonempty(),
	phone: step > 0 ? phoneRegexValidation : optional,
	email: ztep > 1 ? emailValidation : optional
})

### Creating form context
const { form } = createFormContext({
		validateSchema: validationSchema(step),
		onSubmit: values => {
			if (!isLastStep) step++;
			else submitToServer(values)
		}
	})

But it doesn't seems to work (it could be another issue if I did it right, but that's not the main request here)
Svelte-action
I've being trying to create an svelte action to solve that:

### Implementation
export const validate = (
	node: HTMLInputElement,
	{ schema }: { schema: z.Schema<any> }
) => {
	const listener = (ev: Event) => {
		try {
			schema.parse(node.value)
		} catch (e) {
			ev.preventDefault();
			ev.stopPropagation();
			ev.stopImmediatePropagation();
			const error = e as z.ZodError<any>
			node.setCustomValidity(error.message)
		}
	}
	node.form?.addEventListener('submit', listener)

	return {
		destroy: () => {
			node.form?.removeEventListener('submit', listener)
		}
	}
}

### Usage
	<input
		use:validate={nameValidation}
		name="name"
	/>

But I'm having no success on that. It isn't preventing form onSubmit from being executed. I don't know how to achieve that outside felte.
Further comments
The library I mentioned (react-hook-form) uses a different and less html native for subscribing new fields that can validate at this level.
RHF validation docs
I mention them only for bringing examples of libraries that have this kind of field-level API (and are choosing to continue supporting it).
Another benefit of solving it would be composability problem. A form would not need to know every field that are inside them for validating purposes.

Hi! Sorry for the long wait. I broke my arm and am just recovering.
So let's start with my thoughts on this:

I am sort of building this on a direction that would allow you to build your forms in a way that they would work both with or without JS. Taking this into account, the best approach is to have a "submit" button on each step, and each step being a different form. (With JS enabled each one being a different call to felts createForm). What does sound interesting in this sense is maybe creating another export from felte to create multiple forms each one with their own configuration. I'd have to think of a possible API for this (although I do think this might be a bit of overkill).

For using a separate "Next" button that Felte handles without submitting the form (this would work with JS only), I do see the issue you're presenting since you'd want to prevent a user from going to the next step without first validating the current one. For this the validator-zod packages (as well as the others) do export the function that validates the schema directly:

https://github.com/pablo-abc/felte/blob/f5bf1c6117481b1f042081892194780da5f200c2/packages/validator-zod/src/index.ts#L14-L32
So instead of "extending" felte with the validator you may use that function directly inside of your validate function. That way you may use a different schema whenever the step changes.
Do you feel one of these suggestions work for you? Or is there a specific API you might have in mind? I am completely open to suggestions

Move fast and break things shouldn't be taken so seriously. Sorry for your arm.
It's interesting to know this "with or without JS" intention. With that in mind I do prefer to create an solution based on my app over that second suggestion's function and not grow the library API on a wrong direction.
I will try that by tomorrow and I'll post it here how it ended being if this helps someone. Thanks!

@outerlook @pablo-abc
Currently trying to solve the same issue.
Would be very helpful if you could share a multi-step form demo on a codesandbox if you find a solution you are happy with and feel like adheres to best practices.
Thanks!

Here is at REPL
https://svelte.dev/repl/d83a688976fd466ab0a1d55400ab94f6?version=3.38.2
A bit simple but makes it, right?
There is this thing of already errored password input, but I kept it simple...

So, the problem of a multi-step validation could be taken easily. But the other part of this issue is about a method of transfering validations to a input directly, something like HTML does with
<input required min=6 name='phone'/>

but not possible if we want more complex validations.
<input use:validate={...}/>

This api would be against the library direction as it requires some changes that could be only used with js?
Just asking, we can close the issue if is not the intention

Hey all, after seeing #29 it seems that the most dev friendly way to solve for multi-step forms is to use a separate form per step. For a couple reasons:

As @ryanrussell mentioned on #29 if a single form is used and you use an <input type="submit"> to go to the next step, the next step will show all validation errors since the form has already "submitted" and all fields have been "touched". This could be mitigated by setting the fields of the other steps to untouched. But it requires manual work and I don't see how Felte could do this internally since we would need to differentiate between an actual multi-step form from a simply a hidden field.

If using a <button type="button"> to go to the next step then validation would need to be triggered manually using a helper. And again this would validate all fields of the form. As mentioned above, switching the validation schema per step might be an option but it's a little bit cumbersome.

If we do go towards the a separate form for each step route, would a helper to create multiple forms be useful at all? That seems to me like something trivial anyone could do if they actually need it on the project. Or having each step being a component with its own createForm call. I don't see much value on adding something like this.
Is there a use-case that would be made too complex by using a separate form for each step?

@outerlook The way I'd see this is that JS only "augments" the experience. So most likely if you're planning on making your form work also without JS you would anyway need to add the attributes such as required, min=..., etc. This is why Felte adds the novalidate attribute on load, since you'll definitely not want browser validation if you already are using JS validation.
Using an action like you mentioned does raise a couple questions regarding implementation. Mainly if it would need to be implemented in the core package or if it's a niche enough use-case that can somehow be handled using an extender package (although this approach also raises some uncertainties).
Another thing is that most of the issues we are finding have more to do with when Felte sets a field to "touched" rather than when/how it validates it. Validation occurs always, but the error won't be present on the "errors" store until the field is "touched", which currently happens on blur and on change per field, or on all fields when the form is submitted.

So regarding multi-page forms I've posted a package to help with it, do not see this as a best practice yet since I am open for this to change a lot based on usage. There might be a lot of edge cases not considered. Seeing as the implementation is not so big this could eventually be merged to the core package. Although the current assumptions make it very simplistic.
Feel free to test it. I've created a small example on CodeSandbox to showcase an example of its usage. Do let me know of any edge cases you might find.

@pablo-abc
Awesome! I had built this with my own custom store and counter for a specific use case, but your implementation looks more robust and I see you've already stubbed out decreaseStep() as well.
Official author support goes without saying as a better path...
Will port using your package, and post back if I find any edge cases or difficulties along the way.
Thanks so much for jumping on these bug and feature requests so quickly.

Just following up.
Your multi step package seems to work well for me so far, I'd suggest closing this out...
If I come across some edge cases, I can put them in a new issue.
Thanks again for the support!

@ryanrussell I'm leaving this open as I am still exploring per-field validation to handle this as well. But do open a new issue if you find anything in that package!

I'm sorry I could not reach up earlier. I am reading it all but right now we are delivering a 650 files migration to svelte 😅
I imagine I will be able to test and contribute with some thoughts in 1,5 week...

@pablo-abc what you basically did here is to build a basic state-machine on top of felte.
Tbh, Imho this is not the problem-domain which felte tries to solve. It's a nice example and/or helper but shouldn't go to core. Because as it expands the problem-domain unnecessarily and won't hold up more complex cases anyways.
If your specific usecase isn't covered by the builtin store-concept by svelte (which is used in the helper), use something like @xstate/svelte (btw @xstate/fsm is very lightweight, powerful and a perfect match for this kind of problems).
So, imho there are two solutions to the multi-step/wizard-form-problem (and I have a clear preference):

Either you show/hide some fields of the form depending on a step-count or similar. This would basically only ux-sugar and contradicts fundamental principles of html-forms and (most likely) usability/accessibility. This approach should be (at least) independent from submitting the form in a html/http-sense. If one opts for this approach, there is a ton of problems arising of you try to do it right for every edge-/use-case.

Or, imho the better approach, you create individual forms per step. This could be perfectly handled by svelte as it is. In this case you have to carry over/combine the state of those individual forms with a simple store or a state-machine to submit it to an api or whatever in the last step. Felte's job in this solution is handling the form - and not the state-handling for the process at large.

Btw: here is the react-hook-foms-example for such a case: https://react-hook-form.com/advanced-usage/#WizardFormFunnel and it uses the second approach as laid out above.
That said, there might be use-cases where field-level-validation is desirable (f.e. checking if a username is taken, pw-strength etc) and it would be a fair question if those are the responsibility of felte's validation-layer or if those should live in a customized input-component. I for myself lean towards the latter as it helps keeping bloat out of the nifty little core of felte :)


Backward transfer proof skeleton

no longer actual, now part of https://github.com/ZencashOfficial/Sidechains-SDK/tree/zendoo_integration_all branch


I want to use GOOGLE_APPLICATION_CREDENTIALS json file

Hi team,
instead of using export GOOGLE_APPLICATION_CREDENTIALS="/home/ec2-user/Projects/credentials.json"
I want something like const  GOOGLE_APPLICATION_CREDENTIALS="/home/ec2-user/Projects/credentials.json" in this code , can anyone help
`// Imports the Google Analytics Data API client library.
const {BetaAnalyticsDataClient} = require('@google-analytics/data');
// Using a default constructor instructs the client to use the credentials
// specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
const analyticsDataClient = new BetaAnalyticsDataClient();
// Runs a simple report.
async function runReport() {
const [response] = await analyticsDataClient.runReport({
property: properties/${propertyId},
dateRanges: [
{
startDate: '2020-03-31',
endDate: 'today',
},
],
dimensions: [
{
name: 'city',
},
],
metrics: [
{
name: 'activeUsers',
},
],
});
console.log('Report result:');
response.rows.forEach(row => {
console.log(row.dimensionValues[0], row.metricValues[0]);
});
}
`

@okumar-SDG, you can add a keyfile property to the constructor:
const analyticsDataClient = new BetaAnalyticsDataClient({keyfileName: 'path-to-your-keyfile'});

see: https://github.com/googleapis/google-auth-library-nodejs/blob/0b78d91534d97b37859a2303b332f8ccd52dbf69/src/auth/googleauth.ts#L91-L99


Can't run local examples

I'm probably missing something quite obvious but getting errors on a fresh checkout after running what the README.md says for a local example.
Error:
❯ npx ts-node main.ts
webpack:///./data/bloom.ts:70
}
^
jg [Error]: Bad Request
    at webpack:///./client/api.ts:89:11
    at Generator.next (<anonymous>)
    at E (webpack:///./data/bloom.ts:70:1)
    at processTicksAndRejections (node:internal/process/task_queues:95:5) {
  status: 400,
  path: 'http://localhost:8008/setup',
  body: 'Can not decode body',
  msg: 'Bad Request'
}

Server logs:
Using 4 threads
Listening on 8008
kv_pairs: []
kv_pairs: []

Wonder if I missed a stage initializing key pairs somehow?
These are commands I ran:
cd lib/server
cargo run --release
cd examples/node-local
nvm use --lts
npm i
npx ts-node main.ts

use the tag 0.1.9


Add statement of solidarity to homepage

Description of changes
added section at top of homepage linking to our statement
Screenshot(s) or GIF(s) of changes

@MelindaCardenas can you add a close icon to the top right hand corner of the banner that will hide it? I think it looks great but we should give people the opportunity to close the banner if needed if it messes up formatting


Community-Contributing: Enhance section

Conversation with Rosalind Benoit resulted in:

Overview: add different ways to contribute, such as code and/or docs patches, reviews, triaging issues
Add section for contributing to docs; move code-related pages together:

Code Patches, Docs Patches: split out into code patch and docs patch (use brian-armory's internal Paper doc for docs workflow)
Add section on how to get changes made to your PR by an approver
For docs, simple style guide? similar to k8s, detail heading capitalization,  placeholder convention, active vs passive voice, etc
Add section on reviewing docs patches

Goal is to make it easier for new people to contribute code and docs quickly as well as participate in other ways (review, triage).
Proposed reorg:
Contributing

Code of Conduct
File an Issue*
Code Contribution

Getting Set Up for Spinnaker Development (move from Developer How-Tos)
Build Statuses
Submitting a Patch
Nightly Builds
Releasing a Patch
Code Conventions for Server-Side Components

Docs Contribution

Documentation Style Guide*
Submitting a Patch*

Use the GitHub UI
Use a local fork

Review a Patch* - this will cover using the Style Guide

The * denotes new content
I worked full time on k8s docs for 4 months last Summer/Fall. Among other things, I updated their Contribute section, so I have a fairly good idea of the content I plan to add to the Spinnaker docs. My plan is to push a PR by the end of Feb (time keeps slipping away from me).

/assign

@aimeeu will work on this. I don't have permissions to assign this to myself.

@aimeeu another thing, I agree with your assertion that we should move the Developer How-Tos in Guides > Developer to the Community section. One reason is, the word "developer" is ambiguous in this context given that Spinnaker enables end-user app developers. I think it's good to make it more clear that those are contributor resources, and they seem more natural under the "Contributing" tab in Community. I also recommend home-page access/visibility into this area but can wait for site refresh if necessary. Adding the how-to's to "Contributing" makes that a really long list of items, so @aimeeu and team, I am interested in your organization ideas.
@dorbin @brian-armory any objections to moving these out of Guides?

No objections to moving it out of Guides. The sections like Guides, Concepts, etc should strictly be Spinnaker product docs.

Weren't we talking, at the Summit, about maybe moving developer guides to spinnaker.dev?

IIRC we raised that as a possibility. This seems like a workable short to medium term fix though.

After letting this steep for a few days, I'm ok with moving the dev docs to /community/contributing/.

Regarding spinnaker.dev, I still have mixed feelings about it. Is the goal to aim spinnaker.io documentation more at end-users rather than operators or devops engineers? I think so, and there is value there. I think we should only bifurcate traffic to the site if we feel we have a reasonably segmented approach that's based on defining all the engaged personas; if we have a strategic site plan and a home page and site org that makes it easy to link multiple sites and direct interested traffic to the appropriate home base, then this becomes a good idea imo.

Well, sort of...except for the "operators" part. Only the developer (contributor) docs would be on spinnaker.dev. Ops'd still be on spinnaker.io.

@spinnakerbot remove-label stale

@spinnakerbot remove-label stale


(maint) Add a MAINTAINERS file

Hi @hlindberg @joshcooper @MikaelSmith @thallgren @branan @HAIL9000 @Iristyle @whopper @adrienthebo @johnduarte @er0ck:
Anticipating some possible questions:

This PR add a MAINTAINERS file to document who is maintaining this repo. The list of people started with the top 10 PR mergers in the last year, plus a little conversation from Michael and me here https://github.com/puppetlabs/kylo_scratchpad/pull/1/files#r76349506.
If the list seems wrong, let's feel free to edit it.
The format of the file is documented here: http://github.com/puppetlabs/maintainers
And I used https://rubygems.org/gems/maintainers to construct the file
I pushed the PR branch to the puppetlabs space (rather than mine) so that all parties can edit collaboratively as needed
Note that this is a public repo. The email and name fields are optional here. As a starting point, I pre-populated them with the publicly available names/emails available for all of us on github (but took bogus or non-puppet emails as an indication that you may not want to share your puppet.com email). Please feel free to edit your email and name fields for any reason.
This is just the second PR using this new MAINTAINERS format (because this repo gets more PRs than any other eng-maintained repo save ci-job-configs), and I'm sure there will be questions and prospects for improvement.

Thanks!

👍

:+1:

CLA signed by all contributors.

👍

:+1:

👍

Wait, why do Ethan and Adrien get away without having their emails listed? Can I too be part of this special club that cannot be held accountable?

Put up a new PR?

@branan I put in emails for people who had a valid at-puppet email address in their public github events stream (those two did not). But, the full name and the email address are both absolutely optional so please do put up a PR to remove your email.
Also, FYI I think that public event stream is populated by default from the .gitconfig from wherever you commit, so you might want to modify that as well.

I'm totally fine having an email posted - that algorithm makes sense, and I will attempt to add more emoticons to my jokes in the future

Hah! I may have gotten a little humor-impaired and was also erring on the side of wearing my Privacy Advocate hat :)

Yeah I've always been a little paranoid to have any real email affiliated with my GitHub account, given open source repos are easily cloned and scraped. Any little bit that I can do to prevent more spam ;)


Typo in the Doc

...Similarly, because "installdns has a default value of $False if you install a domain controller in an environment...
it's missing a closing double quotes.

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

ID: 3514f314-5a3b-df0a-2841-3639f54d1990
Version Independent ID: 64ffa657-61ee-ad60-614c-278cfcec0b84
Content: Install Active Directory Domain Services (Level 100)
Content Source: WindowsServerDocs/identity/ad-ds/deploy/Install-Active-Directory-Domain-Services--Level-100-.md
Product: windows-server
Technology: ad-ds
GitHub Login: @iainfoulds
Microsoft Alias: daveba

#assign:xelu86

Hey @HotCakeX,
Thanks again for contacting Microsoft. We value your feedback.
A documentation change has been made removing the quote and placing the hyphen for the cmdlet in question along with correcting the verbiage to maintain consistency. Changes will be live after the next business day.
We will now be closing this thread. Thank you and have a most pleasant day.
#please-close


Suggestion: Move imports to local scope

Due to how the current interface works, all possible dependencies are imported when importing SedProcessor from sed.
I propose we remove the linter for module level imports and import them in scope when necessary. This will reduce first time importing time from ~30 s to something more managable.

For me, it takes typically 10s max to load. As anyways all calibrators are loaded with the processor, I don't see that we would gain much.

It's about the same for me, except it's much longer on maxwell somehow.
But the main reason I suggested this is for when I am manually testing changes in code, it takes 10 s everytime, even if I load a different module such as config. This is because SedProcessor is loaded automatically and that loads all the subpackages not necessary for the submodule being tested/used. I've also frequently used the io feature standalone to save or load from tiff/h5 etc. so from a user perspective, I find that also useful.

Please go ahead and make a PR for this if you want.


LICENSE and COPYRIGHT are missing

Hello.  I don't see a license for this code.  Nor even a copyright.  That's probably a bug.  If it is a design choice, please mark it as such.

Hey @daveloyall , thanks reporting.
Just added the license :)


rke is changing ownership or permissions of certificates folder, breaking cis hardening.

What kind of request is this (question/bug/enhancement/feature request):
bug
Steps to reproduce (least amount of steps as possible):

existing cluster created with rke x.x.x running  1.14.5
upgrade using same cluster.yml to 1.17.4 (rke 1.0.6)

UID and GUID are specified in cluster yaml for etcd user
Result:
/etc/kubernetes/ssl ownership changes to root, with permissions 700.

Not sure if this is ignoring the GUID/UID set in cluster yaml and just going with the UID of the person executing rke up:
https://github.com/rancher/rke/blob/master/services/etcd.go#L735


Move constructBaseObj out of root.go

This code is deprecated (not used) and will be removed before 0.10


Add guide using bake-action with compose

A rough draft that hopefully makes sense, let me know what you think!
resolves #81

We have updated our documentation to build from a compose file with bake: https://docs.docker.com/build/customize/bake/compose-file/
As this action is still experimental and is subject to changes, we are not going to put any specific examples for now as we are working on improving the documentation about GitHub Actions on https://docs.docker.com.
Closing for now but thanks for your contrib! I keep you posted about the improvements.


PMID:25451933

premature ring contriction
"Surprisingly, contractile rings began to constrict earlier in 􏰀aip1 cells than wild type cells (Fig. 7, A and B, and Table 3), foreshortening the maturation period before constriction. Is this permature constriction"
Note that "As a result, ring constriction in 􏰀aip1 cells takes 􏰅 5 min less than in wild type cells (Table 3). Overall, cytokinesis was 􏰅16 min (24%) faster in 􏰀aip1 cells than wild type cells, because the maturation period was shorter and the rings constricted faster."
so it is premature, but increased rate...

duplicates #3863

duplicates #3863


Parsing metadata information directly from git repo (in the absence of checkout files)

added as the last resort when neither xccheckout nor xcscmblueprint file is found
parses information directly from the repo
caveat: bots created from this metadata cannot be edited without going corrupt (because I can't reproduce the same workspace hash identifier as Xcode and when you try to edit it, it gets corrupt on saving)

Fixes #186.

Result of Integration 1
Duration: 1 hour, 32 minutes and 57 seconds
Result: -1 error, failing state: internal-build-error

Result of Integration 2
Duration: 4 minutes and 38 seconds
Result: All 33 tests passed, but please fix 2 warnings.
Test Coverage: 23%.

This still uses checkout files when available, because then we get the correct workspace identifier (and bots created this way can be edited from Xcode). This just adds a fallback option for repos that don't have a checkout/blueprint file, so that they can still use Buildasaur.
It would be a nice improvement to find out how Xcode generates the workspace identifier, so that we can do the same and have all our bots easily editable from Xcode.


FIX interpolation code

closes https://github.com/mne-tools/mne-python/issues/5047

pushed a fix. LGTM now

thanks for the tweak @agramfort


overhaul data file handling

[ ] recover sensor-specific widgets
[ ] recover ms_wait
[ ] recover loop_time
[x] recover variables from hardware exposed
[x] correct units behavior
[ ] differential axes (centers, specifically)
[ ] Freerun after done
[ ] constants
[ ] live plotting

I have opened issues for the remaining points, the new LGTM alerts are for plotting stuff, primarily, so ignore for now


crashes cause bad chunks that fail to send

I had a power failure and upon restarting the server, this happened:
2017-07-18 18:05:27 +0000 [info]: adding match pattern="**" type="null"
2017-07-18 18:05:27 +0000 [info]: adding source type="forward"
2017-07-18 18:05:27 +0000 [info]: #0 starting fluentd worker pid=20 ppid=16 worker=0
2017-07-18 18:05:31 +0000 [info]: #0 delayed_commit_timeout is overwritten by ack_response_timeout
2017-07-18 18:05:31 +0000 [info]: #0 [input1] listening port port=24224 bind="<IP_ADDRESS>"
2017-07-18 18:05:31 +0000 [info]: #0 fluentd worker is now running worker=0
2017-07-18 22:25:08 +0000 [warn]: #0 failed to flush the buffer. retry_time=0 next_retry_seconds=2017-07-18 22:25:09 +0000 chunk="5541970ab3b8c59d8f012cd3222cc93c" error_class=TypeError error="can't dup NilClass"
  2017-07-18 22:25:08 +0000 [warn]: #0 /usr/lib/ruby/gems/2.3.0/gems/fluentd-0.14.17/lib/fluent/plugin/out_forward.rb:614:in `dup'
  2017-07-18 22:25:08 +0000 [warn]: #0 /usr/lib/ruby/gems/2.3.0/gems/fluentd-0.14.17/lib/fluent/plugin/out_forward.rb:614:in `send_data_actual'
  2017-07-18 22:25:08 +0000 [warn]: #0 /usr/lib/ruby/gems/2.3.0/gems/fluentd-0.14.17/lib/fluent/plugin/out_forward.rb:631:in `send_data'
  2017-07-18 22:25:08 +0000 [warn]: #0 /usr/lib/ruby/gems/2.3.0/gems/fluentd-0.14.17/lib/fluent/plugin/out_forward.rb:285:in `block in try_write'
  2017-07-18 22:25:08 +0000 [warn]: #0 /usr/lib/ruby/gems/2.3.0/gems/fluentd-0.14.17/lib/fluent/plugin/out_forward.rb:304:in `block in select_a_healthy_node'
  2017-07-18 22:25:08 +0000 [warn]: #0 /usr/lib/ruby/gems/2.3.0/gems/fluentd-0.14.17/lib/fluent/plugin/out_forward.rb:298:in `times'
  2017-07-18 22:25:08 +0000 [warn]: #0 /usr/lib/ruby/gems/2.3.0/gems/fluentd-0.14.17/lib/fluent/plugin/out_forward.rb:298:in `select_a_healthy_node'
  2017-07-18 22:25:08 +0000 [warn]: #0 /usr/lib/ruby/gems/2.3.0/gems/fluentd-0.14.17/lib/fluent/plugin/out_forward.rb:285:in `try_write'
  2017-07-18 22:25:08 +0000 [warn]: #0 /usr/lib/ruby/gems/2.3.0/gems/fluentd-0.14.17/lib/fluent/plugin/output.rb:1034:in `try_flush'
  2017-07-18 22:25:08 +0000 [warn]: #0 /usr/lib/ruby/gems/2.3.0/gems/fluentd-0.14.17/lib/fluent/plugin/output.rb:1268:in `flush_thread_run'
  2017-07-18 22:25:08 +0000 [warn]: #0 /usr/lib/ruby/gems/2.3.0/gems/fluentd-0.14.17/lib/fluent/plugin/output.rb:420:in `block (2 levels) in start'
  2017-07-18 22:25:08 +0000 [warn]: #0 /usr/lib/ruby/gems/2.3.0/gems/fluentd-0.14.17/lib/fluent/plugin_helper/thread.rb:78:in `block in thread_create'
2017-07-18 22:25:09 +0000 [warn]: #0 retry succeeded. chunk_id="5549b016b0815316776e7f21d3a793d8"
2017-07-18 22:25:09 +0000 [warn]: #0 failed to flush the buffer. retry_time=0 next_retry_seconds=2017-07-18 22:25:10 +0000 chunk="5541970ab3b8c59d8f012cd3222cc93c" error_class=TypeError error="can't dup NilClass"
  2017-07-18 22:25:09 +0000 [warn]: #0 suppressed same stacktrace
2017-07-18 22:25:10 +0000 [warn]: #0 failed to flush the buffer. retry_time=0 next_retry_seconds=2017-07-18 22:25:10 +0000 chunk="5541970ab3b8c59d8f012cd3222cc93c" error_class=TypeError error="can't dup NilClass"
  2017-07-18 22:25:10 +0000 [warn]: #0 suppressed same stacktrace
2017-07-18 22:25:11 +0000 [warn]: #0 failed to flush the buffer. retry_time=1 next_retry_seconds=2017-07-18 22:25:11 +0000 chunk="5541970ab3b8c59d8f012cd3222cc93c" error_class=TypeError error="can't dup NilClass"
  2017-07-18 22:25:11 +0000 [warn]: #0 suppressed same stacktrace
2017-07-18 22:25:13 +0000 [warn]: #0 failed to flush the buffer. retry_time=2 next_retry_seconds=2017-07-18 22:25:13 +0000 chunk="5541970ab3b8c59d8f012cd3222cc93c" error_class=TypeError error="can't dup NilClass"
  2017-07-18 22:25:13 +0000 [warn]: #0 suppressed same stacktrace
2017-07-18 22:25:17 +0000 [warn]: #0 failed to flush the buffer. retry_time=3 next_retry_seconds=2017-07-18 22:25:17 +0000 chunk="5541970ab3b8c59d8f012cd3222cc93c" error_class=TypeError error="can't dup NilClass"
  2017-07-18 22:25:17 +0000 [warn]: #0 suppressed same stacktrace
2017-07-18 22:25:25 +0000 [warn]: #0 failed to flush the buffer. retry_time=4 next_retry_seconds=2017-07-18 22:25:25 +0000 chunk="5541970ab3b8c59d8f012cd3222cc93c" error_class=TypeError error="can't dup NilClass"
  2017-07-18 22:25:25 +0000 [warn]: #0 suppressed same stacktrace
2017-07-18 22:25:41 +0000 [warn]: #0 failed to flush the buffer. retry_time=5 next_retry_seconds=2017-07-18 22:25:41 +0000 chunk="5541970ab3b8c59d8f012cd3222cc93c" error_class=TypeError error="can't dup NilClass"
  2017-07-18 22:25:41 +0000 [warn]: #0 suppressed same stacktrace
2017-07-18 22:26:11 +0000 [warn]: #0 failed to flush the buffer. retry_time=6 next_retry_seconds=2017-07-18 22:26:11 +0000 chunk="5541970ab3b8c59d8f012cd3222cc93c" error_class=TypeError error="can't dup NilClass"
  2017-07-18 22:26:11 +0000 [warn]: #0 suppressed same stacktrace
2017-07-18 22:27:09 +0000 [warn]: #0 failed to flush the buffer. retry_time=7 next_retry_seconds=2017-07-18 22:27:09 +0000 chunk="5541970ab3b8c59d8f012cd3222cc93c" error_class=TypeError error="can't dup NilClass"
  2017-07-18 22:27:09 +0000 [warn]: #0 suppressed same stacktrace
2017-07-18 22:29:15 +0000 [warn]: #0 failed to flush the buffer. retry_time=8 next_retry_seconds=2017-07-18 22:29:15 +0000 chunk="5541970ab3b8c59d8f012cd3222cc93c" error_class=TypeError error="can't dup NilClass"
  2017-07-18 22:29:15 +0000 [warn]: #0 suppressed same stacktrace
2017-07-18 22:33:24 +0000 [warn]: #0 failed to flush the buffer. retry_time=9 next_retry_seconds=2017-07-18 22:33:24 +0000 chunk="5541970ab3b8c59d8f012cd3222cc93c" error_class=TypeError error="can't dup NilClass"
  2017-07-18 22:33:24 +0000 [warn]: #0 suppressed same stacktrace

Given the fact that this hasn't happened in the last month, and the chunk that it's referencing buffer.q5541970ab3b8c59d8f012cd3222cc93c.log was created right around the time the power failed, I think that it is somehow corrupted by an incomplete write. This is a problem because the error message makes no sense and crashes shouldn't cause corruption / data loss for things that are already written to the disk.
It doesn't even start sending the other chunks that aren't corrupted, I need to shut down fluentd, remove the bad chunk, and restart fluentd to get it to continue sending.
I can send you the bad chunk and meta file if you want.

around the time the power failed

Does this mean fluentd running server hit unexpected machine shutdown, right?
Hmm... in such cases, automatic recover is hard, so need to check files and corrupted chunks should be routed to other place, e.g. local file.
Is the corrupted file meta data or actual chunk file?

I don't know if it's the metadata file or the actual chunk file. However, it shouldn't be too hard to just omit whatever incomplete data was written to the end of the file, right?
I don't expect fluentd to save data that was submitted between the last time data was successfully flushed to the file buffer and the crash. However, it shouldn't cause the entire chunk to fail and the error/warning that it prints when it encounters bad data should be better... If I didn't know about that power failure I would be really confused.

I got this error again after running out of disk space on a node.

I'm experiencing this issue as well.  It's occurring on fluentd restart, not a machine crash.  It doesn't happen consistently, but is happening frequently.

@mchesler It means you hit disk space issue and it causes broken chunk?
BTW, I will add backup feature to move bad chunks to other place.

@repeatedly None of the machines where this has happened to me have com anywhere close to filling their disks, they’ve simply had the fluentd process restarted.

Experiencing the same, the fluent processes were OOMKilled before. @repeatedly did you had any chance to work on the "move bad chunks to other place" feature or could you point me the code handling this?

I am using Elasticsearch plugin to send data to the ES with file buffer. In case of any exception in indexing the document to elasticsearch, the chunk is retained for retry, but this chunk can never be successful.  Because of multiple retry attempts happening, the other chunks are not processed causing consistency in data flow.
Is there a way to clear or move the bad chunk?

+1 we experience the exact same issues as @kumaravel29 . The problem is actually so pervasive that we're in the process of ripping td-agent out of our infrastructure.

@kumaravel29 try using tags: https://github.com/uken/fluent-plugin-elasticsearch#retry_tag

FYI: since v1.2.0, https://github.com/fluent/fluentd/blob/master/CHANGELOG.md#release-v120---20180430
output: Backup for broken chunks is supported. It may help you.


Change server msg so as to not look like link

Sorry, not sure why there are three commits

Is this still a possible merge?

Thanks.


Support GCE jwt validation

What this PR does / why we need it:
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Release note:

@wattli: Adding do-not-merge/release-note-label-needed because the release note process has not been followed.

One of the following labels is required "release-note", "release-note-action-required", or "release-note-none".
Please see: https://github.com/kubernetes/community/blob/master/contributors/devel/pull-requests.md#write-release-notes-if-needed.
Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@wattli: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
da067771d6c3378b90cca5a95c60f505bf7edd89
link
/test istio-presubmit

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

The failed presubmit seems unrelated

/lgtm
/approve

/lgtm

@wattli: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
c3b149744ea032372ffd732f192ac6d88cd05666
link
/test istio-pilot-e2e

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

/retest

@wattli: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
c3b149744ea032372ffd732f192ac6d88cd05666
link
/test istio-pilot-e2e

prow/istio-presubmit.sh
4d422af31762e58e830e491a4f80b2666497c70b
link
/test istio-presubmit

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

@wattli: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
c3b149744ea032372ffd732f192ac6d88cd05666
link
/test istio-pilot-e2e

prow/istio-presubmit.sh
c2656984e25a6aeb8962c4a2b7bceaf3f910f283
link
/test istio-presubmit

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

@wattli: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
c3b149744ea032372ffd732f192ac6d88cd05666
link
/test istio-pilot-e2e

prow/istio-presubmit.sh
1e53751ff7fe066669ab33e75ecc5b7f45ec2417
link
/test istio-presubmit

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

@wattli: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
c3b149744ea032372ffd732f192ac6d88cd05666
link
/test istio-pilot-e2e

prow/e2e-smoke.sh
fa0180dac0a23a1bf8a3b7a8cfa7103b8ab5c2e5
link
/test e2e-smoke

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

@wattli: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-smoke.sh
834be8b6f11f319de2ab60930246a7fd8e4c19b2
link
/test e2e-smoke

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

/lgtm

@wattli: you cannot LGTM your own PR.

In response to this:

/lgtm

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

/lgtm

/lgtm


Bag contents show on screen when potion used in m+

Addon Version
v0.1.5
World of Warcraft Version
Retail
Describe the bug
When running a Mythic + dungeon and using a potion from the hot bar the bag screen bugs and shows a large version of the bag on the screen regardless of interface being open. This only happens when in combat. It does not seem to happen in combat in other locations. Attached image shows what I am talking about.
Errors grabed from bugsack:

4x ..FrameXML/ObjectAPI/ContinuableContainer.lua:85: script ran too long
[string "@FrameXML/ObjectAPI/ContinuableContainer.lua"]:85: in function <..FrameXML/ObjectAPI/ContinuableContainer.lua:75>
[string "=(tail call)"]: ?
[string "@BetterBags/data/items.lua"]:166: in function ProcessContainer' [string "@BetterBags/data/items.lua"]:160: in function RefreshBackpack'
[string "@BetterBags/data/items.lua"]:99: in function RefreshAll' [string "@BetterBags/data/items.lua"]:64: in function cb'
[string "@BetterBags/core/events.lua"]:113: in function <BetterBags/core/events.lua:108>
Locals:
Skipped (In Encounter)

4x ...Ons/Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua:20: script ran too long
[string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:20: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:15>
[string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:54: in function SendMessage' [string "@BetterBags/core/events.lua"]:129: in function SendMessage'
[string "@BetterBags/data/items.lua"]:172: in function <BetterBags/data/items.lua:166>
[string "=[C]"]: in function xpcall' [string "@FrameXML/ObjectAPI/ContinuableContainer.lua"]:83: in function <..FrameXML/ObjectAPI/ContinuableContainer.lua:75> [string "=(tail call)"]: ? [string "@BetterBags/data/items.lua"]:166: in function ProcessContainer'
[string "@BetterBags/data/items.lua"]:160: in function RefreshBackpack' [string "@BetterBags/data/items.lua"]:99: in function RefreshAll'
[string "@BetterBags/data/items.lua"]:64: in function `cb'
[string "@BetterBags/core/events.lua"]:113: in function <BetterBags/core/events.lua:108>
Locals:
Skipped (In Encounter)

3x BetterBags/frames/column.lua:61: script ran too long
[string "@BetterBags/frames/column.lua"]:61: in function RemoveAll' [string "@BetterBags/frames/grid.lua"]:147: in function Draw'
[string "@BetterBags/views/gridview.lua"]:186: in function Render' [string "@BetterBags/frames/bag.lua"]:204: in function Draw'
[string "@BetterBags/core/init.lua"]:139: in function cb' [string "@BetterBags/core/events.lua"]:45: in function <BetterBags/core/events.lua:40> [string "=[C]"]: ? [string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:19: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:15> [string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:54: in function SendMessage'
[string "@BetterBags/core/events.lua"]:129: in function SendMessage' [string "@BetterBags/data/items.lua"]:172: in function <BetterBags/data/items.lua:166> [string "=[C]"]: in function xpcall'
[string "@FrameXML/ObjectAPI/ContinuableContainer.lua"]:83: in function <..FrameXML/ObjectAPI/ContinuableContainer.lua:75>
[string "=(tail call)"]: ?
[string "@BetterBags/data/items.lua"]:166: in function ProcessContainer' [string "@BetterBags/data/items.lua"]:160: in function RefreshBackpack'
[string "@BetterBags/data/items.lua"]:99: in function RefreshAll' [string "@BetterBags/data/items.lua"]:64: in function cb'
[string "@BetterBags/core/events.lua"]:113: in function <BetterBags/core/events.lua:108>
Locals:
Skipped (In Encounter)\

1x BetterBags/frames/column.lua:30: script ran too long
[string "@BetterBags/frames/column.lua"]:30: in function AddCell' [string "@BetterBags/frames/grid.lua"]:183: in function Draw'
[string "@BetterBags/views/gridview.lua"]:186: in function Render' [string "@BetterBags/frames/bag.lua"]:204: in function Draw'
[string "@BetterBags/core/init.lua"]:139: in function cb' [string "@BetterBags/core/events.lua"]:45: in function <BetterBags/core/events.lua:40> [string "=[C]"]: ? [string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:19: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:15> [string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:54: in function SendMessage'
[string "@BetterBags/core/events.lua"]:129: in function SendMessage' [string "@BetterBags/data/items.lua"]:172: in function <BetterBags/data/items.lua:166> [string "=[C]"]: in function xpcall'
[string "@FrameXML/ObjectAPI/ContinuableContainer.lua"]:83: in function <..FrameXML/ObjectAPI/ContinuableContainer.lua:75>
[string "=(tail call)"]: ?
[string "@BetterBags/data/items.lua"]:166: in function ProcessContainer' [string "@BetterBags/data/items.lua"]:160: in function RefreshBackpack'
[string "@BetterBags/data/items.lua"]:99: in function RefreshAll' [string "@BetterBags/data/items.lua"]:64: in function cb'
[string "@BetterBags/core/events.lua"]:113: in function <BetterBags/core/events.lua:108>
Locals:
Skipped (In Encounter)

Steps to reproduce

Run  23 BRH or 22 TOTT as a resto druid (could happen in other keys as well)
Use Potion using keybind from hot key.

Duplicate of #128 -- actively working on this as priority 1.


Nacos discovery client get service do not have right behavior

Which Component
Nacos Discovery
Describe the bug
Nacos discovery client get service do not have right behavior
To Reproduce
Steps to reproduce the behavior:

application bootstrap normal.
core DNS in k8s cluster exception occurred, can not resolve Nacos service host.
k8s liveness probe triggered the action of Nacos get service
ip util checked the ipv4 address is incorrect, and throw exception.
NacosDiscoveryClient eat up this exception, and return empty list, health check is ok.
core DNS back to normal, but in application container the Nacos hostname can not resolve.
health check always ok, k8s will not restart container.

Expected behavior
when Nacos ip check failed, throw exception to health check.
Screenshots
detail exception

Eat the exception code

it's a bug in nacos-client 1.4.1. please upgrade to version 1.4.2.

double confirm this, i don't think this code in nacos client.
i upgrade to version com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.2.6.RELEASE, and in
com.alibaba.cloud.nacos.discovery.NacosDiscoveryClient

get service name from nacos server fail, but health checker thought it was success.

it's a bug in nacos-client 1.4.1. please upgrade to version 1.4.2.

the point is spring cloud discovery health checker can not perceive exception from com.alibaba.cloud.nacos.discovery.NacosDiscoveryClient


fix: 'Numberish' type used for width/height didn't allow %

What is it?

[ ] Feature / enhancement
[ ] Bug
[X] Docs / tests / types / typos

Description
The Numberish type which was used for heights and widths didn't allow for any % values like "100%"
Use cases and why
The following should support the percentage value passed

Checklist:

[X] My code follows the developer guidelines of this project
[X] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] Added new tests to cover the fix / functionality

i dont think % is allowed:
Use both width and height to set the intrinsic size of the image, allowing it to take up space before it loads, to mitigate content layout shifts.
width
The intrinsic width of the image in pixels. Must be an integer without a unit.
height
The intrinsic height of the image, in pixels. Must be an integer without a unit.

Ken's example is an iframe on MDN it says this:

height
The height of the frame in CSS pixels. Default is 150.

It doesn't explicitly say "without a unit", but I think it's implied here as well.

Maybe we can revert to string | number to anything other than img


Why can I not ignore .well-known/dat?

Why is this file a hardcoded exception?
It makes no sense distributing this specific file over Dat and doesn’t belong in Dat archives.

Can you say more about why it doesn't make sense to distribute this file over Dat? @pfrazee may have a bit more perspective here wrt Beaker.

The file is used to auto-discover a Dat archive/URL from a HTTPS origin/URL. You never need to discover a Dat archive’s own URL from inside the archive since your client obviously already knows it as evidenced by it having already downloaded the .well-known/dat file using the Dat URL. The file is only useful over HTTPS so I really don’t get why it can’t be excluded from Dat archives.


HTTPCORE-615: Implement HTTP-based cache serializer-deserializer.

See https://issues.apache.org/jira/browse/HTTPCORE-615

@scottgifford Looks OK to me. I will merge the PR if there are no objections.
What I do not understand is why we need HttpByteArrayCacheEntrySerializerTestUtils. Could you please fold it into TestHttpByteArrayCacheEntrySerializer?

@scottgifford Looks OK to me. I will merge the PR if there are no objections.
What I do not understand is why we need HttpByteArrayCacheEntrySerializerTestUtils. Could you please fold it into TestHttpByteArrayCacheEntrySerializer?

OK!  I re-read the PR this morning and pushed a few small cleanups, they can be squashed on merge, or I can push a new branch and squash them there (I don't know of a way to squash them myself without creating a new branch).
My thoughts with putting the HttpByteArrayCacheEntrySerializerTestUtils into its own file were twofold.  First, there is quite a bit of test infrastructure with this, and putting it into a separate file made it easy to read the tests to see what's being tested, and the utilities to see how the tests are implemented; if I move the test utilities into the tests, it will be almost 800 lines, which is a pretty big file to  grok IMO.  Second my benchmark program uses the test utilities, so it's convenient to have them in a separate file so a developer can drop in the benchmark when they want to think about the performance of this.  All that said, this is only a mild preference for me, and if you would like the files merged together I will happily make the change.


Sign image by GPG key for integrity concerns

Desired Behavior
The command line interface "kaniko" should support a new flag --sign-by <id> to :

sign image just after building it
generate detached signature & push it to a remote sigstore

Benefits
Benefits are:

Integrity
Security
One-stop-shop with kaniko for build process of images

Is this the right repository for this issue? I am not sure it applies to jenkins-spock.


Add option to disable collecting counter metrics for paths ending in forward slash

In most (possibly all) REST applications, the following two URL's hit the same endpoint: http://localhost:8080/myapp/v1/persons and http://localhost:8080/myapp/v1/persons/. However, the counter metrics generated for the two are distinct counter.status.200.v1.persons.count and counter.status.200.v1.persons.root.count. There should be a way to prevent the .root.count metric from being created. I'm using the GraphiteReporter in my app.

I think the reason it get's registered twice has less to do with DW and more to do with how the HTTP spec works.  When you leave off the trailing slash, most web servers will do a redirect to the same URL with the trailing slash.
The reason I think this happens is that from a web (REST) point of view http://mydomain.com/somevalue
maps to an representation of "somevalue" while http://mydomain.com/somevalue/ maps to a listing of "somevalue".
While I see where you're coming from, I think our DevOps guys have worked around this by first making sure our calls to REST endpoints have the proper slashes and secondly by tweaking the query that they use to visualize data from Graphite/Graphana.
Hope this helps!

Closing as this is related to https://github.com/dropwizard/metrics


Install features attempts to install previously generated features

To reproduce, use a project similar to the basic-dev-project in dev-it that requires jaxrs and servlet features, but does not specify any umbrella dependencies in the POM.
Running dev mode to start with mvn liberty:dev should generate jaxrs-2.1 and servlet-4.0 in the generated-features.xml, as shown in the output below:
[INFO] Generated the following features: [servlet-4.0, batch-1.0, jaxrs-2.1]

Then, add webProfile-7.0 to server.xml or any other server configuration file. The following are snippets from the dev mode console:
[INFO] Generating optimized features list...
[INFO] Running liberty:generate-features
[INFO] Parsing the server file C:\Users\TREVORCrawford\Git\modified-demo-devmode\src\main\liberty\config\server.xml for features and includes.
[INFO] Parsing the server file C:\Users\TREVORCrawford\Git\modified-demo-devmode\src\main\liberty\config\extraFeatures.xml for features and includes.
[INFO] Features were included for file extraFeatures.xml
[INFO] Generated the following features: [servlet-3.1, batch-1.0, jaxrs-2.0]
...
[INFO] Configuration features have been added
[INFO] Running liberty:install-feature
...
[INFO] Installing features: [webprofile-7.0, servlet-4.0, batch-1.0, jaxrs-2.1]

[ERROR] Failed to install features from configuration file
org.apache.maven.plugin.MojoExecutionException: A feature conflict error occurred while installing features: [webprofile-7.0, servlet-4.0, batch-1.0, jaxrs-2.1] ...

Binary scanner generates lower versions of the jaxrs and servlet features to be compatible with webProfile-7.0, which is the correct behaviour if no umbrella dependency is specified. However, it appears the install-feature goal is retrieving an old version of the generated features list and runs into a feature conflict error.
This issue appears to sort itself out the next time generate features is run (if the feature list has not been modified):
[INFO] Generated the following features: [servlet-3.1, batch-1.0, jaxrs-2.0]
...
[INFO] Configuration features have been added
[INFO] Running liberty:install-feature
...
[INFO] Installing features: [webprofile-7.0, servlet-3.1, batch-1.0, jaxrs-2.0]

The root of this issue seems to be the case where a feature is removed OR version is changed (dev mode views as a feature removal and feature addition) in ANY configuration xml file (does not apply to just the generate-features case, although we are seeing this bug more now because of the continuous changes to the generated-features.xml file).
To reproduce

Start dev mode mvn liberty:dev -DgenerateFeatures=false with servlet-3.1 in the server.xml
Modify the server.xml so that servlet-3.1 becomes servlet-4.0
Install feature fails due to conflict between servlet-3.1 and servlet-4.0:

[INFO] Copied file: /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/src/main/liberty/config/server.xml to: /private/var/folders/gr/3p093xzj0f9fj9psx80z_zw00000gn/T/tempConfig14803358266236911421/server.xml
[INFO] Parsing the server file /private/var/folders/gr/3p093xzj0f9fj9psx80z_zw00000gn/T/tempConfig14803358266236911421/server.xml for features and includes.
[INFO] Parsing the server file /private/var/folders/gr/3p093xzj0f9fj9psx80z_zw00000gn/T/tempConfig14803358266236911421/extraFeatures.xml for features and includes.
[INFO] Parsing the server file /private/var/folders/gr/3p093xzj0f9fj9psx80z_zw00000gn/T/tempConfig14803358266236911421/configDropins/overrides/generated-features.xml for features and includes.
[INFO] Configuration features have been removed
[INFO] Configuration features have been added
[INFO] Running liberty:install-feature
[INFO] CWWKM2102I: Using artifact based assembly archive : io.openliberty:openliberty-kernel:null:<IP_ADDRESS>:zip.
[INFO] CWWKM2102I: Using installDirectory : /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp.
[INFO] CWWKM2102I: Using serverName : defaultServer.
[INFO] CWWKM2102I: Using serverDirectory : /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp/usr/servers/defaultServer.
[INFO] Parsing the server file /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp/usr/servers/defaultServer/server.xml for features and includes.
[INFO] Parsing the server file /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp/usr/servers/defaultServer/extraFeatures.xml for features and includes.
[INFO] Parsing the server file /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp/usr/servers/defaultServer/configDropins/overrides/generated-features.xml for features and includes.
[INFO] Installing features: [servlet-4.0, servlet-3.1]

[ERROR] Failed to install features from configuration file
org.apache.maven.plugin.MojoExecutionException: A feature conflict error occurred while installing features: [servlet-4.0, servlet-3.1]: CWWKF1405E: The servlet-4.0 and servlet-3.1 singleton features are incompatible with each other and they cannot be installed at the same time.

    at org.codehaus.mojo.pluginsupport.MojoSupport.execute (MojoSupport.java:137)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.twdata.maven.mojoexecutor.MojoExecutor.executeMojo (MojoExecutor.java:120)
    at io.openliberty.tools.maven.server.StartDebugMojoSupport.runLibertyMojo (StartDebugMojoSupport.java:354)
    at io.openliberty.tools.maven.server.StartDebugMojoSupport.runLibertyMojoInstallFeature (StartDebugMojoSupport.java:339)
    at io.openliberty.tools.maven.server.DevMojo.runLibertyMojoInstallFeature (DevMojo.java:1843)
    at io.openliberty.tools.maven.server.DevMojo$DevMojoUtil.installFeatures (DevMojo.java:991)
    at io.openliberty.tools.common.plugins.util.DevUtil.installFeaturesToTempDir (DevUtil.java:4397)
    at io.openliberty.tools.common.plugins.util.DevUtil.processFileChanges (DevUtil.java:4079)
    at io.openliberty.tools.common.plugins.util.DevUtil.access$1500 (DevUtil.java:97)
    at io.openliberty.tools.common.plugins.util.DevUtil$8.onAlteration (DevUtil.java:3284)
    at io.openliberty.tools.common.plugins.util.DevUtil$8.onFileChange (DevUtil.java:3255)
    at org.apache.commons.io.monitor.FileAlterationObserver.doMatch (FileAlterationObserver.java:412)
    at org.apache.commons.io.monitor.FileAlterationObserver.checkAndNotify (FileAlterationObserver.java:335)
    at org.apache.commons.io.monitor.FileAlterationObserver.checkAndNotify (FileAlterationObserver.java:305)
    at io.openliberty.tools.common.plugins.util.DevUtil.watchFiles (DevUtil.java:3076)
    at io.openliberty.tools.maven.server.DevMojo.doExecute (DevMojo.java:1372)
    at org.codehaus.mojo.pluginsupport.MojoSupport.execute (MojoSupport.java:122)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: io.openliberty.tools.common.plugins.util.PluginExecutionException: A feature conflict error occurred while installing features: [servlet-4.0, servlet-3.1]: CWWKF1405E: The servlet-4.0 and servlet-3.1 singleton features are incompatible with each other and they cannot be installed at the same time.

    at io.openliberty.tools.common.plugins.util.InstallFeatureUtil.installFeatures (InstallFeatureUtil.java:607)
    at io.openliberty.tools.maven.server.InstallFeatureMojo.installFeatures (InstallFeatureMojo.java:87)
    at io.openliberty.tools.maven.server.InstallFeatureMojo.doExecute (InstallFeatureMojo.java:58)
    at org.codehaus.mojo.pluginsupport.MojoSupport.execute (MojoSupport.java:122)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.twdata.maven.mojoexecutor.MojoExecutor.executeMojo (MojoExecutor.java:120)
    at io.openliberty.tools.maven.server.StartDebugMojoSupport.runLibertyMojo (StartDebugMojoSupport.java:354)
    at io.openliberty.tools.maven.server.StartDebugMojoSupport.runLibertyMojoInstallFeature (StartDebugMojoSupport.java:339)
    at io.openliberty.tools.maven.server.DevMojo.runLibertyMojoInstallFeature (DevMojo.java:1843)
    at io.openliberty.tools.maven.server.DevMojo$DevMojoUtil.installFeatures (DevMojo.java:991)
    at io.openliberty.tools.common.plugins.util.DevUtil.installFeaturesToTempDir (DevUtil.java:4397)
    at io.openliberty.tools.common.plugins.util.DevUtil.processFileChanges (DevUtil.java:4079)
    at io.openliberty.tools.common.plugins.util.DevUtil.access$1500 (DevUtil.java:97)
    at io.openliberty.tools.common.plugins.util.DevUtil$8.onAlteration (DevUtil.java:3284)
    at io.openliberty.tools.common.plugins.util.DevUtil$8.onFileChange (DevUtil.java:3255)
    at org.apache.commons.io.monitor.FileAlterationObserver.doMatch (FileAlterationObserver.java:412)
    at org.apache.commons.io.monitor.FileAlterationObserver.checkAndNotify (FileAlterationObserver.java:335)
    at org.apache.commons.io.monitor.FileAlterationObserver.checkAndNotify (FileAlterationObserver.java:305)
    at io.openliberty.tools.common.plugins.util.DevUtil.watchFiles (DevUtil.java:3076)
    at io.openliberty.tools.maven.server.DevMojo.doExecute (DevMojo.java:1372)
    at org.codehaus.mojo.pluginsupport.MojoSupport.execute (MojoSupport.java:122)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[INFO] Copied file: /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/src/main/liberty/config/server.xml to: /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp/usr/servers/defaultServer/server.xml
[INFO] [AUDIT   ] CWWKG0016I: Starting server configuration update.
[INFO] [AUDIT   ] CWWKG0028A: Processing included configuration resource: /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp/usr/servers/defaultServer/extraFeatures.xml
[INFO] [AUDIT   ] CWWKG0093A: Processing configuration drop-ins resource: /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp/usr/servers/defaultServer/configDropins/overrides/generated-features.xml
[INFO] [ERROR   ] CWWKF0001E: A feature definition could not be found for servlet-4.0
[INFO] [AUDIT   ] CWWKT0017I: Web application removed (default_host): http://<IP_ADDRESS>:9080/dev-sample-proj-1.0-SNAPSHOT/
[INFO] [AUDIT   ] CWWKZ0009I: The application dev-sample-proj-1.0-SNAPSHOT has stopped successfully.
[INFO] [AUDIT   ] CWWKG0017I: The server configuration was successfully updated in 0.486 seconds.
[INFO] [AUDIT   ] CWWKF0013I: The server removed the following features: [servlet-3.1].
[INFO] [AUDIT   ] CWWKF0008I: Feature update completed in 0.473 seconds

Save the server.xml file again, all works as expected:

[INFO] Copied file: /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/src/main/liberty/config/server.xml to: /private/var/folders/gr/3p093xzj0f9fj9psx80z_zw00000gn/T/tempConfig6685235736575724630/server.xml
[INFO] Parsing the server file /private/var/folders/gr/3p093xzj0f9fj9psx80z_zw00000gn/T/tempConfig6685235736575724630/server.xml for features and includes.
[INFO] Parsing the server file /private/var/folders/gr/3p093xzj0f9fj9psx80z_zw00000gn/T/tempConfig6685235736575724630/extraFeatures.xml for features and includes.
[INFO] Parsing the server file /private/var/folders/gr/3p093xzj0f9fj9psx80z_zw00000gn/T/tempConfig6685235736575724630/configDropins/overrides/generated-features.xml for features and includes.
[INFO] Configuration features have been added
[INFO] Running liberty:install-feature
[INFO] CWWKM2102I: Using artifact based assembly archive : io.openliberty:openliberty-kernel:null:<IP_ADDRESS>:zip.
[INFO] CWWKM2102I: Using installDirectory : /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp.
[INFO] CWWKM2102I: Using serverName : defaultServer.
[INFO] CWWKM2102I: Using serverDirectory : /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp/usr/servers/defaultServer.
[INFO] Parsing the server file /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp/usr/servers/defaultServer/server.xml for features and includes.
[INFO] Parsing the server file /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp/usr/servers/defaultServer/extraFeatures.xml for features and includes.
[INFO] Parsing the server file /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp/usr/servers/defaultServer/configDropins/overrides/generated-features.xml for features and includes.
[INFO] Installing features: [servlet-4.0]

[INFO] Product validation completed successfully.
[INFO] The following features have been installed: servlet-4.0
[INFO] Copied file: /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/src/main/liberty/config/server.xml to: /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp/usr/servers/defaultServer/server.xml
[INFO] [AUDIT   ] CWWKG0016I: Starting server configuration update.
[INFO] [AUDIT   ] CWWKG0028A: Processing included configuration resource: /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp/usr/servers/defaultServer/extraFeatures.xml
[INFO] [AUDIT   ] CWWKG0093A: Processing configuration drop-ins resource: /Users/kathrynkodama/devex/featureGeneration/basic-dev-project/target/liberty/wlp/usr/servers/defaultServer/configDropins/overrides/generated-features.xml
[INFO] [AUDIT   ] CWWKG0018I: The server configuration was not updated. No functional changes were detected.

Dev mode is running. Add a Java file:
/private/tmp/basic-dev/src/main/java/com/demo/SystemHealth.java:4: error: package org.eclipse.microprofile.health does not exist
import org.eclipse.microprofile.health.Health;
                                      ^
etc...

Add a dependency to pom.xml. As soon as Save is executed this runs:
[INFO] Running liberty:generate-features
...
[INFO] Running liberty:deploy
...

Next recompile is attempted and config files are copied. Liberty updates server configuration.

Let us consider if we should enhance install-feature to handle what is appropriate for dev mode.

Let us consider if we should enhance install-feature to handle what is appropriate for dev mode.

Possible enhancements to install-feature will be:

install-feature accepts a complete list of features and installs them (without searching the server dir in target for any additional xml files that may contain features). Dev mode will pass the complete list of features when it detects server features have been added/removed/modified.
install-feature accepts a directory and will only search the directory passed for possible features to install. Dev mode will pass the temporary server directory it creates (which will be the most up-to-date) before calling install-feature.

Enhancement 2 will be relatively simple to implement by adding a new parameter to install-feature and overriding the serverDirectory with the new parameter's value.


Adding test to make sure that http2 transport gets cleaned up

Test to detect bugs detected in #25321 where the transport doesn't get cleaned up until shutdown.
@drfloob As discussed on chat

Thanks for the review, AJ!


EF generates incorrect SQL

As mentioned in the closed issue #147.
That was not a question on how to use EF.
I think it was a bug. EF should not generate syntactically incorrect SQL in any case.

@pc-lover, I didn't say it's not a bug - if incorrect SQL gets generated it's definitely a bug.
It's just 99% not an Npgsql bug, but rather an EF Core bug. Did you open an issue with them, so that someone can take a look?

You're right. I've just tested using SQL Server and still got the same result. I just opened an issue in their repo: https://github.com/aspnet/EntityFramework/issues/7666.

OK, thanks for testing. I'll close this for now - whatever fix they do in EF Core will also fix it for Npgsql. If not, we'll revisit then.


2.0: Unit Test failure on Jenkins

15:09:38 com.couchbase.litecore.C4QueryTest > testDBQueryBindings[emulator-5556 - 7.0] FAILED
15:09:38 Test failed to run to completion. Reason: 'Instrumentation run failed due to 'Process crashed.''. Check device logcat for details
15:09:38 Tests on emulator-5556 - 7.0 failed: Instrumentation run failed due to 'Process crashed.'
15:10:11
15:10:11 com.couchbase.litecore.C4QueryTest > testDBQueryGrouped[emulator-5564 - 4.1.2] FAILED
15:10:11 Test failed to run to completion. Reason: 'Instrumentation run failed due to 'Process crashed.''. Check device logcat for details
15:10:11 Tests on emulator-5564 - 4.1.2 failed: Instrumentation run failed due to 'Process crashed.'
15:10:14 Starting 205 tests on emulator-5554 - 7.0
15:12:32 :CouchbaseLite:connectedDebugAndroidTest FAILED

Fix in litecore: https://github.com/couchbase/couchbase-lite-core/tree/feature/jni-db008