CB-5896: Add CDP_FREEIPA_HA entitlement check.

Check the CDP_FREEIPA_HA entitlement when creating FreeIPA HA
clusters.
Fixed the readme for the running the mock-caas.
Closes #CB-5896

I am closing this PR and posting it against the rc-2.19 branch. https://github.com/hortonworks/cloudbreak/pull/7466


Markdown Notebooks - Code and Markdown buttons intersect cells in edit mode

Testing #101325

Create two markdown cells both in edit mode
The buttons to create a new code cell or markdown cell will intersect with the bottom cell in edit mode

https://github.com/microsoft/vscode/issues/101380


add loginNetWeaver function

looks good to me, maybe we can ad a short test for it. Just for local execution and / or a static one as for the others.

fine with me, then i just move the loginNetWeaver to common and create a new session module


Cleanup codebase

Apologies brother just trying to get this done right and have been flying solo just learning how to code apologies again
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10
From: BT<EMAIL_ADDRESS>Sent: Tuesday, March 12, 2019 5:48 PM
To<EMAIL_ADDRESS>Cc<EMAIL_ADDRESS><EMAIL_ADDRESS>Subject: Re: [ethereumclassic/explorer] Cleanup codebase (#284)
@btenterprise2020 commented on this pull request.
In tools/patcher.jshttps://github.com/ethereumclassic/explorer/pull/284#discussion_r264939481:

 gasPrice: txData.gasPrice,ng

 input: txData.input,

 transactionIndex: txData.transactionIndex,

 timestamp: blockData.timestamp

};

// getTransactionReceipt to get contract address and more data

let receipt;

try {

receipt = web3.eth.getTransactionReceipt(tx.hash)

} catch(err) {

console.log('Error', err);

}

tx.gasUsed = receipt.gasUsed;

tx.status = receipt.status;

@tdmllc1https://github.com/tdmllc1 Stop spamming or you will be banned.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/ethereumclassic/explorer/pull/284#discussion_r264939481, or mute the threadhttps://github.com/notifications/unsubscribe-auth/At7tpVTJw9DWCOt6fgkPT5oe1vdapxhjks5vWErkgaJpZM4bp-Tg.


Make the "boot" script a ProjectSetting

With this change, you don't need to commit a change into Escoria's
code to start your own game instead of the demo.

I might revert this in my open UI PR, since the menu script is highly project specific and should live in demo/ui/game/ui/, but until that happens, this is a much better solution than editing framework scripts. Thanks, @mjtorn. :slightly_smiling_face:


Tweak some assertions in TestSupervisorOIDCDiscovery.

We've seen some test flakes caused by this test. Some small changes:

Use a 30s timeout for each iteration of the test loop (so each iteration needs to check or fail more quickly).
Log a bit more during the checks so we can diagnose what's going on.
Increase the overall timeout from one minute to five minutes

Example test failure:
    supervisor_discovery_test.go:117:
        	Error Trace:	client.go:284
        	            				supervisor_discovery_test.go:444
        	            				supervisor_discovery_test.go:117
        	Error:      	Received unexpected error:
        	            	Post "https://6E33A366107DE5DF604520AB177790CD.gr7.us-west-2.eks.amazonaws.com/apis/config.supervisor.pinniped.dev/v1alpha1/namespaces/supervisor/federationdomains": context deadline exceeded
        	Test:       	TestSupervisorOIDCDiscovery
        	Messages:   	could not create test FederationDomain

Release note:
This is a test-only change.
NONE

Codecov Report

Merging #517 (5e95c25) into main (f69d095) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #517   +/-   ##
=======================================
  Coverage   78.58%   78.58%
=======================================
  Files         112      112
  Lines        5525     5525
=======================================
  Hits         4342     4342
  Misses       1015     1015
  Partials      168      168

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 f69d095...5e95c25. Read the comment docs.


Limit for log files

