Failing at loading automatically pyenv (OS X 10.10.5)

I appended my .zshrc file with eval "$(pyenv init -)" and every time I launch iterm I still have:
Load pyenv automatically by appending the following to ~/.zshrc

I couldn't get what you meant. Basically .zshrc is for all shell interactive sessions and it should be loaded automatically into every shell.

When I try the command "pyenv init" (bash or zsh) I get the message Load pyenv automatically by appending the following to .bash_profile or .zshrc.
The problem is I already added this line of code to .bash_profile and .zshrc.

Probably you have 'eval "$(pyenv init)"' somewhere in your shell configuration. Please fix it as 'eval "$(pyenv init -)"'. Trailing '-' is the key.

I installed pyenv via hombrew. Once it was installed I followed the documentation's intructions and issued  the command pyenv init. I did nothing else. How can I have eval "$(pyenv init)"' somewhere in my shell configuration?  In whiwh file? I checked etc/profile etc/paths. Everyhting is fine. Reinstalled pyenv via Homebrew same problem again. I checked I added a '-' in my .zshrc file.

Installation source isn't a matter. It will only appear if you have missing somewhere in your shell configuration by definition. I don't know configuration of your system, though.
https://github.com/yyuu/pyenv/blob/master/libexec/pyenv-init#L45

I installed pyenv and pyenv-virtualenv with HomeBrew and the instructions in the docs here. I can't seem to get the automatic sourcing to work either.
I have these in my bash_profile, because they appeared at the end of the homebrew messages:
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi

I've also set PYENV_ROOT and put it in PATH in the bash_profile.
The version was created in the pyenv versions list and it works just fine if I activate it manually, but it won't activate automatically when I cd into the directory of the same name as the environment.
What ingredient am I missing here?


Does it work out of the box?

I downloaded the zip file, extracted it, and opened the index file in the root folder, and it says "Cannot connect to FTP server." I don't see a config file. Am I supposed to do some kind of setup? if so, where is the doc for that? I also uploaded the files to a server and I get the same result.

You should enter your ftp information include username, password and hostname in handler.php file.
$oFtp = new FileManager(array(
    'hostname' => 'ftp.test.com',
    'username' => 'username',
    'password' => 'password',
    'passive' => true
));


Managing state on our React Apps

What is to be discussed?
When the app is little to medium size:
Should we use hooks with useReducer or even only a state being passed from a root component by props to the children or even by context?
For large apps:
Should we use redux and it's middlewares?
For apps using graphql:
Should we only use apollo with it apollo-link-state
Describe the solution you'd like
I think the solution depends on the app. I personally like redux a lot and would still use it for medium and large apps (didn't mixed it up with apollo client to really understand the problems with that).
But for small apps would only use hooks but again:
Should we:

Use state on root component and pass by props
Use state on root component and pass values by context
Use useReducer on root component and pass by props
Use useReducer on root component and pass dispatch as context

I think redux for small projects is not cool, just as context for large projects is not cool either. I have enjoyed using state machine in personal projects, would be happy to see a greater adoption within the company.

For large apps that aren't in our current stack:

I think is reasonable to use redux.
For apps using graphQL:
I think Apollo Client and its features are enough for manipulating state. I did find a case where it couldn't be solved by using the apollo client or context.

Apollo Client, since 2.5, has been focusing on client state support. I was pretty up-to-date on their efforts when I presented one DemoFriday about client state, but right know I've been only reading their blog announcements.
But, even then, I thought that their solution was pretty complete, specially if your state need match in some way your server data


Add greenboot fallback detected bool to system profile.

Store in the profile whether greenboot detected an OS update rollback.

HBI PR
Schema update

Signed-off-by: Christopher Sams<EMAIL_ADDRESS>

just curious, are you able to pull the ostree hash easily? no worries if it's not super simple

my comment isn't related to the code, moreso just curious. ack from me!

Yeah, I've already got the collector parts merged for the complete output of rpm-ostree status --json, but it's too large to jam into inventory, so I'm getting clarification on which fields are actually needed before opening the puptoo, schema, and inventory PRs.


Specify that paired regions are hard coded

Hi team,
I'm a MSFT FTE, and have seen a few Support Cases where customer's asks if is possible to change the default paired region.
Even though it might be implicit that paired regions cannot be changed, I don't think that hurts to explicitly mention something like: "regional pairs cannot be modified" or "assigned paired region cannot be changed, i.e: West US paired region will always be East US".

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

ID: 09a788e4-0130-73f2-d985-6fc3aec77974
Version Independent ID: a9f4ec3f-f0a3-b050-020b-f487c74c5179
Content: Business continuity & disaster recovery - Azure Paired Regions
Content Source: articles/best-practices-availability-paired-regions.md
Service: multiple
GitHub Login: @rayne-wiselman
Microsoft Alias: raynew

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

I added a line like this as a note.

Assigned Azure regional pairs cannot be modified.


Interop with non-neonKUBE cluster logins

We currently assume that all Kubernetes cluster configurations in a user's ~/.kube/config were created by us and that the configurations are named like:
user@cluster-name

This won't be true in real life such as when the user enables Kubernetes in Docker Desktop.  This manifests as exceptions thrown by KubeContextName.Parse() when it doesn't see the 'user@root` part of non-neon configs.
We'll need to be able parse these and perhaps add a ClusterLogin.IsNeonKube property.

FIXED


Controls don’t work

Region and Brand of car
USA - Hyundai Santa Fe 2025
Version of the integration
Newest as of today (just installed)
Describe the bug
There is only one control (perhaps this is not a bug, but I was surprised there was no control for auto start) which is to Unlock, but the switch doesn’t actually do anything.
Expected behavior
Car unlocks
Screenshots
N/A
Additional context

Same for me with a Hyundai Tucson (In EU)

Same for me with a Hyundai Tucson (In EU) 2021 (Update: It works, "These can be access by going to the developer menu followed by services")

Huh?


Ticket-based Authentication feature from advanced profile (client only)

This patch implements the Ticket-based authentication method on the client side as defined in the advance profile.

Thanks for the contribution! Looks good to me apart from the one thing I commented.
I merged it and changed that myself.
Any interest to implement it also on server side? :)

Thank you for accepting and merging it!
I may be interested in implementing that also on the server, however we should probably discuss how the server should check for ticket validity (user db, predefined user tickets, ...)
In Crossbar.io, for instance, you can define static user tickets in the router configuration. But you can also use dynamic ticket authentication, by defining the url of a WAMP procedure that will receive authId and ticket, will check their validity and, in case of success, will return the role to be assigned to the user.

Great job @Imoretto.  BTW, @Matthias247 what do you think about making a reference about this in issue #10?

Thank you @rashedir :) However, I must say thay my patch is quite similar to the work done in fork https://github.com/GoodgameStudios/jawampa regarding WAMP-CRA authentication.
Though, considering that their fork is now quite different from the orignal repo, I decided to apply a similar authentication infrastructure in the original repo.
Now it should also be quite easy to add other authentication methods, like WAMP-CRA, in this repo, at least on the client side.


Deconvolution2D fail to infer shape

I try to use Deconvolution2D layer with zero initialized weights and get infer_shape error
WARNING (theano.tensor.opt): Failed to infer_shape from Op AbstractConv2d_gradInputs{border_mode='valid', subsample=(1, 1), filter_flip=True, imshp=(1,
7, 7), kshp=(1, 1, 3, 3), filter_dilation=(1, 1)}.
Full error log is here: https://gist.github.com/shahurik/efa88e378e508c1de658151a5cdefc03
Keras and Theano are upgraded from github just before filling that issue.
Here is minimal code:
from keras.models import Model
from keras.layers import Input, Convolution2D, Deconvolution2D

from numpy import eye, array

img = Input(shape=(1, 5, 5))
conv = Deconvolution2D(1, 3, 3, output_shape=(1, 7, 7),  init='zero')(img)

model = Model(img, conv)
model.summary()
print(model.predict(array([[eye(5)]])))

If I change Deconvolution2D to Convolution2D (and delete output_shape argument), works fine.

Hi @shahurik , what version of keras you were using? In keras 1.0.0 or above, I can't import Deconvolution2d.

Hi @McVilla ,
I'm using master branch from github (pip install git+https://github.com/fchollet/keras.git)
Layer is defined here: https://github.com/fchollet/keras/blob/master/keras/layers/convolutional.py#L382

Thanks @shahurik . btw, did you solve your issue?

Deconv does not do shape inference because of the way it is implemented in Theano and TF. It is a hack arround the conv gradient. We are still looking into how to solve this issue

Thanks, @EderSantana, can I use UpSampling2d and Convolution2d layers to replace deconvolution2d layer?

it is not quite the same thing. UpSampling2D does pixel repetition when upsampling and I think that deconv puts zeros between pixels to upsample. but I used Up+conv before and it was ok for some tasks, for others it was not... You may have to test


[👷] Road to v2 🚀

Hi there 👋,
Over the past 18 months, many of you reported bugs or provided valuable feedback on various aspects of this project, such as error handling, debugging, invocation API, documentation, and more... Thanks for your contributions! 🙌
Work on this library has provided me with significant learning opportunities and now I believe it's time to advance this project further.
Most of the work for v2 has been done already. I'm targeting the end of November for a release. It will depend on additional requirements.
# replace <COMMIT_SHA1> by the id of the last commit of this branch

go get -u github.com/samber/do/v2@<COMMIT_SHA1>

Scope
This milestone will lead to major improvement: Scope.
A Scope was previously referred to as an Injector and can be viewed as a module of an application, with restricted visibility. I advocate for each project possessing a RootScope for common code, and shifting business logic to dedicated Scopes.
The Scopes are structured with a parent (RootScope or other Scope), numerous Services, and potentially a few children Scopes as well.
RootScope owns options and is the only Scope that supports cloning.
Services from a Scope can invoke Services available locally or in parent Scopes. Therefore, a single Service can be instantiated many times in different branches of the Scope tree, without conflict.
Scope will be almost invisible to developers: services will keep using Injector API without awareness of the underlying implementation, whether it's a RootScope, Scope or VirtualScope.
A chain of Service invocation will instantiate many VirtualScope, in order to track dependency cycles.
A debugging toolchain has been added to illustrate the service dependency chain and Scope tree.
Checklist
The library has been almost entirely recoded, but most of do@v1 API has been preserved (see breaking changes below).

