Expose Store#handleAction

Now that ES6 classes make using object hashes a pain I'm re-evaluating how we use them. Thanks to #163 we're getting rid of object hashes in Action Creators so I'm wondering if it would make sense to get rid of them in the store as well? If we got rid of the handlers object hash replacing it with a switch case we'd be able to do everything you can do with action predicates but with the added benefits that:

We wouldn't have to expose action handlers to the public interface
You can express more complicated scenarios
The code would be terser and action types would be next to the actual code rather than having the handlers object in a different place from the actual handlers
Our code would be much simpler
Potential performance benefits

var FooStore = Marty.createStore({
  getFoo(id) {
    return this.state.foos[id];
  }
  handleAction(action) {
    switch(action.type) {
      case Constants.RECIEVE_FOO:
        var foo = action.payload.foo;
        this.state.foos[foo.id] = foo;
        this.hasChanged();
        break;
      case Constants.RECIEVE_FOO_FAILED:
        var { foo, error } = action.payload;

        this.state.errors[foo.id] = error;
        this.hasChanged();
        break;
    }
  }
})

I reckon we should keep the old style for now but add a warning saying it will be depreciated in v0.10.

@oliverwoodings @dariocravero @giuse88 what do you think?

Not sure - sorry. That code is going to sprawl and could be bug prone (accidental missing break), I much prefer having declarative stuff right at the top stating what actions are handled where, with the implementation below. A massive switch statement would be a step back IMO

Agree with @Dakuan, a big switch statement makes it harder to reason in the long run.

would something in the constructor be a reasonable compromise? E.g something like the this.bindActions here: http://fluxxor.com/documentation/stores.html#-fluxxor-createstore-spec-

That approach still means your action handlers are publicly exposed + constants aren't co-located with its associated code.
This example from NuclearMail is a good example of how it would scale to a large store.

On the other hand (and I know this is probably not the greatest argument in the world) this is the approach Facebook have taken for all their Flux code. It's obviously scaled very well for them so can't be all that bad

Mmm, that's true. You have a point with those methods not being publicly available being a good thing. handleAction is publicly available is sort of the same as someone
On NuclearMail's example they do use some sort of "private method convention". Alternatively, this could also be enforced as a pattern:
function receiveFoo(payload) {
  var foo = action.payload.foo;
  this.state.foos[foo.id] = foo;
  this.hasChanged();
}

function receivedFooFailed(payload) {
  var { foo, error } = payload;
  this.state.errors[foo.id] = error;
  this.hasChanged();
}

class FooStore extends Marty.Store {
  getFoo(id) {
    return this.state.foos[id];
  }
  handleAction(action) {
    switch(action.type) {
      case Constants.RECIEVE_FOO:
        receiveFoo.bind(this)(action.payload);
        break;
      case Constants.RECIEVE_FOO_FAILED:
        receivedFooFailed.bind(this)(action.payload);
        break;
    }
  }
}

Then it's up to whomever builds the application to use that pattern.
Alternatively, we could hide that action handler?

function handleAction(action) {
  switch(action.type) {
    case Constants.RECIEVE_FOO:
      receiveFoo.bind(this)(action.payload);
      break;
    case Constants.RECIEVE_FOO_FAILED:
      receivedFooFailed.bind(this)(action.payload);
      break;
  }
}

class FooStore extends Marty.Store {
  constructor(options) {
    super(_.extend(options, {actionHandler: handleAction});
  }
  getFoo(id) {
    return this.state.foos[id];
  }
}

Thoughts?

What about a function called getActionHandlers that is responsible for returning an object of constants and handlers?

@oliverwoodings  its less so the fact we expose the handlers object hash and more that

We're exposing private functions publicly
The place you define the action type is far away from the actual handler so you've got to do some mental processing of the file
Action predicates limit you how you handle actions. If you have a function you can do whatever you want

@dariocravero I much prefer your first example
I agree that handleAction would be public but I you could argue its a much smaller surface area

Just been debating this with a colleague. Here are the two styles side by side. Still undecided but if people are really anti it then happy to keep as is
handlers
class FooStore extends Marty.Store {
  get handlers() {
    return {
      recieveFoo: Constants.RECIEVE_FOO,
      recieveFooFailed: Constants.RECIEVE_FOO_FAILED
    }
  }
  recieveFoo(foo) {
    this.state.foos[foo.id] = foo;
    this.hasChanged();
  }
  recieveFooFailed(foo, err) {
    this.state.errors[foo.id] = error;
    this.hasChanged();
  }
}

switch
class FooStore extends Marty.Store {
  handleAction(action) {
    var { foo, error } = action.payload;
    switch(action.type) {
      case Constants.RECIEVE_FOO:
        this.state.foos[foo.id] = foo;
        this.hasChanged();
        break;
      case Constants.RECIEVE_FOO_FAILED:
        this.state.errors[foo.id] = error;
        this.hasChanged();
        break;
    }
  }
}

@jhollingworth looking at one of Facebook's Flux examples a bit closer it actually looks more like my second example as in that they pretty much don't make those handlers public at all and dispatchToken is explicitly set with those handlers.
What about repurposing Marty.register(Store) to set that list then That would also simplify handleAction considerably I guess.
So it could actually look a bit like:
class FooStore extends Marty.Store {
  getFoo(id) {
    return this.state.foos[id];
  }
}

Marty.register(FooStore,  function handleAction(action) {
  switch(action.type) {
    case Constants.RECIEVE_FOO:
      receiveFoo.bind(this)(action.payload);
      break;
    case Constants.RECIEVE_FOO_FAILED:
      receivedFooFailed.bind(this)(action.payload);
      break;
  }
})

I like that its separate but would like to keep Marty.register focused on type registration
I think its best to keep the old style as it a) works b) would mean asking users to update their code for arguable value.

Cool


Migrações para melhorias de consistência de dados

Migrações para https://github.com/MakersNetwork/agenda-saude/pull/278

Merging as it was reviewed at https://github.com/MakersNetwork/agenda-saude/pull/278


Support Rails Credentials

This patch adds support for the credentials feature introduced in rails 5.2.
The code patch has been updated to also check that the secret_key_base is also actually set. This is more in-line with the logic of config.secret_key_base in Rails 5.2 and whit what other gems like Devise do.
We can't use config.secret_key_base since it doesn't exist on Rails versions before 5.2.
Replaces https://github.com/refile/refile/pull/595
Closes https://github.com/refile/refile/issues/593

@Jcambass restarting the work in Refile.
Can you add some specs for this? Maybe add the newer rails version to CI to make sure that it works?

For some reason I've only seen your message now :/ Unfortunately I don't use Refile anymore so I'm going to close this PR. Feel free to piggy back on this PR.


Remove dependency on auto_start_flutter

Alarm plugin version
*ex: 4.1.0
Describe the bug
The dependency on auto_start_flutter is an issue, since that package is outdated and can no longer be compiled and would need an update. See this.
There are already a dozen or so forks of that package (including my own now), with apparently different solutions to its compilation issues that work for different people on different versions, etc.
But obviously that is not really a sustainable solution if one wants to use the alarm package for production. The "fixes" I made in my fork, for example, are basically just guesswork.
Maybe the original package will be upgraded, maybe its dev is MIA, who knows.
Either way, it might be a better idea to integrate this functionality directly in alarm to further reduce dependencies.

Hi @TheSHEEEP,
You raise a good point—it might make sense to implement the auto_start_flutter permission check directly within the alarm package. However, I also believe it’s important for a package to remain focused and as simple as possible, staying within its intended scope.
What are your thoughts on this balance?

I agree, but I'd also say that implementing that check would make alarm simpler to use due to requiring fewer dependencies. The scope or focus wouldn't be changed anyway since the functionality is already there.
I don't think someone could argue that acquiring needed permissions is out of scope for a package.
It happens sometimes that a dependency just becomes unmaintained or disappears, I think what is usually done in that case is to either ~copy-paste~ put the functionality inside the project itself or take up maintenance of the dependency (even if only in the form of an official fork of the original).
Or drop the functionality if the dependency was too much of a burden to maintain - but I don't think that applies here. The auto_start_flutter package works, but its surrounding build files (gradle, manifest, etc.) need a brush up to suit latest Flutter versions.

Alright, I'll add this to my to-do list and I'll keep you updated here !

FWIW we are using https://pub.dev/packages/disable_battery_optimization in a project along with Alarm and it is working well so far.


Something is wrong with the ranking...

Thanks for pointing it out. In this context, the '#' symbol refers to the model ID and is not an indicator of ranking order.

Thanks for pointing it out. In this context, the '#' symbol refers to the model ID and is not an indicator of ranking order.

Ok, I know. Thanks for pointing out. But it is still weird to list model id there since this is nothing informational to outsiders. Why not list rank order instead?

We have updated the leaderboard with plenty of new models and fixed the ranks at https://promptpg.github.io/leaderboard.html. Thank you for your feedback!

We have updated the leaderboard with plenty of new models and fixed the ranks at https://promptpg.github.io/leaderboard.html. Thank you for your feedback! @zhimin-z

That looks so nice! @lupantech


Add actual MRTK Architecture documentation

Everything in the architecture section is currently pretty lacking and pretty random, more of a function of who had time to write some docs more so that an actual planned out approach.
I've been writing up an overview doc which I want to use to replace the current architecture docs. The goal of this isn't to go into implementation-detail level information

The original intent of this issue was bring to the public some of the writings that we had on an internal doc, that was a survey of the stuff inside the MRTK. It was a part architecture, part "here's all the stuff and generally at a high level how it works"
I think the key things that were missing from the public docs were overviews of the terms of the input system, along with some of the key components inside there. Also missing were things like explanations about the overall structure of the toolkit and some definitions on what a profile is, etc.

