Snapshot gets rejected unless the node is already a part of the ConfState

Describe the bug
A node rejects a snapshot unless it's in the ConfState.
I've modified five_mem_node example to reproduce the problem. See https://github.com/rosik/raft-rs/commit/97bb292a8851ed9becbc29d4287c4a10fa93d143.
Instead of 5 voters now there's 1 voter and 1 learner. Upon the learner initialization it rejects MsgAppend (due to the log gap) and the voter decides to send a snapshot. Now, instead of generating a new snapshot for every confchange the voter sends the initial snapshot, not the latest one. Since its index is still > request_index, I expect it to be applied, but raft complains:
DEBG Sending from 1 to 2, msg: msg_type: MsgSnapshot to: 2 snapshot {metadata {conf_state {voters: 1} index: 1 term: 1}}, to: 2, from: 1, raft_id: 1, tag: peer_1
WARN attempted to restore snapshot but it is not in the ConfState, conf_state: voters: 1, raft_id: 2, tag: peer_2

Expected behavior
Snapshot is applied. And all subsequent log entries too.
To Reproduce
git clone git@github.com:rosik/raft-rs.git
cd raft-rs/
git checkout rejected-snapshot-repro
cargo run --example five_mem_node

Additional context

Logs
Apr 01 16:30:57.683 INFO switched to configuration, config: Configuration { voters: Configuration { incoming: Configuration { voters: {1} }, outgoing: Configuration { voters: {} } }, learners: {}, learners_next: {}, auto_leave: false }, raft_id: 1, tag: peer_1
Apr 01 16:30:57.683 DEBG reset election timeout 0 -> 16 at 0, election_elapsed: 0, timeout: 16, prev_timeout: 0, raft_id: 1, tag: peer_1
Apr 01 16:30:57.683 INFO became follower at term 1, term: 1, raft_id: 1, tag: peer_1
Apr 01 16:30:57.684 INFO newRaft, peers: Configuration { incoming: Configuration { voters: {1} }, outgoing: Configuration { voters: {} } }, last term: 1, last index: 1, applied: 1, commit: 1, term: 1, raft_id: 1, tag: peer_1
Apr 01 16:30:57.684 INFO RawNode created with id 1., id: 1, raft_id: 1, tag: peer_1
Apr 01 16:30:59.304 INFO starting a new election, term: 1, raft_id: 1, tag: peer_1
Apr 01 16:30:59.304 DEBG reset election timeout 16 -> 12 at 0, election_elapsed: 0, timeout: 12, prev_timeout: 16, raft_id: 1, tag: peer_1
Apr 01 16:30:59.305 INFO became candidate at term 2, term: 2, raft_id: 1, tag: peer_1
Apr 01 16:30:59.305 DEBG reset election timeout 12 -> 11 at 0, election_elapsed: 0, timeout: 11, prev_timeout: 12, raft_id: 1, tag: peer_1
Apr 01 16:30:59.306 INFO became leader at term 2, term: 2, raft_id: 1, tag: peer_1
Apr 01 16:30:59.306 DEBG persisted index 3, raft_id: 1, tag: peer_1
Apr 01 16:30:59.306 DEBG committing index 3, index: 3, raft_id: 1, tag: peer_1
Apr 01 16:30:59.307 INFO switched to configuration, config: Configuration { voters: Configuration { incoming: Configuration { voters: {1} }, outgoing: Configuration { voters: {} } }, learners: {2}, learners_next: {}, auto_leave: false }, raft_id: 1, tag: peer_1
Apr 01 16:30:59.308 DEBG Sending from 1 to 2, msg: msg_type: MsgAppend to: 2 log_term: 2 index: 2 entries {entry_type: EntryConfChange term: 2 index: 3 data: "\020\002\030\002"} commit: 3, to: 2, from: 1, raft_id: 1, tag: peer_1
Apr 01 16:30:59.308 INFO We get a 2 nodes Raft cluster now, now propose 3 proposals
Apr 01 16:30:59.319 DEBG persisted index 4, raft_id: 1, tag: peer_1
Apr 01 16:30:59.319 DEBG committing index 4, index: 4, raft_id: 1, tag: peer_1
Apr 01 16:30:59.323 INFO switched to configuration, config: Configuration { voters: Configuration { incoming: Configuration { voters: {} }, outgoing: Configuration { voters: {} } }, learners: {}, learners_next: {}, auto_leave: false }, raft_id: 2, tag: peer_2
Apr 01 16:30:59.323 DEBG reset election timeout 0 -> 19 at 0, election_elapsed: 0, timeout: 19, prev_timeout: 0, raft_id: 2, tag: peer_2
Apr 01 16:30:59.323 INFO became follower at term 0, term: 0, raft_id: 2, tag: peer_2
Apr 01 16:30:59.323 INFO newRaft, peers: Configuration { incoming: Configuration { voters: {} }, outgoing: Configuration { voters: {} } }, last term: 0, last index: 0, applied: 0, commit: 0, term: 0, raft_id: 2, tag: peer_2
Apr 01 16:30:59.323 INFO RawNode created with id 2., id: 2, raft_id: 2, tag: peer_2
Apr 01 16:30:59.323 INFO received a message with higher term from 1, msg type: MsgAppend, message_term: 2, term: 0, from: 1, raft_id: 2, tag: peer_2
Apr 01 16:30:59.324 DEBG reset election timeout 19 -> 19 at 0, election_elapsed: 0, timeout: 19, prev_timeout: 19, raft_id: 2, tag: peer_2
Apr 01 16:30:59.324 INFO became follower at term 2, term: 2, raft_id: 2, tag: peer_2
Apr 01 16:30:59.324 DEBG rejected msgApp [logterm: 2, index: 2] from 1, logterm: Ok(0), index: 2, from: 1, msg_index: 2, msg_log_term: 2, raft_id: 2, tag: peer_2
Apr 01 16:30:59.324 DEBG Sending from 2 to 1, msg: msg_type: MsgAppendResponse to: 1 index: 2 reject: true, to: 1, from: 2, raft_id: 2, tag: peer_2
Apr 01 16:30:59.330 DEBG received msgAppend rejection, index: 2, from: 2, reject_hint_term: 0, reject_hint_index: 0, raft_id: 1, tag: peer_1
Apr 01 16:30:59.330 DEBG decreased progress of 2, progress: Progress { matched: 0, next_idx: 1, state: Probe, paused: false, pending_snapshot: 0, pending_request_snapshot: 0, recent_active: true, ins: Inflights { start: 0, count: 0, buffer: [], cap: 256, incoming_cap: None }, commit_group_id: 0, committed_index: 0 }, raft_id: 1, tag: peer_1
Apr 01 16:30:59.331 DEBG [firstindex: 2, commit: 4] sent snapshot[index: 1, term: 1] to 2, progress: Progress { matched: 0, next_idx: 1, state: Probe, paused: false, pending_snapshot: 0, pending_request_snapshot: 0, recent_active: true, ins: Inflights { start: 0, count: 0, buffer: [], cap: 256, incoming_cap: None }, commit_group_id: 0, committed_index: 0 }, to: 2, snapshot_term: 1, snapshot_index: 1, committed: 4, first_index: 2, raft_id: 1, tag: peer_1
Apr 01 16:30:59.331 DEBG paused sending replication messages to 2, progress: Progress { matched: 0, next_idx: 1, state: Snapshot, paused: false, pending_snapshot: 1, pending_request_snapshot: 0, recent_active: true, ins: Inflights { start: 0, count: 0, buffer: [], cap: 256, incoming_cap: None }, commit_group_id: 0, committed_index: 0 }, raft_id: 1, tag: peer_1
Apr 01 16:30:59.331 DEBG Sending from 1 to 2, msg: msg_type: MsgSnapshot to: 2 snapshot {metadata {conf_state {voters: 1} index: 1 term: 1}}, to: 2, from: 1, raft_id: 1, tag: peer_1
Apr 01 16:30:59.331 DEBG persisted index 5, raft_id: 1, tag: peer_1
Apr 01 16:30:59.331 DEBG committing index 5, index: 5, raft_id: 1, tag: peer_1
Apr 01 16:30:59.333 WARN attempted to restore snapshot but it is not in the ConfState, conf_state: voters: 1, raft_id: 2, tag: peer_2
Apr 01 16:30:59.333 INFO [commit: 0] ignored snapshot [index: 1, term: 1], snapshot_term: 1, snapshot_index: 1, commit: 0, raft_id: 2, tag: peer_2
Apr 01 16:30:59.333 DEBG Sending from 2 to 1, msg: msg_type: MsgAppendResponse to: 1, to: 1, from: 2, raft_id: 2, tag: peer_2
Apr 01 16:30:59.342 DEBG persisted index 6, raft_id: 1, tag: peer_1
Apr 01 16:30:59.342 DEBG committing index 6, index: 6, raft_id: 1, tag: peer_1
Apr 01 16:30:59.343 INFO Propose 3 proposals success!

As explained in comments
https://github.com/tikv/raft-rs/blob/2357cb22760719bcd107a90d1e64ef505bdb1e15/src/raft.rs#L2559-L2561
This is the expected behavior. I suggest to regenerate the snapshot if there is a conf change. Sending a snapshot is usually a heavier actions than sending entries. It may not be optimal to still catching up progress by logs as the price is paid.

Ok, thanks for the link. If I understand you correctly, the restriction is only caused by the snapshot implementation details, not the algorithm itself. As Ongaro PhD states, that:

A server accepts AppendEntries requests from a leader that is not part of the server’s latest configuration. Otherwise, a new server could never be added to the cluster (it would never accept any log entries preceding the configuration entry that adds the server).

And raft-rs handles this case properly, as far as I can judge by my tiny experiments with five_mem_node.

lots of code here and there assumes that r.id is in the progress tracker.

Am I to understand that removing it isn't that easy to remove as it seems to?

Here's the experiment

Use the same configuration to initialize every node

MemStorage::new_with_conf_state(ConfState::from((vec![1], vec![])))

Propose some changes
Propose the configuration change, add the learner peer_2.
Propose some more changes
Make sure (by debug logs) the learner applies it all.