Due to some unknown reason CUPS daemon created a 4,5 GB log file on my linux root partition (leaving 0kB of unused space) and breaking my workstation (system couldn't reboot due to not enough space for process descriptors I guess) (using kubuntu 18.04).
Having removed some programs with usb bootable ubuntu from "/" partition  I could boot my system again (not knowing the reason of the issue yet).
Then after start-up, monitoring the processes and disc usage I realised an ongoing 'cupsd' process is writing constantly to log file. And again just after few minutes my root partition ran out of free space!
Repeated inspection with usb ubuntu image showed the reason was 4,5 GB 'cupsd' log file.
I hadn't used printer for a long time I have no idea what could be the reason.
In attachment I attached some images. I apologise for attaching pictures instead of print-screens but I was not able to take any in recovery mode.
As mentioned I have no clue what was the reason, I would like only suggest to introduce some limit for log files? Or Is it system's job to manage log files limits? Also I would be thankful for some piece of information on how it works for my better understanding.
https://i.ibb.co/mbqN0LJ/1.jpg
https://i.ibb.co/Kj6KKzr/2.jpg
https://i.ibb.co/YB43jm2/3.jpg

The MaxLogSize directive controls the size of log files. The default is 1mb...
Not knowing which Linux distro you are using, it is possible that they have changed the defaults in order to use their own log rotation infrastructure...


SoftFractals-Ram

Nice Journey for this Fractal Generation
Learned Something New

This is an interesting piece. The code seems to rely on a lot of AI assistance but to my eye it seems a bit more complex than what it could spit out completely on it's own. I like that it's not immediately obvious what the pattern is.
I think you've earned your Blot. Congrats! You can order it here.


Some mobs are "defeated" without being touched by a bullet

While testing the gameplay, I noticed some hostiles are automatically defeated on strange circumstances. For example, if you send a bullet when the mob hasn't showed up yet, get close to the mob, turn back and turn forward.
I'd say this is related to a bad management of player bullets, so I'll investigate that.

Here's an example of the issue:

Here, the third onion wasn't supposed to be defeated, since I didn't send a button to it. However, it happened.

Due to the circumstances where this is happening, I'm almost sure that's related to the management of "dead bullet objects". In the next days I'll be working on a fix :wink:


Upgrade kube from 0.63.1 to 0.65

Description
Review Checklist

[x] Code contains useful comments
[x] (Integration-)Test cases added (or not applicable)
[x] Documentation added (or not applicable)
[x] Changelog updated (or not applicable)

bors r+


Does not work when multiple colors are defined in the same string / value

Describe the bug
Colors are not showing properly when 2 or more #color codes are defined in the same string / value inside xml
To Reproduce

in xml, define <ColorOption colors="#fffff9d9 #ffbeedff #fffff9d9" displayName="THEME_0" id="0" />
test

Expected Behavior
Each color hash with corresponding argb value should be highlighted
Environment

Windows 11
Android Studio Giraffe | 2022.3.1 Patch 3
17.1.0

Screenshots

This demands a whole refactor of the project. Since currently the parser relies on tokens, and since a string is a single token, it will always color the whole string with the first value it encounters (or no value).
I need to think of a way to allow tokens to be splitted further, but this will need some rethinking and my time is limited, so...
If you have a better idea, I encourage you to help out!


optimal-select include messes with stacktrace due to double webpack bundling?

Excuse this brainfart post, but I'm having a weird problem:
I'm including optimal-select the 'npm way', which is bundled in 1 bundle.js using webpack-dev-server when developing.
This works fine, until I'm having errors in my own code.
When debugging using chrome devtools, as usual I click on an error to jump to the place in code (in the bundled JS) where the error happens.
Since including 'optimal-select' the console doesn't jump to the correct place anymore. Instead it always jumps to the end of the optimal-select/dist/optimal-select.js file, instead of my bundle.js where the error occurs.
Weird right?  Any guesses to why this might happen?
One thing I'm thinking here is that  optimal-select/dist/optimal-select.js is already a 'webpackified' bundle, which courtesy of an include is packaged again in my own code. Could such nested packing cause the issue? Perhaps I would probably be better of just including the optimal-select/lib/index.js because I will be packing it in a webpack bundle anyway.
Any clue how I would go about pointing my webpack config to include optimal-select/lib/index.js as entrypoint when doing require("optimal-select") instead of defaulting to optimal-select/dist/optimal-select.js "

You can use an alias in your webpack configuration like:
module.exports = {
  resolve: {
    alias: {
      'optimal-select': 'optimal-select/lib/index.js',
      .....
    }
  }
}

Thanks got this to work the other way around.
module.exports = {
  resolve: {
    alias: {
      'optimal-select': "optimal-select/dist/optimal-select.js"
      .....
    }
  }
}

Still very weird. Also had to do with rerunning my webpack-dev-server.
Anyway, don't think it's related to optimal-select so closing here.
Thanks for pointing me to alias. 👍

Is there a reason for not requiring the module the regular way ? By default the distributed version via npm contains the already transpiled files of the source and points to lib/index.js. Although pre-bundled versions are included for direct linking, its recommend to just use the module and let your built tools (e.g. webpack or browserify) handle further optimizations at the end.

Yeah I realise that. As I said, I've got a weird problem if I do. I've only ever seen this happen with optimal-select. This doesn't mean that's the culprit it could just be bad luck.
So when I do it the normal way I get the following issue: See attached screenshot: basically the console is reporting every console.log / stacktrace, etc. happening at commons.jsL147 (the commons.js from optional-select)

For completeness: adding the alias to point to the dist version, solves the issue. All stuff now points to the correct lines

:
Thoughts?

One thing that came to mind is that common.js has some special meaning in webpack: i.e.: creating a common-package from vendor libraries that are unrelated to a specific page.
I thought perhaps that interfered in some way. Renamed the package locally to utils.js instead. Alas, same issue.

Which webpack version are you using ? So far I optimal-select worked fine with the latest stable (1.13.0).
Since the datalist property isn't accessed directly by the library it could also be useful to know which other modules are used that might invoke the error.

webpack 1.13.2
webpack-dev-server 1.16.1
somehow think it's more related to how webpacl-dev-server serves it up, but
don't ask my why.
Anyway, I might update those versions when I have the time.
For now I'll close since I'm pretty sure it's not related to
optimal-select.
If/When I find a solution I'll let you know.
On Sat, Oct 29, 2016 at 12:34 PM, Stefan Dühring<EMAIL_ADDRESS>wrote:

Which webpack version are you using ? So far I optimal-select worked fine
with the latest stable (1.13.0).
Since the datalist property isn't accessed directly by the library it
could also be useful to know which other modules are used that might invoke
the error.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/Autarc/optimal-select/issues/19#issuecomment-257084128,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAYAK_r2sOQ_nbH0oLawbWl7WUoaDC1pks5q4yFPgaJpZM4KjuEA
.


Adjust the order of events in Deployer

What is the purpose of the change
Publish started event after all action done.
before:

after:

Brief changelog
Verifying this change

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Add some description to dubbo-website project if you are requesting to add a feature.
[ ] GitHub Actions works fine on your own branch.
[ ] If this contribution is large, please follow the Software Donation Guide.

Adjust dubbo-samples in pr:  https://github.com/apache/dubbo-samples/pull/1015

Change the event order might not a good idea in 3.2.x. Some users have depended on this order to export or refer services.

It might be better to add some other events to implement this functionality for the user.For example, ModuleReadyEvent.

Change the event order might not a good idea in 3.2.x. Some users have depended on this order to export or refer services.

It might be better to add some other events to implement this functionality for the user.For example, ModuleReadyEvent.

Yes, and we can make it in 3.3.x.

Change the event order might not a good idea in 3.2.x. Some users have depended on this order to export or refer services.

It might be better to add some other events to implement this functionality for the user.For example, ModuleReadyEvent.

I think add some newly events would be a better option.

Change the event order might not a good idea in 3.2.x. Some users have depended on this order to export or refer services.

It might be better to add some other events to implement this functionality for the user.For example, ModuleReadyEvent.

I think add some newly events would be a better option.

How about adding a new state, like completion.

Change the event order might not a good idea in 3.2.x. Some users have depended on this order to export or refer services.

It might be better to add some other events to implement this functionality for the user.For example, ModuleReadyEvent.

I think add some newly events would be a better option.

How about adding a new state, like completion.

ok


runOnce and runOnceAsync doesn't handle circular JSON

Messages sent (particularly errors thrown with express request objects that have cycles) are problematic -- and they need to be flattened before sent via IPC.

I believe this has been addressed.  @dlongley @davidlehn

I think it may be ok?  There is a decycle call in there for errors.  Is there some case that doesn't handle?
And to be pedantic, JSON can't be circular. ;-)


Don't error when parsing chiral SMILES

There's a fair amount of work that would be needed to provide full support for chiral SMILES, but not throwing an error is at least a start.
See the spec: http://opensmiles.org/opensmiles.html#chirality

Codecov Report

Merging #7 into master will increase coverage by 2.54%.
The diff coverage is 75.00%.

@@            Coverage Diff             @@
##           master       #7      +/-   ##
==========================================
+ Coverage   84.61%   87.15%   +2.54%
==========================================
  Files           6        5       -1
  Lines         208      218      +10
==========================================
+ Hits          176      190      +14
+ Misses         32       28       -4

Impacted Files
Coverage Δ

src/Brackets.jl
89.79% <75.00%> (+7.18%)
:arrow_up:

src/OpenSMILES.jl

src/ReadFns.jl
97.56% <0.00%> (+0.19%)
:arrow_up:

src/SMILESParser.jl
88.29% <0.00%> (+1.20%)
:arrow_up:

src/Utils.jl
84.61% <0.00%> (+2.79%)
:arrow_up:

src/Elements.jl
57.14% <0.00%> (+4.51%)
:arrow_up:

Continue to review full report at Codecov.

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

I did want to go the way of supporting full chirality - but chickened out to cut a quick release for a hobby project that failed to launch. I want to refactor some of the parsing here at some point, it's pretty squirrely... But - for now this is definitely a good idea.

Along these lines, how do you feel about minor cleanups of parsing? Want 'em?

If you are willing to clean up anything in here - fire away. I wrote the majority of this over the course of a weekend only focussing on small molecules - I've learned much better control structures, etc since then. Looking over some of this I'm shaking my head... I've had to dedicate time to some learning/brushing up on other areas lately.
Feel free to rip up, correct, improve, remove, anything you want so long as we can keep the same functionality or better. No consternation from me.

Also worth noting. Major changes have happened to LightGraphs since this was released... Might need to do some touchups there as well to get the full benefit of having SMILES(ish) -> Graph.


Bug fixes

Fixes #
Describe the changes you have made in this PR -
Screenshots of the changes (If any) -
Note: Please check Allow edits from maintainers. if you would like us to assist in the PR.

Coverage remained the same at 87.843% when pulling c2d97ade6e1de71456ca23efbf86b974456f298d on Raghavan098:patch-2 into 8a86131a8277d0265c6b2a22ba4a4da2c7ead0a5 on CircuitVerse:new_UI.


add to_ms()

Closes #74.

The tests here are somewhat circular, but I think this is as good as its going to get without actually running ms. And while I don't want to run ms in the CI tests, we almost certainly need to have some checks that do that.
 So I'm stopping here.

Great to have this - haven't time to review properly right now though.
I guess we should create an issue to track creating a validation script, like msprime's verification.py? We could run a few representative models though ms and msprime, and see if we get the same distributions of coalescent times etc. Probably the only way to really be sure we're getting this stuff right. There's no point in running ms as part of CI.

I'm having a bit of trouble with the verification scripts. The ms output looks fine, but the msprime output does not. I assume there's an issues scaling thngs so that the units all match, so I'd appreciate some assistance on this!

Verification plots with 1 million ms (mspms) and msprime replicates. Sims differ very slightly from moments for a couple of the pulse models (proportion=0.5 in the a/b/c graphs, and @apragsdale suggests the moments approximation might break down for large pulses). But overall, there's excellent agreement.
verification-1m.pdf

Very impressive! I worry slightly about the circularity of testing msprime against msprime, particularly since the ms formatting code is derived from msprime's. But, given we can't pull in ms input it's probably not worth worrying about.


LogViewer table header - fixes #2024

The following changes are implemented
Replace <td> -> <th> in table header of LogViewer.vue.
Changes in the user interface:
Correct table header elements.
Checklist when submitting a final (!draft) PR

[x] Commits are tidied up, squashed if needed and follow guidelines in CONTRIBUTING.md
[ ] Code builds
[ ] All existing tests pass
[ ] All new critical code is covered by tests
[x] PR is linked to the relevant issue(s)
[x] Rebased with the target branch

Sounds reasonable, will check/merge


Fix matrix-test crash

By "fixing" the sign conversion warning here, I turned it into an infinite loop. (Which would read out of bounds by a few billion).
Replace the reverse loop with a reverse iterator.

Serves me right for not manually running all of the examples one-by-one before merging 😆
Thank you!


is there a way to run an irc command list /LIST?

I'm looking to join a network and list all channels.

Hi,
It will be available in the next release.
In the meantime you can do something like:
const client = new Client({ ... });
await client.connect( ... );

interface ChannelItem {
  channel: string; // name of the channel
  count: number; // total users count
  topic: string; // topic description (if set)
}

const allChannelList: ChannelItem[] = [];

client.on("raw", (msg) => {
  switch (msg.command) {
    case "RPL_LIST": {
      const [, channel, count, topic = ""] = msg.params;
      const channelListItem = { channel, count: Number(count), topic };
      allChannelList.push(channelListItem);
      break;
    }
    case "RPL_LISTEND": {
      console.log(allChannelList); // ALL the channel list
      break;
    }
  }
});

// gets the channel list once connected and ready
client.on("register", (msg) => {
  client.send("LIST");
});

Hi @ralyodio,
New version has been released.
You can now list all channels:
client.on("register", () => {
  client.list();
});

and get the result:
client.on("list_reply", (msg) => {
  for (const { channel, count, topic } of msg.channels) {
    // ...
  }
});

Due to a recent little breaking change in v0.7.0, it should now be:
client.on("list_reply", (msg) => {
  const { name, count, topic } = msg.params.channels;
});


no function clause matching vmq_diversity_script_state:handle_info (v1.7.1)

To help us save time and help you faster
Note: this issue has some similarities to #798 (Timeout error for call into Lua sandbox)
Environment

VerneMQ Version: 1.7.1
OS: Alpine Linux 3.9.3
VerneMQ configuration:
leveldb.maximum_memory.percent=20
erlang.distribution.port_range.minimum=9100
listener.ssl.default=<IP_ADDRESS>:8883
log.console.level=info
persistent_client_expiration=3d
listener.ssl.keyfile=/etc/ssl/myfile.key
listener.ssl.cafile=/etc/ssl/myfile.crt
listener.ssl.require_certificate=off
allow_subscribe_during_netsplit=on
listener.ssl.certfile=/etc/ssl/myfile.crt
allow_publish_during_netsplit=on
erlang.distribution.port_range.maximum=9109
listener.ssl.tls_version=tlsv1.2
listener.vmq.clustering=<IP_ADDRESS>:44053
allow_unsubscribe_during_netsplit=on
listener.ssl.depth=5
log.console=console
allow_register_during_netsplit=on
erlang.distribution.port_range.minimum = 9100
erlang.distribution.port_range.maximum = 9109
listener.tcp.default = x.x.x.x:1883
listener.ws.default =  x.x.x.x:8080
listener.vmq.clustering =  x.x.x.x:44053
listener.http.metrics =  x.x.x.x:8888
Cluster size/standalone:
3 node cluster

Expected behavior
Expecting pub/sub normal behavior with authentication via HTTP calls using Lua plugin
Actual behavior
I'm running some publish/subscribe tests of various scenarios. All connections are done over TLS through port 8883.
No load is applied to the broker. The traffic during the test is about 1 Register, and then Subscribe or Publish and disconnect per second.
At some point I'm seeing a crash report and a massive log output indicating the following:
vmq_diversity_script_state:handle_info:162 gen_server <0.456.0> terminated with reason: no function clause matching vmq_diversity_script_state:handle_info ...

After that, the node continuously prints this kind of messages:
2019-04-30 13:51:11.004 [error] <0.3479.0>@vmq_mqtt_fsm:check_user:554 can't authenticate client {[],<<"my-client-id">>} from  x.x.x.x:42358 due to no_matching_hook_found

Important notes:

The broker authenticates all register/publish/subscribe requests using an HTTP call.
This behavior started after upgrading from 1.6.1 to 1.7.1. I haven't seen this behavior in the previous versions. Along with the version upgrade, I have added a substantial amount of applicative logs in the Lua plugin. Can that addition lead to this issue?

Hi,
Can you provide log files from when the error first occurs? It also looks like you're using a custom lua script, can you provide this as well?

@larshesel - Attached.
Thank you!
vernemq-ticket-1159-A.zip

@ramikushnir thanks for the additional info.
From what you mentioned the issue is seen with release 1.7.1 and and a new version of you Lua auth script. It worked with Verne release 1.6.1 and and old version of your Lua script.
Now the obvious quick question: do things work with Verne 1.7.1 and your old version of the script?
This would at least narrow things down. (it could be that the additional work in the script leads to timeouts somewhere, or something like that. just conjectures...)

@ioolkos Thanks for the reply.
Yes, I ran the old lua script on vernemq v1.7.1 and it showed the same symptoms - broker node crashes with the same no function clause matching vmq_diversity_script_state:handle_info error and following that, the node stops authenticating clients with no_matching_hook_found error printed.

Ok, I guess that narrows things down to changes in vmq_diversity between 1.6.1 and 1.7.1, am I right @larshesel?

@ioolkos , @larshesel please hold the Lua code drill down. I just realized there were changes in the Dockerfile and build process between the versions we deployed that may have caused this issue. Checking.

@ioolkos Update:
We're using a docker based deployment.
Up until my last upgrade attempt (when we were using vmq-1.6.1), I was using the Dockerfile shown here:
https://github.com/vernemq/docker-vernemq/blob/d1e168be8dd0c600744a880977f05b79c9a2a1e3/Dockerfile
(that's the previous version that used a downloaded .deb file for vmq 1.6.1).
Ever since we started using one of these Dockerfiles:
https://github.com/vernemq/docker-vernemq/blob/master/Dockerfile or
https://github.com/vernemq/docker-vernemq/blob/master/Dockerfile.alpine , I started seeing the issue. Including when setting VERNEMQ_GIT_REF to 1.6.1, 1.6.2 and 1.7.1 (i.e. building previous versions). the issue probably has to do with infrastructure changes, lua, erlang or other versions, and not code changed in the lua plugin or, in my opinion, diversity plugin since this is occurring with 1.6.1 and the new Dockerfile.
Any suggestions?

@ioolkos Did you have a chance to look at my last comment?

So, in short: "old" Dockerfile works, "new" Dockerfile doesn't.
Hm... pinging @larshesel for help here.

Hi @ramikushnir I was looking a bit at the logs and the lua code, but I don't see why the dockerfile would play a role here. As far as I can tell the error has something to do with an SSL connection closing. Do you use https from the lua script? Have you found any more clues?

@larshesel thank you for your answer. Yes, I am using HTTPs from the lua script on every register/pub/sub. I'm still looking into this, trying to narrow down the issue.

@larshesel Update: I've found the point causing this issue:
When we are making an HTTP call from within the lua script, whenever a Connection: close  response header is returned from the server, the MQTT node crashes.
Usually, the server we are calling is returning a Connection: keep-alive header, but at some occasions, which currently I am not sure how they are decided, it returns a Connection: close header, and that's when the vernemq node crashes. Our HTTP server's behavior hasn't changed. However, building vernemq using the new Dockerfiles, which introduces infrastructure changes result in this issue.

ok - I'll look into if we can handle these errors better - though it doesn't make sense to me that changing the dockerfile can make the remote end close the connection. I think the dockerfile changes is not the root cause.

I think the ssl_closed errrors happen due to a bug in Hackney (the HTTP client we use): https://github.com/benoitc/hackney/issues/464
So I'll follow that issue and upgrade hackney when it's been fixed. In the meantime this error exposes that we aren't properly restarting the lua scripting engine if an (unexpected) error occurs. I was working on this in #1035 - I don't think we'll manage to get this done before 1.8.0 is released, but hopefully for 1.8.1. If we get #1035 fixed then you'd still occasionally see the errors, but the lua scripts will keep on working.

Thank you for attending to this issue. I'll wait for the next version. Is there an estimate as to when 1.8.0 will be released?

1.8.0 will likely be released today (or tomorrow) - but it will not contain any fixes for this issue yet.

Thanks


Groupchat send introductions

Why are these changes needed?
By default, only the GroupChatManager knows the full list of agents participating in a GroupChat discussion. This can be problematic, as an agent may make different choices if it knows who else is present. For example, an assistant my choose to write code to crawl a webpage if there is no web_surfer agent present, but may instead ask the web_surfer to fetch the website when they are present.
This PR adds an optional flag (False by default) for the GroupChatManager to send a round of introductions to agents before a conversation starts. These introductions do not require LLM calls and do not count toward max_round.
Related issue number
N/A
Checks

[ ] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

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

Comparison is base (3a768c3) 26.63% compared to head (0607bc4) 19.57%.

Files
Patch %
Lines

autogen/agentchat/groupchat.py
15.38%
10 Missing and 1 partial :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #961      +/-   ##
==========================================
- Coverage   26.63%   19.57%   -7.06%
==========================================
  Files          28       28
  Lines        3777     3790      +13
  Branches      858      863       +5
==========================================
- Hits         1006      742     -264
- Misses       2700     2940     +240
- Partials       71      108      +37

Flag
Coverage Δ

unittests
19.52% <15.38%> (-7.06%)
:arrow_down:

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

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

My thinking is we need to figure out what are:

the requirements from use cases -- this likely include sending introductions, but also other things like agent routing, hand-off, and performance considerations like parallelism.
the primitives for composing multi-agent conservations. For a single agent, we already have system message, functions/tools, auto reply functions, and state/context including message history. But for multiple agents chat we may need a bit more. Is group chat manager a primitive?

Just some thoughts here. @afourney we can discuss this further not specific to this PR.

Yes we should discuss such things. This PR, and the problem it addresses, really come down to planning an orchestration. Right now, the GroupChatManager knows all the agents, but can't lay out plans because it can't speak -- it doesn't generate any messages of its own. On the other hand, other agents (e.g., the primary assistant agent) is very capable of making plans, but it can't make reliable plans unless it knows what other agents are available. This problem is extremely clear when working with the GAIA benchmark problems and multi-agent. When the introductions are sent, you get plans like this:
gaia_agent (to chat_manager):

Below I will pose a question to you that I would like you to answer. You should begin by listing all the relevant facts necessary to derive an answer, then fill in those facts from memory where possible, including specific names, numbers and statistics. You are Ken Jennings-level with trivia, and Mensa-level with puzzles, so there should be a deep well to draw from. After listing the facts, begin to solve the question in earnest. Here is the question:

If Eliud Kipchoge could maintain his record-making marathon pace indefinitely, how many thousand hours would it take him to run the distance between the Earth and the Moon its closest approach? Please use the minimum perigee value on the Wikipedia page for the Moon when carrying out your calculation. Round your result to the nearest 1000 hours and do not use any comma separators if necessary.

--------------------------------------------------------------------------------
assistant (to chat_manager):

To answer this question, we need the following information:

1. Eliud Kipchoge's record-making marathon pace.
2. The minimum perigee value for the distance between the Earth and the Moon.

Let's start by finding these values.

1. Eliud Kipchoge's record-making marathon pace: Kipchoge set the world record for the men's marathon with a time of 2:01:39 at the 2018 Berlin Marathon. A marathon is 42.195 kilometers long, so his pace is 42.195 km / 2.02 hours = approximately 20.88 km/h.

2. The minimum perigee value for the distance between the Earth and the Moon: <b>This information can be found on the Wikipedia page for the Moon. I will ask the web_surfer assistant to find this value.</b>

--------------------------------------------------------------------------------

>>>>>>>> USING AUTO REPLY...

>>>>>>>> EXECUTING FUNCTION navigational_web_search...
web_surfer (to chat_manager):

Address: https://en.wikipedia.org/wiki/Moon
Title: Moon - Wikipedia
Viewport position: Showing characters 0 - 5137 of 372466 total characters.
=======================
# Moon

Natural satellite orbiting Earth
This article is about Earth's natural satellite. For moons in general, see [Natural satellite](/wiki/Natural_satellite "Natural satellite"). For other uses, see [Moon (disambiguation)](/wiki/Moon_(disambiguation) "Moon (disambiguation)").
...

JIC, conceptually this resembles the subject of network topologies, with the current implementation being 'star' and this PR introducing a sort of mesh (though not fully as it seems it still relies on the manager to do the routing)

Failures on RetrieveChat seem unrelated?

Any reason this PR is on hold? I’ve used quite a bit and it helps improve GroupChat accuracy.

Any reason this PR is on hold? I’ve used quite a bit and it helps improve GroupChat accuracy.

How much accuracy does it improve? Could you tell us more about your used cases?

Any reason this PR is on hold? I’ve used quite a bit and it helps improve GroupChat accuracy.

There is a conflict with the main.

I'll fix the conflict. I have been maintaining this in the complex_tasks branch for a while.
A lot has changed recently so I'd have to re-run an ablation study to answer your question @ekzhu. When I first introduced it, it added several points to GAIA.

My thought is that if sending introduction consistently increase the task completion performance for several tasks, we do want to add it. However, my other consideration is that this is going to make GroupChat even more of a complex and specialized multi-agent pattern and may not be suitable for most workflows our users have. My question for you would be:
Do you think GroupChat is a "killer" pattern that dominates many other multi-agent patterns? Similar to CNN for vision and transformers for NLP. If that's the case then we should optimize the heck out of GroupChat to make it works really well. Otherwise, we may want to consider more composable primitives for users to create their own patterns easily. Think PyTorch.

My thought is that if sending introduction consistently increases the task completion performance for several tasks, we should add it. However, my other consideration is that this is going to make GroupChat even more of a complex and specialized multi-agent pattern and may not be suitable for most workflows our users have. My question for you and everyone is:
Do you think GroupChat is a "killer" pattern that dominates many other multi-agent patterns? Similar to CNN for vision and transformers for NLP. If that's the case then we should optimize the heck out of GroupChat to make it works really well. Otherwise, we may want to consider more composable primitives for users to create their own patterns easily. Think PyTorch.

Group chat is by far the current most popular way of using N > 2 agents. Actually, there aren't really any other options without writing substantial amounts of custom orchestration or nesting code. Group Chat was sorely missed in AutoGen Studio until it was added, and it remains the only tool I know that can combine things like WebSurfer, UserProxy (code interpreter), and GeneralAssistant in an ad-hoc way.
That said, GroupChat is also unwieldly to control. Time will tell if the new graph-based tools will help. To badly misquote Churchill: "GroupChat is the worst form of orchestration, except for all the others."

I sneaky edited my comments earlier. Right now, I am hoping to get more feedback on this specific PR. Shall we post it on Discord to see if people want to try it out?

I sneaky edited my comments earlier. Right now, I am hoping to get more feedback on this specific PR. Shall we post it on Discord to see if people want to try it out?

Sure thing.
GAIA was the first situation I encountered where I needed N>2 agents, so it's a datapoint of 1. More feedback is very welcome.

I don't mind people exploring and advocating groupchat as a useful interface. On the other hand, I'd like to prevent the misunderstanding that groupchat is the only way to orchestrate >2 agents in autogen. It has caused a significant underestimation of autogen's capability among a non-negligible audience. A series of recent efforts are about making some alternative orchestrations easier and more discoverable -- which is way overdue.
cc @qingyun-wu @ekzhu @victordibia @gagb @BeibinLi @thinkall @LittleLittleCloud @skzhang1@kevin666aa @LeoLjl @JieyuZ2 @cheng-tan @jackgerrits @zwd-ms @julianakiseleva

I don't mind people exploring and advocating groupchat as a useful interface. On the other hand, I'd like to prevent the misunderstanding that groupchat is the only way to orchestrate >2 agents in autogen. It has caused a significant underestimation of autogen's capability among a non-negligible audience. A series of recent efforts are about making some alternative orchestrations easier and more discoverable -- which is way overdue. cc @qingyun-wu @ekzhu @victordibia @gagb @BeibinLi @thinkall @LittleLittleCloud @skzhang1@kevin666aa @LeoLjl @JieyuZ2 @cheng-tan @jackgerrits @zwd-ms @julianakiseleva

To emphasize other ways of orchestrations, we may want to modify some documentations, eg, add subsections (groupchat and alternatives) to the Multi-Agent Collaboration section of the Example page in doc. Also, maybe it's time to add subfolders in the notebook folder to make it more organized.

I don't mind people exploring and advocating groupchat as a useful interface. On the other hand, I'd like to prevent the misunderstanding that groupchat is the only way to orchestrate >2 agents in autogen. It has caused a significant underestimation of autogen's capability among a non-negligible audience. A series of recent efforts are about making some alternative orchestrations easier and more discoverable -- which is way overdue. cc @qingyun-wu @ekzhu @victordibia @gagb @BeibinLi @thinkall @LittleLittleCloud @skzhang1@kevin666aa @LeoLjl @JieyuZ2 @cheng-tan @jackgerrits @zwd-ms @julianakiseleva

To emphasize other ways of orchestrations, we may want to modify some documentations, eg, add subsections (groupchat and alternatives) to the Multi-Agent Collaboration section of the Example page in doc. Also, maybe it's time to add subfolders in the notebook folder to make it more organized.

Can you clarify, what are other built-in ways of orchestration prior to the most recent initiate_chats? Sorry if I've missed them, it's just every example I've seen has required high degrees of customization.

@ekzhu and others. Unfortunately, I do not currently have any metrics on how much this PR improves GroupChat performance. It is just more of a qualitative assessment for the most part. I did have one specific use case where I had an agent with  an advanced RAG function call to perform web research. Without send introductions, that agent never got called for group task requests that required the web research so the agents couldn’t complete the task. This was because a planner agent did not know such functionality existed within the group. Once I turned on send introductions (and tweaked the description field a bit), the web researcher agent was found by the planner and the function call was made correctly. This has worked quite well ever since.
I certainly am all in favor of alternatives to GroupChat for better task orchestration. However, given that we have it and it seems to work fairly well, esp. with gpt-4-xxx and with good prompts, it might make sense to move forward with this PR. Users can easily disable it. Also, I added an argument to send these introductions silently to avoid cluttering up the chat display.
Having said that, if this adds too much complexity esp. with the new, upcoming orchestration techniques, I would vote to not implement it. Perhaps it may be possible to allow users to override GroupChart to add the introductions in the child class (it is a fairly distinct step). If we decide not to implement this PR, I could make some better suggestions how to allow this overriding to occur.

@jackgerrits @ekzhu  we should consider this PR for generalizing the issue that we also identified for executors + two agents.

@afourney how do you benchmark that improvements were made? was there a published article? and how are we able to get access to the introduction message?
thanks!


Changes to FF_Locking.c

The module FF_Locking.c makes sure that only a single task can enter into a "critical section". It uses an event group for this purpose, with either of these bits:
FF_DIR_LOCK_EVENT_BITS
FF_FAT_LOCK_EVENT_BITS
FF_BUF_LOCK_EVENT_BITS

Carl Kugler noticed that the code was not entirely correct: in stead of calling xEventGroupWaitBits() followed by xEventGroupClearBits(), it is enough to call:
    xBits = xEventGroupWaitBits( pxIOManager->xEventGroup,
        FF_DIR_LOCK_EVENT_BITS, /* uxBitsToWaitFor */
        pdTRUE,                 /* xClearOnExit */
        pdFALSE,                /* xWaitForAllBits n.a. */
        pdMS_TO_TICKS( 10000UL ) );

with xClearOnExit set to pdTRUE. This happens in 3 locations in the file.
The physical access to the disk is protected with a mutex.
The FF_BUF_LOCK_EVENT_BITS is not a real lock: it only serves to let a task sleep while it is waiting for a buffer.
Also this PR will replace the magic number 10000UL with a macro.

About the current method, it also works correctly, but it is just not as elegant as the new method. THis is how the code was:
xEventGroupWaitBits( pxIOManager->xEventGroup,
                     FF_DIR_LOCK_EVENT_BITS, /* uxBitsToWaitFor */
                     pdFALSE,                /* xClearOnExit */
                     pdFALSE,                /* xWaitForAllBits n.a. */
                     pdMS_TO_TICKS( 10000UL ) );

/* The next operation will only succeed for 1 task at a time,
 * because it is an atomic test & set operation: */
xBits = xEventGroupClearBits( pxIOManager->xEventGroup, FF_DIR_LOCK_EVENT_BITS );

if( ( xBits & FF_DIR_LOCK_EVENT_BITS ) != 0 )
{
    /* This task has cleared the desired bit.
    It now 'owns' the resource. */
    break;
}

It also makes sure that a single task gets access. xEventGroupClearBits() will clear the event bit and return the previous value, all in one atomic action.

Apparently my +FAT master branch was not up-to-date when I created this PR yesterday. Just to be sure, I recreated my +FAT clone.
I will create this PR again but without the 13 "changed" files. Sorry for the noise. Hein


Add option of using post_mcs_creation_function to simply update the mcs

Add notes to documentation about this functionality, both in the how-to guide and in the readme.

Done in #62 in the readme, adding the how-to guides is a issue for Mimi and will be moved there.


Add support for different reply types (in-channel, in-thread, ephemeral)

Add the option to configure karmabot to reply to karma operations:

in channel or in thread depending on where the user posted the message (old behavior, reply type: message)
always in a thread (reply type: thread)
as an ephemeral message visible only to the user (reply type: ephemeral)

Acknowledge reactji operations using ephemeral messages instead of annoying DMs

Closes #50.

Semaphore doesn't support Go 1.13 running tests locally:
  karmabot git:(different-reply-types) ✗ go test -v ./...
=== RUN   TestNew
--- PASS: TestNew (0.00s)
=== RUN   TestListen
--- PASS: TestListen (0.00s)
=== RUN   TestHandleSlackEvent
--- PASS: TestHandleSlackEvent (0.00s)
=== RUN   TestRegexes
--- PASS: TestRegexes (0.00s)
PASS
ok  	github.com/kamaln7/karmabot	0.017s
?   	github.com/kamaln7/karmabot/cmd/karmabot	[no test files]
?   	github.com/kamaln7/karmabot/cmd/karmabotctl	[no test files]
?   	github.com/kamaln7/karmabot/ctlcommands	[no test files]
?   	github.com/kamaln7/karmabot/database	[no test files]
?   	github.com/kamaln7/karmabot/munge	[no test files]
?   	github.com/kamaln7/karmabot/ui	[no test files]
?   	github.com/kamaln7/karmabot/ui/blankui	[no test files]
?   	github.com/kamaln7/karmabot/ui/webui	[no test files]
?   	github.com/kamaln7/karmabot/ui/webui/auth	[no test files]


Best Time to buy and sell stock solution added

Related Issue
Fix : #429
Description
Added solution for "Best time to buy and sell stock " under leetcode solution > 0100-0199
Type of PR

[ ] Bug fix
[x] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / Videos (if applicable)

[Attach any relevant screenshots or videos demonstrating the changes]
Checklist

[x] I have performed a self-review of my code.
[x] I have read and followed the Contribution Guidelines.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[x] I have commented my code, particularly in hard-to-understand areas.

Resources for Guidance
Here are some resources that may be helpful as you contribute to CodeHarborHub:

Code Harbor Hub Community Features
Docusaurus Documentation
React.js Documentation
Markdown Guide
MDX Documentation
Mermaid Documentation

Resources for DSA Features on Our Site:

Tabs: Switch Languages
Line Numbering
Math Equations

hey @Ajay-Dhangar , please make it level3 , i have change style/UI after you can see that.


Bump version to 1.6.0

What does this PR do (include background context, if relevant)?
Bumps the project version to 1.6.0 in preparation for a new Secretless pre-release.
What ticket does this PR close?
n/a
Where should the reviewer start?
What is the status of the manual tests?
Have you run the following manual tests to verify existing functionality continues to function as expected?

[x] Manually tested Keychain provider
[x] Manually run Kubernetes-Conjur demo with a local Secretless Broker image build of your branch

If this feature does not have any/sufficent automated tests, have you created/updated a folder in test/manual that includes:

[ ] An updated README with instructions on how to manually test this feature
[ ] Utility start and stop scripts to spin up and tear down the test environments
[ ] A test script to run some basic manual tests (optional; if does not exist, the README should have detailed instructions)

Links to open issues for related automated integration and unit tests
Links to open issues for related documentation (in READMEs, docs, etc)
Screenshots (if appropriate)

@sgnn7 I updated the messages


Add Baseline icon

@ericfennis Shouldn't this be named underline to stick with the text-editor namings. If not then maybe add it as a tag?

@Andreto I can add is as an tag. But we already have the underline icon.
This icon mostly used for text color and "baseline" in graphic design applications.


Continuation of discussion from issue #142...

For some reason I'm unable to comment on issue #142 any longer, and I don't know how else to respond to the questions I was asked.  I'd strongly encourage this comment to be added there, and this issue deleted by those with permission to do so.

Why? Generally a CI pipeline can do whatever you tell it to. Or you can work around a bash script invoked from your project root dir, which performs a cd within it.

This logic isn't in a shell script - it's in Clojure, and that logic needs access to the project's deps.edn file in order to calculate the classpath to pass to nvd-clojure.  The example you've provided (and which I saw in the docs too) is great, but not applicable when NVD is not being run from a shell script.

From what I know, Tools can be cached, just like e.g. Maven artifacts are cached (via their .m2 dir).

CI environments (or at least the one I'm using) don't persist filesystem state across invocations, so there is no notion of a cache here.  And again, that's not relevant as this logic is written in Clojure, not shell script (though I suppose there might be a public tools.deps API for installing and running a Tool from Clojure code?  I haven't looked.).

Ultimately you can build an "uberjar" of nvd-clojure / its dependencies and run it through vanilla java. From our side, we won't do that, as distributing what essentially is a blob isn't quite apt for a security offering.

I could.  Or I could temporarily rename the deps.edn file before invoking nvd-clojure.  Or I could use clojure.java.shell/sh to fork a separate Clojure instance for nvd-clojure in a different directory, rather than trying to run it "inline" with my own logic.  Or any number of other workarounds that I'm currently evaluating.
Ultimately if the Clojure CLI tools provided a way to completely ignore any deps.edn files in the current directory, and only used -Sdeps instead, this would be a non-issue.  Clearly this is not an nvd-clojure issue.

This logic isn't in a shell script - it's in Clojure

Clojure can run commands from a different pwd via clojure.java.shell/sh (as you point out below)

CI environments (or at least the one I'm using) don't persist filesystem state across invocations, so there is no notion of a cache here.

Seems highly unlikely to me. .m2 caching is essential, else you'd be downloading Maven dependencies over and over, which is slow and might even get rate-limited.
The same mechanism should be usable for caching directories other than .m2.

Ultimately if the Clojure CLI tools provided a way to completely ignore any deps.edn files in the current directory,

While as of today probably there isn't a direct way, the doc hints You can accomplish something similar with user-level aliases, or with the :replace-deps option. Another approach is leaving deps.edn "empty" by default, and all deps within aliases (e.g. :production + :dev, etc). I think some Polylith users do this for reasons unrelated to nvd-clojure.

FYI I has marked #142 as resolved since the docs are clear and I also tried to be clear in what (other) options are there. I hope the extra input helps as well but I wouldn't want to find myself arguing about how to run this program - its CI is green, it's OSS.
Cheers - V

FYI I has marked https://github.com/rm-hull/nvd-clojure/issues/142 as resolved since the docs are clear and I also tried to be clear in what (other) options are there. I hope the extra input helps as well but I wouldn't want to find myself arguing about how to run this program - its CI is green, it's OSS.

I completely understand. Just confused as to why you'd ask questions then lock the issue so they can't be answered.  That's not especially "OSS".


Update tested AGP versions

from 8.0.0-beta03 to 8.0.0-rc1
from 8.1.0-alpha07 to 8.1.0-alpha10

@bot-gradle test AST, APT

@bot-gradle test AST, APT

@bot-gradle test AST

I've triggered the following builds for you:

AllSmokeTestsPullRequestFeedback build

@bot-gradle test and merge

Your PR is queued. See the queue page for details.


Save user work

User work is saved based on the "whole doc" storage, for now. Parses Slate correctly now, too!
I realized there was a bug when I demo'd this morning - documents were only saved if they were just opened, so returning to an opened tab broke saving. Now, I'm monitoring all user documents at the same time. The alternative would be to listen for changes to the UI to figure out what to listen to, but I'd be surprised if the performance cost of a few extra listeners was noticeable.

Thanks for the thorough review @dougmartin! I should have addressed all your comments, let me know what you think.

@ekosmin Your changes look good.  I did add a db#getOrCreateDocumentListener helper to remove a little bit of duplicate code and to rebase to master after I merged the changes @kswenson made to the text tool.
However, when I rebased master your save code enters an infinite loop of updates which React detects and throws an error about.  We can't merge until that is fixed - the commit I made is rebased so you should just be able to pull and see the error.

@dougmartin A handful of new changes are up, after extensive pairing today with @kswenson. The infinite loop is fixed, the solution was more complicated than it looks:
First, we removed the change count. It was used to force editor re-renders, but it also caused a loop of changing and saving. Without it, we needed a way to force re-renders on events like clicks so the editor's selection state would change. We ended up adding the selection state to the tile model (through a totally undocumented parameter), so that React, MST, Firebase and Slate stay synchronized. Storing selection broke Slate in some cases...this is documented in a comment in the last commit.
Ultimately, we'll want a better solution for keeping all of our sources of state in sync, which the "per change" storage model should help with. In the meantime, this seems to work.


Explicitly require Python 2.7 for compatibility with newer CMake

I've had to upgrade CMake to 3.5 in order to compile Drake master for some of my work. Afterwards I've noticed that Director failed to compile from a clean build of oh-distro as the new CMake prefers the newer Python if two versions are installed (e.g. 2.7 and 3.4). This will in turn lead to a compilation error as shown below.
This PR can wait; I'd like to get @patmarion's input on the potential downsides of this change when he's back (e.g. we might not want to restrict to Python2).

[ 29%] Building CXX object src/app/CMakeFiles/ddApp.dir/moc_ddPythonQtDecorators.cxx.o
In file included from /usr/include/python3.4m/pytime.h:6:0,
                 from /usr/include/python3.4m/Python.h:65,
                 from /home/wxm/oh-distro/software/build/include/PythonQt/PythonQtPythonInclude.h:93,
                 from /home/wxm/oh-distro/software/build/include/PythonQt/PythonQtInstanceWrapper.h:45,
                 from /home/wxm/oh-distro/software/build/include/PythonQt/PythonQt.h:46,
                 from /home/wxm/oh-distro/software/director/distro/pods/drc/pod-build/src/app/ddPythonQtDecorators.h:6,
                 from /home/wxm/oh-distro/software/director/distro/pods/drc/pod-build/src/app/moc_ddPythonQtDecorators.cxx:9:
/usr/include/python3.4m/object.h:435:18: error: expected unqualified-id before ‘;’ token
     PyType_Slot *slots; /* terminated by slot==0. */
                  ^
make[2]: *** [src/app/CMakeFiles/ddApp.dir/moc_ddPythonQtDecorators.cxx.o] Error 1
make[1]: *** [src/app/CMakeFiles/ddApp.dir/all] Error 2
make: *** [all] Error 2

This change is

@RobotLocomotion/kitware .  I think they might have discussed this previously, too.

I would say restrict it to python 2 as python 3 is a whole different thing and director will not work with it.  So, changing the find python in director to only find 2 would be the way to go.  find_package( PythonInterp 2.7 REQUIRED ) should work.

Thank you very much, Russ and Bill!
I've added the explicit 2.7 version to FindNumpy as well. Is this okay and ready to merge @billhoffman?

Reviewed 1 of 1 files at r1, 1 of 1 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.

Comments from Reviewable


KAFKA-8570: Grow buffer to hold down converted records if it was insufficiently sized

When the log contains out of order message formats (for example v2 message followed by v1 message) and consists of compressed batches typically greater than 1kB in size, it is possible for down-conversion to fail. With compressed batches, we estimate the size of down-converted batches using:
    private static int estimateCompressedSizeInBytes(int size, CompressionType compressionType) {
        return compressionType == CompressionType.NONE ? size : Math.min(Math.max(size / 2, 1024), 1 << 16);
    }

This almost always underestimates size of down-converted records if the batch is between 1kB-64kB in size. In general, this means we may under estimate the total size required for compressed batches.
Because of an implicit assumption in the code that messages with a lower message format appear before any with a higher message format, we do not grow the buffer we copy the down converted records into when we see a message <= the target message format. This assumption becomes incorrect when the log contains out of order message formats, for example because of leaders flapping while upgrading the message format.

retest this please

I filed https://issues.apache.org/jira/browse/KAFKA-8577 for the failing test case. I have seen it fail in other PRs, so I think it is not related.