I'm going to close this one out, not indicating that "architecture documentation is done" but that the original goal here (of providing some basic outline, definitions, and intents) was completed.


NLog ADXTarget optimize default settings for batching

Better out-of-the-box experience

Closing since UseStreamingIngestion already is available, and ensures batching.


Fix missing libcrypt by dropping freedesktop sdk version down

Current main branch is broken as Resolve will fail to launch due to reliance on a legacy version of libcrypt which is no longer packaged by default in the latest version of the freedesktop sdk.
See https://github.com/pobthebuilder/resolve-flatpak/issues/27 for more info.

Closing as I've put some work in to fix compatibility with the newer freedesktop runtime version.
Submitting a new PR with my fixes!


Does not translate Array.prototype.include calls when using x'includes'

Kind of an edge case, but if you reference the includes property using [] instead of ., the plugin will not transform the code.  Exampe:
x.includes(123);
x['includes'](123);

which should be identical in behaviour result in:
'use strict';

x.indexOf(123) !== -1;
x['includes'](123);
//# sourceMappingURL=test.js.map

Which I don't beleive is correct.  Using babel-node confirms this:
> var x = [1,2,3]
undefined
> x.includes(1)
true
> x['includes'](1)
true

Would you like to try and fix this as well?
cheers


Update plugin-beagle-security.yml to enable automated plugin release

Description
Enabling automated plugin release for Beagle Security plugin
https://github.com/jenkinsci/beagle-security-plugin
PR for CD changes in the repo : https://github.com/jenkinsci/beagle-security-plugin/pull/7
Submitter checklist for adding or changing permissions

Always

[x] Add link to plugin/component Git repository in description above

When enabling automated releases (cd: true)

[x] Add a link to the pull request, which enables continuous delivery for your plugin or component. Don't merge the PR yet.
In case of changes requested by the hosting team, an open PR facilitates future reviews, without derailing work across multiple PRs.
Follow the documentation to ensure, your pull request is set up properly.

When adding new uploaders (this includes newly created permissions files)

[x] Make sure to @mention an existing maintainer to confirm the permissions request, if applicable
[x] Use the Jenkins community (LDAP) account name in the YAML file, not the GitHub account name
[x] Make sure to @mention the users being added so their GitHub account names are known if they require GitHub merge access (see below).
[x] All newly added users have logged in to Artifactory and Jira at least once

Reviewer checklist (not for requesters!)

[ ] Check this if newly added person also needs to be given merge permission to the GitHub repo (please @ the people/person with their GitHub username in this issue as well). If needed, it can be done using an IRC Bot command
[ ] Check that the $pluginId Developers team has Admin permissions while granting the access.
[ ] In the case of plugin adoption, ensure that the Jenkins Jira default assignee is either removed or changed to the new maintainer.
[ ] If security contacts are changed (this includes add/remove), ping the security officer (currently @Wadeck) in this pull request. If an email contact is changed, wait for approval from the security officer.

There are IRC Bot commands for it

@rejahrehim Review to address has been submitted in https://github.com/jenkinsci/beagle-security-plugin/pull/7

@rejahrehim Are you still interested in enabling CD? Please address my outstanding feedback above.


[DO NOT MERGE] Unity Ads to 4.6.0

I mapped the new banner error codes the same as they were being mapped for fullscreen ads.

@kendallrogers make sure to merge the latest changes from main after https://github.com/ChartBoost/chartboost-mediation-ios-adapter-unity-ads/pull/32 is merged, to get in the fix for https://chartboost.atlassian.net/browse/HB-5457


Pyclone Input

Hi Team,
I was thinking about how to call clusters across multiple samples and wanted to get your thoughts on using the ccube_sv_input file that is generated and converting it to a pyclone input. I was thinking you could average the reads/depth over the two breakpoints but not sure how to approach sv's with different copy number calls at the two breakpoints. Could limit analysis to SV's which have the same CN calls but would lose a lot of SVs that way.
I appreciate your thoughts.
Thanks,
Michael

Hi Michael,
Although there's no ideal solution I can think of, here's are a few options you can try:

Take one side of the SVs only -- you could run this twice using the left and right sides and check the discrepancy in the downstream results.
Average the normal read counts and keep only CN states that are the same (as you suggest). This might let you identify the clusters if you have enough SVs, and you could then run SVclone's clustering to check the CCFs/clusters of the SVs you missed.
Run SVclone's clustering separately for each sample, then match the SV CCFs between samples. While it would be tricky to get consensus clusters, you will likely be able to tell (roughly) how similar the clonal structure is between samples.

Whichever option works the best will likely depend on your individual data set and experiment.
Cheers,
Marek

Thanks for the insight - very helpful!


Dynamic occluders

I'm sorry if this is covered in the docs but I couldn't find it. What about dynamic occludes like doors? I would be fine with portals similar to Unity occlusion portals that can just be closed or open.

Anders,
First of all, thanks for trying out Project Acoustics and providing the feedback.
Handling limited dynamic objects like doors is something that we are currently experimenting with, but are not quite to the point of releasing.  If you would like to help evaluate and provide feedback on the proposed changes, please send email to<EMAIL_ADDRESS>and we'll give you access to a preview drop with this support.
Thanks,
Noel

Anders,
I forgot that the experimental feature is only available for Unreal at this time.  If you are interested in testing out the solution in Unreal, please let me know.  We don't yet have a plan to release this feature or develop the Unity equivalent, but let's start a dialog about what you are thinking about using this for and we'll see what we can do.
Thanks,
Noel

@NoelCross, thanks for feedback. I'm the lead dev of a VR multiplayer shooter looking at your project. We have looked at other solutions too, like Steam Audio, Oculus Audio and Google Resonance. But none of them have Diffraction which makes your project very interesting. Since we are half way through development with our game using Unity we cant switch engine :D But I hope you will consider implementing all features in Unity too. Unity is a big engine in the VR world.
Other than diffraction I really like that your can set acoustic material on a per renderer material. Its really useful for those situions when you have forexample a glass window on the same mesh as a wall. None of the others support this.

@NoelCross Btw, I dont know if I should create a new issue for this, let me know if you want me to. But a feature I really miss in the others are a way  to query the engine. For example we are working on very advanced tactical AI. It would be so useful if we somehow could create virtual audio listeners and get events when certain levels are reached or similar. This would make AI situatal awareness soo much better.

Anders, it sounds like you have an exciting VR game on your hands.  When we do release the dynamic occluders feature, we hope to also have Unity support as well, but we currently don't have a release date for that feature yet.
As for querying the engine, you can get a sense for the metadata that our engine generates by turning on the debug information per source.  This is done by enabling the AcousticManager gizmo during play mode and opening the Scene view.  You'll get a debug overlay on the sound source that shows the following metadata.  If this is useful for you, you could query this info during the gameplay by following the pattern in the script.
        // Now that we have the parameters, display them in the UI
        string debugText = $"Acoustics Parameters for Source: {parameters.SourceId}\n" +
        $"Source Position: {parameters.SourcePosition.x}, {parameters.SourcePosition.y}, {parameters.SourcePosition.z}\n" +
        $"Listener Position: {parameters.ListenerPosition.x}, {parameters.ListenerPosition.y}, {parameters.ListenerPosition.z}\n" +
        $"Listener Outdoorness: {parameters.Outdoorness}\n" +
        $"Direct Azimuth: {parameters.AcousticParameters.DirectAzimuth}\n" +
        $"Direct Elevation: {parameters.AcousticParameters.DirectElevation}\n" +
        $"Direct Loudness DB: {parameters.AcousticParameters.DirectLoudnessDB}\n" +
        $"Reflections Loudness DB: {parameters.AcousticParameters.ReflectionsLoudnessDB}\n" +
        $"Early Decay Time: {parameters.AcousticParameters.EarlyDecayTime}\n" +
        $"Reverb Time: {parameters.AcousticParameters.ReverbTime}";


Tree view

Tree view integrated to the search results page.
(Perhaps the search page needs multiple tabs: search, batch search, tree view, facet explorer.)

I agree, but at least the tree view should remain available also when opening a result in a new page; if you find something interesting, you maybe want to be able to see the entire tree view of that specific document in one glance

@jarib also the tree view should show previews of the docs; for instance if you want to browse an email folder like you would do it in an email client, without opening each email

TODO:

[ ] Keep parent folder contents in the left side bar when previewing an item

Ideally, we could have something like Finder's multi-column file navigation:

Possible implementations:
https://ruoru.github.io/react-mac-finder/
https://frezc.github.io/react-finder/examples/basic.html

moved to eic


Benchmark the indexing & query speed

Describe the feature
Benchmark the indexing & query speed
Your proposal
Benchmark the indexing & query speed

Environment

Screenshots

Related PR #3 #4

Closing issue since capability is included in #3 and #4


iOS 10 Status bar issue

Hi All,
I'm having having an issue where the header is shown bellow the status bar.
So the header.y == statubar.maxY.
The tableview's.y == 0. So the content is shown bellow the status bar.
Can anyone help?
Thanks in advance!

let statusBarHeight = UIApplication.shared.statusBarFrame.height
tableView.contentInset = UIEdgeInsetsMake(-statusBarHeight, 0.0, 0.0, 0.0)


Don't trust names from KPs

We are calling ICEES DILI and it produced odd names for things.  i.e. it transforms our input node from a name of
"n0": {
      ...
      "name": "drug-induced liver injury"
    },