Apr 02 10:28:44.307 INFO switched to configuration, config: Configuration { voters: Configuration { incoming: Configuration { voters: {1} }, outgoing: Configuration { voters: {} } }, learners: {}, learners_next: {}, auto_leave: false }, raft_id: 1, tag: peer_1
Apr 02 10:28:44.308 DEBG reset election timeout 0 -> 17 at 0, election_elapsed: 0, timeout: 17, prev_timeout: 0, raft_id: 1, tag: peer_1
Apr 02 10:28:44.308 INFO became follower at term 0, term: 0, raft_id: 1, tag: peer_1
Apr 02 10:28:44.308 INFO newRaft, peers: Configuration { incoming: Configuration { voters: {1} }, outgoing: Configuration { voters: {} } }, last term: 0, last index: 0, applied: 0, commit: 0, term: 0, raft_id: 1, tag: peer_1
Apr 02 10:28:44.308 INFO RawNode created with id 1., id: 1, raft_id: 1, tag: peer_1
Apr 02 10:28:44.308 INFO We get a single-node Raft cluster now, now propose 3 proposals
Apr 02 10:28:46.036 INFO starting a new election, term: 0, raft_id: 1, tag: peer_1
Apr 02 10:28:46.037 DEBG reset election timeout 17 -> 19 at 0, election_elapsed: 0, timeout: 19, prev_timeout: 17, raft_id: 1, tag: peer_1
Apr 02 10:28:46.038 INFO became candidate at term 1, term: 1, raft_id: 1, tag: peer_1
Apr 02 10:28:46.038 DEBG reset election timeout 19 -> 12 at 0, election_elapsed: 0, timeout: 12, prev_timeout: 19, raft_id: 1, tag: peer_1
Apr 02 10:28:46.039 INFO became leader at term 1, term: 1, raft_id: 1, tag: peer_1
Apr 02 10:28:46.039 DEBG persisted index 2, raft_id: 1, tag: peer_1
Apr 02 10:28:46.040 DEBG committing index 2, index: 2, raft_id: 1, tag: peer_1
Apr 02 10:28:46.051 DEBG persisted index 3, raft_id: 1, tag: peer_1
Apr 02 10:28:46.051 DEBG committing index 3, index: 3, raft_id: 1, tag: peer_1
Apr 02 10:28:46.063 DEBG persisted index 4, raft_id: 1, tag: peer_1
Apr 02 10:28:46.063 DEBG committing index 4, index: 4, raft_id: 1, tag: peer_1
Apr 02 10:28:46.066 INFO Propose 3 proposals success!
Apr 02 10:28:46.066 INFO Now add the learner peer_2
Apr 02 10:28:46.076 DEBG persisted index 5, raft_id: 1, tag: peer_1
Apr 02 10:28:46.076 DEBG committing index 5, index: 5, raft_id: 1, tag: peer_1
Apr 02 10:28:46.076 INFO switched to configuration, config: Configuration { voters: Configuration { incoming: Configuration { voters: {1} }, outgoing: Configuration { voters: {} } }, learners: {2}, learners_next: {}, auto_leave: false }, raft_id: 1, tag: peer_1
Apr 02 10:28:46.078 DEBG Sending from 1 to 2, msg: msg_type: MsgAppend to: 2 log_term: 1 index: 4 entries {entry_type: EntryConfChange term: 1 index: 5 data: "\020\002\030\002"} commit: 5, to: 2, from: 1, raft_id: 1, tag: peer_1
Apr 02 10:28:46.078 INFO We get a 2 nodes Raft cluster now, now propose 3 proposals
Apr 02 10:28:46.088 DEBG persisted index 6, raft_id: 1, tag: peer_1
Apr 02 10:28:46.088 DEBG committing index 6, index: 6, raft_id: 1, tag: peer_1
Apr 02 10:28:46.094 INFO switched to configuration, config: Configuration { voters: Configuration { incoming: Configuration { voters: {1} }, outgoing: Configuration { voters: {} } }, learners: {}, learners_next: {}, auto_leave: false }, raft_id: 2, tag: peer_2
Apr 02 10:28:46.094 DEBG reset election timeout 0 -> 13 at 0, election_elapsed: 0, timeout: 13, prev_timeout: 0, raft_id: 2, tag: peer_2
Apr 02 10:28:46.095 INFO became follower at term 0, term: 0, raft_id: 2, tag: peer_2
Apr 02 10:28:46.095 INFO newRaft, peers: Configuration { incoming: Configuration { voters: {1} }, outgoing: Configuration { voters: {} } }, last term: 0, last index: 0, applied: 0, commit: 0, term: 0, raft_id: 2, tag: peer_2
Apr 02 10:28:46.095 INFO RawNode created with id 2., id: 2, raft_id: 2, tag: peer_2
Apr 02 10:28:46.095 INFO received a message with higher term from 1, msg type: MsgAppend, message_term: 1, term: 0, from: 1, raft_id: 2, tag: peer_2
Apr 02 10:28:46.095 DEBG reset election timeout 13 -> 15 at 0, election_elapsed: 0, timeout: 15, prev_timeout: 13, raft_id: 2, tag: peer_2
Apr 02 10:28:46.095 INFO became follower at term 1, term: 1, raft_id: 2, tag: peer_2
Apr 02 10:28:46.096 DEBG rejected msgApp [logterm: 1, index: 4] from 1, logterm: Ok(0), index: 4, from: 1, msg_index: 4, msg_log_term: 1, raft_id: 2, tag: peer_2
Apr 02 10:28:46.096 DEBG Sending from 2 to 1, msg: msg_type: MsgAppendResponse to: 1 index: 4 reject: true, to: 1, from: 2, raft_id: 2, tag: peer_2
Apr 02 10:28:46.100 DEBG received msgAppend rejection, index: 4, from: 2, reject_hint_term: 0, reject_hint_index: 0, raft_id: 1, tag: peer_1
Apr 02 10:28:46.100 DEBG decreased progress of 2, progress: Progress { matched: 0, next_idx: 1, state: Probe, paused: false, pending_snapshot: 0, pending_request_snapshot: 0, recent_active: true, ins: Inflights { start: 0, count: 0, buffer: [], cap: 256, incoming_cap: None }, commit_group_id: 0, committed_index: 0 }, raft_id: 1, tag: peer_1
Apr 02 10:28:46.100 DEBG Sending from 1 to 2, msg: msg_type: MsgAppend to: 2 entries {term: 1 index: 1} commit: 6, to: 2, from: 1, raft_id: 1, tag: peer_1
Apr 02 10:28:46.100 DEBG persisted index 7, raft_id: 1, tag: peer_1
Apr 02 10:28:46.100 DEBG committing index 7, index: 7, raft_id: 1, tag: peer_1
Apr 02 10:28:46.105 DEBG Sending from 2 to 1, msg: msg_type: MsgAppendResponse to: 1 index: 1 commit: 1, to: 1, from: 2, raft_id: 2, tag: peer_2
Apr 02 10:28:46.105 DEBG persisted index 1, raft_id: 2, tag: peer_2
Apr 02 10:28:46.111 DEBG Sending from 1 to 2, msg: msg_type: MsgAppend to: 2 log_term: 1 index: 1 entries {term: 1 index: 2 data: "put 0 hello, world"} commit: 7, to: 2, from: 1, raft_id: 1, tag: peer_1
Apr 02 10:28:46.112 DEBG Sending from 1 to 2, msg: msg_type: MsgAppend to: 2 log_term: 1 index: 2 entries {term: 1 index: 3 data: "put 1 hello, world"} commit: 7, to: 2, from: 1, raft_id: 1, tag: peer_1
Apr 02 10:28:46.112 DEBG Sending from 1 to 2, msg: msg_type: MsgAppend to: 2 log_term: 1 index: 3 entries {term: 1 index: 4 data: "put 2 hello, world"} commit: 7, to: 2, from: 1, raft_id: 1, tag: peer_1
Apr 02 10:28:46.112 DEBG Sending from 1 to 2, msg: msg_type: MsgAppend to: 2 log_term: 1 index: 4 entries {entry_type: EntryConfChange term: 1 index: 5 data: "\020\002\030\002"} commit: 7, to: 2, from: 1, raft_id: 1, tag: peer_1
Apr 02 10:28:46.112 DEBG Sending from 1 to 2, msg: msg_type: MsgAppend to: 2 log_term: 1 index: 5 entries {term: 1 index: 6 data: "put 0 hello, world"} commit: 7, to: 2, from: 1, raft_id: 1, tag: peer_1
Apr 02 10:28:46.112 DEBG Sending from 1 to 2, msg: msg_type: MsgAppend to: 2 log_term: 1 index: 6 entries {term: 1 index: 7 data: "put 1 hello, world"} commit: 7, to: 2, from: 1, raft_id: 1, tag: peer_1
Apr 02 10:28:46.112 DEBG Sending from 1 to 2, msg: msg_type: MsgAppend to: 2 log_term: 1 index: 7 entries {term: 1 index: 8 data: "put 2 hello, world"} commit: 7, to: 2, from: 1, raft_id: 1, tag: peer_1
Apr 02 10:28:46.113 DEBG persisted index 8, raft_id: 1, tag: peer_1
Apr 02 10:28:46.113 DEBG committing index 8, index: 8, raft_id: 1, tag: peer_1
Apr 02 10:28:46.113 DEBG Sending from 1 to 2, msg: msg_type: MsgAppend to: 2 log_term: 1 index: 8 commit: 8, to: 2, from: 1, raft_id: 1, tag: peer_1
Apr 02 10:28:46.113 INFO Propose 3 proposals success!
Apr 02 10:28:46.115 DEBG Sending from 2 to 1, msg: msg_type: MsgAppendResponse to: 1 index: 2 commit: 2, to: 1, from: 2, raft_id: 2, tag: peer_2
Apr 02 10:28:46.115 DEBG Sending from 2 to 1, msg: msg_type: MsgAppendResponse to: 1 index: 3 commit: 3, to: 1, from: 2, raft_id: 2, tag: peer_2
Apr 02 10:28:46.115 DEBG Sending from 2 to 1, msg: msg_type: MsgAppendResponse to: 1 index: 4 commit: 4, to: 1, from: 2, raft_id: 2, tag: peer_2
Apr 02 10:28:46.116 DEBG Sending from 2 to 1, msg: msg_type: MsgAppendResponse to: 1 index: 5 commit: 5, to: 1, from: 2, raft_id: 2, tag: peer_2
Apr 02 10:28:46.116 DEBG Sending from 2 to 1, msg: msg_type: MsgAppendResponse to: 1 index: 6 commit: 6, to: 1, from: 2, raft_id: 2, tag: peer_2
Apr 02 10:28:46.116 DEBG Sending from 2 to 1, msg: msg_type: MsgAppendResponse to: 1 index: 7 commit: 7, to: 1, from: 2, raft_id: 2, tag: peer_2
Apr 02 10:28:46.116 DEBG Sending from 2 to 1, msg: msg_type: MsgAppendResponse to: 1 index: 8 commit: 7, to: 1, from: 2, raft_id: 2, tag: peer_2
Apr 02 10:28:46.116 DEBG Sending from 2 to 1, msg: msg_type: MsgAppendResponse to: 1 index: 8 commit: 8, to: 1, from: 2, raft_id: 2, tag: peer_2
Apr 02 10:28:46.116 DEBG persisted index 8, raft_id: 2, tag: peer_2
Apr 02 10:28:46.119 INFO switched to configuration, config: Configuration { voters: Configuration { incoming: Configuration { voters: {1} }, outgoing: Configuration { voters: {} } }, learners: {2}, learners_next: {}, auto_leave: false }, raft_id: 2, tag: peer_2

If I understand you correctly, the restriction is only caused by the snapshot implementation details

Yes.

when several confchanges come one after another

In that case, I would suggest to use joint consensus to add several learners at once and wait till them catch up logs, promote them at once.


Telerik Library Required?

I cannot compile :(

You can sign up for a trial at http://www.telerik.com/universal-windows-platform-ui and download the toolkit.
Delete the old reference and add the new one. Then rebuild.


NuGet package with build .targets and .props not working with TargetFrameworks

I have nuget package which contains .props and .targets files in build directory.
When i install this package to another project .targets and .props are called as they should if i specify only one <targetFramework>, but if i want my project to be build for multiple frameworks and i use let say <TargetFrameworks>netcoreapp1.0;net46</TargetFrameworks> .targets and .props from my package are never used.
Here is the reason why (generated project.csproj.nuget.g.targets generated by Restore):
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
  </PropertyGroup>
  <ImportGroup Condition=" '$(TargetFramework)' == 'net46' AND '$(ExcludeRestorePackageImports)' != 'true' ">
    <Import Project="$(NuGetPackageRoot)asseco.nuget.deployment\2.0.0\build\Asseco.NuGet.Deployment.targets" Condition="Exists('$(NuGetPackageRoot)asseco.nuget.deployment\2.0.0\build\Asseco.NuGet.Deployment.targets')" />
  </ImportGroup>
  <ImportGroup Condition=" '$(TargetFramework)' == 'netcoreapp1.0' AND '$(ExcludeRestorePackageImports)' != 'true' ">
    <Import Project="$(NuGetPackageRoot)asseco.nuget.deployment\2.0.0\build\Asseco.NuGet.Deployment.targets" Condition="Exists('$(NuGetPackageRoot)asseco.nuget.deployment\2.0.0\build\Asseco.NuGet.Deployment.targets')" />
  </ImportGroup>
</Project>

My project file is simple as this:
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>netcoreapp1.0;net46</TargetFrameworks>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Asseco.NuGet.Deployment" Version="2.0.0" />
  </ItemGroup>

</Project>

If you look at Condition="'$(TargetFramework)' == 'netcoreapp1.0'" this condition is source of problem. Since i have set TargetFrameworks and not TargetFramework this condition is alwasy false because $(TargetFramework) is always empty and import of .targets or .props never happen.
Generated nupkg is ok, contains all frameworks, but .targets and .props from other packages can not be used with TargetFrameworks.
Thank you for help

The conditions will evaluate to true on the inner builds of the referenced projects. This may or may not be what you want. If you want to build props/targets that are imported for the outer build in multi-targeting projects, you can put the files into a buildCrossTargeting folder inside the nuget (instead of or complementing build).

Hi, thank you for answer.
What i want is to have multitarget project (classlibrary) and i want to create nuget package.
I have my custom target AfterTargets="Pack". So when package is created it will contain all target frameworks libraries (.dll).
I want to use dotnet pack or msbuild /t:Pack.
What do you mean by buildCrossTargeting folder? Rename folder build to buildCrossTargeting?
Thank you

Thank you i have tried it.
It works like charm, but i have to have both directories buildCrossTargeting and build since i want it working for multitarget projects and also single target projects.
But thanks anyway for help, you saved my day :).