[x] Scope (see above)
[x] Circular dependency detection 🔥 (#2)
[x] Easier debugging with DAG representation of service dependencies and Scopes tree 🥵 (#3)
[x] Improved implicit service naming and reduced conflict risks (discussed in #13 - see https://github.com/samber/go-type-to-string)
[x] Transient services: new instantiation on each invocation. (#36)
[x] No more inappropriate panics
[x] Handling of panics triggered by Providers -> transformed into Go error
[x] Better consistency in error format
[x] A stack trace is collected on Service invocation (not visible to developers for now)
[x] Support more Healthcheck + Shutdown interfaces (with or without error and context)
[ ] Thread-safe service invocation and shutdown 😩
[ ] Reduce the number of // @TODO in the code
[ ] Cleanup the dirty code
[x] Rename package with /v2 suffix (and everywhere in the doc)
[ ] Create a dedicated v1 branch for LTS

To be challenged

[ ] Service invocation based on Go field tags (discussed in #28)
[x] Service aliasing (discussed in #41 & #25)
[ ] Export of service DAG to dot files?
[ ] Parallel service healthcheck and shutdown
[ ] Shutdown time (see #32)
[x] Healthcheck and shutdown timeout -> pass context.WithTimeout(10*time.Second) instead

More existing issues might be added to the v2 milestone.
Documentation

[ ] Revamp README
[ ] Evaluate the need for an external documentation (#46)
[ ] Provide more examples in example directory
[ ] Provide more examples in xxxx_test_examples.go files + playground
[ ] Provide more examples in go playground
[x] Add a comment on top of each public method
[ ] Cleanup dead code or old comments
[ ] Add a link to the doc of do@v1
[ ] v2 upgrade instruction
[ ] Create an application templates (#47)

Testing
Code coverage has been improved compared to v1. 😍

[x] Reach 80% code coverage
[ ] Reach 85% code coverage
[ ] Reach 90% code coverage
[ ] See // @TODO in xxx_test.go files
[ ] More tests on nested scopes (clone, service invocation...)
[ ] More tests on virtual scopes

Coverage 2023-10-23: 83%
Breaking changes

Injector struct turned into an interface 😕
ListProvidedServices and ListInvokedServices now return 2 do.Edge arrays.
No more panic propagation on Provider error 😛
Service implicit names have been changed. BTW, you should never manipulate it! Eg: *mypkg.MyService -> *github.com/samber/example.MyService.
injector.ShutdownOnSignals and injector.ShutdownOnSIGTERM now return (os.Signal, error)

If you consider the API must be improved, please write a comment on this issue. No breaking change will be done in v2 minor releases. And I hope v2 is going to be the last major version.

Codecov Report
Attention: 108 lines in your changes are missing coverage. Please review.

Comparison is base (ca6ecee) 88.83% compared to head (09e5803) 83.69%.
Report is 1 commits behind head on master.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master      #45      +/-   ##
==========================================
- Coverage   88.83%   83.69%   -5.15%
==========================================
  Files           6       17      +11
  Lines         430     1073     +643
==========================================
+ Hits          382      898     +516
- Misses         40      164     +124
- Partials        8       11       +3

Flag
Coverage Δ

unittests
83.69% <87.86%> (-5.15%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Files
Coverage Δ

dag.go
100.00% <100.00%> (ø)

di_explain.go
100.00% <100.00%> (ø)

injector.go
100.00% <100.00%> (+14.00%)
:arrow_up:

provider.go
100.00% <100.00%> (ø)

di_lifecycle.go
86.66% <86.66%> (ø)

service_eager.go
96.15% <93.93%> (+22.24%)
:arrow_up:

service_lazy.go
98.13% <95.83%> (+3.76%)
:arrow_up:

injector_test_example.go
0.00% <0.00%> (ø)

invoke.go
92.68% <92.68%> (ø)

utils.go
95.58% <93.47%> (-4.42%)
:arrow_down:

... and 7 more

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

Debugging
Here is the output of do.DescribeService[*MyService](Injector) 👇
Scope ID: scope-id-123
Scope name: scope-child
Service: SERVICE-E
Service type: lazy
Invoked: /home/samber/project/github.com/samber/do/di_describe_test.go:fakeProvider5:38

Dependencies:
* SERVICE-D from scope scope-child
  * SERVICE-C1 from scope scope-child
    * SERVICE-B from scope [root]
      * SERVICE-A1 from scope [root]
      * SERVICE-A2 from scope [root]
  * SERVICE-C2 from scope scope-child
    * SERVICE-B from scope [root]
      * SERVICE-A1 from scope [root]
      * SERVICE-A2 from scope [root]

Dependents:
* SERVICE-F from scope scope-child
  * SERVICE-G from scope scope-child

Here is the output of do.DescribeInjector(Injector) 👇
Scope ID: scope-id-root
Scope name: [root]

DAG:

\_ [root] (ID: scope-id-root)
    * 😴 SERVICE-A1
    * 😴 SERVICE-A2
    * 😴 SERVICE-B
    |
    |
     \_ scope-0 (ID: scope-id-0)
         |
         |
         |\_ scope-1a (ID: scope-id-1a)
         |    * 😴 SERVICE-C1
         |    * 😴 SERVICE-C2
         |    * 😴 SERVICE-D
         |    * 😴 SERVICE-E
         |    * 🔁 SERVICE-EAGER-VALUE
         |    |
         |    |
         |    |\_ scope-2a (ID: scope-id-2a)
         |    |    * 😴 SERVICE-LAZY-HEALTH 🏥
         |    |    * 🏭 SERVICE-TRANSIANT-SIMPLE
         |    |
         |    |
         |     \_ scope-2b (ID: scope-id-2b)
         |         * 😴 SERVICE-LAZY-SHUTDOWN 🙅
         |
         |
          \_ scope-1b (ID: scope-id-1b)
              * 😴 SERVICE-F

Codecov Report
Attention: 108 lines in your changes are missing coverage. Please review.

Comparison is base (ca6ecee) 88.83% compared to head (d722cd6) 83.72%.
Report is 1 commits behind head on master.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master      #45      +/-   ##
==========================================
- Coverage   88.83%   83.72%   -5.12%
==========================================
  Files           6       17      +11
  Lines         430     1075     +645
==========================================
+ Hits          382      900     +518
- Misses         40      164     +124
- Partials        8       11       +3

Flag
Coverage Δ

unittests
83.72% <87.89%> (-5.12%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Files
Coverage Δ

dag.go
100.00% <100.00%> (ø)

di_explain.go
100.00% <100.00%> (ø)

injector.go
100.00% <100.00%> (+14.00%)
:arrow_up:

provider.go
100.00% <100.00%> (ø)

di_lifecycle.go
86.66% <86.66%> (ø)

service_eager.go
96.15% <93.93%> (+22.24%)
:arrow_up:

service_lazy.go
98.13% <95.83%> (+3.76%)
:arrow_up:

injector_test_example.go
0.00% <0.00%> (ø)

invoke.go
92.68% <92.68%> (ø)

utils.go
95.58% <93.47%> (-4.42%)
:arrow_down:

... and 7 more

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

Hello, that's a really great news! Thanks a lot.
Btw I can't test it because of the emoji character in the branch name. Can you rename it ?
go get github.com/samber/do@v2-🚀
go: github.com/samber/do@v2-🚀: invalid version: version "v2-🚀" invalid: disallowed version string

It would be nice to provide context o healthcheck and shutdown.

@danilobuerger can you elaborate on your use case?

@danilobuerger can you elaborate on your use case?

Sure, I want to provide a context to be able to use cancellation.

Hello @samber, My last workaround dsn't work anymore. How can we test v2 ? Thanks!

I followed this guide https://github.com/samber/do/blob/v2-🚀/MIGRATION-V1-TO-V2.md and also the v2 readme : https://github.com/samber/do/blob/v2-🚀/README.md
But I get this error go: github.com/samber/do@v2: no matching versions for query "v2" when I run go get github.com/samber/do@v2

I renamed the package samber/do to samber/do/v2, so the latest command is: go get github.com/samber/do/v2@a158d2d9f84b4a1973db49e959e476aca996e04a
Adding an emoji in the branch name was definitely a bad idea 😆

I renamed the package samber/do to samber/do/v2, so the latest command is: go get github.com/samber/do/v2@a158d2d9f84b4a1973db49e959e476aca996e04a
Adding an emoji in the branch name was definitely a bad idea 😆

Thanks, well idk. go get should be UTF-8 ready imho.

@samber, Since I've designed the ShutdownOnSignals* function to accommodate any signals, we've maintained the OnSIGTERM for compatibility purposes. However, now that we have the option to revise the API (by breaking it), I believe all the shutdownOnSIGTERMs are unnecessary.
I therefore propose deleting ShutdownOnSIGTERM, ShutdownOnSIGTERMWithContext, ShutdownOnSIGTERMOrInterrupt and ShutdownOnSIGTERMOrInterruptWithContext.
What do you think about ? I feel that they are redundant

One thing I noticed is that the pattern of Accept interfaces, return structs doesnt seem possible:
type EngineService interface{}

func NewEngineService(i *do.Injector) (*engineServiceImplem, error) {
    return &engineServiceImplem{}, nil
}

type engineServiceImplem struct {}

Later this fails:
do.Provide[EngineService](injector, NewEngineService)

@danilobuerger v2 will make it possible to respect this pattern:
do.As[*engineServiceImplem, EngineService](injector)
// or
do.InvokeAs[EngineService](injector)

See the function comments for the full explanation.

Hey, great work on the lib!
Any chance you have plans to support a concept similar to groups in Dig? (aka, registering a bunch of things of the same type, and asking for the list later). Pretty useful to do something like register a bunch of Routes associated with controllers in a DI container and then asking for all the routes to register them. That is super useful to decouple route creation, controller creation and servers for example.
https://uber-go.github.io/fx/value-groups/

Hi @matdurand,
🧐 I'm not familiar with the Value Groups. I need to "dig" (😁) into it.
What is the value compared to do.ProvideValue(injector, []gin.IRoute{route1, route2, route3})? Do you sometimes use a value in a standalone fashion or always in a group?
do.ProvideValue is an eager loading, would you prefer injecting a provider, such as do.ProvideGroupItem(injector, NewRoute1)?
Injecting a type many times in different places, and then invoking them altogether looks interesting.
If you have any suggestions about a simple API for do, I would be happy to read you. ;)

@samber hi, i'm in the situation where I need to specificaly pass to the function ShutdownOnSignals the channel ch (ch := make(chan os.Signal, 5)) directly from somewhere else.
In other word, in ShutdownOnSignals I need to do the make(chan os.Signal) somewhere to be able to reuse it and do things elsewhere with this chan.
Is that ok with you? if so I can do a PR

Hi @samber, really nice work! I tried it out today with one of our projects and just some feedback:

It was weird getting all services back on Shutdown instead of only the ones with errors.
I don't really understand the usecase for having Shutdown and HealthCheck without context. Anyone not using context could just pass in context.Background(). I guess the api would be a bit cleaner without the non-context funcs.
I would argue the same for Healthchecker and Shutdowner. People could just ignore the passed in context.
Also Shutdowner without error. People could just return nil

I just made an update to make shutdown async and parallel.
Sub-scopes are shut down recursively first, then scope services. The service shutdown order is the opposite of the invocation order.
-> v2.0.0-beta.3

Thanks for the amazing work! I will check out the new beta and report back.

I use it successfully at Screeb, in a big monolith of 500k-1m LoC with almost 200 services and a few scopes.

What do you think about a shortcut for assembling providers in a package ?
// controllers/package.go

package controllers

var Pkg = do.Package(
	do.Lazy(NewService1),
	do.LazyNamed("foobar", NewService2),
)

// workers/package.go

package workers

var Pkg = do.Package(
	do.Lazy(NewService3),
	do.Eager(MyConfigValue),
         do.Transient(NewService5),
         do.As[*MyService, MyInterface],
)

// cmd/main.go

package main

import (
    "project/common"
    "project/workers"
    "project/controllers"
)

func main() {
    injector := do.New(
        common.Pkg,
	do.Lazy(NewService4),
    )
    Provide(injector, NewService6)

    scope1 := injector.Scope("workers", workers.Pkg)
    Provide(scope1, NewService7)

    scope2 := injector.Scope("controllers", controllers.Pkg)
}

I wonder if it's too much confusion. 🫣
# prototypes
do.New(...func(do.Injector))
do.NewWithOpts(do.InjectorOpts, ...func(do.Injector))

injector.Scope(name string, ...func(do.Injector))

Hello @samber , since you added the parallel shutdown, my app is crashing at shutdown.
I have two services, Config and Event. Where Config depend of Event.
type ConfigService struct {
	Config *Config
	Events *events.Service
}

In my Config's shutdown method, I calling anEvent's method.
With v2.0.0-beta.3 is working as expected.
With v2.0.0-beta.5 is not working because Event is Shutdowned before Config.
How to disable the parallel shutdown behavior ?

Thank you so much for a great package @samber . Both this and lo I think have really nice interfaces and documentation, big kudos.
I've started integrating this into our code but has run into a problem. The problem appears to be that you can't override a value that will be used in InvokeAs.
We have CoreService that depends on NumberService (an interface).
func New(injector do.Injector) (*CoreService, error) {
	return &CoreService{
		Number:           do.MustInvokeAs[poolv2.NumberService](injector),
	}, nil
}

We provide a default NumberService implementation.
do.Provide(injector, func(injector do.Injector) (*numberservice.NumberService, error)
	return &numberservice.NumberService{}, nil
})

However, for our unit tests we want to swap out the NumberService in favor of one generated by gomock.
numbersvc := mock_poolv2.NewMockNumberService(ctrl)

This mocked numbersvc I then want to be the one that is used when we do the MustInvokeAs. If I had used MustInvoke and explicitly register the struct and mock for the interface type it works.
// explicitly provide the service as the interface
do.ProvideValue[poolv2.NumberService](injector, numbersvc)

func New(injector do.Injector) (*CoreService, error) {
	return &CoreService{
		// explicitly ask for the interface type
		Number:           do.MustInvoke[poolv2.NumberService](injector),
	}, nil
}

However, that doesn't really fulfill the idea of "Accept interfaces, return structs" and also means our test code forces us to adapt our production code.
Is there some other way around this issue that I'm missing? Ideally I would be able to use something like OverrideAs to override a specific interface that is requested.

@mbark
you just can override poolv2.NumberService by name
do.OverrideNamedValue(i, do.NameOf[poolv2.NumberService](), mock_poolv2.NewMockNumberService(ctrl))

Don't you think that in InvokeAs is returning a random a bad idea?
it's just dangerous.
What about returning an error if not only 1 is found?

We need to push this PR forward.
I created a list of issues that must be addressed before v2 release:
Design:

#75
#32

Bugs:

#76
#75

Tasks:

#71
#32
#20

Doc:

#77
#47

@samber, I've got the healthcheck not working properly when calling do.DefaultRootScope.HealthCheck() from Echo router API.
I have this /healthcheck endpoint that should return the healthcheck errors list. I couldn't make an example code with the problem.
I just lose the Step-by-step debugger thread here: https://github.com/samber/do/blob/v2-🚀/scope.go#L189.
I'll try to make a reproducible code

Hello @samber ,
there is a small issue with Logf - the first argument root is not a format parameter but already rendered.

Hello, @samber !
Having a Zero return value for a no-error case would be nice there.

@samber Hello, thanks for all your work!
Initial ETA was end of January, which is is largely deadlined. Can you update it maybe ? No pressure at all, just curious about roadmap etc.


Fixing a rounding error in the update timestamp code that caused the …

…stream timestamps to drift about 10ms per minute. This would only happen if the incoming timestamps had a lot of variance in them.

And it's a negative diff too! :o

Thanks!


feat: 🎸 axis titles

support for providing axis title from user interface

Codecov Report

Merging #270 (9ebee13) into develop (b523c1b) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##           develop     #270      +/-   ##
===========================================
+ Coverage    86.48%   86.49%   +0.01%
===========================================
  Files          532      532
  Lines         6659     6665       +6
  Branches       632      632
===========================================
+ Hits          5759     5765       +6
  Misses         820      820
  Partials        80       80

Impacted Files
Coverage Δ

.../components/ChartSettings/components/Axis/Axis.tsx
100.00% <100.00%> (ø)

...ponents/ChartSettings/components/Axis/constants.ts
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b523c1b...9ebee13. Read the comment docs.


docs: move references of graphql-engine:master to sample-apps:main

The examples were removed from graphql-engine:master in: https://github.com/hasura/graphql-engine/commit/3d533bee6148e972c136be6eef848db36b564037
I ran git grep sample-app, ensured all cases were covered by sed, and verified the URLs and instructions.

@llllvvuu - Thanks for the PR. I missed updating these references when originally moving to this.


Strapi v4 compatibility + Unittests +  other features - another prof of concept

This PR contains several changes:

Basic compatibility with Strapi 4 (Collections are working, Single Type not yet)
Authentication (tested with Content API Token and Personal Token)
Filter to fetch media object types from the Strapi 4 Instance
Better error handling (distinguish 401 from 403, and handle 404 more accurate)

When comparing to my previously PRs:

Improved code and docs
Better understanding structure and API
Fixed bug when copying assets was not happening executing filter

TODO:

There are still some incorrect parameters of urls to rewrite
SingleType
Pagination

Currently working on 'meta' and 'error' parts of the response, which would allow me soon implement new things like pagination etc.
In long term squash would be necessary for commits, but for alpha review it should be fine...

I will do testing next time I am available.
Awesome 😎 @bluszcz

@csharpee thank you for the tests :)

On testing the following data in my photos.html layout:

Then, on Jekyll build, it errors on downloading any image data.
-jekyll-serve-1  |  Jekyll StrapiHTTP: Fetching entries from https://api.example.com/api/photos/2?populate=* using headers: ["Authorization"]
-jekyll-serve-1  |   Liquid Exception: undefined method `[]' for nil:NilClass uri_path = "#{strapi_endpoint}#{input['url']}" ^^^^^^^ in /srv/jekyll/_layouts/photos.html
-jekyll-serve-1  | /usr/gem/gems/jekyll-strapi-0.1.3/lib/jekyll/tags/strapiimagefilter.rb:22:in `asset_url': undefined method `[]' for nil:NilClass (NoMethodError)
-jekyll-serve-1  |
-jekyll-serve-1  |         uri_path = "#{strapi_endpoint}#{input['url']}"
-jekyll-serve-1  |                                              ^^^^^^^
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/strainer.rb:56:in `invoke'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/context.rb:86:in `invoke'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/variable.rb:84:in `block in render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in `each'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in `inject'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in `render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/block_body.rb:103:in `render_node_to_output'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/block_body.rb:80:in `render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/tags/for.rb:160:in `block (2 levels) in render_segment'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/tags/for.rb:158:in `each'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/tags/for.rb:158:in `block in render_segment'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/context.rb:123:in `stack'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/tags/for.rb:150:in `render_segment'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/tags/for.rb:79:in `render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/block_body.rb:103:in `render_node_to_output'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/block_body.rb:82:in `render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/tags/if.rb:46:in `block (2 levels) in render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/tags/if.rb:44:in `each'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/tags/if.rb:44:in `block in render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/context.rb:123:in `stack'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/tags/if.rb:43:in `render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/block_body.rb:103:in `render_node_to_output'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/block_body.rb:82:in `render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/template.rb:208:in `block in render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/template.rb:242:in `with_profiling'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/template.rb:207:in `render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/template.rb:220:in `render!'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:39:in `block (3 levels) in render!'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:59:in `measure_counts'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:38:in `block (2 levels) in render!'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:63:in `measure_bytes'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:37:in `block in render!'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:70:in `measure_time'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:36:in `render!'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/renderer.rb:131:in `render_liquid'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/renderer.rb:194:in `render_layout'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/renderer.rb:163:in `place_in_layouts'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/renderer.rb:93:in `render_document'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/renderer.rb:63:in `run'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:547:in `render_regenerated'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:539:in `block in render_pages'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:538:in `each'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:538:in `render_pages'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:211:in `render'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:80:in `process'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/command.rb:28:in `process_site'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/commands/build.rb:65:in `build'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/commands/build.rb:36:in `process'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/command.rb:91:in `each'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
-jekyll-serve-1  | 	from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
-jekyll-serve-1  | 	from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
-jekyll-serve-1  | 	from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
-jekyll-serve-1  | 	from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
-jekyll-serve-1  | 	from /usr/gem/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/exe/jekyll:15:in `<top (required)>'
-jekyll-serve-1  | 	from /usr/local/bundle/bin/jekyll:27:in `load'
-jekyll-serve-1  | 	from /usr/local/bundle/bin/jekyll:27:in `'
-jekyll-serve-1 exited with code 1

On another note, I think I figured out a solution without making it super complicated.
The general idear is create a base64 code out of all the images, then decode the image into Jekyll from Strapi API.
HOWTO:

Create _plugins folder in root of your site directory.
Create new file called base64_filter.rb >> copy/paste the following:

require "base64"

module Base64Filter
  def base64_encode (input)
    Base64.encode64(input)
  end
  def base64_decode (input)
    Base64.decode64(input)
  end
end

Liquid::Template.register_filter(Base64Filter) # register filter globally

Install Strapi plugin "Placeholder"
Upload new images to create a base64 code
Goto Jekyll and transport placeholder data from Strapi API to Jekyll:

{{ page.email | base64_encode }}

{{ page.content | base64_decode }}

Refresh your Jekyll site and see the encoded or decoded image or email.

Note: This would work, but the plugin needs to see in: /api/upload/files? This location isn't a collection.

So,
I checked using following from docs configuration:

and result from http://localhost:1337/api/photos/1?populate=* which is used by my api is following (includes url attribute), so I am not sure here you data structure. Are you sure you are using same data structure from the README.md so it fits the docs html examples?
{"data":
  {
    "id":1,
    "attributes": {"createdAt":"2022-06-14T18:14:46.528Z","updatedAt":"2022-06-17T07:17:31.203Z","publishedAt":"2022-06-14T18:14:49.968Z","Title":"Some title","Comment":"This is nice comment","Image":{"data":{"id":1,"attributes":{"name":"IMG_1389.JPG","alternativeText":"IMG_1389.JPG","caption":"IMG_1389.JPG","width":6960,"height":4640,"formats":{"thumbnail":{"name":"thumbnail_IMG_1389.JPG","hash":"thumbnail_IMG_1389_5a056fb742","ext":".JPG","mime":"image/jpeg","path":null,"width":234,"height":156,"size":3.88,"url":"/uploads/thumbnail_IMG_1389_5a056fb742.JPG"},"large":{"name":"large_IMG_1389.JPG","hash":"large_IMG_1389_5a056fb742","ext":".JPG","mime":"image/jpeg","path":null,"width":1000,"height":667,"size":27.72,"url":"/uploads/large_IMG_1389_5a056fb742.JPG"},"medium":{"name":"medium_IMG_1389.JPG","hash":"medium_IMG_1389_5a056fb742","ext":".JPG","mime":"image/jpeg","path":null,"width":750,"height":500,"size":18.27,"url":"/uploads/medium_IMG_1389_5a056fb742.JPG"},"small":{"name":"small_IMG_1389.JPG","hash":"small_IMG_1389_5a056fb742","ext":".JPG","mime":"image/jpeg","path":null,"width":500,"height":333,"size":10.58,"url":"/uploads/small_IMG_1389_5a056fb742.JPG"}},"hash":"IMG_1389_5a056fb742","ext":".JPG","mime":"image/jpeg","size":644.62,"url":"/uploads/IMG_1389_5a056fb742.JPG","previewUrl":null,"provider":"local","provider_metadata":null,"createdAt":"2022-06-14T19:05:14.226Z","updatedAt":"2022-06-14T19:05:14.226Z"}}}}},
"meta":{}}

here is my full trace log
-jekyll-serve-1  |   Liquid Exception: undefined method `[]' for nil:NilClass uri_path = "#{strapi_endpoint}#{input['url']}" ^^^^^^^ in pages/photos/index.html
-jekyll-serve-1  | /usr/gem/gems/jekyll-strapi-0.1.3/lib/jekyll/tags/strapiimagefilter.rb:25:in `asset_url': undefined method `[]' for nil:NilClass (NoMethodError)
-jekyll-serve-1  |
-jekyll-serve-1  |         uri_path = "#{strapi_endpoint}#{input['url']}"
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/strainer.rb:56:in `invoke'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/context.rb:86:in `invoke'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/variable.rb:84:in `block in render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in `each'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in `inject'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in `render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/block_body.rb:103:in `render_node_to_output'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/block_body.rb:80:in `render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/template.rb:208:in `block in render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/template.rb:242:in `with_profiling'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/template.rb:207:in `render'
-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/template.rb:220:in `render!'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:39:in `block (3 levels) in render!'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:59:in `measure_counts'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:38:in `block (2 levels) in render!'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:63:in `measure_bytes'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:37:in `block in render!'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:70:in `measure_time'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:36:in `render!'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/renderer.rb:131:in `render_liquid'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/renderer.rb:80:in `render_document'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/renderer.rb:63:in `run'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:547:in `render_regenerated'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:538:in `each'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:538:in `render_pages'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:211:in `render'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:80:in `process'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/command.rb:28:in `process_site'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/commands/build.rb:65:in `build'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/commands/build.rb:36:in `process'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/command.rb:91:in `each'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
-jekyll-serve-1  | 	from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
-jekyll-serve-1  | 	from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
-jekyll-serve-1  | 	from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
-jekyll-serve-1  | 	from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
-jekyll-serve-1  | 	from /usr/gem/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/exe/jekyll:15:in `<top (required)>'
-jekyll-serve-1  | 	from /usr/local/bundle/bin/jekyll:27:in `load'
-jekyll-serve-1  | 	from /usr/local/bundle/bin

Can you show  me whole content pages/photos/index.html please?

This is

Can you show me whole content pages/photos/index.html please?

---
layout: photos
title: Photos
sub_title: A collection of articles about technology.
permalink: /photos/
---

---
layout: photos
title: Photos
sub_title: A collection of articles about technology.
permalink: /photos/
---

{{ page.strapi_attributes.TestDescription }}

{{ page.document.strapi_attributes.Title }}

{{ page.document.strapi_attributes.Comment }}

I also tried  and `

Ok, so in Graphql, this is the query I do to get all photos url.
query {
  photos {
    data {
      id
      attributes {
        Title
        Comment
        Image {
          data {
            attributes {
              url
            }
          }
        }
      }
    }
  }
}

Update: This should work, but it doesn't {{ photo.data.attributes.Image.data.attributes.url }}
this doesn't work either: {{ page.document.strapi_attributes.Image.data.attributes.url }}
both tests produce nil or simply: "" 👎
these work: 👍
      {{ photo.attributes.Comment }}
      {{ photo.attributes.createdAt }}

TBH, all above is kind of unexpected for me in the context of the code being reviewed here :) I would like really to have simply verison of your Strapi --quickstart app (one fake entry of collection), and I could quickly debug and prepare working Jekyll-strapi template.

On testing with your /docs setup, I received the exact same error. It may be related to HTTPS.
Jekyll StrapiHTTP: Fetching entries from https://api.example.com/api/photos/2?populate=* using headers: ["Authorization"]
docs-jekyll-serve-1  | StrapiImageFilter strapi_endpoint:https://api.example.com
docs-jekyll-serve-1  | StrapiImageFilter input:
docs-jekyll-serve-1  |   Liquid Exception: undefined method `[]' for nil:NilClass uri_path = "#{strapi_endpoint}#{input['url']}" ^^^^^^^ in docs.markdown
docs-jekyll-serve-1  | /usr/gem/gems/jekyll-strapi-0.1.3/lib/jekyll/tags/strapiimagefilter.rb:25:in `asset_url': undefined method `[]' for nil:NilClass (NoMethodError)
docs-jekyll-serve-1  |
docs-jekyll-serve-1  |         uri_path = "#{strapi_endpoint}#{input['url']}"
docs-jekyll-serve-1  |                                              ^^^^^^^
docs-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/strainer.rb:56:in `invoke'
docs-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/context.rb:86:in `invoke'
docs-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/variable.rb:84:in `block in render'
docs-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in `each'
docs-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in `inject'
docs-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in `render'
docs-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/block_body.rb:103:in `render_node_to_output'
docs-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/block_body.rb:80:in `render'
docs-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/template.rb:208:in `block in render'
docs-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/template.rb:242:in `with_profiling'
docs-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/template.rb:207:in `render'
docs-jekyll-serve-1  | 	from /usr/gem/gems/liquid-4.0.3/lib/liquid/template.rb:220:in `render!'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:39:in `block (3 levels) in render!'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:59:in `measure_counts'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:38:in `block (2 levels) in render!'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:63:in `measure_bytes'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:37:in `block in render!'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:70:in `measure_time'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/liquid_renderer/file.rb:36:in `render!'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/renderer.rb:131:in `render_liquid'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/renderer.rb:80:in `render_document'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/renderer.rb:63:in `run'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:547:in `render_regenerated'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:539:in `block in render_pages'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:538:in `each'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:538:in `render_pages'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:211:in `render'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/site.rb:80:in `process'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/command.rb:28:in `process_site'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/commands/build.rb:65:in `build'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/commands/build.rb:36:in `process'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/command.rb:91:in `each'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
docs-jekyll-serve-1  | 	from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
docs-jekyll-serve-1  | 	from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
docs-jekyll-serve-1  | 	from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
docs-jekyll-serve-1  | 	from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
docs-jekyll-serve-1  | 	from /usr/gem/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
docs-jekyll-serve-1  | 	from /usr/gem/gems/jekyll-4.2.2/exe/jekyll:15:in `<top (required)>'
docs-jekyll-serve-1  | 	from /usr/local/bundle/bin/jekyll:27:in `load'
docs-jekyll-serve-1  | 	from /usr/local/bundle/bin/jekyll:27:in `'
docs-jekyll-serve-1 exited with code 1

Added unittests.

docs-jekyll-serve-1  | StrapiImageFilter 000 input: ==> YES
docs-jekyll-serve-1  | StrapiImageFilter 111 input:
docs-jekyll-serve-1  | StrapiImageFilter 222 context REGISTERS:{:site=>#<Jekyll::Site @source=/srv/jekyll>, :page=>{"layout"=>"photo", "content"=>"
\n
{{ page.strapi_attributes.TestDescription }}\n  {{ page.document.strapi_attributes.Title }}\n  {{ page.document.strapi_attributes.Comment }}\n  \n\n", "dir"=>"/", "excerpt"=>nil, "name"=>"photos.markdown", "path"=>"photos.markdown", "url"=>"/photos.html"}}
docs-jekyll-serve-1  | StrapiImageFilter strapi_endpoint:https://api.example.com
docs-jekyll-serve-1  |   Liquid Exception: undefined method []' for nil:NilClass uri_path = "#{strapi_endpoint}#{input['url']}" ^^^^^^^ in photos.markdown docs-jekyll-serve-1  | /usr/gem/gems/jekyll-strapi-0.1.3/lib/jekyll/tags/strapiimagefilter.rb:28:in asset_url': undefined method `[]' for nil:NilClass (NoMethodError)
docs-jekyll-serve-1  |
docs-jekyll-serve-1  |       uri_path = "#{strapi_endpoint}#{input['url']}"

So it seems not necessarily problem with filter per se, but in line StrapiImageFilter 111 input: we see that the StrapiDocumentDrop is not passed to the filter, which can point to some collection issue.
Correct output would be something similar:
StrapiImageFilter 111 input: StrapiDocumentDrop

from the drops.rb.
I will try to add debug in other places. Thank you.

docs-jekyll-serve-1  | StrapiImageFilter 000 input: ==> YES
docs-jekyll-serve-1  | StrapiImageFilter 111 input:
docs-jekyll-serve-1  | StrapiImageFilter 222 context REGISTERS:{:site=>#<Jekyll::Site @source=/srv/jekyll>, :page=>{"layout"=>"photo", "content"=>"
\n
{{ page.strapi_attributes.TestDescription }}
\n
{{ page.document.strapi_attributes.Title }}
\n
{{ page.document.strapi_attributes.Comment }}
\n  \n
\n", "dir"=>"/", "excerpt"=>nil, "name"=>"photos.markdown", "path"=>"photos.markdown", "url"=>"/photos.html"}}
docs-jekyll-serve-1  | StrapiImageFilter strapi_endpoint:https://api.example.com
docs-jekyll-serve-1  |   Liquid Exception: undefined method `[]' for nil:NilClass uri_path = "#{strapi_endpoint}#{input['url']}" ^^^^^^^ in photos.markdown
docs-jekyll-serve-1  | /usr/gem/gems/jekyll-strapi-0.1.3/lib/jekyll/tags/strapiimagefilter.rb:28:in `asset_url': undefined method `[]' for nil:NilClass (NoMethodError)
docs-jekyll-serve-1  |
docs-jekyll-serve-1  |       uri_path = "#{strapi_endpoint}#{input['url']}"

Currently, this jekyll-strapi plugin that is created doesn't work out of the box with Jekyll 4.2.2. If you fix that problem, the whole site structure doesn't work and the tutorials to guide other open source developers or users does NOT produce any successful results.

@csharpee just for starter from your logs: https://api.example.com which shows that you area not using default configuration. Since you are not using default setup  from docs (its no https there) and you are unable to provide replayable environment - or clearly with code explain what  is - it impossible to  debug. This is an alpha patches extending first functionality, so you must first to ensure that  it works on setup configuration to understand how it works. Do not skip this step please ;) If  you will repeat an exercise and something does not work - you can just targz default strapi and jekyll projects and attach to the bug PR or make bug report.
Other solution is that you write the uninttests describing your environment and failing case.
In the tests/ you can find how _config is being provision, you should be able to provision your own and write the simple test.

@bluszcz - I have some code changes to potential merge, should I make a fork & PR to your develop branch?

Make pr please to my gh

Everyone interested - there are more changes incoming https://github.com/bluszcz/jekyll-strapi with the help of @mkrajewski90! <3 - check PR and comments there :)

There was a great PR from @mkrajewski90  which have been merged.
If someone wants to simplify the tests I uploaded the package: https://github.com/bluszcz/jekyll-strapi/packages/1554094

https://rubygems.org/gems/jekyll-strapi-4 <- plugin have been released.

@bluszcz - do you want to merge develop or master? I see develop is not updated.

@bluszcz - do you want to merge develop or master? I see develop is not updated.

Tag current master as v3 or similar, and to master. What do you think?
Or you were asking about source branch from my repo?

I ask about source branch from your repo.


Outdated collector config

Hi,
The config provided in the example, at opentelemetry-angular-interceptor/blob/master/projects/example-app/collector/otel-collector-config.yaml, is outdated. Running it as such, with latest version of OTel Collector, will pop the following error:
otel-collector_1  | Error: cannot load configuration: error reading settings for receiver type "otlp": 1 error(s) decoding:
otel-collector_1  |
otel-collector_1  | * '' has invalid keys: endpoint
otel-collector_1  | 2020/07/17 07:28:28 application run finished with error: %v: cannot load configuration: error reading settings for receiver type "otlp": 1 error(s) decoding:
otel-collector_1  |
otel-collector_1  | * '' has invalid keys: endpoint

From what I understood, the following lines of the config:
receivers:
  otlp:
    endpoint: <IP_ADDRESS>:9090

Should be replaced by something like:
receivers:
  otlp:
    protocols:
        grpc:
            endpoint: <IP_ADDRESS>:55680
        http:
            endpoint: <IP_ADDRESS>:55681 #9090 ?

Hi,
You right, new configuration in the latest version (0.6.0) must be :
receivers:
  otlp:
    protocols:
        http:
            endpoint: <IP_ADDRESS>:9090 #default 55681 for http

I recommend that you do this for the moment :
Change in docker-compose.yaml
image: otel/opentelemetry-collector:latest

by
image: otel/opentelemetry-collector:0.4.0

I try to fix with the latest release (0.6.0) but there is some issue with service.name...

I do a PR to fix the version.
now master is Ok
I complete an issue with the problem in the version 0.6.0 => https://github.com/open-telemetry/opentelemetry-collector/issues/1385
wait and see...


Debugging child processes

When running integration tests on a rust exe, the tests will invoke separate processes to start the executable. This is good because it's testing the external interface, but it really sucks for debugging.
E.g.: https://github.com/ChrisGreenaway/cargo-local-registry/blob/master/tests/all.rs
(As far as I know this approch is the 'right' way to code integration tests for a command line app in rust)
Is there a way that we can launch a child process from a debugged rust process and somehow flag to the debugger that we'd really really like you to debug that also?
(I guess the follow up question is could we then hide that implementation in a crate so that it could support a range of debuggers.)
I don't think we should change how rust does the integration testing because there are many other times where I've created a subprocess that I'd ideally like to be included in the debugging session by default.
If we could find a nice mechanism for this it would be a real step forward for debugging.

Prior art: https://marketplace.visualstudio.com/items?itemName=vsdbgplat.MicrosoftChildProcessDebuggingPowerTool

LLDB does not support child debugging; this isn't something I can implement in the extension on my own.
You could try this though.  Not as convenient, but does the job.

LLDB does not support child debugging; this isn't something I can implement in the extension on my own. You could try this though. Not as convenient, but does the job.

I've spent literally hours trying to get this working to no avail. I can only get the debugger to attach if I manually breakpoint and copy out the PID and open the URI in a shell. Is there really no way for this to be exposed via the extension by monitoring what child processes the target has?

Is there really no way for this to be exposed via the extension by monitoring what child processes the target has?

Not really.  Intercepting fork() and attaching to the child process before it starts executing requires debugger support.  If you don't care about such things, you can probably create a script that does the monitoring and starts new debug sessions.

In my case I'm starting the application suspended anyways, but I see your
point! It's not a very tenable solution for the plugin for sure. Real shame
there's not support for this in lldb, via testing it seems like debugging
multiple processes works well aside from needing to invoke URIs.
For people who may run into the same issue as I did when writing the last
comment:
Trying to invoke a URI to debug a child process fails if lldb is connected
to the parent process already and that parent was launched through vscode
on Windows. Seems to be a kernel issue, as it appears the URI never arrives.
On Tue, Jan 25, 2022, 08:32 vadimcn @.***> wrote:

Is there really no way for this to be exposed via the extension by
monitoring what child processes the target has?
Not really. Intercepting fork() and attaching to the child process before
it starts executing requires debugger support. If you don't care about such
things, you can probably create a script that does the monitoring and
starts new debug sessions.
—
Reply to this email directly, view it on GitHub
https://github.com/vadimcn/vscode-lldb/issues/317#issuecomment-1020887952,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKO5C5S4ZWOHSYTBKJXFJTUXZGXJANCNFSM4NPBJVUQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you commented.Message ID:
@.***>

If opening the URI does not work, you can try the RPC server option.

lldb now supports this: https://github.com/llvm/llvm-project/commit/4a2a947317bf702178bf1af34dffd0d280d49970

lldb now supports this: llvm/llvm-project@4a2a947

I saw this, but unfortunately it's Linux only and doesn't support Mac OS or Windows. At least not as of that commit, not sure it's been expanded since then. My primary use is so I can debug injected payloads in Windows apps though, as I'm typically working on QoL patches for older games – so unfortunately RPC and URI solutions are the only workarounds for now.

Would also love to see this, but can understand that it may need to be implemented one level lower.
Discussions:

https://discourse.llvm.org/t/rfc-support-debugging-child-processes/65506
https://discourse.llvm.org/t/rfc-more-complete-multiprocess-support-in-lldb/61061/10

Added a workaround using an extension that listen to process tree and auto attaches
https://marketplace.visualstudio.com/items?itemName=thebestnom.auto-attach-child-processes

@thebestnom I tried the extension, it does seem to work but uses too much memory and eventually crashes on large applications that spawn many processes (like Chromium). I will continue to keep trying it out though.
I came across this: https://stackoverflow.com/questions/74366554/debug-a-c-child-process-using-vs-code
has it actually worked for anyone?

Thanks @thebestnom I've added an idea here https://github.com/thebestnom/vscode-auto-attach-child-processes/issues/1. As for follow fork, you're right, that won't be useful for this usecase


Blind Sync err

The wrapper is throwing a 500 err when the app tries to sync about 45 external-internal sets(corresponding to sub-accounts) within a single call.

-Verified this issue on Dev app v1.7.0 (288)


Ajr56 optional endpoint

If endpoint isn't specified in the middleware config, it will now make a request to ec2 for the IP of the instance and use that for SNS subscriptions.

Instead of the request module lets use the native http GET: https://nodejs.org/dist/latest-v6.x/docs/api/http.html#http_http_get_options_callback


Serverless cli

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR has modified HISTORY.rst describing any customer-facing, functional changes. Note that this does not include changes only to help content. (see Modifying change log).

[x] I adhere to the Command Guidelines.

@johnpaulkee

Fixes #10702

@Juliehzl please help with this PR.

Hi @weizeng-msft , can you try to make CI pass?

Hi @weizeng-msft , can you try to make CI pass?
In addition, you need to update HISTORY.rst file for your new command.

I have just updated HISTORY.rst

LGTM


[Suggestion] Match Rank on the last 3 game

It'd be useful if there's also an indicator for the overall rank in the past 3 matches for each player. For example, someone who won the past 3 matches as MVPs is an obvious indicator of smurfing

Do you mean the position on the leaderboard? If so I'll have to take a look if that info is even available.

I second that, the rank in the leaderboard of last 3 games is really important

Do you mean the position on the leaderboard? If so I'll have to take a look if that info is even available.

I think there's a "score" value under the "stats" of each player when you fetch a match on the Valorant API, if that's what you're using. There are categories for all players or for each team so you can get both team and match rank.

On the API that I use

Yes, then you have to sort there scores and see what is the rank of the
specified player.
On Mon, Dec 20, 2021, 3:28 AM notBradPitt @.***> wrote:

[image: image]
https://user-images.githubusercontent.com/85218180/146699214-d33dc644-ee7c-43af-8a88-2edd4566ead7.png
On the API that I use
—
Reply to this email directly, view it on GitHub
https://github.com/Soneliem/WAIUA/issues/24#issuecomment-997515060, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AG56PNSLCDV32LU4FVKAY6TUR2BC3ANCNFSM5KFWCYHQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you commented.Message ID:
@.***>

@notBradPitt  think your last point there pretty much is the issue. For each match you'll need to query everyone's score and check which of them is the player. Then we'll have to so that for all three games so that's about 6 operations and 3 API requests. And that's just one player, for 10 players its 60 operations and 30 API requests just to get three numbers per person.  That's also why I said no to adding an average KDA.
Additionally I want to bring up the bullying aspect to this as knowing of a team/enemy was bottom fragging or underperforming is an easy target method. I have to allow the app to help spot smurfs without making it an easy avenue of hate for toxic players.
However, I've investigating new methods and ideas so maybe this is a possibility in the future. Hope you understand and If you have any other ideas or suggestions please don't hesitate to provide them although my discord will be perfect for that.


Molecule tests

I assume this repo is tested manually (via Jenkins perhaps)?
What about adding molecule tests? - https://github.com/ansible/molecule

Link #230

@cricket007 Just a quick update to let you know that we are actively working on integrating molecule testing.  We are hoping to have something ready soon.  Thanks again for the heads up on this, it's a very powerful feature/function.

@cricket007 We now have molecule testing in the 5.5.0 release.  We have a role called confluent.test that contains the different scenarios.  We are still working on documentation for it, but thanks for letting us know about this, as its a massive improvement for both testing and local development.

Glad to hear it 👍🏼


Update project to use golang v1.11

Coverage remained the same at 35.723% when pulling 2958f1cc067c5eea6d442a8d83139d5b2969fe1e on update-go-1.11 into 29a82534ff9c9c550ba443ef0f469fa5a515187e on master.


DOCS-282 - Add Cloud SIEM example for Copilot

Purpose of this pull request
This pull request adds a Cloud SIEM example section to the Copilot preview article: https://help.sumologic.com/docs/search/copilot
Select the type of change

[ ] Minor Changes - Typos, formatting, slight revisions
[ ] Update Content - Revisions, updating sections
[x] New Content - New features, sections, pages, tutorials
[ ] Site and Tools - .clabot, version updates, maintenance, dependencies, new packages for the site (Docusaurus, Gatsby, React, etc.)

Ticket (if applicable)
DOCS-282

Thanks for the review, @JV0812!
@kimsauce, could you review this PR, since you own the article?

Great suggestion, @kimsauce. It's updated now.


Remove type change warning

Removes the warning when a component's type changes. We've found some very valid use cases for this, and the warning doesn't make much sense in light of them.

very aggressive branch name, I like it


Update docker-compose.yml to add 'dind'

Add 'dind' image to run docker-in-docker: issue https://github.com/laradock/laradock/issues/1653

I completed the 3 steps below:

[X] I've read the Contribution Guide.
[] I've updated the documentation. (refer to this for how to do so).
[X] I enjoyed my time contributing and making developer's life easier :)

@vlauciani What was the purpose of adding this?  I can't find any mention of it in the documentation.  I have a hard time imagining why php-fpm, for example, would need to manage its own docker containers, and the security implications frighten me.  Perhaps I'm missing something, though.  At the very least there should probably be a warning about how insecure this is.

Hi @hackel
I work in a research Italian Institute and we are “deckerizing” our procedures, scripts and software.
Using Laradock I’m build a services on top of these dockers but to do that I need “dind” and the container that run various docker in Laradock is php-fpm.
For example if I would run a simple “hello world” docker from Laravel framework using Laradock you I to:

deploy the “hello-world” docker image into “php-fpm” container
write a simple route in Laraval that run a container from “hello-word” image
get the output and return it to the user
destroy the container.

Will be my care to update the documentation.

Hi,
I think using dind is an optional extension, not a "must have". Is it possible to configure it using env?
Thanks.

While I can see that @vlauciani has a valid use case for this feature, I'm surprised this feature was merged as a default for all Laradock users without questioning the security of giving php-fpm access to the Docker runtime.
I realize that the onus is on developers to configure their services correctly, but framework developers also have a responsibility to provide as much security as they can.
I think this needs to be turned off by default, with the option to turn it on for these (assuming) rare use cases.
The security mindset needs to be so much better here.

@vlauciani sorry but I can't understand how to deploy "hello-world" container into "php-fpm" and run it from. Could you explain it? Thanks.

Hi @dlnsk
First of all you need to install docker client into php-fpm container:
docker-compose exec -T php-fpm sh -c "curl -sS https://download.docker.com/linux/static/stable/x86_64/docker-19.03.2.tgz -o /tmp/docker.tar.gz && tar -xzf /tmp/docker.tar.gz -C /tmp/ && rm /tmp/docker.tar.gz && cp /tmp/docker/docker* /usr/local/bin && chmod +x /usr/local/bin/docker*"

then, you can install hello-world with the command:
docker-compose exec -T php-fpm sh -c "docker run hello-world"

Or, as in my case, you can build your own image:
docker-compose exec -T php-fpm sh -c "cd my_docker && docker build --tag my_image ."

this is a very good solution... but I understand that dind feature should not be installed as a default. I'm still thinking how to turn off by default and enable if needed.


Add .bruin.example.yml in the examples folder

I think it would be beneficial to see an example bruin yml config file used for local development.

@sabrikaragonen I believe you have a new branch that contains one, right? if not, let's add one to that and merge.


7/13 tests executed

When the tests are run, Karma says:
Chrome 58.0.3029 (Mac OS X 10.12.4): Executed 7 of 13 SUCCESS (0.116 secs / 0.188 secs)

I'm not exactly sure why we only have half of the tests executing. @samroberton do you remember anything about this?

There are in fact only 7 tests that are executable in ClojureScript in the day8.re-frame.test-reframe.test-test namespace.  So I think the actual question is "why does Karma think that there are 13 tests when in fact there are only 7?"
I think the answer to that probably lies in the horrible things that day8.re-frame.test-reframe.macros/assert-captured-test-results has to do in order to be create a realistic test.
The difficulty comes from the fact that what we really want our tests to test is "when I write a deftest form in my application's test suite, using re-frame-test functionality within that test, will my test pass or fail correctly?".  Which means that we want tests that have, inside them, deftest forms, and which assert that the processing of those deftest forms is handled correctly.
Unfortunately, the design of clojure.test is not what one might call a particularly FP approach to the problem.  So our test suite here has to delve into the bowels of clojure.test's side-effecty horridness in order to track the execution of the inner deftest.  I assume that Karma is doing its own delving into the bowels of clojure.test in order to track which tests are executing, and my guess is that Karma's test count double-counts the 6 tests which are not JVM-only and which use assert-captured-test-results.  That is, Karma is counting once (correctly) for the deftest that is our test suite's test, but then additionally (unintentionally) counting the occurrence of the deftest form which appears in the macro-expanded test as an example of the sort of test that re-frame-test allows you to write (an example whose reporting we're testing).
Without spending time in the Karma codebase, I don't know what we'd need to do to stop Karma's test count from seeing the inner deftest forms.


Develop

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

draft, no change


Crashes Xcode 7.1.1 on launch

Please get back to me, if you can’t reproduce this. :)

Hi Jan, I can't reproduce the crash. Could you give me more details?
I installed latest version 2.1.4 (https://github.com/benoitsan/BBUncrustifyPlugin-Xcode/releases/tag/2.1.4) in ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins using Xcode 7.1.1 (7B1005) and the plugin is loaded correctly.


[Docs]: Add an inline property in the radio group documentation

Is there an existing issue for this?

[X] I have searched the existing issues

Documentation Link
https://docs.appsmith.com/widget-reference/radio-group
Describe the problem
Based on https://github.com/appsmithorg/appsmith/issues/9908 we have added a new inline property in the radio group widget. We need to add this in our docs.
Also it's missing in switch group documentation, but the feature is available we need to add it there as well.
Describe the improvement
This has the inline property we need to add, please use same text
https://docs.appsmith.com/widget-reference/checkbox-group

This will go live in the next planned release


Add tests to example projects

We should add some basic tests to each example project to validate that they work.

In addition, I'd vote for not accepting new examples unless they have tests.

Hey Team.
I am about to submit a new pull request with a new example project. My example does not have a test case yet and I am keen to get this in. However the only examples of test cases I have seen so far is using the REST interfaces in other words the camel routes are exposed as REST endpoints. Do we have examples of how to stop and start a route by itself and writing a unit test for that? In short I have not found documentation or examples showing me how to test a stand-alone camel route.Once I have an idea of how to do it I can proceed to add it to other examples where applicable.

I added some basic tests to the example projects.


Added begin and MTP_littleFS_Program sketch

This is what I did this morning along with the updated simplified sketch.  Note: usb_mtp is now part of the core so no need to address that in the sketch.

@mjs513 - glad you mentioned something about this PR as I did not get any notification about it...


[PLAT-382] Make last player winner on idle

Bumping Ajuna and sgx-runtime deps for https://github.com/ajuna-network/Ajuna/pull/49.

Closing as we don't need this right now.


setup.py

Adding pypi support for python4poets

I was wrong, pip install -e is not actually succeeding. Maybe the warning does matter? I thought it was something with my local environment. Here's the error I get (pulled your latest changes).
ERROR: No .egg-info directory found in /private/var/folders/tn/1_gbhpks7hqbkbln2gjhcdvm0000gp/T/pip-pip-egg-info-0w4mw2j1


api-audit : mvn docker:build failure

Hey there I have some issues, could you help please ?
➜  Hygieia git:(master) mvn docker:build[INFO] Scanning for projects...
[WARNING] The POM for org.jenkins-ci.tools:maven-hpi-plugin:jar:1.106 is missing, no dependency information available
[WARNING] Failed to build parent project for org.jenkins-ci.plugins:hygieia-publisher:hpi:2.0.5-SNAPSHOT
[WARNING]
[WARNING] Some problems were encountered while building the effective model for com.capitalone.dashboard:api:jar:2.0.5-SNAPSHOT
[WARNING] The expression ${version} is deprecated. Please use ${project.version} instead.
[WARNING]
[WARNING] Some problems were encountered while building the effective model for com.capitalone.dashboard:api-audit:jar:2.0.5-SNAPSHOT
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: javax.validation:validation-api:jar -> duplicate declaration of version 1.1.0.Final @ com.capitalone.dashboard:api-audit:[unknown-version], /Users/oualid/Pro/carrefour/vagrant/Hygieia/api-audit/pom.xml, line 252, column 21
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: org.hibernate:hibernate-validator:jar -> duplicate declaration of version (?) @ com.capitalone.dashboard:api-audit:[unknown-version], /Users/oualid/Pro/carrefour/vagrant/Hygieia/api-audit/pom.xml, line 257, column 21
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: com.google.code.gson:gson:jar -> duplicate declaration of version (?) @ com.capitalone.dashboard:api-audit:[unknown-version], /Users/oualid/Pro/carrefour/vagrant/Hygieia/api-audit/pom.xml, line 261, column 21
[WARNING] The expression ${version} is deprecated. Please use ${project.version} instead.
[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.jenkins-ci.plugins:hygieia-publisher:hpi:2.0.5-SNAPSHOT
[WARNING] 'parent.relativePath' of POM org.jenkins-ci.plugins:hygieia-publisher:2.0.5-SNAPSHOT (/Users/oualid/Pro/carrefour/vagrant/Hygieia/hygieia-jenkins-plugin/pom.xml) points at com.capitalone.dashboard:Hygieia instead of org.jenkins-ci.plugins:plugin, please verify your project structure @ line 15, column 13
[WARNING] 'build.plugins.plugin.version' for com.spotify:docker-maven-plugin is missing. @ line 232, column 21
[WARNING] 'build.plugins.plugin.version' for org.jacoco:jacoco-maven-plugin is missing. @ line 214, column 21
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] com.capitalone.dashboard:Hygieia
[INFO] com.capitalone.dashboard:core
[INFO] com.capitalone.dashboard:api
[INFO] com.capitalone.dashboard:api-audit
[INFO] com.capitalone.dashboard:artifactory-artifact-collector
[INFO] com.capitalone.dashboard:bamboo-build-collector
[INFO] com.capitalone.dashboard:jenkins-build-collector
[INFO] com.capitalone.dashboard:jenkins-cucumber-test-collector
[INFO] com.capitalone.dashboard:jenkins-codequality
[INFO] com.capitalone.dashboard:sonar-codequality-collector
[INFO] com.capitalone.dashboard:aws-cloud-collector
[INFO] com.capitalone.dashboard:udeploy-deployment-collector
[INFO] com.capitalone.dashboard:xldeploy-deployment-collector
[INFO] com.capitalone.dashboard:jira-feature-collector
[INFO] com.capitalone.dashboard:versionone-feature-collector
[INFO] com.capitalone.dashboard:gitlab-feature-collector
[INFO] com.capitalone.dashboard:chat-ops-collector
[INFO] com.capitalone.dashboard:appdynamics-performance-collector
[INFO] com.capitalone.dashboard:bitbucket-scm-collector
[INFO] com.capitalone.dashboard:github-scm-collector
[INFO] com.capitalone.dashboard:github-graphql-scm-collector
[INFO] com.capitalone.dashboard:subversion-collector
[INFO] com.capitalone.dashboard:gitlab-scm-collector
[INFO] com.capitalone.dashboard:hpsm-cmdb-collector
[INFO] com.capitalone.dashboard:nexus-iq-collector
[INFO] Hygieia Publisher Plugin
[INFO] com.capitalone.dashboard:UI
[INFO] com.capitalone.dashboard:ui-tests
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building com.capitalone.dashboard:Hygieia 2.0.5-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- docker-maven-plugin:0.4.10:build (default-cli) @ Hygieia ---
[INFO] Skipping docker build
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building com.capitalone.dashboard:core 2.0.5-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- docker-maven-plugin:0.4.10:build (default-cli) @ core ---
[INFO] Skipping docker build
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building com.capitalone.dashboard:api 2.0.5-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- docker-maven-plugin:0.4.10:build (default-cli) @ api ---
[INFO] Copying /Users/oualid/Pro/carrefour/vagrant/Hygieia/api/target/api.jar -> /Users/oualid/Pro/carrefour/vagrant/Hygieia/api/target/docker/hygieia/api.jar
[INFO] Copying /Users/oualid/Pro/carrefour/vagrant/Hygieia/api/docker/api-properties-builder.sh -> /Users/oualid/Pro/carrefour/vagrant/Hygieia/api/target/docker/api-properties-builder.sh
[INFO] Copying /Users/oualid/Pro/carrefour/vagrant/Hygieia/api/docker/Dockerfile -> /Users/oualid/Pro/carrefour/vagrant/Hygieia/api/target/docker/Dockerfile
[INFO] Copying /Users/oualid/Pro/carrefour/vagrant/Hygieia/api/docker/README.md -> /Users/oualid/Pro/carrefour/vagrant/Hygieia/api/target/docker/README.md
[INFO] Building image hygieia-api
Step 1/9 : FROM docker.io/openjdk:8-jre
---> c49bf7000580
Step 2/9 : MAINTAINER<EMAIL_ADDRESS>---> Using cache
---> 217064df95d9
Step 3/9 : RUN mkdir /hygieia /hygieia/config
---> Using cache
---> a10bf43b84b9
Step 4/9 : COPY hygieia/ /hygieia
---> acfcdc5a22ba
Step 5/9 : COPY api-properties-builder.sh /hygieia/
---> 46d34539ae7e
Step 6/9 : WORKDIR /hygieia
---> 69ec2493dcd9
Removing intermediate container 4c23878350ab
Step 7/9 : VOLUME /hygieia/logs
---> Running in 42d29e79b35d
---> 6615651ba682
Removing intermediate container 42d29e79b35d
Step 8/9 : EXPOSE 8080
---> Running in e74a5707a3d9
---> ff92a4d72e7f
Removing intermediate container e74a5707a3d9
Step 9/9 : CMD ./api-properties-builder.sh &&  java -Djava.security.egd=file:/dev/./urandom -jar api.jar --spring.config.location=/hygieia/config/hygieia-api.properties
---> Running in 1de8a3bc26d5
---> 352bfaee9207
Removing intermediate container 1de8a3bc26d5
ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null}
Successfully built 352bfaee9207
Successfully tagged hygieia-api:latest
[INFO] Built hygieia-api
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building com.capitalone.dashboard:api-audit 2.0.5-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- docker-maven-plugin:0.4.10:build (default-cli) @ api-audit ---
[INFO] No resources will be copied, no files match specified patterns
[INFO] Copying /Users/oualid/Pro/carrefour/vagrant/Hygieia/api-audit/docker/api-audit-properties-builder.sh -> /Users/oualid/Pro/carrefour/vagrant/Hygieia/api-audit/target/docker/api-audit-properties-builder.sh
[INFO] Copying /Users/oualid/Pro/carrefour/vagrant/Hygieia/api-audit/docker/Dockerfile -> /Users/oualid/Pro/carrefour/vagrant/Hygieia/api-audit/target/docker/Dockerfile
[INFO] Copying /Users/oualid/Pro/carrefour/vagrant/Hygieia/api-audit/docker/README.md -> /Users/oualid/Pro/carrefour/vagrant/Hygieia/api-audit/target/docker/README.md
[INFO] Building image hygieia-apiaudit
Step 1/9 : FROM docker.io/java:openjdk-8-jdk
---> d23bdf5b1b1b
Step 2/9 : MAINTAINER<EMAIL_ADDRESS>---> Using cache
---> 21093b96d01e
Step 3/9 : RUN mkdir /hygieia /hygieia/config
---> Using cache
---> 5c5f6b776e59
Step 4/9 : COPY hygieia /hygieia
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] com.capitalone.dashboard:Hygieia ................... SUCCESS [  0.916 s]
[INFO] com.capitalone.dashboard:core ...................... SUCCESS [  0.008 s]
[INFO] com.capitalone.dashboard:api ....................... SUCCESS [ 11.714 s]
[INFO] com.capitalone.dashboard:api-audit ................. FAILURE [  0.510 s]
[INFO] com.capitalone.dashboard:artifactory-artifact-collector SKIPPED
[INFO] com.capitalone.dashboard:bamboo-build-collector .... SKIPPED
[INFO] com.capitalone.dashboard:jenkins-build-collector ... SKIPPED
[INFO] com.capitalone.dashboard:jenkins-cucumber-test-collector SKIPPED
[INFO] com.capitalone.dashboard:jenkins-codequality ....... SKIPPED
[INFO] com.capitalone.dashboard:sonar-codequality-collector SKIPPED
[INFO] com.capitalone.dashboard:aws-cloud-collector ....... SKIPPED
[INFO] com.capitalone.dashboard:udeploy-deployment-collector SKIPPED
[INFO] com.capitalone.dashboard:xldeploy-deployment-collector SKIPPED
[INFO] com.capitalone.dashboard:jira-feature-collector .... SKIPPED
[INFO] com.capitalone.dashboard:versionone-feature-collector SKIPPED
[INFO] com.capitalone.dashboard:gitlab-feature-collector .. SKIPPED
[INFO] com.capitalone.dashboard:chat-ops-collector ........ SKIPPED
[INFO] com.capitalone.dashboard:appdynamics-performance-collector SKIPPED
[INFO] com.capitalone.dashboard:bitbucket-scm-collector ... SKIPPED
[INFO] com.capitalone.dashboard:github-scm-collector ...... SKIPPED
[INFO] com.capitalone.dashboard:github-graphql-scm-collector SKIPPED
[INFO] com.capitalone.dashboard:subversion-collector ...... SKIPPED
[INFO] com.capitalone.dashboard:gitlab-scm-collector ...... SKIPPED
[INFO] com.capitalone.dashboard:hpsm-cmdb-collector ....... SKIPPED
[INFO] com.capitalone.dashboard:nexus-iq-collector ........ SKIPPED
[INFO] Hygieia Publisher Plugin ........................... SKIPPED
[INFO] com.capitalone.dashboard:UI ........................ SKIPPED
[INFO] com.capitalone.dashboard:ui-tests .................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 14.901 s
[INFO] Finished at: 2018-02-07T19:49:32+01:00
[INFO] Final Memory: 47M/739M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.10:build (default-cli) on project api-audit: Exception caught: COPY failed: stat /var/lib/docker/tmp/docker-builder357288815/hygieia: no such file or directory -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn  -rf :api-audit
Configuration version
Docker version 17.09.0-ce, build afdb6d4
Maven 3.5.2
java version 1.8.0_25, vendor: Oracle Corporation

@OualidBourgou - I believe this is a java version issue. Try something like 1.8.0_141.

Yes thanks @matthewbeasley I have indeed changed the version of Java (for openjdk version "1.8.0_151") and it worked ! :)

@OualidBourgou - Awesome!


Magic Rollback

Hello,
I'm just now learning of colmena, and it looks great! I'm just opening this issue because I was originally looking for a flakeless alternative to deploy-rs, and having looked at it made me see its magic rollback feature.
How would you feel about implementing something like that for colmena?
I think the process would be to do something like:

upload the closure
run something akin to nixos-rebuild test; (sleep 300 && rollback) &
then open a new ssh connection (without ControlMaster, so with ssh -S none)
have the new ssh connection kill the sleep 300 && rollback command

I think that by using grub's robustness mechanisms it'd even be possible to have a similar mechanism working for when the system needs to be rebooted, which would be an awesome feature that AFAICT no other deployment mechanism has, but that'd certainly be a lot more work to implement.

That's an interesting idea! I think an easy way to implement this is with a list of scripts (deployment.checkScripts maybe?) that are run on the target machine after the configuration is activated. If any of the scripts fail (e.g., internet connectivity check), the configuration is rolled back.

This would sound great! Though maybe even better if there were a way to get “default” check scripts so that everyone doesn't have to redevelop similar check scripts.
Actually that makes me think: it'd also require a deployment.localCheckScripts that would contain scripts ran on the deployer host, so that it could try to ssh into the being-deployed host, as forward-checks are not the same as backwards-checks if eg. the firewall is misconfigured in the new configuration.

I have to say I regularly have to switch off auto-rollback in deploy-rs because it's too indiscriminate.
So being able to define the checks oneself, is a great design.
Between that and a default, is the option of a library, still.
Defaults are comfortable, but intransparent.

I've been using colmena to deploy some DigitalOcean machines and while reworking the network config have lost connectivity few times, so having checks is very welcome.

@zhaofengli I noticed a comment mentioning an auto-rollback.sh script, but I can't find its source -- is this part of an implementation of this feature?

@zhaofengli I noticed a comment mentioning an auto-rollback.sh script, but I can't find its source -- is this part of an implementation of this feature?

Right now there is no such file. It is still a planning feature, but I am working on an alternative way to fit my need about rollback.

Here is a quick idea how this would work, but still under planning. The idea about rollback has several ideas behind:

Assumes the last usable profile(target rollback) is current - 1
Flexible to implement user defined checks
System should be able to reboot and still do auto rollback (in case of applying kernel upgrade breaks network connections aka driver issue)

Here is an sample script:
let
  timestamp = "/var/auto-rollback-timestamp";
  check-period = "*:0,30"; # every 30 mins
  wait-period = "30"; # allow 30 minutes to recover
in {
        deployment.keys."auto-rollback-timestamp" = {
                keyFile = ./blank; # An empty file
                destDir = "/var"; # Default: /run/keys
                permissions = "0755"; # Default: 0600

                uploadAt = "pre-activation";
        };

        system.activationScripts = {
            auto-rollback = {
                text = ''
                    # If auto-rollback-timestamp file exists and it is empty, write timestamp to file
                    if [ -f "${timestamp}" ]; then
                        if [ ! -s "${timestamp}" ]; then
                            date +%s > ${timestamp}
                        fi
                    fi
                '';
            };
        };

        systemd.timers.auto-rollback = {
            wantedBy = ["timers.target"];
            timerConfig = {
                OnCalendar = check-period;
                Unit = "auto-rollback.service";
            };
        };

        systemd.services.auto-rollback = {
            restartIfChanged = false;
            serviceConfig = {
            Type = "oneshot";
            ExecStart = pkgs.writeScript "auto-rollback" ''
                #!${pkgs.runtimeShell} -e

                timestamp="${timestamp}"

                function rollback_to_previous_profile {
                    rm $timestamp

                    # Find current generation
                    # Populate the array with file and folder names
                    while IFS= read -r file; do
                        files+=("$file")
                    done < <(ls -lt "/nix/var/nix/profiles" | ${pkgs.gawk}/bin/awk 'NR > 1 {print $NF}')
                    last_profile=''${files[2]}
                    echo "Switch back to Profile: $last_profile"
                    $last_profile/bin/switch-to-configuration switch
                }

                if [ ! -f "$timestamp" ]; then
                    echo "File does not exist: $timestamp, skipping rollback checks"
                    exit 0
                fi

                stored_timestamp=$(cat "$timestamp")
                number_regex='^[0-9]+$'

                if [[ $stored_timestamp =~ $number_regex ]]; then
                    echo "Valid timestamp: $stored_timestamp"
                else
                    echo "Invalid timestamp! Rolling back right now..."
                    rollback_to_previous_profile
                fi

                wait_period="${toString wait-period}"

                echo "checking timestamp $stored_timestamp"
                current_time=$(${pkgs.coreutils}/bin/date +%s)
                threshold=$((current_time - (wait_period * 60)))

                echo "Threshold $threshold"
                if [ "$stored_timestamp" -lt "$threshold" ]; then
                    echo "Current time has a difference of more than $wait_period minutes compared to the stored timestamp."
                    rollback_to_previous_profile
                else
                    echo "Current time is within $wait_period minutes of the stored timestamp."
                    exit 0
                fi
            '';
            };
        };
}

Here is an idea how the above scripts works:

pre-activation: colmena will upload an empty file to given directory
activation script: if file exists and it is empty, write timestamp
The systemd services will repeatly check if the file exists and if corresponded timestamp has reach maximum wait time, delete the file and rollback
To stop rollback, delete /var/auto-rollback-timestamp

The good thing about this design it provide flexibly way for user to implement rollback: to stop it simply delete the file. Default I will do colmena exec rm /var/auto-rollback-timestamp, also user could run scripts that deletes the file.
However the timer approach may introduce race condition and there is a constant timer in the system checking the file. This could be better addressed by have the systemd service trigger every time of deployment/onBootSec only.
I am not entirely sure if this is a good approach at all, nor how this could be part of the colmena, or deploy-rs using similar strategy(which I should), but I leave it here for now and see it will help another needs a solution atm.

DISCLAIMER: I haven't tested the following idea yet. Use at your own risk.
Maybe we could also implement it as follows (just a rough idea, nothing specific yet). Before starting the main colmena process , test or switch, use colmena exec to track the ssh connection and if we are reasonably sure that the connection couldn't be established, reboot.
All in all this would be something like

colmena exec --on=abc "nohup sh -c script &" where script is something like

echo "This is just a weird identifier since I don't know how else to kill this process"
counter=0;
while :; do
  fin=$(ss -tnp | grep sshd)
  if [ $counter -ge 5 ] && [ -z $fin ]; then
    reboot
  else
    sleep 60;
    ((counter++))
  fi;
done

colmena apply test --on=abc
colmena apply switch --on=abc (optional)
colmena exec --on=abc ps aux | grep "weird identifier" | awk '{print $2}' | xargs -I{} kill {}

As you can see some things, like stopping the process, are still a bit akward.


rules inside media queries don't apply correctly in IE 11 and 10

Description
Rules inside media queries don't apply correctly if custom properties are used inside a :host rule.
Live Demo
(Open in IE 11 or IE 10)  The box should match the background color.
http://jsbin.com/qanepud/edit?html,output
Steps to Reproduce

Consume a custom property e.g. color: var(--color, red);
Set that --color property from a :host rule inside a media query.
Add a few other rules to the media query to change the appearance of the page.
Call updateStyles on window resize.
Try to resize the window until it hits the media query.
-->

Expected Results
The rules inside the media query should take effect if the media query is matching. Similarly the properties that consume a custom property set from a media query should update their value.
Actual Results
Rules inside the media query are occasionally ignored similarly custom properties aren't set properly.
Browsers Affected

[ ] Chrome
[ ] Firefox
[ ] Edge
[ ] Safari 9
[ ] Safari 8
[X] IE 11
[X] IE 10

Versions

Polymer: v1.6.0
webcomponents: latest

Seeing similar behavior in this JSBin that doesn't have Polymer at all: http://jsbin.com/vocoqu/edit?html,output

It looks like this is a style-recalc bug in related to @media rules in styles that are outside the DOM. The simplest fix is to rebuild the CSSOM by resetting the textContent of the cached style node.


sushiswap ethereum: Protocol Error totalValueLockedUSD

Field: totalValueLockedUSD
Value: $122,114,604,903.64
Description: This field on dexAmmProtocol entity has a value below $0 or above $100,000,000,000.

@steegecs Looks like this pool 0xea9b00b169dda4cbc9fa0a64b0d1e4a6a23a3f34 is pricing wrong

thanks @steegecs, it hasn't synced yet.

Synced up now!

@steegecs QA passed, looks like blacklisting Deri token worked. Thank you.


Add horreum to components

This change add Horreum to the components via an operator. This currently includes dedicated postgresql and keycloak pods as a proof-of-concept. There is also a dedicated grafana pod, but that is vestigial and will be removed in a later update.
Currently pending needed updates to the Horreum operator to fix an SSL issue, remove grafana, and correct the pod command for keycloak.

I think that given a recent changes in the project, we will not need this. Current plan is t use Red Hat internal Horreum instance. We can reopen if plans change again :-/ Thank you Dustin for a great work!