into "name":"DILIDx".
We should trust the names from the node normalizer (since we're calling that anyway)

OBE? ICEES DILI is no longer a KP, and was weird to be in Translator anyways. I don't think we normalize the received node names still, but it doesn't seem to be an issue anymore. Please reopen if it is.


Minor release with s/per_file/per_module/ ?

I'm planning to remove support for per_file in jbuilder soon so that we can make progress on https://github.com/janestreet/jbuilder/pull/111. According to this, datakit is the last package in opam that uses per_file. Could we have a minor release just changing per_file to per_module?

Looks like @samoht fixed this in https://github.com/moby/datakit/commit/f9ef3c97e9c6a49edc27c497aa89beafd674efa7#diff-83dee8443b77e780b8f9acfe6f8084e1.
@samoht: is there anything left to do before making another release?

Various dependencies of datakit (including ocaml-git, irmin, github-hook, session) are still stuck at using older conduit/cohttp versions. I think I managed to update everything (apart I saw some weirdness with latest conduit+launchd that I need to investigate) and I created https://github.com/moby/datakit/pull/609 to reflect these changes.

This is done with the 0.12 release


Create a distinction between old style race and new style race 3rd try

Sorry, it fell from my table ;).
Let's try again :)²
I pulled from your last changes, so there should not be conflict anymore ;).
I added more tests. Some are noted with "### Following tests work after this PR" some with "###Following tests don't work with this PR, more code is required". You can try with your present code to be convinced.
Target of this pull request is to be able to read the classifications for "new style race" like Itzulia Women. To avoid making too much changes at a time, this PR is only the first step. It populates standings. An object Standing() is created, to be able to access the results using obj.results_table. Without this object the behavior would be different for "old style race" and "new style race" (one would be accessed with res.standings["gc"] and the other with res.standings["gc".results_table --> bad).
Part2 of the PR will be to resolve the
r=r_2023.results(classification_num=2).results_table
assert len(r) == 18
assert r['Rider'].iloc[0] == 'Wyllie Ella'
assert r['Time'].iloc[0] == "10:04:05"
Presently, the API will call
https://firstcycling.com/race.php?r=14244&y=2023&e=&l=2
But as the parameter "l" is not supported it redirect to https://firstcycling.com/race.php?r=14244&y=2023&e= and we get the gc instead of the youth classification.
This will be solved by the use of standings.

Thanks @psemdel , really appreciate your help here. 😄
To make sure I understand, is this PR only to address the different syntax between lines 3 and 4 below?
from first_cycling_api import Race
basque = Race(6)
basque.edition(year = 2023).results(classification_num = 2).standings['youth'] # new
basque.edition(year = 2022).results(classification_num = 2).results_table # old

Is there any other problem that the Standings class will solve?
If not, I personally think the current behaviour is acceptable and am not sure adding the Standings class is worth the added complexity. What do you think?

Hi, the target of this Standings is to be able to handle other classifications for "new" races.
Without the class Standings, you would have to make a try/except everywhere, as sometimes your result would be in "result_tables" (for old races) and sometimes directly at the root (for new ones).
Final result of my modifications, can be understood in the tests https://github.com/psemdel/FirstCyclingAPI/blob/main/tests/test_race.py

Without the class Standings, you would have to make a try/except everywhere, as sometimes your result would be in "result_tables" (for old races) and sometimes directly at the root (for new ones).

I understand. However, with your method we actually lose the ability to load all the classifications at once for the new races. For example, previously, you could do:
basque.edition(year = 2023).results(classification_num = 2).standings['points']

but I think in your PR that data will no longer be exposed.
Furthermore, the try/except situation is not too bad, since users can use the year to know which "style" it is (2023 is new, <2022 is old), and we have a warning in place to let them know about this quirk.
Because of these reasons, I don't think it is worth adding the Standings class. I hope you see my point of view.
Would be happy to accept PRs fixing the other issues, such as the startlist endpoint.

Ok, it is your repo ;) Let's see how much adaption it requires without this one.

I removed the standings,  but frankly you can see it yourself in the test: sometimes there is results_table, sometimes not. How to plan that... in combi.py I have also strange if everywhere to check if results_table is there...

@psemdel , I hope I am not frustrating you. Don't get me wrong - I really appreciate your support. The startlist parser will be very useful, and I'll have a closer look in about a week or two, as I am travelling again.

sometimes there is results_table, sometimes not. How to plan that...

I have in mind something like:
if race.year >= 2023:
  race.results(classification_num = 2).standings['youth']
else:
  race.results(classification_num = 2).results_table

Do you think that would be possible?
Also, I see that you have added some new changes. Are those meant to be in a separate PR or do they relate to the Standings change? It looks to me like the Standings stuff is still in this PR.


AttributeError: module 'utils.utils' has no attribute 'get_entropy'

File "/home/YuLan-Rec-main/simulator.py", line 551, in one_step
entropy = utils.get_entropy(ids, self.data)
AttributeError: module 'utils.utils' has no attribute 'get_entropy'

Thank you very much for bringing this to our attention! The issue has been addressed and the necessary changes have been made. Please feel free to reach out if you have any further questions or suggestions. Thank you for your support and understanding.


Unexpected literal type unary for negative number validator

Expected Behavior
Compile successfully
Actual Behavior
Failed to compile and produce above error
Steps to Reproduce the Problem
Make an input type with signed integer and validates using minimum validator with negative number.
Ex:
#[graphql(validator(minimum=-100, maximum=100))] num: i32,

Specifications

Version: 6.*
Platform: Mac M1
Subsystem:

When you change the order, it compiles successfully. I still don't know what the problem is. 😂
#[graphql(validator(maximum=100, minimum=-100))] num: i32,


Refactor some duplication in class and struct layout

Both classes and structs can contain fields of generic type and therefore require runtime layout. The runtime exposed two different entry points for this. The struct entry point took an array of TypeLayout objects, whereas the class entry point took an array of size/alignment pairs. The code for initializing the field offset vector was duplicated and slightly different in IRGen.
Refactor classes to use TypeLayouts and converge the two code paths.
While testing the refactoring, I discovered that IRGen was incorrectly emitting TypeLayouts for SIMD types. Before the change, this was only exposed by generic structs with SIMD fields. After the change, generic classes with SIMD fields also broke, and we had a test case that covered that.
Now that the code duplication is gone, the same fix applies to both cases.

@swift-ci Please smoke test


emit 2.0 schema

This changeset adds the scan2, depresolve2, and graph2 commands to srclib-go. These commands mirror their v1 counterparts but instead emit output that conforms to the srclib v2 schema.
This also updates the expected test cases and updates the Makefile test target to use the current version of srclib instead of the old out-of-date version.

Can you merge the no-docker branch first to make this diff only contain relevant changes?

I can try to do that, but no-docker also introduced a bug that would break some defs and refs (related to no longer passing the repo URI to the toolchain) and I'll have to factor out that fix. Sorry about that large, unruly changeset :(

I fixed that I think. Did you try it in the last week or so?

On Jan 21, 2016, at 13:07, Beyang Liu<EMAIL_ADDRESS>wrote:
I can try to do that, but no-docker also introduced a bug that would break some defs and refs (related to no longer passing the repo URI to the toolchain) and I'll have to factor out that fix. Sorry about that large, unruly changeset :(
—
Reply to this email directly or view it on GitHub.


Image dind is not working: "Cannot connect to the Docker daemon"