I just hit this in my nuget package, I was getting crazy! Any plan to fix this since no one knows about that buildCrossTargeting folder?

I also hit this. Trying to setup metrics gathering for CI.
Everything seemed to build fine however wasn't getting the metrics target for most of the projects.
As i was only targeting one framework was no hard fix to change, however now limits multitargeting.
The 'Metrics' Target was basically nonexistent for TargetFrameworks projects.
Hope this helps someone else


[ Linux ] [ v0.9.3-beta ] Statistics and Achievements are not recorded

Statistics and Achievements do not seem to be recorded on the Linux client.

This is done by the server not by the client.

@Brutus5000 Where do I create an issue with this then? Since this only happens when using the Linux client, there is a correlation there.

First, there is no dedicated "Linux client". There is the python/legacy client and the Java client. You can run both under Windows and Linux as well, while Linux is still quirky.
Second, the statistics for achievement are taken from the data stream of the Forged Alliance game  process. The FAF client only acts as a relay and forwards the data. If the FAF client relay functionality would be broken, other issues would arise as well (i.e. the ratings would not be updated). As I know that there are a lot of Linux users out there and rating issues are usually detected very fast I do not think that there is a problem in the client.
So this brings me to the following questions:
How did you verify that the achievements are not properly updated? (There might be an issue, but it could also be that this is related due to your games not being rated for reasons like unit restriction, unrated mods etc)
How did you verify that the issue only happens on Linux?


Fix to Hashicorp secret store vault getSecret error

Signed-off-by: Shivani Singh<EMAIL_ADDRESS>Description
For the issue 4779 -> default value of vaultKVUsePrefix is true, due to which, BulkGetSecret method can't be used until it's set to false. Instead of having the user change that in the YAML, if we by default keep the value to be false, it would not cause issues such as 4779 to the users
Issue reference
#4779
https://github.com/dapr/dapr/issues/4779
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

I agree with @akhilac1. Also this would be a breaking change for several users of this component today.
I do not agree with changing the default value.
Surely, there is a different way to make BulkGetSecret work -- perhaps the implementation of that function must change.


Add timediff function

Add timediff function
#1428

I think that you need't import a new udf type to implement timediff.


No issue, just thank you :)

I was checking whether hash tags were supported ... and delighted to see you just added it.
Last time I picked a binary from the releases.  But given go is on my Linux box I just built.  Very nice (to a non-Go programmer).
So big thank you and feel free to close this :)

And to prove first bot generated skeet with tag:

whereas the preceeding one missed it:

Very nice indeed!

:+1:  Thank you.


Parser fails to parse anonymous functions

contract Test {
    event MyEvent(function() external callback);
}

v1.1.5 adds support for function data types, this issue is resolved.


Compatibility with Dart 2.0 mode

When trying to run application with new flutter.io i'm getting following error
I/FlutterActivityDelegate(15704): onResume setting current activity to this
E/flutter (15704): [ERROR:topaz/lib/tonic/logging/dart_error.cc(16)] Unhandled exception:
E/flutter (15704): type 'Future<dynamic>' is not a subtype of type 'Future<Null>' where
E/flutter (15704):   Future is from dart:async
E/flutter (15704):   Future is from dart:async
E/flutter (15704):   Null is from dart:core
E/flutter (15704):
E/flutter (15704): #0      FlutterBleLib.createClient (file:///home/pablo/.pub-cache/hosted/pub.dartlang.org/flutter_ble_lib-1.0.0/lib/source/lib_core.dart:38:26)
E/flutter (15704): #1      new MyApp (package:flutter_control_app/my_app.dart:8:28)
E/flutter (15704): #2      main (file:///home/pablo/AndroidStudioProjects/flutter_control_app/lib/main.dart:11:14)
E/flutter (15704): #3      _startIsolate.<anonymous closure> (dart:isolate/runtime/libisolate_patch.dart:279:19)
E/flutter (15704): #4      _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:165:12)

Where i'm calling createClient with following way
FlutterBleLib.instance.createClient(null)
If i disable dart 2.0 mode, it's starting without errors
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, v0.2.8, on Linux, locale pl_PL.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[✓] Android Studio (version 3.1)
[✓] VS Code (version 1.22.2)
[✓] Connected devices (1 available)

Edit 1:
More details https://github.com/flutter/flutter/issues/15654 and https://github.com/pauldemarco/flutter_blue/issues/51

So...we need wait for a fix? It looks like firebase or google sign in are affected.

With fix from https://github.com/Polidea/FlutterBleLib/pull/20 i was able to run and use example app.

For me it's working fine now. Closing.


Custom binning showing error

By default custom binning value(nbinsx) is 10. I tried to change the default value by passing below values to column mapping.
column_mapping['nbinsx'] = 15
It is showing error. I am also attaching the error images.
Is there any other way to give the custom binning value.

Hi @NuthulaTarun
Thank you for asking that!
The thing is that currently we do not support this scenario of the binning customisation.
Instead we offer to set the custom number of bins for each feature separately, for instance like this: column_mapping['nbinsx'] = {'TAX': 3, 'PTRATIO': 5}
You do not have to list in this dict all features you have in the dataset, only those where you want to have non-default number of bins (default=10).
Here are some more details available in our docs: https://docs.evidentlyai.com/reports/data-drift#histogram-plots-customization.
Do you think that setting a custom nbisx for the whole dataset will be useful as well?


Add Makefile

This ticket adds a Makefile to the project

Makefile has been added to the project

Makefile has been added to the project, thanks for your suggestion.


Suggestion to make more Quest Options

What does your feature do?
Adding a Option so we can make Quests with biomes
Find a Mesa Biome
Ask Player Location Biome
How would people use it?
Players need to search a Mesa biome and when the guys on biome Mesa the quest is finish

Stay-within-biome condition has been added to development builds. See https://github.com/PikaMug/Quests/wiki/Expert-‐-Condition-Editor


Update to Xpress 8.13

Antares Xpansion now link to xpress 8.13

this is an example file, the deployed configuration file is up to the specific deployement configuration


【机器学习】jupyter中导入模型后怎么显示默认参数？

显示结果：

期望结果：

Thank you for using LightGBM!
I cannot read Chinese, but according to Google Translate this issue's title roughly translates to "How to display default parameters after importing a model".
You haven't provided much code so it is difficult for maintainers to help answer this question. I've provided a few possible answers below.

to see the default values used by LightGBM's core C/C++ code, see https://lightgbm.readthedocs.io/en/latest/Parameters.html
to see the default values used in the LightGBM Python package, see https://lightgbm.readthedocs.io/en/latest/Python-API.html
to view the parameters that a lightgbm.LGBMClassifier instance was configured with, use .get_params()

import lightgbm as lgb
from sklearn.datasets import make_blobs

X, y = make_blobs(n_samples=1234, centers=[[-4, -4], [-4, 4]])
clf = lgb.LGBMClassifier(num_iterations=10, subsample=0.5)
clf.fit(X, y)
clf.get_params()

I hope that one of these suggestions answers your question. @guolinke or @shiyu1994 could you please double-check this, in case Google Translate wasn't correct or I've misunderstood the question?

I guess @GCYMZL wants to get params of Booster the same way they are printed out for classes in the sklearn wrapper.
You can use params property of the Booster class.
Add the following line in @jameslamb's example above
clf.booster_.params

@jameslamb @StrikerRUS Thanks for your answering! I believe both of you provide expected approaches. @GCYMZL could you please check these methods? Thanks.


No coords when using use_geolocation with SSR

Hi there :)
I've been trying to get the user's geolocation with use_geolocation in an SSR app. I'm unsure if this is even possible in an SSR context.
I made a small repo for reference that contains a component with use_geolocation.
The critical part is this component you see below. I saw that use_geolocation calls use_window internally and when I call use_window in this component it returns None.
Do you have a hint on what I might be doing wrong (or if it's even possible)?
Thanks in advance :)
#[component]
fn LocateUser() -> impl IntoView {
    let (location, set_location) = create_signal(None as Option<(f64, f64)>);

    create_effect(move |prev_handle: Option<IntervalHandle>| {
        if let Some(prev_handle) = prev_handle {
            prev_handle.clear();
        };

        log::info!("run effect");

        let locate = move || {
            let window = use_window();
            log::info!("window is some: {:?}", window.is_some()); // logs "window is some: false" to browser console

            log::info!("run locate");
            let UseGeolocationReturn { coords, error, .. } = use_geolocation();
            if let Some(coords) = coords.get() {
                log::info!(
                    "lat: {:?}, long: {:?}",
                    coords.latitude(),
                    coords.longitude()
                );
                set_location(Some((coords.latitude(), coords.longitude())));
            } else {
                log::info!("no coords, error: {:?}", error.get()); // logs "no coords, error: None" to browser console
            };
        };

        set_interval_with_handle(locate, Duration::from_millis(500))
            .expect("could not create interval")
    });

    view! {

User location

{move || format!("location: {:?}", location.get())}

    }
}

Had leptos-use with it's ssrfeature in myCargo.toml, which leads use_window()to returnNone` every time. Ouch 🤦
And I call use_geolocation() within the interval. I guess that calls the geolocation API, immediately checks if there are some coords and sees that there are none because basically no time has passed. The geolocation API needs a few moments to get a location, I think.
Removing the ssr feature in my Cargo.toml:
- leptos-use = { version = "0.9.0", features = ["ssr"] }
+ leptos-use = { version = "0.9.0" }

and moving
let UseGeolocationReturn { coords, error, .. } = use_geolocation();