The image docker:dind (https://hub.docker.com/_/docker) is not working.
Steps to reproduce: follow "How to" instruction on project page:
[me@my-pc ~]$ docker run -it --rm --privileged --name some-docker -d docker:dind
270c8f75b65c236a8ec2679020ff0dc3afa920582f5aa7ea4c1c7741f3c9cc41
[me@my-pc ~]$ docker run -it --rm --link some-docker:docker docker version
Unable to find image 'docker:latest' locally
latest: Pulling from library/docker
05e7bc50f07f: Already exists
6db28d0fdbf6: Already exists
292df0bc6bf3: Already exists
2e060f4bd70b: Already exists
80e8d568a223: Already exists
8dc6ef1a942a: Already exists
2312dd95470a: Already exists
Digest: sha256:11663df6a04f355f0d726c8ae20de03ee3b1ef1008bbb63027d0e13b137a8186
Status: Downloaded newer image for docker:latest
Client: Docker Engine - Community
 Version:           20.10.0
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        7287ab3
 Built:             Tue Dec  8 18:54:00 2020
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true
Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?

This error occurs whenever I try to use the image.
This happens on both windows an linux.
Note: this is my first issue in the projet, do not hesitate to suggest for improvement in the redaction

Whoops, looks like it's finally time to update our asciinema! :see_no_evil:
(That one is now five years old!  Docker 1.7.1 is a throwback. :sweat_smile:)
If you scroll down a little further, there are (correct) instructions on the page.
If you'd like to preview the new asciinema I just recorded to replace that one, you can find it at https://asciinema.org/a/378669 :smile:

Ok thanks, even though the asciinema link is down

Ouch, I wonder if that was related to Google's recent outage or just a strange coincidence!
(it appears to be working now, but also it's just me following the steps that are outlined in the image description, so you could also just keep reading past that section :smile:)

I don't get it. How should work that on Windows? --privileged is not supported. Why do servercore images exist?

Running the Docker daemon inside a container on Windows is unfortunately not supported, and I'm not sure it'll ever be supported (that's a question for Microsoft).
The Windows images are client-only, and are useful for connecting to a remote Docker daemon or a daemon running on the host whose named pipe is mounted into the container.

Thank you very much for clarification
On Thu, Aug 19, 2021, 23:33 Tianon Gravi @.***> wrote:

Running the Docker daemon inside a container on Windows is unfortunately
not supported, and I'm not sure it'll ever be supported (that's a question
for Microsoft).
The Windows images are client-only, and are useful for connecting to a
remote Docker daemon or a daemon running on the host whose named pipe is
mounted into the container.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/docker-library/docker/issues/278#issuecomment-902262798,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADCL5FH2DVKHMS55YHNXGATT5V2A5ANCNFSM4UWWG4MQ
.
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&utm_campaign=notification-email
.


Upgrade R to v3.2.0 for Mac OS X 10.9+

Update R Cask to install R v3.2.0 on Mac OS X 10.9+

Thanks.


Indentation uses tabulations but guidelines suggest against this

When formatting a document, the extension will indent using a tabulation.
However ACE guidelines says:

Indentations consist of 4 spaces. Tabs are not allowed.

Source : https://ace3.acemod.org/wiki/development/coding-guidelines.html#52-indents

Is there any chance this could be configurable in the extension settings?


Appium support for behat mink extension.

Appium is a test automation framework for the native, hybrid and mobile we app. Added Appium factory to support test execution in the iOS and Android devices/simulators. Added all Appium related desired capabilities. Tested locally and worked fine !

:+1:

Please also add corresponding driver spec at https://github.com/Behat/MinkExtension/tree/master/spec/Behat/MinkExtension/ServiceContainer/Driver

@aik099 It's already created over here https://github.com/Shashikant86/MinkExtension/commit/b145b0d8534901ee639fc5ad67a6b8c79b2442c0

You misunderstood. I'm talking about tests (or specs). You've only added new driver.

@aik099 Cool. Added specs for the Appium Driver. Waiting for merge !

@stof I have refactored the code as per your suggestions, didn't got your last point about configuration ?

@Shashikant86 Is it possible to change the host and port on which appium is listening ? If yes, it should be configurable.
Btw, <IP_ADDRESS> looks like a weird host

@stof by default Appium start on <IP_ADDRESS>:4327 but I have added config so that we can specify APPIUM_HOST and APPIUM_PORT from the config. Have a look ..

@stof Added default values and removed EVN variables. Host looks weird but Appium start on <IP_ADDRESS>:4327 by default.

:+1: for this, i could use it for a project i'm working on :smile:

@stof Used 4 space per indentation as per your suggestion

@stof do you think it's still mergable?

@stof Do you think, we can merge this ? Many people will use this driver for Mobile Test Automation on iOS and Android. Let me know if you have any suggestions or improvements ?
I have tested it locally and don't think have any issues.

:+1:

any news about this merge? I need the appium driver with Mink

@ciaranmcnulty Thanks a lot for merging this.
To all interested people, I have created Demo repository to test this called 'Behat-Appium' please configure behat.yml with your capabilities and give it a go :)
It should work well for all Simulators and Real Devices. However I found there is and open issue in Appium 5624 which causing issue with latest Appium version with node, Xcode 7 iOS 9 Simulator.
@jlipps  Can you please look into this 'Behat-Appium' with Xcode 7 and iOS9 Simulator ?
I am getting this  with following
Node : v5.10.1
Appium : Latest (1.5.*) See package.json
Xcode : Version 7.3 (7D175)
OSX : EI Capitan 10.11.4 (15E65)
` $Behat-Appium: ./bin/behat
Feature: ATDD
In order to implement ATDD
As a QA
I need to write acceptance tests first
@javascript @atdd
Scenario: Searching            # features/atdd.feature:7
Given I am on blogs page     # FeatureContext::iAmOnBlogsPage()
Could not open connection: An unknown server-side error occurred while processing the command. Original error: Could not find a device to launch. You requested 'iPhone 5 (8.2) [EC39CE08-D041-4525-8D6F-C499DF06A5F3] (Simulator) (8.2)', but the available devices were: ["Apple TV 1080p (9.2) [6ED92467-58D6-40E2-A9BB-A64E9DCBEFD6] (Simulator)","iPad 2 (8.1) [86DC45E1-FF0D-44CD-BB1D-36F963C3D445] (Simulator)","iPad 2 (8.2) [91B16F68-6EE2-4A2E-85D1-D6BB6653BE85] (Simulator)","iPad 2 (9.2) [0CECA1B8-3B3F-42C9-ADEF-D9AF1714AF66] (Simulator)","iPad 2 (9.3) [F5E7EC84-4B54-4C2B-9487-37A84668F1C3] (Simulator)","iPad Air (8.1) [ADE760F4-6289-46C5-88CC-24CF148BAA85] (Simulator)","iPad Air (8.2) [DB51D629-28F3-4794-A04E-B71DFABFD542] (Simulator)","iPad Air (9.2) [86CCB8B7-7C63-4A2C-95CD-0D80B893878D] (Simulator)","iPad Air (9.3) [947275D2-E971-43DC-B427-F5DB1DA4B956] (Simulator)","iPad Air 2 (9.2) [ECA8CC12-8C3F-4162-8019-88EC7B79E706] (Simulator)","iPad Air 2 (9.3) [9DA511C3-CA27-49DE-9C72-B49918A8DA7A] (Simulator)","iPad Pro (9.2) [1BAACBA0-5929-4218-9753-0AE353874A05] (Simulator)","iPad Pro (9.3) [26894AAF-7F17-47A8-97A5-D9492B5FFF37] (Simulator)","iPad Retina (8.1) [D12BF695-F78E-48E5-A5E7-1516B2C873BB] (Simulator)","iPad Retina (8.2) [31BC93CE-5085-45D6-8365-82FB5F198099] (Simulator)","iPad Retina (9.2) [16EDABD5-3F72-4561-BAA6-DA163F2F1DCF] (Simulator)","iPad Retina (9.3) [3E7CE0F9-A538-4D7D-BAA9-E7F0A4855837] (Simulator)","iPhone 4s (8.1) [46392E6A-E229-4BF4-A338-6896F2D3FE08] (Simulator)","iPhone 4s (8.2) [3F65B5A9-37BB-4043-89AD-B5E4EA3675CB] (Simulator)","iPhone 4s (9.2) [5EA6BEC0-EB79-48E4-AB58-EE3B27C72C90] (Simulator)","iPhone 4s (9.3) [1EE04092-2E6A-40D7-8E8D-1D2A0839DBC8] (Simulator)","iPhone 5 (8.1) [EC39CE08-D041-4525-8D6F-C499DF06A5F3] (Simulator)","iPhone 5 (8.2) [7DB8603B-69D9-43C2-A521-AC0A3DB147EB] (Simulator)","iPhone 5 (9.2) [43A81DD9-6435-4563-B71E-2C971D16C81C] (Simulator)","iPhone 5 (9.3) [13BFC6F3-10D1-4F23-BFDB-B444550B4C02] (Simulator)","iPhone 5s (8.1) [9256A830-A549-40B5-96A1-9AFDB333BEF8] (Simulator)","iPhone 5s (8.2) [B142C653-9DA8-4CA3-9AB3-93DDA42CA76B] (Simulator)","iPhone 5s (9.2) [45EF12BC-4FE1-46F6-91B7-C1986B18824F] (Simulator)","iPhone 5s (9.3) [4266885D-81D3-4CF6-AC85-B474C6D657EA] (Simulator)","iPhone 6 (8.1) [621B41B2-0C20-4726-AA8E-393A72E59C0D] (Simulator)","iPhone 6 (8.2) [BAB51A1D-E280-443C-BCE6-2C802637EA94] (Simulator)","iPhone 6 (9.2) [6725BDEF-F39B-4494-A3E4-1EAFB95D110C] (Simulator)","iPhone 6 (9.3) [C2FF8C48-BD18-4CB8-B3A7-39B861B9021E] (Simulator)","iPhone 6 Plus (8.1) [F5D4C659-274F-43E9-B7B4-74598770723C] (Simulator)","iPhone 6 Plus (8.2) [86CDDD27-75BA-4A11-B865-6788BC4EB483] (Simulator)","iPhone 6 Plus (9.2) [41D7F87C-6519-470F-96E9-24F0D0B7518B] (Simulator)","iPhone 6 Plus (9.3) [A5C6A5C0-E638-4A55-99AA-C7B6C57DA113] (Simulator)","iPhone 6s (9.2) [7BEA5167-6CA1-41D1-A830-840021E5E477] (Simulator)","iPhone 6s (9.3) [3F3159C2-1D68-4F0B-A885-14477103298E] (Simulator)","iPhone 6s (9.3) + Apple Watch - 38mm (2.2) [F82BE825-8EA3-4C99-834A-ECECE425EB0C] (Simulator)","iPhone 6s Plus (9.2) [E3483553-9ECD-4AA5-BEED-D50AD6FCBF73] (Simulator)","iPhone 6s Plus (9.3) [B7A47312-14CB-4E54-A8D8-270F47AE2791] (Simulator)","iPhone 6s Plus (9.3) + Apple Watch - 42mm (2.2) [C5F16345-EC93-44D8-AC35-92488EB5083E] (Simulator)"] (Behat\Mink\Exception\DriverException)
When I search for "chips"    # FeatureContext::iSearchFor()
Then I should see "No Posts" # FeatureContext::assertPageContainsText()
`
Your help is highly appreciated 👍


adding script type version=1.7 for FF

In FF without this ES6 let will not work. Would be nice to have support for it.
Please refer to:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/let / Firefox-specific notes

This can easily done using a custom template.


(Release 3.3) broken link in new lineage lab

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
Link to exposing a service in
Important: When running this lab using kubernetes deployment, make sure that you expose the Egeria UI running in the container to your local network and access it via localhost.
Is broken - it points to https://odpi.github.io/egeria-docs/guides/admin/kubernetes/chart_lab/#accessing-the-egeria-ui which no longer exists (I think some refactoring - not me - was done which changed the URLs)
We could fix in 3.3 if quick, or add to release notes
cc: @lap
Expected Behavior
Link should work correctly
Steps To Reproduce
as above
Environment
- Egeria:
- OS:
- Java:
- Browser (for UI issues):
- Additional connectors and integration:

Any Further Information?
No response

@planetf1 I will look into it

Additionally, in ui-asset-search notebook
a) We also need the link to how to expose the kubernetes service
b) The password provided (admin) is wrong - should be secret