to line `41 solved it. Now I get those sweet coords :)
Here is the change I made to the reference repo to make it work.

Thanks a lot for this gem of a repo! It's pretty awesome to have all this convenient frontend tooling in rust now :)


Misc minor changes - 210119

PR has two commits

remove no_rocm tag from tests that are now passing
fix a couple of incorrect merges

http://ml-ci.amd.com:21096/job/develop-upstream-unit-tests/job/tensorflow-upstream-unit-tests-cpu/129/
http://ml-ci.amd.com:21096/job/develop-upstream-unit-tests/job/tensorflow-upstream-unit-tests-gpu-single/118/

http://ml-ci.amd.com:21096/job/develop-upstream-unit-tests/job/tensorflow-upstream-unit-tests-cpu/129/
http://ml-ci.amd.com:21096/job/develop-upstream-unit-tests/job/tensorflow-upstream-unit-tests-gpu-single/118/


Cpfed 3847 menu back button

name: CPFED-3847 back to menu button
labels: "feature, ready for review"
pfe-navigation

added back to menu button feature inside of mobile all red hat menu
added focus state management for back to menu button and added function for development to log focused element to console for debugging
cleaned up some unneeded css
added styles for back menu button
updated some of the handlers to point to the original variable for the site switcher wrapper so that code was less redundant
added aria-hidden true for all red hat icon
updated function for open attr function to also set the aria-controls id
cleaned up inital state setting of aria attr for mobile menu and util buttons
add overflow x hidden to mobile menu to make the all red hat menu not scrollable until you click on the all red hat toggle

Merging
Please squash when merging and ensure your commit message uses conventional commit formatting.

It's beautiful 😢
Just so I'm not blocking you I'll mark it approved, but check out the comments.


Is there any reason the viewers go down to 0 after few minutes? It boosts to about 160-200 for like 2-3 minutes then goes down to 0 and never goes back higher.

As in topic.

Proxy !

proxy


docs: remove AUR install option

The AUR package has been moved into the Arch extra repository.

I didn't know whether I had to update the CHANGELOG.md or whether that's done automatically. It's not in the contributor documentation :slightly_smiling_face:

Thank you!

I didn't know whether I had to update the CHANGELOG.md or whether that's done automatically. It's not in the contributor documentation 🙂

I'm not quite sure either how it would be done best. We could either use conventional commits and generate the changelog for every release, or we could say that everyone should update the changelog themselves (which would allow for potentially more informative changelogs). What do you think?

I'm all for option 2. Changelogs generated from commits are bad for end users. Adding an entry for relevant changes is so much better.


aikido_rviz doesn't seem to properly install headers

When I do a sudo make install on aikido_rviz I get the following output
Install the project...
-- Install configuration: ""
-- Up-to-date: /usr/local/_setup_util.py
-- Up-to-date: /usr/local/env.sh
-- Up-to-date: /usr/local/setup.bash
-- Up-to-date: /usr/local/setup.sh
-- Up-to-date: /usr/local/setup.zsh
-- Up-to-date: /usr/local/.rosinstall
-- Up-to-date: /usr/local/lib/pkgconfig/aikido_rviz.pc
-- Up-to-date: /usr/local/share/aikido_rviz/cmake/aikido_rvizConfig.cmake
-- Up-to-date: /usr/local/share/aikido_rviz/cmake/aikido_rvizConfig-version.cmake
-- Up-to-date: /usr/local/share/aikido_rviz/package.xml
-- Up-to-date: /usr/local/lib/libaikido_rviz.so
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/aikido_rviz.so

It seems to be installing the .so files, but doesn't install any header files. Consequently aikido_rviz_INCLUDE_DIRS appears to be empty in aikido_rvizConfig.cmake?

aikido_rviz was merged into aikido, and it seems all the necessary headers are installed (copy the whole include directory). Closing this. Please reopen if it's not actually resolved.


add wallet file format implementations

Add link to implementation of the wallet file format standard.

@Ben-Rey could you add the implementation of the massa-web3 library?
@Eitu33 could you add the implementation of the massa core?


Add tracing instrumentation in transport service

Description
Add tracing instrumentation in transport service.
Related Issues
Resolves #8553

Check List

[x] New functionality includes testing.

[x] All tests pass

[x] New functionality has been documented.

[x] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff
[x] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@reta, I have fixed the failing test cases. Please take a look.

@Gaganjuneja could you please backport manually to 2.x? thank you


My Foreground service running automatically when my phone restart

My foreground service running normal when i start from my application but  When I restart my device it running automatically, I want to prevent the foreground service from starting by itself.

@barangungor initiate FlutterForegroundTask and set foregroundTaskOptions as follows:
    foregroundTaskOptions: const ForegroundTaskOptions(
      interval: 5000,
      autoRunOnBoot: true,
      allowWifiLock: true,
)

And if you want to terminate the service as well when the app is closed, declare the service as follows:
<service
        android:name="com.pravera.flutter_foreground_task.service.ForegroundService"
        android:stopWithTask="true" />


Added a reminder for users about Authentication Configuration

Added a rebuild reminder for saving the changes in defect dojo authentication, some users may not think about it when realizing changes and it can prevent them from opening future issues about this problem.

Should not be definitly rebuil, it should be restart. And keep in mind different installation types have different process.
You should create or against dev

Tried 4 different methods, only worked after rebuild, did some restarts on my instance and the config hasn't updated

Can you first describe your environment? Could be that you are using wrong approach of changing the configuration.

Agreed with @dsever I am not sure how it works with helm, but with docker-compose, there is an external settings file for the sole purpose of updating configs without needing to rebuild
https://github.com/DefectDojo/django-DefectDojo/tree/master/docker/extra_settings

Agreed with @dsever I am not sure how it works with helm,

With helm even simpler https://github.com/DefectDojo/django-DefectDojo/blob/master/helm/defectdojo/values.yaml#L13

It definitely works without rebuilding the docker files. I have set the configuration for Azure AD while deploying the Helm chart and it works as expected.

@murilo-melo-caramelo thank you for the PR, but I don't see this one getting merged.


Question about the cpp code

hi thank u for your sharing! I have a little question about the cpp code. When I try to run the rmarkdown, it shows something wrong in the cpp file line 436, DOUBLE_EPS was not declared.
may I check what is "DOUBLE_EPS" refer to?

Thanks for your interest in my work. In my compiler, DOUBLE_EPS works fine
but this is an issue people complained about before. Can you try replacing
the DOUBLE_EPS by datum::eps? datum::eps  is in the Armadillo library:
[image: image.png]
Let me know if this works.
Best,
Noirrit
On Mon, 12 Dec 2022 at 21:13, Tsukumo1 @.***> wrote:

hi thank u for your sharing! I have a little question about the cpp code.
When I try to run the rmarkdown, it shows something wrong in the cpp file
line 436, DOUBLE_EPS was not declared.
may I check what is "DOUBLE_EPS" refer to?
—
Reply to this email directly, view it on GitHub
https://github.com/noirritchandra/Lamb/issues/2, or unsubscribe
https://github.com/notifications/unsubscribe-auth/APX2YRC3OQ7SMRFACGQJS3DWM5BZDANCNFSM6AAAAAAS4C46FY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Hi! Thank you very much for your reply. That's working! I have another question about the cpp code, why don't you return parameters in the DL_mixture? Which variables are used to represent parameters......and I also want to ask about the data preprocessing method you used in PART 6 of your paper.
Sorry for all the questions... ! But if it is convenient, could you also provide the code in the paper?

*Hi! Thank you very much for your reply. That's working! I have another
question about the cpp code, why don't you return parameters in the
DL_mixture? Which variables are used to represent parameters...... - * Since
our primary interest is in clustering high-dimensional data, we are only
returning the cluster allocation variables acrosss MCMC samples. The
residual error variance parameters σj2's and the factor loading matrix Λ
are the only parameters you can return; it would be a simple change in the
return statement in the DL_mixture function.

You can also consider the mixture parameters [image: \mu_{i}]'s and [image:
\Delta_{i}]'s in eqn (8) of the arxived paper as parameters but due to
label switching those are not identifiable. Hence we are not returning
these parameters.

and I also want to ask about the data preprocessing method you used in
PART 6 of your paper.- Let me know your questions, I'll try my best to
answer those.
Sorry for all the questions... ! But if it is convenient, could you also
provide the code in the paper?- We do not have plans for that since the
codes are available on Github.

I hope this helps.
Best

—
Reply to this email directly, view it on GitHub
https://github.com/noirritchandra/Lamb/issues/2#issuecomment-1376892272,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APX2YRDCV3DMRDTMSRW7N33WRUMFLANCNFSM6AAAAAAS4C46FY
.
You are receiving this because you commented.Message ID:
@.***>

*Hi! Thank you very much for your reply. That's working! I have another
question about the cpp code, why don't you return parameters in the
DL_mixture? Which variables are used to represent parameters...... - * Since
our primary interest is in clustering high-dimensional data, we are only
returning the cluster allocation variables acrosss MCMC samples. The
residual error variance parameters σj2's and the factor loading matrix Λ are
the only parameters you can return; it would be a simple change in the
return statement in the DL_mixture function.

You can also consider the mixture parameters [image: \mu_{i}]'s and [image:
\Delta_{i}]'s in eqn (8) of the arxived paper as parameters but due to
label switching those are not identifiable. Hence we are not returning
these parameters.

and I also want to ask about the data preprocessing method you used in
PART 6 of your paper.- Let me know your questions, I'll try my best to
answer those.
Sorry for all the questions... ! But if it is convenient, could you also
provide the code in the paper?- We do not have plans for that since the
codes are available on Github.

I hope this helps.
Best
Noirrit
On Tue, 10 Jan 2023 at 02:24, Tsukumo1 @.***> wrote:

Hi! Thank you very much for your reply. That's working! I have another
question about the cpp code, why don't you return parameters in the
DL_mixture? Which variables are used to represent parameters......and I
also want to ask about the data preprocessing method you used in PART 6 of
your paper.
Sorry for all the questions... ! But if it is convenient, could you also
provide the code in the paper?
—
Reply to this email directly, view it on GitHub
https://github.com/noirritchandra/Lamb/issues/2#issuecomment-1376892272,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APX2YRDCV3DMRDTMSRW7N33WRUMFLANCNFSM6AAAAAAS4C46FY
.
You are receiving this because you commented.Message ID:
@.***>

Hi for PART 6 of your paper, Cells with low read counts are discarded, as we lack reliable gene expression measurements for these cells, and data are normalized following Lun et al.(2016). We remove non-informative genes using M3Drop (Andrews and Hemberg,2018).. I tried the method you mentioned, but I want to know exactly how you got a final dataset with n = 531 cells and p = 7,666 genes. Thank u for your reply!

Hi I also want to check if you choose TMM or DESeq to normalize the data? I got a bad cluster by using both of them. So I want to confirm what's wrong with it. Looking for your reply!

Hi,
I apologize for not responding to your earlier email. I can not really
provide you with the exact script; I was part of a bioinformatics lab where
I used their scripts to preprocess the data. However, I do not have access
to those anymore.
Since the data is really high-dimensional with not that many cells, I
discarded those genes with <30% observed counts across all cells.
I hope this helps.
Best,
Noirrit
On Mon, 30 Jan 2023 at 04:22, Tsukumo1 @.***> wrote:

Hi I also want to check if you choose TMM or DESeq to normalize the data?
I got a bad cluster by using both of them. So I want to confirm what's
wrong with it. Looking for your reply!
—
Reply to this email directly, view it on GitHub
https://github.com/noirritchandra/Lamb/issues/2#issuecomment-1408355454,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APX2YRGGNNDFN4FZ2NVNSIDWU6I6PANCNFSM6AAAAAAS4C46FY
.
You are receiving this because you commented.Message ID:
@.***>

Thank u for your reply! I'll try then. And another question, did u modify the parameters in LAMB when dealing with the real data?

No, I did not. Those are exactly the same as suggested in the manuscript.
Noirrit
On Mon, 30 Jan 2023 at 19:27, Tsukumo1 @.***> wrote:

Thank u for your reply! I'll try then. And another question, did u modify
the parameters in LAMB when dealing with the real data?
—
Reply to this email directly, view it on GitHub
https://github.com/noirritchandra/Lamb/issues/2#issuecomment-1409610998,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APX2YRBUTTMMQEVFGOMFMVTWVBTADANCNFSM6AAAAAAS4C46FY
.
You are receiving this because you commented.Message ID:
@.***>


Endianness detection defaults to Little-endian when including platform/toolchain's endian.h

The endian.h found in gnu toolchains defines all three of these:
[taken from my linux machine's /usr/include folder]
#define __LITTLE_ENDIAN 1234
#define __BIG_ENDIAN    4321
#define __PDP_ENDIAN    3412
The endianness check in nlbyteorder.h reads:
#if defined(__LITTLE_ENDIAN) || defined(LITTLE_ENDIAN) || (BYTE_ORDER == ORDER_LITTLE_ENDIAN)
#define NLBYTEORDER NLBYTEORDER_LITTLE_ENDIAN
#elif defined(__BIG_ENDIAN) || defined(BIG_ENDIAN) || (BYTE_ORDER == ORDER_BIG_ENDIAN)
#define NLBYTEORDER NLBYTEORDER_BIG_ENDIAN
#else
#error "Endianness undefined!"
#define NLBYTEORDER NLBYTEORDER_UNKNOWN_ENDIAN
#endif /* defined(__LITTLE_ENDIAN) || defined(LITTLE_ENDIAN) || (BYTE_ORDER == ORDER_LITTLE_ENDIAN) */
Thus the pre-processor check will always equate to little-endian even on toolchains for big-endian (e.g., MIPS, etc).

Thanks for the catch. It looks like this will need to evolve in light of that. Let me gather some data.

Let me run some echo "int main(void) { return 0; }" | {gcc,clang} -dM -E - | sort | grep END tests on Linux and macOS and see what I can do to address this.

For reference, here is output for my MIPS build environment (mips-unknown-linux-uclibc):
#define BYTE_ORDER ORDER_BIG_ENDIAN
#define FLOAT_WORD_ORDER ORDER_BIG_ENDIAN
#define ORDER_BIG_ENDIAN 4321
#define ORDER_LITTLE_ENDIAN 1234
#define ORDER_PDP_ENDIAN 3412

% /usr/local/gnu/share/automake-1.16/config.guess ; echo "int main(void) { return 0; }" | gcc -dM -E - | sort | grep END:
x86_64-apple-darwin19.6.0
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __LITTLE_ENDIAN__ 1
#define __ORDER_BIG_ENDIAN__ 4321
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __ORDER_PDP_ENDIAN__ 3412

% /usr/local/gnu/share/automake-1.16/config.guess ; echo "int main(void) { return 0; }" | clang -dM -E - | sort | grep END:
x86_64-apple-darwin19.6.0
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __LITTLE_ENDIAN__ 1
#define __ORDER_BIG_ENDIAN__ 4321
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __ORDER_PDP_ENDIAN__ 3412

% /usr/share/automake-1.16/config.guess ; echo "int main(void) { return 0; }" | gcc -dM -E - | sort | grep END:
x86_64-pc-linux-gnu
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __ORDER_BIG_ENDIAN__ 4321
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __ORDER_PDP_ENDIAN__ 3412

% /usr/share/automake-1.16/config.guess ; echo "int main(void) { return 0; }" | clang -dM -E - | sort | grep END
x86_64-pc-linux-gnu
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __LITTLE_ENDIAN__ 1
#define __ORDER_BIG_ENDIAN__ 4321
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __ORDER_PDP_ENDIAN__ 3412

% echo "int main(void) { return 0; }" | /usr/local/toolchains/gcc-arm-none-eabi-4_8-2013q4/bin/arm-none-eabi-gcc -dM -E - | sort | grep END:
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __ORDER_BIG_ENDIAN__ 4321
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __ORDER_PDP_ENDIAN__ 3412

@jrhees-cae, the following diff appears to work:
diff --git a/include/nlbyteorder.h b/include/nlbyteorder.h
index b56ffe6..f4ba9bf 100644
--- a/include/nlbyteorder.h
+++ b/include/nlbyteorder.h
@@ -1,4 +1,5 @@
 /**
+ *    Copyright (c) 2020 nlio Authors. All Rights Reserved.
  *    Copyright 2012-2017 Nest Labs Inc. All Rights Reserved.
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
@@ -177,14 +178,20 @@ extern "C" {
  *       - NLBYTEORDER_UNKNOWN_ENDIAN
  *
  */
-#if defined(__LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__) || (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+#if defined(__BYTE_ORDER__)
+# if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+#  define NLBYTEORDER NLBYTEORDER_LITTLE_ENDIAN
+# elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+#  define NLBYTEORDER NLBYTEORDER_BIG_ENDIAN
+# endif /* __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ */
+#elif defined(__LITTLE_ENDIAN__) && (__LITTLE_ENDIAN__ == 1)
 #define NLBYTEORDER NLBYTEORDER_LITTLE_ENDIAN
-#elif defined(__BIG_ENDIAN) || defined(__BIG_ENDIAN__) || (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
+#elif defined(__BIG_ENDIAN__) && (__BIG_ENDIAN__ == 1)
 #define NLBYTEORDER NLBYTEORDER_BIG_ENDIAN
 #else
 #error "Endianness undefined!"
 #define NLBYTEORDER NLBYTEORDER_UNKNOWN_ENDIAN
-#endif /* defined(__LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__) || (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) */
+#endif /* defined(__BYTE_ORDER__) */

 enum {
     nlByteOrderUnknown     = NLBYTEORDER_UNKNOWN_ENDIAN,

Do you want to give that a spin in your MIPS environment and confirm?

The change works on my build system. However this turns up another error, where I needed to make the following change:
diff --git a/include/nlbyteorder-big.h b/include/nlbyteorder-big.h
index 959604b..3b8fcd7 100644
--- a/include/nlbyteorder-big.h
+++ b/include/nlbyteorder-big.h
@@ -41,7 +41,7 @@
  */
 static inline uint16_t nlByteOrderSwap16LittleToHost(uint16_t inValue)
 {
-    return nlByteOrderSwap16(inValue);
+    return nlByteOrderValueSwap16(inValue);
 }

 /**

The change works on my build system. However this turns up another error, where I needed to make the following change:
diff --git a/include/nlbyteorder-big.h b/include/nlbyteorder-big.h
index 959604b..3b8fcd7 100644
--- a/include/nlbyteorder-big.h
+++ b/include/nlbyteorder-big.h
@@ -41,7 +41,7 @@
  */
 static inline uint16_t nlByteOrderSwap16LittleToHost(uint16_t inValue)
 {
-    return nlByteOrderSwap16(inValue);
+    return nlByteOrderValueSwap16(inValue);
 }

 /**

Can you clarify what exactly that error was/is (ideally copy-and-paste the compiler output) and why it only needed a change in the '16' instance of this rather than the '32' and '64' as well?

Sorry I should have been more specific:
/connectedhomeip/third_party/nlio/repo/include/nlbyteorder-big.h: In function 'uint16_t nlByteOrderSwap16LittleToHost(uint16_t)':
/connectedhomeip/third_party/nlio/repo/include/nlbyteorder-big.h:44:12: error: 'nlByteOrderSwap16' was not declared in this scope; did you mean 'nlByteOrderValueSwap16'?
   44 |     return nlByteOrderSwap16(inValue);
      |            ^~~~~~~~~~~~~~~~~
      |            nlByteOrderValueSwap16

This appears to be a typo in the source, as all of the other widths (32/64) have the 'ValueSwap' variant.

Thanks for the catch on this @jrhees-cae!


ColdFusion / Tomcat RFC 6265 (Parentheses truncation)

I was comparing multiple JS cookie libraries and noticed that client-side generated cookies are correctly created in the browser, but ColdFusion/Tomcat servers haven't been configured for RFC 6265 compliance by default and cookie values are truncated as soon as a the first parenthesis is encountered in a string value.
ie, a(b)c in the client becomes a when read by the server.
In order to get cookie.js to function similar to ColdFusion's CFCOOKIE tag and avoid truncating data (using Tomcat), I've added the following default path setting & encoder function.
cookie.defaults.path = '/';
cookie.utils.encode = function(value){
    return encodeURIComponent(value).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent).replace(/[\(\)]/g, escape);
};

Are there any potential issues with the above code?  (It seems to work in my client/server tests.)
NOTE: I'm posting this here in case other ColdFusion/Java developers consider using this library and encounter this issue.

Yep, that generally looks good to me.
I can't say anything about the specific decoding function for ColdFusion, but setting cookie.utils.encode is the way to go.
Since your tests work, I'm assuming the exact decoding logic is also correct.
Thanks a lot for documenting this!
I've linked this issue in the README.

I discovered an issue... the @ symbol needs to be encoded to %40 or ColdFusion can't read it or anything after it.
cookie.defaults.path = '/';
cookie.utils.encode = function(value){
    return encodeURIComponent(value).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent).replace(/[\(\)]/g, escape);
};

I audited encoding & decoding cookies values between cookie.js and Adobe ColdFusion 2016, 2018 & 2021.  (I'm experiencing issues trying to test Lucee CFM at the moment, but will report back later.)
Here's the tested encoding function for Adobe ColdFusion.
cookie.utils.encode = function (value) {
	return encodeURIComponent(value).replace(/%(23|24|26|2F|5E|60|7C)/g, decodeURIComponent).replace(/[\(\)]/g, escape);
};

No encoding required:

Code
Char

%23
#

%24
$

%26
&

%2F
/

%5E
^

%60
`