Additionally, in ui-asset-search notebook a) We also need the link to how to expose the kubernetes service (the process provided does not work, as it provides the cluster service address, which isn't necessarily exposed...) b) The password provided (admin) is wrong - should be secret
Can handle in release notes if needed

I included quick-fix for these two in the same PR #5865


Failed styles prop type check while trying to render DateRangePicker

Overview
I tried applying the DateRangePickerWrapper example along with the application of react-styles for theming but i m getting the following error:

Failed prop type: The prop styles is marked as required in DateInput, but its value is undefined.

My wrapper component
import React from 'react';
import 'react-dates/initialize';
import 'react-dates/lib/css/_datepicker.css';
import { DateRangePicker } from 'react-dates';
import ThemedStyleSheet from 'react-with-styles/lib/ThemedStyleSheet';
import aphroditeInterface from 'react-with-styles-interface-aphrodite';
import DefaultTheme from 'react-dates/lib/theme/DefaultTheme';
import PropTypes from 'prop-types';
import momentPropTypes from 'react-moment-proptypes';
import omit from 'lodash/omit';

ThemedStyleSheet.registerInterface(aphroditeInterface);

const propTypes = {
    autoFocus: PropTypes.bool,
    autoFocusEndDate: PropTypes.bool,
    initialStartDate: momentPropTypes.momentObj,
    initialEndDate: momentPropTypes.momentObj,
    selectedBgColor: PropTypes.string,
    selectedTextColor: PropTypes.string,
};
const defaultProps = {
    autoFocus: false,
    autoFocusEndDate: false,
    initialStartDate: null,
    initialEndDate: null,
    selectedBgColor: '#02C8A4',
    selectedTextColor: '#fff',
};
export class DateRange extends React.Component {
    constructor(props) {
        super(props);
        let focusedInput = null;
        if (props.autoFocus) {
            focusedInput = 'startDate';
        } else if (props.autoFocusEndDate) {
            focusedInput = 'endDate';
        }
        this.state = {
            focusedInput,
            startDate: props.initialStartDate,
            endDate: props.initialEndDate,
        };
        ThemedStyleSheet.registerTheme({
            reactDates: {
                ...DefaultTheme.reactDates,
                color: {
                    ...DefaultTheme.reactDates.color,
                    selected: {
                        backgroundColor: props.selectedBgColor,
                        color: props.selectedTextColor,
                    },
                },
            },
        });
    }

    onDatesChange = ({ startDate, endDate }) => {
        this.setState({ startDate, endDate });
    }

    onFocusChange = (focusedInput) => {
        this.setState({ focusedInput });
    }

    render() {
        const { focusedInput, startDate, endDate } = this.state;
        // These props are needed on the wrapper level but are not part of the airbnb single date picker
        // If we dont do this, an error is thrown by the component :/
        const props = omit(this.props, [
            'autoFocus',
            'autoFocusEndDate',
            'initialStartDate',
            'initialEndDate',
            'selectedBgColor',
            'selectedTextColor',
        ]);
        return (
            <DateRangePicker
                {...props}
                startDateId="start_date_input"
                endDateId="end_date_input"
                onDatesChange={this.onDatesChange}
                onFocusChange={this.onFocusChange}
                focusedInput={focusedInput}
                startDate={startDate}
                endDate={endDate}
            />
        );
    }
}
DateRange.propTypes = propTypes;
DateRange.defaultProps = defaultProps;

Is there a step i am missing? Previous threads tend to suggest trying to set an interface which i am already doing. Note: Identical setup works for the SingleDatePicker with the exception of the startDate endDate props which differ here ofcourse.

You shouldn't need import 'react-dates/initialize'; if you're registering your own aphrodite interface, as long as you add https://github.com/airbnb/react-dates/blob/master/src/utils/registerInterfaceWithDefaultTheme.js#L6 - can you try that?

No change, same error.

Hi, I've added "startDateId" and "endDateId" props and still get an error says I should supply those required props. Attached my code and the warnings
 <DateRangePicker {...options}                            hideKeyboardShortcutsPanel                            minimumNights={0}                            startDate="null"                            startDateId="startDateId"                            endDate="null"                            endDateId="endDateId"           />

That is... very surprising. Is this the only DRP you're rendering @ebl22? What version of react-dates are you on?

@majapw I'm using "react-dates": "^16.2.1". The warnings disappear when I remove the props: startDate, endDate. I pass those props in the options, so maybe I got those warnings cause I passed it twice..

Setting two additional props on the DatePicker worked for me:
startDateId="start"
endDateId="end"

@asulaiman Hmm, so the react-with-styles theme is meant to be done only once on an app-wide basis. My guess is that you're doing it multiple times (rendering DateRange more than once) which is blowing up the theme and causing some strange issues.
It looks like you're rendering multiple DateRangePickers and you want each one to have a different selected color, yeah? There is a way of doing that, but it is a bit more complicated. It is on my TODO list to add a section to the README to give more detail on that. I will try to do a write-up today.

@majapw did you every get around to documenting the preferred way to do this?

is this fixed, as of 18.1.1 version?

Setting two additional props on the DatePicker worked for me:
startDateId="start"
endDateId="end"

Setting two additional props on the DatePicker worked for me:
startDateId="start"
endDateId="end"

            <DateRangePicker
                startDate={this.props.filters.startDate}
                endDate={this.props.filters.endDate}
                onDatesChange={this.onDatesChange}
                focusedInput={this.state.calendarFocused}
                onFocusChange={this.onFocusChange}
                startDateId="start"
                endDateId="end"
            />

Fixed my isssues Thanks @HollyJHuber

Thanks @HollyJHuber!
I can confirm that this works, just add them as static values and the console error disappears
startDateId="start"
endDateId="end"

This seems to be working for me too but dont know why i needed to add it.
startDateId="start"
endDateId="end"

If use default example I have the same error.
Just set my state :
this.state = {
      startDate: moment(),
      endDate: moment(),
      focusedInput: null  <-----------
};

Already set the focusedInput, not working...

If use default example I have the same error.
Just set my state :
this.state = {
      startDate: moment(),
      endDate: moment(),
      focusedInput: null  <-----------
};

Already set the focusedInput, not working...


IPython console: AttributeError: 'module' object has no attribute 'argv'

From kamil.paral on 2014-04-23T08:42:23Z
Spyder Version:  2.2.4
Python Version:  2.7.5
Qt Version    :  4.8.5, PyQt4 (API v2) 4.10.2 on Linux
pyflakes >=0.5.0:  0.7.3 (OK)
pep8 >=0.6      :  1.5.4 (OK)
IPython >=0.13  :  0.13.2 (OK)
rope >=0.9.2    :  0.9.4 (OK)
sphinx >=0.6.6  :  1.1.3 (OK)
matplotlib >=1.0:  1.3.1 (OK)
sympy >=0.7.0   :  None (NOK)
pylint >=0.25   :  1.1.0 (OK)
What steps will reproduce the problem?

Go to Preferences -> Console -> External modules and uncheck Matplotlib GUI backend
Restart Spyder
Try to start an IPython console What is the expected output? What do you see instead? IPython console fails to start with error:
" 'import sitecustomize' failed; use -v for traceback "

After debugging, the traceback is:
Traceback (most recent call last):
File "/usr/lib64/python2.7/site.py", line 502, in execsitecustomize
import sitecustomize
File "/usr/lib/python2.7/site-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 171, in <module>
from spyderlib.widgets.externalshell.monitor import Monitor
File "/usr/lib/python2.7/site-packages/spyderlib/widgets/externalshell/monitor.py", line 23, in <module>
from spyderlib.utils.module_completion import module_completion
File "/usr/lib/python2.7/site-packages/spyderlib/utils/module_completion.py", line 30, in <module>
from spyderlib.baseconfig import get_conf_path
File "/usr/lib/python2.7/site-packages/spyderlib/baseconfig.py", line 37, in <module>
if programs.is_module_installed('IPython', '>=1.0'):
File "/usr/lib/python2.7/site-packages/spyderlib/utils/programs.py", line 266, in is_module_installed
actver = get_module_version(module_name)
File "/usr/lib/python2.7/site-packages/spyderlib/utils/programs.py", line 212, in get_module_version
mod = import(module_name)
File "/usr/lib/python2.7/site-packages/IPython/init.py", line 43, in <module>
from .config.loader import Config
File "/usr/lib/python2.7/site-packages/IPython/config/init.py", line 16, in <module>
from .application import *
File "/usr/lib/python2.7/site-packages/IPython/config/application.py", line 67, in <module>
""".strip().format(app=os.path.basename(sys.argv[0]))
AttributeError: 'module' object has no attribute 'argv'
When I put the checkbox back, everything is OK. What version of the product are you using? On what operating system? Fedora 20
Please provide any additional information below
. issue #771 apparently wasn't fixed.
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=1799

From ccordoba12 on 2014-12-15T09:25:34Z
This was fixed a long time ago by the IPython guys.
Status: WontFix


visualizer suggestion 4: genre colors? and beatmaps? am i high?

This one is probably the biggest ask for visualizer and wouldn't add really anything for most people until visualizer got its own beat map uploading place like how the official gamemodes do
what would the use of the beatmap be? to tell visualizer when the genre changed.
this would be used in the current color scheme. Similarly to how monstercat's old visualizer used to keep the color to the current songs genre so could visualizer. but instead of being 1 color like old monstercat it could follow in the footsteps of the handful of channels like rsvm and dynamically change the color mid song depending on genre: example using million pp on the previously mentioned rsvm channel
how does visualizer know what genre goes to what color? well it technically doesn't, there would be a small faq of what colors rsvm/monstercat used but the beatmap would in fact only store the color value not the genre alongside the timestamp. (there could also be a place on like the wiki or a discussions page for common colors if people want to do that)
Anyway this is just a suggestion and not at all expected, this is a bit of a tall order after all, probably about half the size of work as yoso in total, just less input stuff. If you have any questions if you dare to implement it, feel free to ask away, and Im willing to have criticism.

another example of a large number of genres in a single song here


Login Buttons Should "Click"

Buttons in login sequence should have touch state like rest of the app

[x] Login to Facebook Button
[x] Login to Spotify Button

done


openMenuOffset default value setted up via props

@Kureev why it was closed? What's wrong?

@xxsnakerxx Damn, I tough I've already merged it in, sorry.
It's just hard to manage PRs not related to any story and without any description. You can find a nice article about "How to write the perfect PR"

I can't merge it in due to conflicts. I'll manually pick up your changes and push it as a patched version

Added in 0.15.5


chore(button): reduce line-height to support 2 lines

Closes #1350

I think its better to define line-height: normal or 1.1 see here: It becomes obvious that setting line-height: 1 is a bad practice. I remind you that unitless values are font-size relative, not content-area relative, and dealing with a virtual-area smaller than the content-area is the origin of many of our problems. iamvdo.me/en/blog/css-font-metrics-line-height-and-vertical-align

very interesting article, though it gave me the strongest headache ever.


dracut: apply etc.conf in initrd-setup-root

As of systemd v225 mount no longer is invoked with -n making the /etc/mtab
symlink necessary from an early stage.
Fixes https://github.com/coreos/bugs/issues/463

LGTM


Updating version

Would it be possible to bump the DEAP version to a later one? They currently are at 1.2.2 and this recipe fixes it to 1.0.2 if I'm not mistaken.

It looks like the linux builds aren't working, in a similar vein to conda-forge/statsd-feedstock#3 and conda-forge/cfchecker-feedstock#7...
Cloning into '.'...
Warning: Permanently added the RSA host key for IP address '<IP_ADDRESS>' to the list of known hosts.

Permission denied (publickey).

fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Exited with code 128

@ericdill @ocefpaf @jschueller has our understanding of the underlying issue changed?

Rekicking the missing builds on circle finished the builds!


Support retrieving interim results for runtime jobs

What is the expected behavior?
Qiskit Runtime now support persistent interim results for up to 2 days. We need an interface in qiskit-ibm for this.

merged in runtime repo https://github.com/Qiskit/qiskit-ibm-runtime/pull/15


Conflicting specifications regarding the required size for output of mbstowcs

These 2 cannot be true at the same time (emphasis mine):
If there are 2 bytes in the multibyte output string for every wide character in the input string (including the wide character NULL), the result is guaranteed to fit.
and
[....]because assuming that you'll need two bytes for every wide character may not be enough.
I believe that the first occurence is wrong, and should be reformulated.
Best Regards,
Andrei Porumb

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

ID: 7a078179-8c20-56df-178b-2ac9445406af
Version Independent ID: 8053086c-3546-c94f-9b32-238806ec21fe
Content: wcstombs, _wcstombs_l
Content Source: docs/c-runtime-library/reference/wcstombs-wcstombs-l.md
Service: visual-cpp
Sub-service: ucrt
GitHub Login: @TylerMSFT
Microsoft Alias: twhitney

We are in the process of moving away from GitHub issues for C++ documentation (we still accept pull requests). For details, please see Announcing a new way to give feedback on Microsoft Learn This issue will be closed after it is copied to an internal tracking system.


Can not get new access token at all, "An invalid audience was specified on the authorize request."

Also posted issue here: https://github.com/oktadev/okta-smartfhir-docs/issues/11#issue-1492742284
I have no idea what I am doing wrong. When I try to make a get request to get a patient record I keep getting
"An invalid audience was specified on the authorize request."

I have updated the audience field for the default authorization server and in the requests using postman I make sure the 'aud' and I even tried 'audience' query parameter is added and it is the same as what I put in on the okta website.

I have tried so many different settings to get this to work it is basically feeling hopeless. How can I get it to authorize? I keep constantly without fail get the error message
"An invalid audience was specified on the authorize request."
No matter what I do, I just can not get any different result. I have added the audience changed the audience to different values and made sure it matches the query parameter in the request.
What else can I do? I am stuck here with this audience error. Please help me.

Hi there- sorry you're having issues.... I hope I can help.  First off, I would like to confirm the parameter should be "aud" and not "audience"- I know you mentioned you tried it both ways- but the way that is correct is "aud".
The error you're getting is actually part of the "authorize proxy" that implements some of the SMART-specific aspects of oauth2.  One of those checks is to ensure the aud value is what we expect.
As shown in the code snippet linked to- the check is against the "EXPECTED_AUD_VALUE" variable within the serverless.yml file.  So it should be that "aud" == "audience from Okta" == "base URL of the project".
https://github.com/oktadev/okta-smartfhir-demo/blob/2127e87e19ea10c8d755ce8a5be188415b7d9224/lib/authorize.js#L24
I hope that helps!

Hey thanks a lot finally I was able to understand and move past that error message!
Now I am getting: "Unable to validate the redirect_uri passed in”
I am trying to use Postman to make API call to get a patient records and I get this error now.
Where is the redirect_uri set?

On Dec 12, 2022, at 1:34 PM, dancinnamon-okta @.***> wrote:
Hi there- sorry you're having issues.... I hope I can help. First off, I would like to confirm the parameter should be "aud" and not "audience"- I know you mentioned you tried it both ways- but the way that is correct is "aud".
The error you're getting is actually part of the "authorize proxy" that implements some of the SMART-specific aspects of oauth2. One of those checks is to ensure the aud value is what we expect.
As shown in the code snippet linked to- the check is against the "EXPECTED_AUD_VALUE" variable within the serverless.yml file. So it should be that "aud" == "audience from Okta" == "base URL of the project".
https://github.com/oktadev/okta-smartfhir-demo/blob/2127e87e19ea10c8d755ce8a5be188415b7d9224/lib/authorize.js#L24
I hope that helps!
—
Reply to this email directly, view it on GitHub https://github.com/oktadev/okta-smartfhir-demo/issues/60#issuecomment-1347367037, or unsubscribe https://github.com/notifications/unsubscribe-auth/A4F6INSUGD5KNQ5ADJWMHUDWM6K77ANCNFSM6AAAAAAS4MWXEA.
You are receiving this because you authored the thread.

￼
In Okta under applications it looks like I have localhost:8080 but since I am using postman, do I change this? What do I change it to here, and then what is the setting to update in postman as well?

On Dec 12, 2022, at 1:57 PM, Feroze Shahpurwala @.***> wrote:
Hey thanks a lot finally I was able to understand and move past that error message!
Now I am getting: "Unable to validate the redirect_uri passed in”
I am trying to use Postman to make API call to get a patient records and I get this error now.
Where is the redirect_uri set?

On Dec 12, 2022, at 1:34 PM, dancinnamon-okta @.***> wrote:
Hi there- sorry you're having issues.... I hope I can help. First off, I would like to confirm the parameter should be "aud" and not "audience"- I know you mentioned you tried it both ways- but the way that is correct is "aud".
The error you're getting is actually part of the "authorize proxy" that implements some of the SMART-specific aspects of oauth2. One of those checks is to ensure the aud value is what we expect.
As shown in the code snippet linked to- the check is against the "EXPECTED_AUD_VALUE" variable within the serverless.yml file. So it should be that "aud" == "audience from Okta" == "base URL of the project".
https://github.com/oktadev/okta-smartfhir-demo/blob/2127e87e19ea10c8d755ce8a5be188415b7d9224/lib/authorize.js#L24
I hope that helps!
—
Reply to this email directly, view it on GitHub https://github.com/oktadev/okta-smartfhir-demo/issues/60#issuecomment-1347367037, or unsubscribe https://github.com/notifications/unsubscribe-auth/A4F6INSUGD5KNQ5ADJWMHUDWM6K77ANCNFSM6AAAAAAS4MWXEA.
You are receiving this because you authored the thread.

￼
￼
I updated the redirect uri to be the same postman callback address but it is not working, I set them to be the same in Okta and in postman but it does not work I still get the error
"Unable to validate the redirect_uri passed in.”

On Dec 12, 2022, at 1:59 PM, Feroze Shahpurwala @.***> wrote:
<PastedGraphic-1.png>
In Okta under applications it looks like I have localhost:8080 but since I am using postman, do I change this? What do I change it to here, and then what is the setting to update in postman as well?

On Dec 12, 2022, at 1:57 PM, Feroze Shahpurwala @.***> wrote:
Hey thanks a lot finally I was able to understand and move past that error message!
Now I am getting: "Unable to validate the redirect_uri passed in”
I am trying to use Postman to make API call to get a patient records and I get this error now.
Where is the redirect_uri set?

On Dec 12, 2022, at 1:34 PM, dancinnamon-okta @.***> wrote:
Hi there- sorry you're having issues.... I hope I can help. First off, I would like to confirm the parameter should be "aud" and not "audience"- I know you mentioned you tried it both ways- but the way that is correct is "aud".
The error you're getting is actually part of the "authorize proxy" that implements some of the SMART-specific aspects of oauth2. One of those checks is to ensure the aud value is what we expect.
As shown in the code snippet linked to- the check is against the "EXPECTED_AUD_VALUE" variable within the serverless.yml file. So it should be that "aud" == "audience from Okta" == "base URL of the project".
https://github.com/oktadev/okta-smartfhir-demo/blob/2127e87e19ea10c8d755ce8a5be188415b7d9224/lib/authorize.js#L24
I hope that helps!
—
Reply to this email directly, view it on GitHub https://github.com/oktadev/okta-smartfhir-demo/issues/60#issuecomment-1347367037, or unsubscribe https://github.com/notifications/unsubscribe-auth/A4F6INSUGD5KNQ5ADJWMHUDWM6K77ANCNFSM6AAAAAAS4MWXEA.
You are receiving this because you authored the thread.

@dancinnamon-okta  thank you I fixed this by updating the value 'EXPECTED_AUD_VALUE' in serverless.yml and in postman adding the 'aud' query parameter to the authorize url


Explicit input validation on the server

Input data sent by the client should be validated explicitly: Text, Originator, Marker, Ticket.
The initial implementation of the Message Board server with sockets  just passes these values to server-side APIs and relies on implicit validation of arguments. Except for the Limit, which is already validated explicitly because the binary protocol specifies the valid range.
Implement explicit validation logic that can be re-used for Java RMI as well. Re-usable logic cannot throw a ProtocolException, because that class is specific to the Sockets implementation. Actual validation can take place in the generic server-side code (pityoulish.msgboard and pityoulish.tickets), but there should be an API which is independent of those. This allows to enforce additional constraints in the protocol layer.

Funny side effect: The ticket manager does not check the characters in the username. You can obtain tickets for username " ", for example. Of course, the ticket will also contain the whitespace from the username.

The initial implementation of the Message Board server with Java RMI will also rely on implicit validation of arguments. To be fixed with this issue as well.

How to handle null checks? Should these be part of the sanity check, and return a problem description? Or should the checks only be called for non-null arguments?
As of now, the DefaultMSanityChecker and DefaultTSanityChecker are inconsistent in this regard. They throw NullPointerException for missing mandatory arguments, instead of returning an error description. But DefaultMSanityChecker tolerates a null marker, because that's an optional argument.
It might be better to leave it to the caller whether an argument is optional. Then it would make sense for the checkers to require non-null arguments and throw exceptions for null.

As for optional arguments, the caller has to handle that. Sanity checkers will complain about null arguments. I'm still not sure whether I should throw an exception or report as missing. For now, an exception is thrown.

It's good enough for now. See #53 and #55 for what else could be done in this area. Help is welcome!


Java Activation - Order of events:

In the Java Activation order or events, the step 12 has "...." and then in the line below we have

If the (IntPtr, JniHandleOwnership) constructor cannot be found, then a System.MissingMethodException will be thrown.

Should I move that line to step 12?

Thanks for the catch. We always appreciate feedback that improves the accuracy and quality of our docs.


Add formatting to rows

This has been annoying me for ages.
I'm trying to place in a ISO8601 type string into a cell. For some reason google spreadsheets is changing 2019-10-26 20:06:46 to 2019-10-26 0:06:46, it's also doing other weird stuff, like making the first part of the date swap the months and days around.
This is because the field is set to Automatic type, and any new rows that are added do not inherit their  predecessor's format.
I also tried lots of things like putting spaces around the ends, multiple spaces in the middle and that too. It's either stripped out, or just formatted weirdly.

Seems like it's doable:
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/batchUpdate
https://developers.google.com/sheets/api/guides/formats

While having trouble with phone numbers, adding a single quote force a string type casting.
You could try inserting '2019-10-26 20:06:46, it should work.

I've just a published a new version of this module which is a complete rewrite using Google's V4 Sheets API (v3 is being deprecated on March 3, 2020).
Docs available here - https://theoephraim.github.io/node-google-spreadsheet
This new version has the ability to edit the formatting for the cells.
Please test it out and if you find that there is still a problem, reopen the issue.
Thanks! 😄


No interpreter found for Python 3.11.10 in managed installations or system path

python was updated in ubuntu repository, but not in uv repos

We'll be releasing these today https://github.com/indygreg/python-build-standalone/pull/322


Manage character gold and custom resources

Characters can store gold in the downtime planner.
Gold will be automatically managed, like days.
Owners can create activities that require custom resources.
Custom resources will be made available for players based on resources used in the campaign.
All custom resources will be managed automatically like days and gold.

Custom resources support could be used to add MCDM Stronghold & Followers's support in activities (eg: buying and upgrading a stronghold)


fix: attempting to fix race for channels on startup

Description
In certain scenarios, we were seeing errors on the first load after a GQL restart where multiple parallel requests may try to access the same channel in parallel.

FTR, this manifests like:
2021-03-18 13:25:41.210 [qtp477662472-39] INFO  o.h.c.g.u.g.DefaultGrpcChannelRegistry - Creating new channel for gateway-service:50071
2021-03-18 13:25:42.403 [qtp477662472-25] INFO  o.h.c.g.u.g.DefaultGrpcChannelRegistry - Creating new channel for attribute-service:9012
2021-03-18 13:25:45.224 [qtp477662472-23] INFO  o.h.c.g.u.g.DefaultGrpcChannelRegistry - Creating new channel for attribute-service:9012
2021-03-18 13:25:45.310 [qtp477662472-23] INFO  o.h.c.g.u.g.DefaultGrpcChannelRegistry - Creating new channel for entity-service:50061
Mar 18, 2021 1:25:45 PM io.grpc.internal.ManagedChannelOrphanWrapper$ManagedChannelReference cleanQueue
SEVERE: *~*~*~ Channel ManagedChannelImpl{logId=3, target=attribute-service:9012} was not shutdown properly!!! ~*~*~*
    Make sure to call shutdown()/shutdownNow() and wait until awaitTermination() returns true.
java.lang.RuntimeException: ManagedChannel allocation site


Scene stops rendering on updating token lighting

Still testing, but scene stops rendering (freezes, does not load on activation) on token lighting udate in some cases. Finding the token through console and deleting fixes it, but ive been able to repro a couple of times with this particular set of values.

Thanks for the details, I'll take a look at that animation and see what I've missed

This should be fixed in 0.1.1, thanks for the report!


gprof_dot_reader.py + Python 2.7 CI fixes

@slabasan Looks like this is good to go. I'll rebase #432 once this is merged


Cannot configure ShortenedThrowableConverter

My apologies for filing such a speculative issue, but I cannot seem to get the ShortenedThrowableConverter to work, and I am wondering if it is getting overwritten somehow in the configuration. This is using Spring Boot 2.1.5 with Logback 1.2.3 and Logstash 6.1.
My logback.xml is very simple:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
            <throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
                <maxDepthPerThrowable>30</maxDepthPerThrowable>
                <maxLength>2048</maxLength>
                <shortenedClassNameLength>20</shortenedClassNameLength>
                <!-- generated class names -->
                <exclude>\$\$FastClassByCGLIB\$\$</exclude>
                <exclude>\$\$EnhancerBySpringCGLIB\$\$</exclude>
                <exclude>^sun\.reflect\..*\.invoke</exclude>
                <!-- JDK internals -->
                <exclude>^com\.sun\.</exclude>
                <exclude>^sun\.net\.</exclude>
                <!-- dynamic invocation -->
                <exclude>^net\.sf\.cglib\.proxy\.MethodProxy\.invoke</exclude>
                <exclude>^org\.springframework\.cglib\.</exclude>
                <exclude>^org\.springframework\.transaction\.</exclude>
                <exclude>^org\.springframework\.validation\.</exclude>
                <exclude>^org\.springframework\.app\.</exclude>
                <exclude>^org\.springframework\.aop\.</exclude>
                <exclude>^java\.lang\.reflect\.Method\.invoke</exclude>
                <rootCauseFirst>true</rootCauseFirst>
                <inlineHash>true</inlineHash>
            </throwableConverter>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

However, none of these exclusions (or any of the configuration) take hold. If I remove the "exclude" tags, I get an error about having no exclusion pattern, so I know that the converter is being instantiated. I do get the error twice for some reason, which makes me wonder if the configuration is getting reset somehow.
I have also tried using the <stackTrace> element under <providers> but this does not change the behavior. Any suggestions would be appreciated!

Quick fix
Try to wrap the shortener in a provider like in this example of the documentation:
  <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
    <providers>
      <mdc/>
      <pattern>
        <pattern>
          {
            "timestamp": "%date{ISO8601}",
            "myCustomField": "fieldValue",
            "relative": "#asLong{%relative}"
          }
        </pattern>
      </pattern>
      <stackTrace>
        <throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
          <maxDepthPerThrowable>30</maxDepthPerThrowable>
          <maxLength>2048</maxLength>
          <shortenedClassNameLength>20</shortenedClassNameLength>
          <exclude>^sun\.reflect\..*\.invoke</exclude>
          <exclude>^net\.sf\.cglib\.proxy\.MethodProxy\.invoke</exclude>
          <evaluator class="myorg.MyCustomEvaluator"/>
          <rootCauseFirst>true</rootCauseFirst>
        </throwableConverter>
      </stackTrace>
    </providers>
  </encoder>

Sorry, that part of my comment got elided by the brackets, but I have tried that, and I got the same result.

Sorry, that part of my comment got elided by the brackets, but I have tried that, and I got the same result.

Sorry for my stupid question, but have you changed the encoder class as well?

Unfortunately, changing the encoder class means the pattern doesn't print the stack trace at all (and I tried with several patterns).
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <mdc/>
                <pattern>
                    <pattern>
                        {
                        "logger": "%logger",
                        "level": "%level",
                        "thread": "%thread",
                        "message": "%message",
                        "stack_trace": "%ex{full}"
                        }
                    </pattern>
                </pattern>
                <stackTrace>
                    <throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
                        <maxDepthPerThrowable>30</maxDepthPerThrowable>
                        <maxLength>2048</maxLength>
                        <shortenedClassNameLength>20</shortenedClassNameLength>
                        <!-- generated class names -->
                        <exclude>\$\$FastClassByCGLIB\$\$</exclude>
                        <exclude>\$\$EnhancerBySpringCGLIB\$\$</exclude>
                        <exclude>^sun\.reflect\..*\.invoke</exclude>
                        <!-- JDK internals -->
                        <exclude>^com\.sun\.</exclude>
                        <exclude>^sun\.net\.</exclude>
                        <!-- dynamic invocation -->
                        <exclude>^net\.sf\.cglib\.proxy\.MethodProxy\.invoke</exclude>
                        <exclude>^org\.springframework\.cglib\.</exclude>
                        <exclude>^org\.springframework\.transaction\.</exclude>
                        <exclude>^org\.springframework\.validation\.</exclude>
                        <exclude>^org\.springframework\.app\.</exclude>
                        <exclude>^org\.springframework\.aop\.</exclude>
                        <exclude>^java\.lang\.reflect\.Method\.invoke</exclude>
                        <rootCauseFirst>true</rootCauseFirst>
                        <inlineHash>true</inlineHash>
                    </throwableConverter>
                </stackTrace>
            </providers>
        </encoder>
    </appender>

Your configuration file looks correct.  I tried it myself in a simple (non-spring boot app).  Can you provide a complete example project that reproduces the behavior you see?
When you say...

none of these exclusions (or any of the configuration) take hold

Do you mean that you see json output on the console, but the stacktrace is not shortened as desired?  Or do you not even see json output on the console?

Do you mean that you see json output on the console, but the stacktrace is not shortened as desired? Or do you not even see json output on the console?

Given my original configuration file, applying the throwableConverter does not change the output at all. Classes are not filtered out, and stack traces are not shortened.
I'm in the middle of something else right now, but hopefully next week I'll have some time to produce a mini project that reproduces this. I assume you could not reproduce with the non-Spring Boot app?

I could not reproduce it.
Was the output to the console in JSON format?  Meaning that at least the LogstashEncoder is being used?

Yes, the output was the same (in JSON format) with or without the throwableConverter.
It seems that the default converter is somehow overwriting the custom converter, but I cannot track down where that might be happening.

I created a stripped-down Spring Boot project, and see that the converter works in that environment. I'll try to build that project up to the point that I can replicate the issue, whatever it might be.

Here is the culprit:
logger.error("{}", keyValue("exception", e));

I have a custom exception handler for Spring that logs exceptions with the above statement. Logstash interprets that value as an exception correctly (in that it logs a stack trace), but it does not apply the stacktrace filter to the exception.
I'm more than happy to be told that I should not log exceptions this way, although I might ask that the documentation give more guidelines for how exceptions should be managed.

I'd recommend logging exceptions the way you normally log exceptions with slf4j/logback...  By including an extra argument that is not included in the message format pattern.  This will cause logback to record an exception in the ILoggingEvent, which will then be read by the stacktrace json provider, which uses the throwable converter to convert the exception to a string field.
If you use a structured argument for the exception as you have done in your example, then logback will not interpret the argument as an exception, and will not set the ILoggingEvent's throwable proxy.  In this case, the object is treated as any other POJO, and, Jackson will be used to serialize the exception object.  I'm guessing you're getting the exception serialized as a JSON object, rather than a string as well.
LogstashEncoder by default logs exceptions in a field named stack_trace, but you can customize that field name.
If using LoggingEventCompositeJsonEncoder, then the stackTrace provider controls the stacktrace output, and the fieldName can be set on the stackTrace provider configuration.

Thanks, Phil, I appreciate your patience on this.
If I might suggest two things, first adding a note/example in the documentation to mention logging exceptions without using kv structures. Second, and I'm not sure how feasible this is, check for a Throwable type before calling Jackson, and logging a warning that the user is serializing a throwable.
Regardless, appreciate your help on this. Logback has been a great help for us.

I just updated the documentation.
I decided against outputting a warning when logging an exception as a structured argument.  There might be a legitimate use case for this somewhere, and I didn't want to have to add a configuration option for "don't log a warning for exceptions logged as structured arguments or markers"


why I see ^G in the NERDTree explorer

when I enable this plugin, I see the ^G in the NerdTree explorer

opened by mistake in this project instead of nerdtree


az acr list is empty

$ az acr repository list --name "xxx" --output table
'NoneType' object is not iterable
Traceback (most recent call last):
File "/home/toma/lib/azure-cli/lib/python3.6/site-packages/knack/cli.py", line 197, in invoke
cmd_result = self.invocation.execute(args)
File "/home/toma/lib/azure-cli/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 369, in execute
six.reraise(*sys.exc_info())
File "/home/toma/lib/azure-cli/lib/python3.6/site-packages/six.py", line 693, in reraise
raise value
File "/home/toma/lib/azure-cli/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 343, in execute
result = cmd(params)
File "/home/toma/lib/azure-cli/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 182, in call
return self.handler(*args, **kwargs)
File "/home/toma/lib/azure-cli/lib/python3.6/site-packages/azure/cli/core/init.py", line 436, in default_command_handler
result = op(**command_args)
File "/home/toma/lib/azure-cli/lib/python3.6/site-packages/azure/cli/command_modules/acr/repository.py", line 255, in acr_repository_list
top=top)
File "/home/toma/lib/azure-cli/lib/python3.6/site-packages/azure/cli/command_modules/acr/repository.py", line 212, in _obtain_data_from_registry
result_list += result
TypeError: 'NoneType' object is not iterable
$ az --version
azure-cli (2.0.43)
acr (2.1.2)
acs (2.2.2)
advisor (0.6.0)
ams (0.2.1)
appservice (0.2.1)
backup (1.2.0)
batch (3.3.1)
batchai (0.4.0)
billing (0.2.0)
cdn (0.1.0)
cloud (2.1.0)
cognitiveservices (0.2.0)
command-modules-nspkg (2.0.2)
configure (2.0.18)
consumption (0.4.0)
container (0.3.2)
core (2.0.43)
cosmosdb (0.2.0)
dla (0.2.0)
dls (0.1.0)
dms (0.1.0)
eventgrid (0.2.0)
eventhubs (0.2.1)
extension (0.2.1)
feedback (2.1.4)
find (0.2.12)
interactive (0.3.27)
iot (0.2.0)
keyvault (2.2.1)
lab (0.1.0)
monitor (0.2.1)
network (2.2.2)
nspkg (3.0.3)
profile (2.1.1)
rdbms (0.3.0)
redis (0.3.0)
reservations (0.3.1)
resource (2.1.1)
role (2.1.2)
servicebus (0.2.1)
servicefabric (0.1.0)
sql (2.1.1)
storage (2.1.1)
vm (2.2.0)
Python location '/home/toma/lib/azure-cli/bin/python'
Extensions directory '/home/toma/.azure/cliextensions'
Python (Linux) 3.6.3 (default, Dec  4 2017, 10:49:19)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-18)]
Legal docs and information: aka.ms/AzureCliLegal

This looks like an ACR issue. @djyou might be able to help.

Ugh, sorry @samkreter  I just got back from vacation.


Be stricter about java lambdas in data which is persisted

It has always been a bad idea but previously we have allowed it.  This causes obscure but horrible problems in many cases:

lambdas which don't implement Serializable are written by xstream as null, and read back as null, with no warning
lambdas which do implement Serializable might be okay written by xstream but might not, and can be read differently or not at all by different JVMs, and are even more brittle than inner classes

This PR causes us to be stricter about persisting lambdas e.g. within a config key or part of an effector so that we fail fast.
Default is to FAIL if we attempt to write one which will be treated as null, and WARN otherwise.  This can be configured in brooklyn.cfg using the keys in LambdaPreventionMapper.
In addition this adds a delta-persistence synchronously as part of application/entity creation, so if a problem is detected the creation will fail.  Things are unmanaged now if creation fails.
Internally there is more work done and more API methods to get access to failures during persistence.

was pointed out that this breaks on OSGi with
org.apache.felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=brooklyn-software-winrm; type=karaf.feature; version=0; filter:="(&(osgi.identity=brooklyn-software-winrm)(type=karaf.feature)(version>=0.0.0))" [caused by: Unable to resolve brooklyn-software-winrm/1.1.0.SNAPSHOT: missing requirement [brooklyn-software-winrm/1.1.0.SNAPSHOT] osgi.identity; osgi.identity=org.apache.brooklyn.software-winrm; type=osgi.bundle; version="[1.1.0.SNAPSHOT,1.1.0.SNAPSHOT]"; resolution:=mandatory [caused by: Unable to resolve org.apache.brooklyn.software-winrm/1.1.0.SNAPSHOT: missing requirement [org.apache.brooklyn.software-winrm/1.1.0.SNAPSHOT] osgi.wiring.package; filter:="(&(osgi.wiring.package=org.apache.brooklyn.core.config)(version>=1.1.0)(!(version>=2.0.0)))" [caused by: Unable to resolve org.apache.brooklyn.core/1.1.0.SNAPSHOT: missing requirement [org.apache.brooklyn.core/1.1.0.SNAPSHOT] osgi.wiring.package; filter:="(osgi.wiring.package=com.thoughtworks.xstream.core.util)"]]]

last commit should fix that

This passed locally with tests. I will merge it.