%7C
|

Encoding required:

Code
Char

%2B
+

%3A
:

%3C
<

%3D
=

%3E
>

%3F
?

%40
@

%5B
[

%5D
]

%7B
{

%7D
}


New Conditional Action for Symbols: #changeStyle

Making use of Sketch 52's new capabilitiy to change a Style in a Symbol via Overrides

+1

Is there another solution available somewhere? This would be a killer featuere.


fix: preview server hot reload

What/Why/How?
This PR fixes preview server hot reloads for the openapi-cli package global installation.
As @nbourguig has pointed out, the issue was introduced with https://github.com/Redocly/openapi-cli/pull/347. The check only allowed files from the CWD to be served by the preview server while the scripts needed for hot reload were in the global installation directory. Now the check only applies to arbitrary files.
Reference
closes https://github.com/Redocly/openapi-cli/issues/538
Check yourself

[x] Code is linted
[ ] Tested with redoc/reference-docs/workflows
[ ] All new/updated code is covered with tests

Security

[x] Security impact of change has been considered
[x] Code follows company security practices and guidelines

It would be good for this to be included in this release: #681


Improve Collections matching for simple properties

related to #1278
    assertThat( organizationDtos )
        .hasSize( 1 )
        .have( MyConditions.of( Predicates.extractAndTest( Nameable::getName, Predicate.isEqual( lab.getName() ) ) ) );

is an exceptional amount of code...
I'd much rather write
assertThat( dtos ).hasSize(1).haveMapped( Nameable::getName, Predicate.isEqual( lab.getName() );

or maybe
assertThat( dtos ).hasSize(1).extracting( Nameable::getName ).isEqualTo( lab.getName() );

or streamlike
assertThat( dtos ).hasSize(1).map( Nameable::getName ).anyMatch( Predicate.isEqual( lab.getName() ));

i've managed to simplify my code this way
public interface Conditions {

    static <T> Condition<T> of( Predicate<T> predicate ) {
        return new Condition<>( predicate, null );
    }

    static <I,T> Condition<I> extract( Function<I,T> extract, Predicate<T> predicate ) {
        return new Condition<>( i -> predicate.test( extract.apply( i )), null );
    }

}

    assertThat( organizationDtos )
        .hasSize( 1 )
        .have( Conditions.extract(  Nameable::getName, Predicate.isEqual( lab.getName() ) ) );

why not simply:
 assertThat(organizationDtos).extracting(Nameable::getName)
                             .containsExactly(lab.getName());

I would also say that having .map would seem more natural for some things... but not sure it provides any significant advantage

I would have used map but extracting was added before java 8 and it also supports extracting by property name.
you can use extracting after hasSize but in my example containsExactly also indirectly checks the size as you have to exactly give all the elements of the collection.

BTW that example you gave,  isEqualTo is going to check a collection of Name (with one element only) against lab.getName() which is likely not what you want:
assertThat( dtos ).hasSize(1).extracting( Nameable::getName ).isEqualTo( lab.getName() );

I must have been at the computer too long... I should put it up. Thanks.


Add additional query operators

Closes #284
Adds !=, <, <=, >, >= query operators and allows them to work with numeric data types in arango. I explicityly cast TO_NUMBER when we're using a greater than or less than.
Please test and let me know what I broke. I did some minimal testing locally without any issue, though

It worked for me too. The only issue I could see if someone tries to use the =~ operator on a number -- It's unclear what happens then

Yeah, that's true. That's the case with arango in general, though, since =~ regex match. We'll just have to document it when we get around to that 😄


lp editor not work

no errors in console

There will be errors in console, look again :)

There will be errors in console, look again :)
I restarted and earned


Stop Session gets called indefinitely

Describe the bug
For unknown reason, the session does not seem to stop. Had to stop the session manually. See the time stamps on the following screenshots.

This issue has been encountered by other users, see the discussion in the slack channel:
Expected behavior
The session stops.
System information
dbt-glue:1.6.5
python:3.9.11

Same here, following

Can you upgrade dbt-glue adapter, we have just release a version fixing this issue with dbt-glue:1.6.6.


Update Docs for the new Playerctl PR

@Kasper24 Can you confirm if everything is right?

The instructions work fine enough for me :+1:


Use endpoint status to determine vulnerable endpoints

Until now the endpoint status hasn't been used to determine if an endpoint is vulnerable. With this PR an endpoint is marked as vulnerable, when it has active / verified findings and their endpoint status is not mitigated. Additionally this PR contains some tlc for the endpoint dialogues and a bugfix for editing metadata.

Nobody seems to like the locks, not even my wife 😄 The new version uses thumbs up and down:

@kiblik and @valentijnscholten What do you think?

I agree with your wife.


Read benchmark cluster name from ENV

Please describe the feature you'd like to see
currently, our benchmark job has a fixed cluster name, so running this concurrent way is problematic. We  should consider reading cluster name from env
Describe the solution you'd like
A clear and concise description of what you want to happen, if possible with code examples.
Are there any alternatives to this feature?
Is there another way we could solve this problem or enable this use-case?
Additional context
Add any other context about the feature request here.
Acceptance Criteria

[ ] All checks and tests in the CI should pass
[ ] Unit tests (90% code coverage or more, once available)
[ ] Integration tests (if the feature relates to a new database or external service)
[ ] Example DAG
[ ] Docstrings in reStructuredText for each of  methods, classes, functions and module-level attributes (including Example DAG on how it should be used)
[ ] Exception handling in case of errors
[ ] Logging (are we exposing useful information to the user? e.g. source and destination)
[ ] Improve the documentation (README, Sphinx, and any other relevant)
[ ] How to use Guide for the feature (example)

we do not have any plan to run it in concurrent way in near future so closing it.


Update IP addresses for dev Resource Group

Background
A clear and concise description of the problem and the affected users.
Action requested
A clear and concise description of what you want to happen.
Acceptance Criteria
What needs to happen for this ticket to be complete?
Additional context
Add any other context or screenshots about the feature request here.

Superseded by "DIBBs Central Hosting Redux" epic. Architecturally obsolete. Closing as "Won't Do".


Cannot create as TypeComposer the following value: Date

I got this error when I run npm-deck.
C:\Users\[user]\src\[user]\[project]>npm run deck

><EMAIL_ADDRESS>deck C:\Users\[user]\src\[user]\[project]
> mdx-deck deck.mdx

info Deleting .cache, public
info Successfully deleted directories

success open and validate gatsby-configs - 0.117 s
success load plugins - 2.322 s
success onPreInit - 0.079 s
success initialize cache - 0.072 s
success copy gatsby files - 0.449 s
success onPreBootstrap - 0.100 s
success source and transform nodes - 1.041 s

 ERROR

UNHANDLED REJECTION Cannot create as TypeComposer the following value: Date.

  Error: Cannot create as TypeComposer the following value: Date.

  - SchemaComposer.js:365 SchemaComposer.createTempTC
    [[project]]/[graphql-compose]/lib/SchemaComposer.js:365:11

  - SchemaComposer.js:563 SchemaComposer.addAsComposer
    [[project]]/[graphql-compose]/lib/SchemaComposer.js:563:27

  - schema-composer.js:35 createSchemaComposer
    [[project]]/[gatsby]/dist/schema/schema-composer.js:35:18

  - index.js:65 Object.module.exports.build
    [[project]]/[gatsby]/dist/schema/index.js:65:26

⠋ building schema
Error: Command failed with exit code 1 (Unknown system error -1): gatsby develop --host localhost --port 8000 --open
    at makeError (C:\Users\[user]\src\[user]\[project]\node_modules\mdx-deck\node_modules\execa\lib\error.js:58:11)
    at handlePromise (C:\Users\[user]\src\[user]\[project]\node_modules\mdx-deck\node_modules\execa\index.js:112:26)
    at process._tickCallback (internal/process/next_tick.js:68:7)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>deck: `mdx-deck deck.mdx`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>deck script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      C:\Users\[user]\AppData\Roaming\npm-cache\_logs\2019-09-18T20_31_15_556Z-debug.log

The mdx is just
# Header

hoge

What does this mean?
I set up the project using CRA. I will provide if additional information is needed.
EDIT: I have a dependency on graphql: 14.4.2 which seems causing this issue according to this thread.

Not sure what the error is, but MDX Deck is meant to either be run on its own as a CLI or as a Gatsby theme. It is not compatible with create-react-app

I have resolved the issue with deleting node_modules and package-lock.json and then reinstall the packages.
Still there is an error though, the issue is gone now.


I tried to build 32bit version, but it raised an error below, please help me.

Unable to find image 'ghcr.io/btbn/ffmpeg-builds/win32-gpl-shared:latest' locally
docker: Error response from daemon: Head https://ghcr.io/v2/btbn/ffmpeg-builds/win32-gpl-shared/manifests/latest: denied.

You need to make the image first. There are no pre-built 32bit images.
Use the respective script right next to the build script.

@ledunguit great attempt,
BtbN is literally correct, you need to make the image first,
But if you want the build (x86) you can check my repo


k8s source plugin: event output variable not accessible in playbook

I am trying this k8s source plugin:
https://github.com/sabre1041/sabre1041.eda/blob/main/plugins/event_source/k8s.py

I used 'event' variable in playbook to print some details as explained in this article.
https://www.ansible.com/blog/kubernetes-meets-event-driven-ansible

I am getting following error.
023-04-12 11:23:33,855 - ansible_rulebook.rule_set_runner - INFO - call_action run_playbook
2023-04-12 11:23:33,855 - ansible_rulebook.rule_set_runner - INFO - substitute_variables [{'name': 'playbook.yml'}] [{'event': {'resource': {'metadata': {'uid': '881ce27c-7feb-4254-a1ac-50574e9c9766', 'managedFields': [{'apiVersion': 'v1', 'manager': 'kubectl-create', 'fieldsV1': {'f:data': {'f:SPECIAL_TYPE': {}, 'f:SPECIAL_LEVEL': {}, '.': {}}}, 'time': '2023-04-12T05:53:33Z', 'operation': 'Update', 'fieldsType': 'FieldsV1'}], 'resourceVersion': '112748192', 'name': 'test-cm', 'namespace': 'ansible', 'creationTimestamp': '2023-04-12T05:53:33Z'}, 'apiVersion': 'v1', 'data': {'SPECIAL_TYPE': 'charm', 'SPECIAL_LEVEL': 'very'}, 'kind': 'ConfigMap'}, 'type': 'ADDED'}}]
2023-04-12 11:23:33,855 - ansible_rulebook.rule_set_runner - INFO - action args: {'name': 'playbook.yml'}
2023-04-12 11:23:33,855 - ansible_rulebook.builtin - INFO - running Ansible playbook: playbook.yml
2023-04-12 11:23:33,876 - ansible_rulebook.builtin - INFO - ruleset: Listen for newly added ConfigMap resources, rule: Notify
2023-04-12 11:23:33,877 - ansible_rulebook.builtin - INFO - Calling Ansible runner

PLAY [localhost] ***************************************************************

TASK [Gathering Facts] *********************************************************
ok: [<IP_ADDRESS>]

TASK [ansible.builtin.debug] ***************************************************
fatal: [<IP_ADDRESS>]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'event' is undefined. 'event' is undefined\n\nThe error appears to be in '/tmp/run_playbook97ck2zh4/project/playbook.yml': line 5, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n tasks:\n - ansible.builtin.debug:\n ^ here\n"}

PLAY RECAP *********************************************************************
<IP_ADDRESS> : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

My rulebook:
---
- name: Listen for newly added ConfigMap resources
  hosts: all
  sources:
    - sabre1041.eda.k8s:
        api_version: v1
        kind: ConfigMap
        namespace: ansible
  rules:
    - name: Notify
      condition: event.type == "ADDED"
      action:
        run_playbook:
          name: playbook.yml

My playbook.yaml
---
- hosts: localhost
  connection: local
  tasks:
    - ansible.builtin.debug:
        msg: "ConfigMap in namespace '{{ event.resource.metadata.namespace }}' with name '{{ event.resource.metadata.name }} ‘{{ event.type | capitalize }}’ with the message ‘{{ event.resource.data.message}}'"

Hi @shyam-biradar, in your playbook you need to prefix variables from ansible rulebook with ansible_eda. You can find more info here: https://ansible-rulebook.readthedocs.io/en/latest/variables.html#providing-extra-vars-to-actions

@ttuffin This is great.
Thank you @ttuffin.


go-grpc-prometheus is deprecated

Description
Per https://github.com/grpc-ecosystem/go-grpc-prometheus

functionality moved to go-grpc-middleware repo since<EMAIL_ADDRESS>release.

(Also, as an aside, go-grpc-middleware/v2 is now available.)
Steps to reproduce the issue
git checkout main
grep -r go-grpc-prometheus cmd

Describe the results you received and expected
Received:
cmd/containerd/server/server.go:	grpc_prometheus "github.com/grpc-ecosystem/go-grpc-prometheus"

Expected:
(empty)
What version of containerd are you using?
n/a
Any other relevant information
No response
Show configuration if it is related to CRI plugin.
No response

/assign

Thanks, @dcantah @estesp and @ikukaku!


Fix base_hierarchical_route_installation_test

Pull Request Functional Test Report for #1762 / f512e0d3658cd4e7e956d76db356ec24abd8fcf7
No tests identified for validation.
Help

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 47.722%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1320

Relevant Lines:
2766

💛  - Coveralls


[CI-4876] [CI-4603] [DOC-1623] [DOC-1624] [DOC-2487] Git event triggers

CI-4876: Events and actions for Bitbucket and GitLab triggers
CI-4603, DOC-2487: More info abt operators. Describe Contains operator. Describe Changed Files.
DOC-1623: PAT permissions note.
DOC-1624: Duplicate auto webhook registration to related topic
No ticket: Combine two similar topics about Git event triggers.
Preview - Webhook triggers reference: https://645c26fafee4d51bb1bbf091--harness-developer.netlify.app/docs/platform/Pipelines/w_pipeline-steps-reference/triggers-reference
Preview - Trigger pipelines using Git events: https://645c26fafee4d51bb1bbf091--harness-developer.netlify.app/docs/platform/Triggers/triggering-pipelines

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app

On source page path = /docs/platform/Pipelines/best-practices-for-looping-strategies:
-> linking to /docs/continuous-integration/troubleshoot/optimizing-ci-build-times/

On source page path = /release-notes/self-managed-enterprise-edition:
-> linking to /docs/continuous-integration/ci-technical-reference/plugin-steps/ci-github-action-step
-> linking to /docs/continuous-integration/ci-technical-reference/build-and-push-steps/build-and-push-to-ecr-step-settings#base-image-connector (resolved as: /docs/continuous-integration/ci-technical-reference/build-and-push-steps/build-and-push-to-ecr-step-settings)

On source page path = /tutorials/ci-pipelines/build/java:
-> linking to /docs/continuous-integration/ci-technical-reference/background-step-settings

On source page path = /tutorials/ci-pipelines/build/kubernetes-build-farm:
-> linking to /docs/platform/Delegates/install-delegates/install-a-delegate

On source page path = /tutorials/ci-pipelines/build/nodejs:
-> linking to /docs/continuous-integration/ci-technical-reference/background-step-settings

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app


Use of unresolved identifier 'HUD'

My project fails when building using one of the example functions on my view controller with the reason:

Use of unresolved identifier 'HUD'

import PKHUD

class SomeViewController: UIViewController {
    override func viewDidLoad() {
        HUD.flash(.Success, delay: 1.0) { finished in
            // Completion Handler
        }
    }
}

Could anyone help? Thanks

How you have included the library? And which version?


How to install application (mpv) from extras bucket?

I did scoop bucket add extras, which worked fine. Then I tried to install mpv [0] from the extras bucket with scoop install extras/mpv, but that didn't work. Instead, I had to do scoop install https://raw.githubusercontent.com/lukesampson/scoop-extras/master/bucket/mpv.json, which did work.
How do I use scoop to install applications from the extras bucket?
[0] https://github.com/lukesampson/scoop-extras/blob/master/bucket/mpv.json

Just do scoop install mpv. You can also scoop search mpv to lookup different version.

to Install the extras programs, you first gotta install the extras repo in bucket by
scoop bucket add extras
then search for your programs
scoop search [<name>]


scripts: remove all 'sudo' invocations from inspect.sh

We are anyway recommending to run the inspect script with sudo (and
under strict confinement we cannor execute /bin/sudo anyway...).

Addressed in https://github.com/canonical/microk8s/pull/3239, thank you @mardy


Introduce required inputs

https://blog.angular.io/angular-v16-is-here-4d7a28ec680d

Done, because there are no @Input properties yet, and the new ones will be created as required properties if applicable.


[good first issue - beginner][examples] regenerate all visualizations

What
With https://github.com/DAGWorks-Inc/hamilton/pull/169 our visualizations will be more discerning.
Task
We now have stale images. Task is to regenerate all the ones we have in documentation and in the examples folders.
Examples
For each directory please:

Identify if the image needs to be regenerated. E.g. if the image has  nodes with "UD:" in it instead of "Input:". Please mark it.
Then regenerate the image(s) for those examples, using visualize_execution using the given code.

Examples

[ ] LLM_Workflows
[ ] airflow
[ ] async
[ ] caching_nodes
[ ] dask
[ ] data_loaders
[ ] data_quality
[ ] dbt
[ ] feast
[ ] feature_engineering
[ ] hello_world
[ ] lineage
[ ] materialization
[ ] model_examples
[ ] numpy/air-quality-analysis
[ ] pandas/materialization
[ ] parallelism
[ ] polars
[ ] prefect
[ ] ray
[ ] reusing_functions
[ ] scikit-learn
[ ] spark

Hey @skrawcz can I work on this issue. Are you referring to the visulatization inside example/ folder?

Sure @bovem. To confirm, yes I am talking about regenerating all the images that are in the examples folders.
Most of them were generated with the visualize_execution() function, but some weren't -- so if you get stuck let me know.

Hey @skrawcz, can I work on this issue ?

@subhamc1 sure -- does the description make sense?

@skrawcz yes, it does.

Assigned!

@subhamc1 let me know what should be checked off please :)

I did data_quality and scikit-learn.


swal() does not appear to be returning a promise

Offending Code
The above code results in the following error.
Cannot read property 'then' of undefined

Cannot reproduce. Could you provide a JSFiddle example so we can debug it?

I also can't reproduce. @daerogami reopen with jsfiddle if needed :)

Confirmed that this was caused by an angular wrapper. This one properly forwards swal's promise type.


Request for clan/bloodline merits and flaws

Submitter: Cody
Just wanted to ask if it would be possible to add in the merits and flaws from the "lore of the clans" and "lore of the bloodlines" books

I've wanted to do this for a while, but was unsure how to categorize them properly with the setup of the site. Since merits/flaws are broken down into the categories of physical, mental, and supernatural. Yet some of the merits/flaws in LotC and LotB are clan-specific, so that further limits them.
I think ultimately what I'll end up doing is making separate drop down lists for these merits and flaws...
I will probably separate all of them based on what clan they are listed under, even if they aren't dictated as clan-specific. I'd rather not simply use my own judgement, as that just assumes that I am correct, and while I love VTM, I don't think I'm a lore master.
In order to save space, I'll probably change the contents listed in the LotC/LotB drop down list depending on what clan/bloodline you've chosen.
In any case, it's decently high on my to-do list, and I'm not sure it had a formal issue report, I'll keep this open as a reminder, unless I come across that it's a duplicate.


add helm chart; lint, test and publish

To install this application via Helm I've added a chart, which is automatically linted, tested and published to

Closes #5


Support value packing

This PR adds support for value packing in the Datadog Datagram which is available for Datadog agent
versions >=v6.25.0 && <v7.0.0 or >=v7.25.0. All metric types except set support this, since :
could be in the value of a set. This allows clients to buffer histogram and distribution values
and send them in fewer payload to the agent.
Example:
<METRIC_NAME>:<VALUE1>:<VALUE2>:<VALUE3>|<TYPE>|@<SAMPLE_RATE>|#<TAG_KEY_1>:<TAG_VALUE_1>,<TAG_2>
This is mainly useful for HISTOGRAM, DISTRIBUTION, and TIMING but I've added the functionality for all types except for SET. I can scope it to just HISTOGRAM, DISTRIBUTION, and TIMING if that's preferred instead.

Thanks for the PR! I'll try to take a first pass soon.

This is mainly useful for HISTOGRAM, DISTRIBUTION, and TIMING but I've added the functionality for all types except for SET. I can scope it to just HISTOGRAM, DISTRIBUTION, and TIMING if that's preferred instead.

I was just thinking this through, I'm not sure I understand why it would be useful for counters or gauges since callers can just aggregate those themselves. I would prefer if you just limited this to histograms, distributions, and timing. Thanks!

I've taken the suggested approach of adding Packed variants to the MetricValue enum. I've also added some tests for these as well as simple examples in lib.rs, the README and under examples/! Let me know if i've missed anything and thanks for the review!

Your changes look great! Left a few last minor comments. I'll try to resurrect the benchmarking code to make sure single-value performance is roughly the same a bit later.

The benchmarks are pretty noisy (as they usually are) but single value performance looks to be within ~5% of what it is in master. Going to squash the commits down and merge. Thanks again for your work!

The benchmarks are pretty noisy (as they usually are) but single value performance looks to be within ~5% of what it is in master. Going to squash the commits down and merge. Thanks again for your work!

Thanks for reviewing! When you get a chance, would you be able to create a new release containing these changes?

The benchmarks are pretty noisy (as they usually are) but single value performance looks to be within ~5% of what it is in master. Going to squash the commits down and merge. Thanks again for your work!

Thanks for reviewing! When you get a chance, would you be able to create a new release containing these changes?

Sure, I'll try to put something out later this week.


Fonts can be set to a floating point size, but then cannot be read

We should either prohibit people from setting a font size to a floating point number, or we should parse floating point numbers when we read in a project!

This issue may be limited to checkboxes. Also: If you attempt to set the font size to a floating point number, you will immediately see an error. Unfortunately when you see the error, the project has been written out and will now generate an error each time it is loaded (which is fatal). I do not believe the recent change to checkbox resizing caused this bug, but may have caused it to manifest itself.
Note that the default font size is 14.0, a floating point number. However this doesn't cause a problem because default values are not written to the .scm file and therefore are not parsed later (where the project load error happens).

OK. So this was broken by the checkbox font size change. The problem is that when you set the font of a checkbox to a floating point number, it now also sets the height of the checkbox to match. However font sizes are floats, but heights are integers... and that is the problem. Of course the code looks fine because in the Mock everything is passed as a String. But it isn't...

Hi @jisqyv,
I was trying to reproduce what you had written above but failed. Then I looked up the history and found your commit. I suppose you fixed it already, right?

@E-Hon Actually this issue is fixed, so I'm going to close it. Btw. The commit you referenced was the wrong fix. I fixed it in: https://github.com/mit-cml/appinventor-sources/commit/2bad2c59b2c4dd397daabda8d5be3bf9813e0e9e
-Jeff


Design Source Files

We are working on an Arabic translation and it would be helpful if we can get our hands on the source design files (SVG, PSD, ...). That would make the resulting images as identical as possible to the original ones.
Thanks!

maybe this will help https://github.com/ncase/polygons/pull/14

How have I not even seen that image translator tool. I am seriously not good at staying on top of my git repo, wow. Thanks @sortingbubbles! And yes @Herbstlied, use the image translator tool, and also thank you for wanting to do the Arabic translation!
(For my next playable posts, and hopefully there's a new one next month, the translation process will be MUCH simpler.)

Yep. I made that for the German buttons, because I'm much better with code than photoshop.
Here's the translator version drawing the German images:
http://ncase.me/polygons-de/translator/translator.html
That's on your website, @ncase ;)

No problem @ncase!
My team is working on the Greek translation and we'll definitely use your very useful Image Translator @bertfreudenberg!

Thank you all for your input. We are using the image translator now.
@ncase, if you could merge #14, for everyone who may want to contribute a translation in the future. Looking forward to the upcoming playables!


[SPARK-37719][BUILD] Remove the -add-exports compilation option introduced by SPARK-37070

What changes were proposed in this pull request?
In order to enable the UTs in mllib-local and mllib to use mockito to mock j.u.Random, -add-exports=java.base/jdk.internal.util.random=ALL-UNNAMED compile option is added for Java 17  in SPARK-37070 .
This pr do the following change to remove the -add-exports option:

Introduce test dependence of mockito-inline, the new test dependence used to specify the configuration of mockito-extensions
Upgrade org.scalatestplus:mockito from 3-4 to 3-12 and upgrade mockito from 3.4.x to 3.12.x

Why are the changes needed?
Find a way to let mockito can mock j.u.Random directly and remove -add-exports compile option for Java 17.
Does this PR introduce any user-facing change?
No.
How was this patch tested?

Pass the Jenkins or GitHub Action

Manual test with Java 17

Use maven
mvn clean install -pl mllib-local -am -DskipTests
mvn test -pl mllib-local

mvn clean install -pl mllib -am -DskipTests
mvn test -pl mllib

Use sbt
sbt mllib-local/test
sbt mllib/test

There are no test failed related to  org.mockito.exceptions.base.MockitoException: Mockito cannot mock this class: class java.util.Random. without -add-exports=java.base/jdk.internal.util.random=ALL-UNNAMED, all test can be successful.

Test build #146498 has started for PR 34991 at commit 13c661a.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50974/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50974/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/50974/

Test build #146503 has started for PR 34991 at commit 36679c0.

Test build #146498 has finished for PR 34991 at commit 13c661a.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50979/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/146498/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50979/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/50979/

Test build #146503 has finished for PR 34991 at commit 36679c0.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/146503/

merge with master and re-trigger Jenkins CI again

Merged to master

Although we don't know still why objenesis is upgraded here, I agree with @srowen 's decision.

Sorry, I've been a little busy recently. I'll continue to investigate this when I have time @dongjoon-hyun

Never mind, @LuciferYang ~ It's okay to ignore that for now. ;)


cnf network: QinQ TC update

https://github.com/openshift-kni/eco-gotests/pull/100 port to main branch

/lgtm


Review Projects not Teams!

Noticed this while trying to apply for a new team

You are correct!

Ftr master is borked—we're aiming to get it back on track with https://github.com/gratipay/gratipay.com/pull/4252 and then we can deploy this.


Google pay issues

Issue 1
@ihadeed I am having below error when I try to do paywithGooglePay in my app.
let me summarized the steps to reproduce the issue.
When I invoke payWithGooglePay, then an action sheet is opened, followed up with the error alert box pops up.
Request failed:

Unexpected developer error, please try again later.

Please advice, what this means? And also please advice, how to do payment with google pay and apple pay?
issue 2
@ihadeed I have found out the reason for the above error. Please see below
03-09 11:54:24.137 13820 13820 W WalletMerchantError: Error in loadPaymentData: PaymentDataRequest.allowedPaymentMethods[0].parameters.allowedCardNetworks[0] = AMERICAN_EXPRESS is not a valid enum value for this field.
03-09 11:54:27.606 13820 13820 W WalletMerchantError: Error in loadPaymentData: PaymentDataRequest.allowedPaymentMethods[0].parameters.allowedCardNetworks[0] = AMERICAN_EXPRESS is not a valid enum value for this field.
03-09 11:54:43.038 13820 13820 W WalletMerchantError: Error in loadPaymentData: PaymentDataRequest.allowedPaymentMethods[0].parameters.allowedCardNetworks[0] = AMERICAN_EXPRESS is not a valid enum value for this field.

03-09 11:55:14.504 13820 13820 W WalletMerchantError: Error in loadPaymentData: PaymentDataRequest.allowedPaymentMethods[0].parameters.allowedCardNetworks[0] = UNKNOWN is not a valid enum value for this field.
03-09 11:56:18.973 13820 13820 W WalletMerchantError: Error in loadPaymentData: PaymentDataRequest.allowedPaymentMethods[0].parameters.allowedCardNetworks[0] = UNKNOWN is not a valid enum value for this field.
03-09 11:56:21.028 13820 13820 W WalletMerchantError: Error in loadPaymentData: PaymentDataRequest.allowedPaymentMethods[0].parameters.allowedCardNetworks[0] = UNKNOWN is not a valid enum value for this field.
03-09 11:56:24.536 13820 13820 W WalletMerchantError: Error in loadPaymentData: PaymentDataRequest.allowedPaymentMethods[0].parameters.allowedCardNetworks[0] = UNKNOWN is not a valid enum value for this field.

and please advise, why UNKNOWN is not valid enum and Why AMERICAN_EXPRESS, not a valid enum. But these values are present in the enum.
If I put a visa or master card in allowed card networks payment sheet opens without any alert box.
issue 3
@ihadeed  Please respond to my queries, I am having a lot of issues with this plugin. I need your clarification and guidance for this.
When I do confirm payment Intent with googlePayOptions, I got below error. I create payment intent from the server. and then passing my client secret to stripe plugin confirm payment intent. But I got the error. Please see the below code and advice.
const stripePublishable = await this.
        cinchSrv.fs.doc$<any>('${environment.appConfig.commerceAccount}/meta/stripe-publishable')
        .pipe(take(1)).toPromise();
      await Stripe.setPublishableKey({ key: stripePublishable.publishableKey });
      await Stripe.confirmPaymentIntent({
        clientSecret: cs,
        googlePayOptions: {
          merchantName: 'test',
          totalPrice: 100,
          totalPriceStatus: 'FINAL',
          currencyCode: 'NOK',
          allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS'],
          allowedCardNetworks: [ 'MASTERCARD', 'VISA'],
        }
"unable to complete transaction: You cannot confirm this PaymentIntent because it's missing a payment method. You can either update the PaymentIntent with a payment method and then confirm it again, or confirm it again directly with a payment method."

I can't able to use payWithGooglePay also, because it return void rather than token response. Please advice.

Same problem here, payWithGooglePay returns empty object instead of token.

@bolekro is the pull request u mentioned fixes the issue of void being return?

Yes, now it returns a json token object.
On Wed, Apr 29, 2020, 04:38 Joshuva George<EMAIL_ADDRESS>wrote:

@bolekro https://github.com/bolekro is the pull request u mentioned
fixes the issue of void being return?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/zyra/capacitor-stripe/issues/5#issuecomment-620960083,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB3MX32RRAYEB2JI2WVEKODRO6HIVANCNFSM4LT7BKBA
.

This is a documentation issue.
payWithGooglePay is meant to be called first to ensure the user has authorized the payment via Google Pay. This generates a token which is stored locally in the plugin for later use. You can call confirmPaymentIntent immediately after that and set fromGooglePay: true in the options to consume the saved token.
I might combine the two methods into one, so you can use like the example above. Need to first make sure there isn't any other use for those Google Pay tokens.

@ihadeed I will use it like that. Thanks.
When will the version with both combined be released?

Current 1.0.0-beta.0 release has a working Google pay implementation but it requires the 2 step process. (payWithGooglePay, then confirmPaymentIntent)
When I have some time I'll make confirmPaymentIntent take care of the whole process.

@ihadeed Thanks for the reply, I will check it out..


Removing duplicacy of characters from a word

💥 Proposal
Input: Mississippi
Output: Misp
Have you read the Contributing Guidelines on Pull Requests?
Yes

@HarshCasper please assign me this under GSSOC'21. I would like to do this using Java.

Hello! I am a participant in GSSoC'21. I am really intrigued by this issue. Would be highly obliged if you could assign this to me. I can work on this using Java, Python, C and C++. Thank you!

/assign


Ensure that the code for expect_correction is valid syntax

Issues found with this:

https://github.com/rubocop/rubocop/pull/13211
https://github.com/rubocop/rubocop/pull/13215
https://github.com/rubocop/rubocop/pull/13216
https://github.com/rubocop/rubocop/pull/13219
https://github.com/rubocop/rubocop/pull/13224
https://github.com/rubocop/rubocop/issues/13225 (pending, couldn't figure it out)

I checked some repos in the rubocop org and they seem to not be affected by this change

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[ ] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[ ] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Hmm, how will this change help in practice? In our tests we obviously have only examples that result in valid syntax. The problem have always been the cases we didn't consider (and test).


Code for evaluating conditional generation on QM9

Dear author, I tried to run the code for evaluating conditional generation on QM9（eval_conditional_qm9.py）, but I found the code didn't work. Could you update the code please~
Best regards!

Hi,
Thanks for your interest. I have uploaded the scripts and updated the ReadMe.md. Please follow the instructions and generate the molecules with the desired properties.


OpenRPC schema parsing & generation

Summary of changes
Changes introduced in this pull request:

Build script that validates Lotus OpenRPC schema against Forest RPC API lib
Creates a Markdown report in the root directory

Reference issue to close (if applicable)

Closes #1123
Other information and links

Hopefully this is pretty useful:
https://github.com/ChainSafe/forest/blob/8f51cea9464e809f0768670b4fe7cf2a8df5476f/API_IMPLEMENTATION.md
We should make some of these types richer and add some type aliases at some point, but that's separate work.

Make sure to take care of the clippy stuff too, looks like it failed

Make sure to take care of the clippy stuff too, looks like it failed

Haha, thanks for the heads-up.


Wishlist: Compatibility with Mastodon mobile apps

See here for possible inspiration:
https://github.com/ringtailsoftware/cubiti


BRename spec/fixtures/rsa_ca.pub to สเปค/การแข่งขัน/rsa_ca.pub

Thank you for the pull request. I don't see any immediate reason why this file's path should be changed, so I am going to close this PR.


find and remove pandas warning in PptxChainClass

SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame

done and merged!


Improved documentation for backend filtering

Summary
Improved documentation for filters in backends() method.
Details and comments
Added more examples for usage of the filters and kwargs parameters in backends().
Removed example that was not working.
See similar fix in https://github.com/Qiskit/qiskit-ibm-runtime/pull/728.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

qiskit_ibm_provider/utils/utils.py
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2935

Relevant Lines:
5856

💛  - Coveralls


Read multi-corner libs while running resizer

add -multi_corner_libs to read in resizer scripts

TODO:
More testing
Add a flag for reading multi-corner.


feat: remove types.ts and breakout all types

The types.ts file was meant first as a catch all for non-adt or typeclass types. At some point it also because a type only barrel export.
In the pursuit of more explicit imports it has become obvious that the types.ts file is no longer necessary, and in fact becomes an issue in some edge cases.
Thus, it has been removed in favor of the explicit dependency graphs generated by avoiding all barrel exports.
Fixes #163

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

11 of 11 (100.0%)  changed or added relevant lines in 7 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.005%) to 90.334%

Totals

Change from base Build<PHONE_NUMBER>:
-0.005%

Covered Lines:
4823

Relevant Lines:
5354

💛  - Coveralls


Turtleneck Fever/Respites

About the PR
Adds/Respites turtleneck sprites for CMO, HoS, RD, and Syndicate
Why / Balance
The current sprites of the HoS, RD and Syndie turtleneck did not match the current style of CE and QM's turtleneck. This pr changes and updates the old sprites to fit in more with the others. This also adds a new turtleneck for CMO because they are the only head of a department that did not have one.
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog
:cl:

add: Chief Medical Officer's turtleneck.
tweak: Changed RD, HoS, and Syndicate's turtleneck.

they're so pretty

drip

These are all new-tg style sprites and clash hard, visually. They need to be replaced.

These are all new-tg style sprites and clash hard, visually. They need to be replaced.

I assume you would prefer a more style like this?

I assume you would prefer a more style like this?

i think that looks a lot better (the pants are a bit of a weird color)

le out of art style but at least with the RD i can wear jackboots and black gloves for the TG drip (dear god I love TG RD drip)

i think that looks a lot better (the pants are a bit of a weird color)

thank you for the feedback. I'm going to slowly un/TG/ify the sprites.

thank you for the feedback. I'm going to slowly un/TG/ify the sprites.

technically we are on the TG sprite base, but its old TG

technically we are on the TG sprite base, but its old TG
true!! I'm most likely going to use this is my main reference for the new ones. Also I'm going to make CMO's match their hat in color because drip. I'm going to start working now the drip is cooking.

Why close?

going to make a new pr when I remake all the sprites, and they are ready to be shipped out.

you can just upload them to same branch and reopen pr, or you could just set that pr on draft


ACL Restricting users and topics

I am using mysql acl plugin for rules.  I need to make a rule for a client to only be allow to publish and a specific topic.  For example, client A is only allow to publish to topic home/pub/test/a and is only allow to subscribe to home/sub/test/a.  Also restrict topic creation to specific user.

I found the solution I was asking.

Hi,
Are you able to post more detail on how you resolved it. I am able to authenticate user with mysql, but failed at ACL. Here is my issue, https://github.com/emqtt/emqttd_plugin_mysql/issues/13

I just used the MySQL plugins and created rules in database.  That was my solution, didn't have to implement any new plugin.

Hi @xiongtec:
INSERT INTO `mqtt_acl` ( `allow`, `ipaddr`, `username`, `clientid`, `access`, `topic`)
VALUES (1,NULL,'$all',NULL,1,'home/sub/test/%c');


Nonlinear patterns allowed in let declarations

let f x x = ... will verify. This should fail with a warning, as in F# and OCaml.

Déjà vu: #1121, but this seems like a regression. Maybe @mtzguido wants to have a look at this too?

This is succeeding since it's not a single pattern repeating a variable, but two variable patterns which overlap in source syntax. Doing let f (x, x) = ... fails as expected.

I have a fix, will merge soon.

F* still allows this:
module Test

let f (#x:int) (#x:int) () = ()

Opening so that we can track it.

Huh, for some reason implicits were explicitly ignored in this check. Fixing in a minute.

Sure, sounds fine to me.


Some Enchantments Not Available

The following enchantments seem to not apply when using the function Player.enchant();

Frost Walker
Multishot
Quick Charge
Piercing

Can you verify that you are in fact sending the proper enchantment ID. Use print(str) or clientMessage(str) to make sure you are not sending it undefined