Parameterized Tests

Hi @rouge8
first thanks for this adapter for the great neotest! I'm using it quite intensively. In our projects though, we make heavy use of parameterized tests, so I'm hoping for a solution to #1
After some research how other adapters handle this (e.g. neotest-jest & neotest-python) I tried my luck and implemented a possible way. According to the disucssion in Capture and interpolate dynamic tests there are two preferred ways of how to discover nested/parameterized tests:

Use tree-sitter to parse the syntax tree and find out which parameters belong to which test
Let the adapter hook into the build tool (cargo nextest list in our case) and somehow relate the output back to positions in the test tree. This is how neotest-jest and neotest-python are doing it.

I tried now the first approach and got quite some milage out of it:

test-case
rstest

This is my first ever Lua development, so there is probably a ton wrong with my style. But I wanted to discuss with you first if this approach generally makes sense. Let me know what you think
Discussion
Current Idea:

Since in rust the parameters are usually in form of attributes before the actually test function, I think there is no way to parse them in the correct tree structure in one pass. As far as I understood it neotest internally will place subtests only into their parents if their range is a subset of their parents range, which is impossible if the nested test's range is above the actual function.
To compensate that, I tried what neotest-python was doing, i.e. a two pass query:

First parse tests normally, but capture an additional group parameterized if the test is parameterized at all (i.e. has an #[test_case(...)] or a #[rstest] #[case(...)] macro before it.
Then in the second state, for each parameterized test, shoot another tree sitter query, which detects each test case (potentially with its name). For each case, add a new subtest below the parent.

Both work with async tests as well with both #[tokio::test] and #[async_std::test] runners

There are many edge cases though, which are hard (impossible?) to overcome with plain treesitter:

test-case supports two "modes": named and unnamed. The named one (e.g. #[test_case(some arg ; "test_name")] is relatively easy to parse in tree sitter. However when you don't have a unique case name, test_case builds the name out of the parameters. Also there is no way to distinguish the two cases because in tree sitter at this level everything is only a (token_tree)
rstest value lists .... yeah... this one is straight impossible to parse with tree-sitter alone...

Main reason I went with this approach instead of the custom parsing of cargo nextest list is that I don't know how to correlate case positions back to attributes in the code. Imagine cargo gives me foo::bar::baz and I know there is a test function called foo::bar, I can easily build the tree (I guess?), but I don't know where the location of baz is... This is working quite nicely with tree-sitter, though

I looked into this again and added the first approach (i.e. calling cargo nextest list and parsing the output to discover the test cases. This has other tradeoffs, though:

Test case location can mostly mapped to each test, not the individual macro where each is defined (in contrast to the treesitter approach which is capable of doing so)
Requires the project to (re)-compile before test cases can be discovered
Is able to detect basically any subtest even those coming from #[rstest::values(...)] and #[rstest::files(...)].

I think it make sense to let the user choose a "strategy" of test case discovery. I included an option now in the setup args or neotest-rust and a table in the README outlining pros and cons of both strategies.
WDYT?

Thanks =) Sure, I'll have a look at the tests in the next days.

Hi @rouge8 I added tests for the new functionality. I also had to install cargo nextool now in the CI because the new tests require them when testing the parameterized_test_discovery="cargo". Let me know what you think =)

Hi @rouge8 I added tests for the new functionality. I also had to install cargo nextool now in the CI because the new tests require them when testing the parameterized_test_discovery="cargo". Let me know what you think =)

Wow, thanks! I'm currently on vacation so it might take me a while to get to this, but I'm excited!

What's the latest on this? I started implementing this myself before noticing this PR. Is the plan still to merge this eventually?

Yes, I plan to review it. Unfortunately I don’t write much Rust these days so it’s not super pressing…

Hmm, can you give some more info please?

Which rust package are you testing?
What is your neotest config?
What is the output of cargo nextest list --message-format json --manifest-path <PATH/TO/RUST/PACKAGE/YOU/ARE/TESTING>/Cargo.toml?

It's a private project unfortunately.
neotest config:

-- Neotest
local neotest = require("neotest")
neotest.setup({
  discovery = { enabled = true },
  adapters = {
      require("neotest-python")({
          args = { "-v" },
      }),
      require("neotest-rust")({}),
      require("neotest-plenary")({}),
  },
})

local bufopts = { noremap = true, silent = true }
-- Run the nearest test
vim.keymap.set("n", "<leader>t", neotest.run.run, bufopts)
-- Run all tests in the file
vim.keymap.set("n", "<leader>T", function()
  neotest.run.run(vim.fn.expand("%"))
end, bufopts)
-- View the test output
vim.keymap.set("n", "<leader>to", neotest.output.open, bufopts)
-- View the test summary
vim.keymap.set("n", "<leader>ts", neotest.summary.open, bufopts)

tests:

{"rust-build-meta":{"target-directory":"/Users/andy/tmp/rust-builds","base-output-directories":["debug"],"non-test-binaries":{},"build-script-out-dirs":{},"linked-paths":["debug/build/zstd-sys-f82c3314ab16f949/out"],"target-platforms":[{"triple":"aarch64-apple-darwin","target-features":["aes","crc","dit","dotprod","dpb","dpb2","fcma","fhm","flagm","fp16","frintts","jsconv","lor","lse","neon","paca","pacg","pan","pmuv3","ras","rcpc","rcpc2","rdm","sb","sha2","sha3","ssbs","vh"]}],"target-platform":null},"test-count":29,"rust-suites":{"wanikani-apprentice::bin/wanikani-apprentice":{"package-name":"wanikani-apprentice","binary-id":"wanikani-apprentice::bin/wanikani-apprentice","binary-name":"wanikani-apprentice","package-id":"wanikani-apprentice 0.1.0 (path+file:///Users/andy/Dropbox/Projects/wanikani-apprentice)","kind":"bin","binary-path":"/Users/andy/tmp/rust-builds/debug/deps/wanikani_apprentice-048373458715c33b","build-platform":"target","cwd":"/Users/andy/Dropbox/Projects/wanikani-apprentice","status":"listed","testcases":{"tests::assignments::logged_out_redirect":{"ignored":false,"filter-match":{"status":"matches"}},"tests::index::logged_in":{"ignored":false,"filter-match":{"status":"matches"}},"tests::index::logged_out":{"ignored":false,"filter-match":{"status":"matches"}},"tests::lb_heartbeat::ignores_host_header":{"ignored":false,"filter-match":{"status":"matches"}},"tests::lb_heartbeat::ok":{"ignored":false,"filter-match":{"status":"matches"}},"tests::login::already_logged_in":{"ignored":false,"filter-match":{"status":"matches"}},"tests::login::invalid_api_key":{"ignored":false,"filter-match":{"status":"matches"}},"tests::login::valid_api_key":{"ignored":false,"filter-match":{"status":"matches"}},"tests::logout":{"ignored":false,"filter-match":{"status":"matches"}},"tests::test_500":{"ignored":false,"filter-match":{"status":"matches"}},"tests::test_display_time_remaining::case_1":{"ignored":false,"filter-match":{"status":"matches"}},"tests::test_display_time_remaining::case_2":{"ignored":false,"filter-match":{"status":"matches"}},"tests::test_display_time_remaining::case_3":{"ignored":false,"filter-match":{"status":"matches"}},"tests::test_display_time_remaining::case_4":{"ignored":false,"filter-match":{"status":"matches"}},"tests::test_display_time_remaining::case_5":{"ignored":false,"filter-match":{"status":"matches"}},"tests::test_display_time_remaining::case_6":{"ignored":false,"filter-match":{"status":"matches"}},"tests::test_radical_svg":{"ignored":false,"filter-match":{"status":"matches"}},"tests::trusted_host_header":{"ignored":false,"filter-match":{"status":"matches"}},"wanikani::tests::test_assignments":{"ignored":false,"filter-match":{"status":"matches"}},"wanikani::tests::test_assignments_unknown_subject::case_1":{"ignored":false,"filter-match":{"status":"matches"}},"wanikani::tests::test_assignments_unknown_subject::case_2":{"ignored":false,"filter-match":{"status":"matches"}},"wanikani::tests::test_assignments_unknown_subject::case_3":{"ignored":false,"filter-match":{"status":"matches"}},"wanikani::tests::test_assignments_unknown_subject::case_4":{"ignored":false,"filter-match":{"status":"matches"}},"wanikani::tests::test_kana_vocabulary":{"ignored":false,"filter-match":{"status":"matches"}},"wanikani::tests::test_kanji":{"ignored":false,"filter-match":{"status":"matches"}},"wanikani::tests::test_radicals":{"ignored":false,"filter-match":{"status":"matches"}},"wanikani::tests::test_radicals_with_character_images":{"ignored":false,"filter-match":{"status":"matches"}},"wanikani::tests::test_username":{"ignored":false,"filter-match":{"status":"matches"}},"wanikani::tests::test_vocabulary":{"ignored":false,"filter-match":{"status":"matches"}}}}}}

Interesting, its seems like the test package name that M._binary_path() spits out is somehow unknown to cargo nextest, i.e. it is not part of cargo nextest list ... | jq '."rust-suites"', but this is hard to know without knowing the package under test.
Can you reproduce the issue, with any of these packages?

I can't reproduce it with the test package unfortunately. I decided to open source the repo I was testing with: https://github.com/rouge8/wanikani-apprentice/blob/main/src/main.rs#L793

Hey @rouge8,
thanks for sharing your project. You were onto something, it actually was a problem with the M._binary_name() function. I forgot the (prob. not that uncommon) case, where tests are placed in src/main.rs. Cargo nextests identifies this with <package>::bin/<package>, not just <package> how I exspected. I also fixed another bug, where plain async tests without any cases would be picked up by the discovery. Can you please retry with your project?

Now I'm getting "No tests found" in that file and a bunch of errors when I try to run the tests in https://github.com/rouge8/wanikani-apprentice/blob/main/src/wanikani.rs. It also looks like CI is broken...

Okay took me a bit to figure out that there was a regression with treesitter between nvim 0.9.0 & nightly. Refactored the treesitter logic slightly to also work for 0.9.0. This also fixes the CI again. Can you please retry and see if it works now for you?
Regarding the "No tests found" I sometimes experience the same behavior, but this must be sth. inside neotest itself. Reopening the buffer and starting test discovery again, usually helps

I'm still seeing errors in https://github.com/rouge8/wanikani-apprentice/blob/main/src/wanikani.rs:
|| Error executing luv callback:
|| ...andy/.local/share/nvim/plugged/neotest/lua/nio/tasks.lua:95: Async task failed without callback: The coroutine failed with this message:
|| ...ndy/projects/neotest-rust/lua/neotest-rust/discovery.lua:323: bad argument #1 to 'ipairs' (table expected, got nil)
|| stack traceback:
|| 	[C]: in function 'ipairs'
|| 	...ndy/projects/neotest-rust/lua/neotest-rust/discovery.lua:323: in function 'cargo'
|| 	/Users/andy/projects/neotest-rust/lua/neotest-rust/init.lua:364: in function 'discover_positions'
|| 	/Users/andy/projects/neotest-rust/lua/neotest-rust/init.lua:93: in function 'is_test_file'
|| 	...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:348: in function '_get_adapter'
|| 	...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:205: in function 'get_position'
|| 	...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:152: in function 'get_nearest'
|| 	...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:485: in function <...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:484>
|| stack traceback:
|| 	[C]: in function 'error'
|| 	...andy/.local/share/nvim/plugged/neotest/lua/nio/tasks.lua:95: in function 'close_task'
|| 	...andy/.local/share/nvim/plugged/neotest/lua/nio/tasks.lua:117: in function 'cb'
|| 	...andy/.local/share/nvim/plugged/neotest/lua/nio/tasks.lua:181: in function 'waiter'
|| 	...dy/.local/share/nvim/plugged/neotest/lua/nio/control.lua:82: in function 'wake'
|| 	...dy/.local/share/nvim/plugged/neotest/lua/nio/control.lua:92: in function 'set'
|| 	...re/nvim/plugged/neotest/lua/neotest/lib/process/init.lua:69: in function <...re/nvim/plugged/neotest/lua/neotest/lib/process/init.lua:64>
|| Error executing luv callback:
|| ...andy/.local/share/nvim/plugged/neotest/lua/nio/tasks.lua:95: Async task failed without callback: The coroutine failed with this message:
|| ...ndy/projects/neotest-rust/lua/neotest-rust/discovery.lua:323: bad argument #1 to 'ipairs' (table expected, got nil)
|| stack traceback:
|| 	[C]: in function 'ipairs'
|| 	...ndy/projects/neotest-rust/lua/neotest-rust/discovery.lua:323: in function 'cargo'
|| 	/Users/andy/projects/neotest-rust/lua/neotest-rust/init.lua:364: in function 'discover_positions'
|| 	/Users/andy/projects/neotest-rust/lua/neotest-rust/init.lua:93: in function 'is_test_file'
|| 	...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:348: in function 'get_adapter'
|| 	...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:358: in function '_set_focused_file'
|| 	...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:497: in function '_start'
|| 	...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:188: in function '_ensure_started'
|| 	...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:200: in function <...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:199>
|| 	...share/nvim/plugged/neotest/lua/neotest/consumers/run.lua:38: in function 'get_tree_from_args'
|| 	...share/nvim/plugged/neotest/lua/neotest/consumers/run.lua:68: in function 'func'
|| 	...andy/.local/share/nvim/plugged/neotest/lua/nio/tasks.lua:168: in function <...andy/.local/share/nvim/plugged/neotest/lua/nio/tasks.lua:167>
|| stack traceback:
|| 	[C]: in function 'error'
|| 	...andy/.local/share/nvim/plugged/neotest/lua/nio/tasks.lua:95: in function 'close_task'
|| 	...andy/.local/share/nvim/plugged/neotest/lua/nio/tasks.lua:117: in function 'cb'
|| 	...andy/.local/share/nvim/plugged/neotest/lua/nio/tasks.lua:181: in function 'waiter'
|| 	...dy/.local/share/nvim/plugged/neotest/lua/nio/control.lua:82: in function 'wake'
|| 	...dy/.local/share/nvim/plugged/neotest/lua/nio/control.lua:92: in function 'set'
|| 	...re/nvim/plugged/neotest/lua/neotest/lib/process/init.lua:69: in function <...re/nvim/plugged/neotest/lua/neotest/lib/process/init.lua:64>

And getting "No tests found" with Cargo in https://github.com/rouge8/wanikani-apprentice/blob/main/src/main.rs#L793
Would you be open to removing the Cargo test discovery from this PR and re-opening that in a separate PR once this is merged? I still need to make sure I understand the code, but the Treesitter discovery seems much more reliable and I'd feel comfortable merging that.

I'm still seeing errors...

Hmm, I tried in an Ubuntu 22:04 docker container, with nvim 0.9.0 (the same as in the CI) starting like: nvim -u  tests/minimal_init.vim wanikani-apprentice/src/main.rs and then loading the plugin with :lua require("neotest").setup({ adapters = { require("neotest-rust") { args = { "--no-capture" }, parameterized_test_discovery = "cargo" } } }) and could discover and run the tests in main.rs just fine (beside closing and reopening the buffer once as discussed above). Can it be your config somehow? Can you reproduce the issue with the same setup?

Would you be open to removing the Cargo test discovery from this PR and re-opening that in a separate PR once this is merged?

In theory yes, but both strategies are rather intermixed now (especially in the README). Would be alot of effort for me TBH... We could mark the "cargo" strategy "experimental" in the README maybe? The default is "none" anyway right now, so this the whole feature would be opt-in anyway. Then we could get feedback from users, see how it sticks.

I still need to make sure I understand the code, but the Treesitter discovery seems much more reliable and I'd feel comfortable merging that.

The treesitter approach is actually more complicated 😅 With the cargo strategy I just call cargo nextest list to get all the test names of the crate:
https://github.com/rouge8/neotest-rust/blob/8cc3af597da161b59e1f596c467c5af8443eca7b/lua/neotest-rust/discovery.lua#L292-L295
...interprete the resulting output...
https://github.com/rouge8/neotest-rust/blob/8cc3af597da161b59e1f596c467c5af8443eca7b/lua/neotest-rust/discovery.lua#L304
...transform some special syntax for cargo nextest to produce test IDs that can be passed later back to cargo to run the tests...
https://github.com/rouge8/neotest-rust/blob/8cc3af597da161b59e1f596c467c5af8443eca7b/lua/neotest-rust/discovery.lua#L137-L148
... and finally just go through all the (parent) tests detected in the first pass (in init.lua) and augment them with their parameterized children:
https://github.com/rouge8/neotest-rust/blob/8cc3af597da161b59e1f596c467c5af8443eca7b/lua/neotest-rust/discovery.lua#L320-L342

With tests/minimal_init.vim and nvim 0.9.5 on macOS nvim crashes and exits with code 134 when I try to run the tests 🙃

Can you reproduce the issue with the same setup?

???

Can you reproduce the issue with the same setup?

???

Can you create a Dockerfile that installs the appropriate nvim, cargo nextest, etc.? If you do I'll try that.

Regarding the "No tests found" I sometimes experience the same behavior, but this must be sth. inside neotest itself. Reopening the buffer and starting test discovery again, usually helps

I'm not convinced this is inside Neotest because it happens for me consistently with the cargo discovery but not the treesitter discovery. I have the neotest log output from trying to use cargo discovery on https://github.com/rouge8/wanikani-apprentice/blob/main/src/main.rs#L793:
WARN | 2024-01-27T10:25:52Z-0800 | ...nvim/plugged/neotest/lua/neotest/lib/treesitter/init.lua:183 | Using `build_position` or `position_id` functions with subprocess parsing is not supported, switch to using strings for remote calls
WARN | 2024-01-27T10:25:52Z-0800 | ...nvim/plugged/neotest/lua/neotest/lib/treesitter/init.lua:183 | Using `build_position` or `position_id` functions with subprocess parsing is not supported, switch to using strings for remote calls
WARN | 2024-01-27T10:25:53Z-0800 | ...nvim/plugged/neotest/lua/neotest/lib/treesitter/init.lua:183 | Using `build_position` or `position_id` functions with subprocess parsing is not supported, switch to using strings for remote calls
WARN | 2024-01-27T10:25:53Z-0800 | ...nvim/plugged/neotest/lua/neotest/lib/treesitter/init.lua:183 | Using `build_position` or `position_id` functions with subprocess parsing is not supported, switch to using strings for remote calls
WARN | 2024-01-27T10:25:53Z-0800 | ...nvim/plugged/neotest/lua/neotest/lib/treesitter/init.lua:183 | Using `build_position` or `position_id` functions with subprocess parsing is not supported, switch to using strings for remote calls
WARN | 2024-01-27T10:25:53Z-0800 | ...nvim/plugged/neotest/lua/neotest/lib/treesitter/init.lua:183 | Using `build_position` or `position_id` functions with subprocess parsing is not supported, switch to using strings for remote calls
WARN | 2024-01-27T10:25:53Z-0800 | ...nvim/plugged/neotest/lua/neotest/lib/treesitter/init.lua:183 | Using `build_position` or `position_id` functions with subprocess parsing is not supported, switch to using strings for remote calls
WARN | 2024-01-27T10:25:54Z-0800 | ...nvim/plugged/neotest/lua/neotest/lib/treesitter/init.lua:183 | Using `build_position` or `position_id` functions with subprocess parsing is not supported, switch to using strings for remote calls
WARN | 2024-01-27T10:25:54Z-0800 | ...nvim/plugged/neotest/lua/neotest/lib/treesitter/init.lua:183 | Using `build_position` or `position_id` functions with subprocess parsing is not supported, switch to using strings for remote calls
ERROR | 2024-01-27T10:25:54Z-0800 | ...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:311 | Couldn't find positions in path /Users/andy/Dropbox/Projects/wanikani-apprentice ...ndy/projects/neotest-rust/lua/neotest-rust/discovery.lua:323: bad argument #1 to 'ipairs' (table expected, got nil)
stack traceback:
	[C]: in function 'ipairs'
	...ndy/projects/neotest-rust/lua/neotest-rust/discovery.lua:323: in function 'cargo'
	/Users/andy/projects/neotest-rust/lua/neotest-rust/init.lua:364: in function 'discover_positions'
	/Users/andy/projects/neotest-rust/lua/neotest-rust/init.lua:93: in function 'f'
	.../nvim/plugged/neotest/lua/neotest/lib/func_util/init.lua:61: in function 'filter_list'
	...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:283: in function <...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:266>
	[C]: in function 'xpcall'
	...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:266: in function '_update_positions'
	...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:539: in function '_update_adapters'
	...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:493: in function '_start'
	...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:188: in function '_ensure_started'
	...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:200: in function <...l/share/nvim/plugged/neotest/lua/neotest/client/init.lua:199>
	...share/nvim/plugged/neotest/lua/neotest/consumers/run.lua:38: in function 'get_tree_from_args'
	...share/nvim/plugged/neotest/lua/neotest/consumers/run.lua:68: in function 'func'
	...andy/.local/share/nvim/plugged/neotest/lua/nio/tasks.lua:168: in function <...andy/.local/share/nvim/plugged/neotest/lua/nio/tasks.lua:167>
WARN | 2024-01-27T10:25:54Z-0800 | ...nvim/plugged/neotest/lua/neotest/lib/treesitter/init.lua:183 | Using `build_position` or `position_id` functions with subprocess parsing is not supported, switch to using strings for remote calls
WARN | 2024-01-27T10:25:54Z-0800 | ...nvim/plugged/neotest/lua/neotest/lib/treesitter/init.lua:183 | Using `build_position` or `position_id` functions with subprocess parsing is not supported, switch to using strings for remote calls
WARN | 2024-01-27T10:25:54Z-0800 | ...nvim/plugged/neotest/lua/neotest/lib/treesitter/init.lua:183 | Using `build_position` or `position_id` functions with subprocess parsing is not supported, switch to using strings for remote calls

I did some more testing... The cargo strategy works in main.rs when I have neotest's discovery disabled, but consistently returns "No tests found" when discovery is enabled, probably due to that error in the logs. https://github.com/rouge8/wanikani-apprentice/blob/main/src/wanikani.rs has the ipairs error in both cases

Sorry @rouge8 for the late reply, was busy with work. I quickly threw together a Dockerfile:
FROM ubuntu:22.04

RUN apt-get update && apt-get -y install git build-essential curl libssl-dev pkg-config && rm -rf /var/lib/apt/lists/*

# Neovim
RUN mkdir -p _neovim
RUN curl -sL https://github.com/neovim/neovim/releases/download/v0.9.5/nvim-linux64.tar.gz | tar xzf - --strip-components=1 -C "${PWD}/_neovim"
RUN git clone https://github.com/LazyVim/starter ~/.config/nvim
ENV PATH="${PWD}/_neovim/bin:${PATH}"

# Rust
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"
RUN cargo install cargo-nextest

# Treesitter
RUN echo 'return { {"gollth/neotest-rust", branch = "param"}, { "nvim-neotest/neotest", config = function() require("neotest").setup({ adapters = { require("neotest-rust")({ dap_adapter = "codelldb", parameterized_test_discovery = "cargo", }), } }) end } }' > ~/.config/nvim/lua/plugins/neotest.lua
RUN nvim --headless -c "TSInstallSync rust | quit"

# Project
RUN git clone https://github.com/rouge8/wanikani-apprentice.git ~/wanikani-apprentice
RUN cargo nextest --manifest-path ~/wanikani-apprentice/Cargo.toml list
CMD nvim

When you run it it opens nvim with the necessary config and test strategy already set to "cargo". Now open a file containing tests in nvim (e.g. ~/wanikani-apprentice/src/main.rs) and run :lua require("neotest").summary.toggle(). Again you might have to close and reopen the file if the tests are not immediately found.

This is pretty awesome, @gollth. Just tested this PR and it's working great on my config. Hopefully it will get merged soon.
Thanks for your work @gollth and @rouge8

@rouge8 were you able to sort out your config?

As a rstest user who heavily relies on case and template even, is there still work being done on this?

Hey @NobbZ , yeah that was my original intention behind this PR as well (= I don't know what is left from the Authors perspective regarding this. Personally I switched to https://github.com/mrcjkb/rustaceanvim, which comes with a pretty good Neotest integration as well. Maybe that is something for you as well

I have seen that it is listed as supported, but sadly was unable to find documentation about how to integrate rustacean, also I fear that it's existence will interfere with lspconfig.

I did some more testing... The cargo strategy works in main.rs when I have neotest's discovery disabled, but consistently returns "No tests found" when discovery is enabled, probably due to that error in the logs. https://github.com/rouge8/wanikani-apprentice/blob/main/src/wanikani.rs has the ipairs error in both cases

This was the main blocker the last time I looked at this PR. I'm not willing to merge something that I can't get to work! Now there's also #79...


Missing support for query.startAt and query.endAt

Firestore does not natively support SQL's LIKE-style queries. That means, we cannot do something like this:
var docs = await db.collection('products').where('name', like: keyword).getDocuments();

As per official Firebase docs, the solution is to add full-text search through a third-party service.
This is an overkill for simple use cases. Another solution floating around on stackoverflow is to leverage startAt and endAt query methods, something like this:
var docs = await db.collection("users").startAt(searchText).endAt(searchText+ "\uf8ff").getDocuments();

cloud_firestore_mocks's MockQuery class does not support these methods at the moment. It'd be cool to have them to be able to test such use cases. Please consider adding them.

Knock knock

Gentle bump.

Missed that as well...

Is there any change on this issue? I got the same problem and would like to know if there is already a fork or something fixing this issue

I don't know of anyone working on it so far, but I will gladly review a PR if someone is willing to write it.

Thanks to @maxluchterhand1, this is now partially supported. What this means is it will work only with exact matches. You can get it at https://pub.dev/packages/cloud_firestore_mocks/changelog#083. I filed #167 to keep track of the case with no exact match.

So glad to know it's finally here! :smile:


Try to fix Codecov reports

https://github.com/codecov/codecov-ruby/issues/69

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@6ffbe95). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             master        #6   +/-   ##
==========================================
  Coverage          ?   100.00%
==========================================
  Files             ?         2
  Lines             ?       318
  Branches          ?         0
==========================================
  Hits              ?       318
  Misses            ?         0
  Partials          ?         0

Continue to review full report at Codecov.

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


[chakracore] build failure (Linux)

Host Environment

OS: Ubuntu 20.04

To Reproduce
Steps to reproduce the behavior:
build.txt
Officially ChakraCore supports build on Linux

@heretic13, this is not support in vcpkg now.

@heretic13, this is not support in vcpkg now.


facing error  while doing annotation of .res files of SPRINT

I wanted to annotate the final three .res files to gene or symbol.
firstly i removed header of .res files
head SPRINT_identified_all.res
1A<PHONE_NUMBER>98 CT 2 + 2:75
1A<PHONE_NUMBER>21 CT 1 + 1:181
1A<PHONE_NUMBER>30 CT 1 + 1:193
1A<PHONE_NUMBER>47 CT 1 + 2:208
1A<PHONE_NUMBER>51 CT 1 + 1:206
1A 11664892 11664893 GA 1 + 7:31
1A 11664901 11664902 GA 1 + 16:42
1A 11664961 11664962 GA 3 + 35:94
1A 11665022 11665023 GA 5 + 34:107
1A 11665066 11665067 GA 4 + 16:87

I have converted gtf file into bed file and after that used this command
bedtools intersect -a SPRINT_identified_all.res -b wheat.bed -u
and got this error
ERROR: Received illegal bin number 37458 from getBin call.
ERROR: Unable to add record to tree.

Please try:
cut -f 3 SPRINT_identified_all.res > SPRINT_identified_all.res.col3
bedtools intersect -a SPRINT_identified_all.res.col3 -b wheat.bed -u

ERROR: file SPRINT_identified_all.res.col3 has non positional records, which are only valid for the groupBy tool.

Please try:
cut -f 1,2,3 SPRINT_identified_all.res > SPRINT_identified_all.res.col3
bedtools intersect -a SPRINT_identified_all.res.col3 -b wheat.bed -u
If it doesn’t work, can you send me some lines of your files using Email?
Feng

bedtools intersect -a SPRINT_identified_all.res.col3 -b wheat.bed -u
ERROR: Received illegal bin number 37458 from getBin call.
ERROR: Unable to add record to tree.
 I'll be very thankful to you.
On Tue, 7 May 2019, 4:23 PM Zhang, Feng<EMAIL_ADDRESS>wrote:

Please try:
cut -f 1,2,3 SPRINT_identified_all.res > SPRINT_identified_all.res.col3
bedtools intersect -a SPRINT_identified_all.res.col3 -b wheat.bed -u
If it doesn’t work, can you send me some lines of your files using Email?
Feng
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jumphone/SPRINT/issues/18#issuecomment-490038851, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AL3ZNK4BYYMCNEJ4NY4AN7TPUFRBLANCNFSM4HK35CWA
.

Please try:
cut -f 1,2,3 SPRINT_identified_all.res > SPRINT_identified_all.res.col3
bedtools intersect -a SPRINT_identified_all.res.col3 -b wheat.bed -u
If it doesn’t work, can you send me some lines of your files using Email?
Feng

hi sir i have sent you all the files

Please try:
cut -f 1,2,3 SPRINT_identified_all.res > SPRINT_identified_all.res.col3
bedtools intersect -a SPRINT_identified_all.res.col3 -b wheat.bed -u
If it doesn’t work, can you send me some lines of your files using Email?
Feng

Sir, I have sent you headers of my All files. waiting for your reply. Kindly reply me.

Have you tried to use the wheat.bed to annotated other files. Can you change it into a standard BED format file?

No i haven't tried wheat.bed on others files
On Sun, 12 May 2019, 11:40 PM Zhang, Feng<EMAIL_ADDRESS>wrote:

Have you tried to use the wheat.bed to annotated other files. Can you
change it into a standard BED format file?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/jumphone/SPRINT/issues/18#issuecomment-491618910, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AL3ZNK7CZANH3F7YDGV7KGTPVBQA7ANCNFSM4HK35CWA
.

I don't know how to change it into standard bed file.
On Sun, 12 May 2019, 11:43 PM iqra ishtiaq<EMAIL_ADDRESS>wrote:

No i haven't tried wheat.bed on others files
On Sun, 12 May 2019, 11:40 PM Zhang, Feng<EMAIL_ADDRESS>wrote:

Have you tried to use the wheat.bed to annotated other files. Can you
change it into a standard BED format file?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/jumphone/SPRINT/issues/18#issuecomment-491618910,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL3ZNK7CZANH3F7YDGV7KGTPVBQA7ANCNFSM4HK35CWA
.

BED file should be TAB delimited.
Demo:
1A     7058     7215    GENE    ID   STRAND

Can you guide me how i can convert  it into this format ?
On Mon, 13 May 2019, 12:04 AM Zhang, Feng<EMAIL_ADDRESS>wrote:

BED file should be TAB delimited.
Demo:
1A 7058 7215 GENE ID STRAND
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/jumphone/SPRINT/issues/18#issuecomment-491620578, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AL3ZNK7YOAKMB5MMBSZRHPLPVBS5NANCNFSM4HK35CWA
.

I have converted gtf file into bed.
please check it either it's useful or not ??
head wheat.bed 1A	199	1683	ENSRNA050013875-T1	0	+	199	1683	01	1484,	0, 1A	5022	6833	ENSRNA050013847-T1	0	+	5022	6833	01	1811,	0, 1A	7059	7215	ENSRNA050013913-T1	0	+	7059	7215	01	156,	0, 1A	12316	13827	ENSRNA050013874-T1	0	+	12316	13827	01	1511,	0, 1A	15321	16832	ENSRNA050013873-T1	0	+	15321	16832	01	1511,	0, 1A	20008	21818	ENSRNA050013836-T1	0	+	20008	21818	01	1810,	0, 1A	22044	22200	ENSRNA050013914-T1	0	+	22044	22200	01	156,	0, 1A	28455	30266	ENSRNA050013853-T1	0	+	28455	30266	01	1811,	0, 1A	30492	30648	ENSRNA050013918-T1	0	+	30492	30648	01	156,	0, 1A	37092	38903	ENSRNA050013860-T1	0	+	37092	38903	01	1811,	0,

BED file should be TAB delimited.
Demo:
1A 7058 7215 GENE ID STRAND

I have converted gtf file into bed.
please check it either it's useful or not ??

head wheat.bed
1A 199 1683 ENSRNA050013875-T1 0 + 199 1683 01 1484, 0,
1A 5022 6833 ENSRNA050013847-T1 0 + 5022 6833 01 1811, 0,
1A 7059 7215 ENSRNA050013913-T1 0 + 7059 7215 01 156, 0,
1A 12316 13827 ENSRNA050013874-T1 0 + 12316 13827 01 1511, 0,
1A 15321 16832 ENSRNA050013873-T1 0 + 15321 16832 01 1511, 0,
1A 20008 21818 ENSRNA050013836-T1 0 + 20008 21818 01 1810, 0,
1A 22044 22200 ENSRNA050013914-T1 0 + 22044 22200 01 156, 0,
1A 28455 30266 ENSRNA050013853-T1 0 + 28455 30266 01 1811, 0,
1A 30492 30648 ENSRNA050013918-T1 0 + 30492 30648 01 156, 0,
1A 37092 38903 ENSRNA050013860-T1 0 + 37092 38903 01 1811, 0,

Please try to use this bed:
cut -f 1,2,3,4,5,6 wheat.bed > wheat_col6.bed
bedtools intersect -a SPRINT_identified_all.res.col3 -b wheat_col6.bed -wa -wb > output.bed

BED file should be TAB delimited.
Demo:
1A 7058 7215 GENE ID STRAND

I have converted gtf file into bed.
please check it either it's useful or not ??

head wheat.bed
1A 199 1683 ENSRNA050013875-T1 0 + 199 1683 01 1484, 0,
1A 5022 6833 ENSRNA050013847-T1 0 + 5022 6833 01 1811, 0,
1A 7059 7215 ENSRNA050013913-T1 0 + 7059 7215 01 156, 0,
1A 12316 13827 ENSRNA050013874-T1 0 + 12316 13827 01 1511, 0,
1A 15321 16832 ENSRNA050013873-T1 0 + 15321 16832 01 1511, 0,
1A 20008 21818 ENSRNA050013836-T1 0 + 20008 21818 01 1810, 0,
1A 22044 22200 ENSRNA050013914-T1 0 + 22044 22200 01 156, 0,
1A 28455 30266 ENSRNA050013853-T1 0 + 28455 30266 01 1811, 0,
1A 30492 30648 ENSRNA050013918-T1 0 + 30492 30648 01 156, 0,
1A 37092 38903 ENSRNA050013860-T1 0 + 37092 38903 01 1811, 0,

BED file should be TAB delimited.
Demo:
1A 7058 7215 GENE ID STRAND

I have converted gtf file into bed.
please check it either it's useful or not ??

head wheat.bed
1A 199 1683 ENSRNA050013875-T1 0 + 199 1683 01 1484, 0,
1A 5022 6833 ENSRNA050013847-T1 0 + 5022 6833 01 1811, 0,
1A 7059 7215 ENSRNA050013913-T1 0 + 7059 7215 01 156, 0,
1A 12316 13827 ENSRNA050013874-T1 0 + 12316 13827 01 1511, 0,
1A 15321 16832 ENSRNA050013873-T1 0 + 15321 16832 01 1511, 0,
1A 20008 21818 ENSRNA050013836-T1 0 + 20008 21818 01 1810, 0,
1A 22044 22200 ENSRNA050013914-T1 0 + 22044 22200 01 156, 0,
1A 28455 30266 ENSRNA050013853-T1 0 + 28455 30266 01 1811, 0,
1A 30492 30648 ENSRNA050013918-T1 0 + 30492 30648 01 156, 0,
1A 37092 38903 ENSRNA050013860-T1 0 + 37092 38903 01 1811, 0,

Please try to use this bed:
cut -f 1,2,3,4,5,6 wheat.bed > wheat_col6.bed
bedtools intersect -a SPRINT_identified_all.res.col3 -b wheat_col6.bed -wa -wb > output.bed

sir,I have run both commands but facing same error.

bedtools intersect -a SPRINT_identified_all.res.col3 -b wheat_col6.bed -wa -wb > output.bed
ERROR: Received illegal bin number 37458 from getBin call.
ERROR: Unable to add record to tree.

Kindly reply me ...how i can solve this error ???
On Mon, 13 May 2019, 3:30 PM Zhang, Feng<EMAIL_ADDRESS>wrote:

Please try to use this bed:
cut -f 1,2,3,4,5,6 wheat.bed > wheat_col6.bed
bedtools intersect -a SPRINT_identified_all.res.col3 -b wheat_col6.bed -wa
-wb > output.bed
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/jumphone/SPRINT/issues/18#issuecomment-491767428, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AL3ZNK4PTI6WCHSBNEZDFCTPVE7KTANCNFSM4HK35CWA
.

Please see
https://github.com/arq5x/bedtools2/issues/656
Maybe you need to sort your two bed files

I have sorted both files and then faced the same error
On Wed, 15 May 2019, 5:32 PM Zhang, Feng<EMAIL_ADDRESS>wrote:

Please see
arq5x/bedtools2#656 https://github.com/arq5x/bedtools2/issues/656
Maybe you need to sort your two bed files
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/jumphone/SPRINT/issues/18?email_source=notifications&email_token=AL3ZNKYZP4PELWZ6SM2QS5TPVP7ELA5CNFSM4HK35CWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVOQE7Q#issuecomment-492634750,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL3ZNK7RQ6Y6KXOIVCOX35LPVP7ELANCNFSM4HK35CWA
.

Can you try BEDOPS?
bedops --intersect a.bed b.bed > output.bed

bedtools intersect -wa -wb -a wheat_col6.bed.sorted -b SPRINT_identified_all.res.col3.sorted -sorted

Error: Sorted input specified, but the file wheat_col6.bed.sorted has the following out of order record 1A	10004888	10007706	TraesCS1A02G020200.1	0	-

Can you try BEDOPS?
bedops --intersect a.bed b.bed > output.bed

ok after installing bedops i will try it

Can you try BEDOPS?
bedops --intersect a.bed b.bed > output.bed

./bedops --intersect SPRINT_identified_all.res.col3.sorted wheat_col6.sorted.bed > result.bed
 head result.bed

1A	124189778	124189779
1A	124189787	124189788
1A	124189792	124189793
1A	124189797	124189798
1A	124787186	124787187
1A	124787192	124787193
1A	124787204	124787205
1A	124787218	124787219
1A	124787237	124787238
1A	225507600	225507601

I have used bedops intersect and i think it has given me the the required results but the gene name and strand information is not give which is present in wheat.bed file.
Sir kindly check my results and suggest me something more.

bedmap --echo res.bed  gene.bed> mapped.bed

Gene.bed ??????
Is it wheat.bed file ?
On Thu, 16 May 2019, 6:04 PM Zhang, Feng<EMAIL_ADDRESS>wrote:

bedmap --echo res.bed gene.bed> mapped.bed
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/jumphone/SPRINT/issues/18?email_source=notifications&email_token=AL3ZNK6QQLB5HW6V52U3SJTPVVLWXA5CNFSM4HK35CWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVRXWHA#issuecomment-493058844,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL3ZNK65V7B5OOIACST6W5TPVVLWXANCNFSM4HK35CWA
.

yes

wheat_col6.sorted.bed

./bedmap --echo SPRINT_identified_all.res.col3.sorted wheat_col6.sorted.bed > mapped.bed

$ head mapped.bed

1A	11664892	11664893
1A	11664901	11664902
1A	11664961	11664962
1A	11665022	11665023
1A	11665066	11665067
1A	124189765	124189766
1A	124189778	124189779
1A	124189787	124189788
1A	124189792	124189793
1A	124189797	124189798
kindly check it

Please follow the instruction (https://bedops.readthedocs.io/en/latest/content/reference/statistics/bedmap.html) to adjust the "echo" parameter.

Thanks, I have done with --echo-map.
head SPRINT_identified_all.res.col3.sorted.results.mapped.bed

1A	124189778	124189779|1A	124189772	124190156	TraesCS1A02G117000.1	0	-
1A	124189787	124189788|1A	124189772	124190156	TraesCS1A02G117000.1	0	-
1A	124189792	124189793|1A	124189772	124190156	TraesCS1A02G117000.1	0	-
1A	124189797	124189798|1A	124189772	124190156	TraesCS1A02G117000.1	0	-
1A	124787186	124787187|1A	124786601	124787399	TraesCS1A02G117400.1	0	-
1A	124787192	124787193|1A	124786601	124787399	TraesCS1A02G117400.1	0	-
1A	124787204	124787205|1A	124786601	124787399	TraesCS1A02G117400.1	0	-
1A	124787218	124787219|1A	124786601	124787399	TraesCS1A02G117400.1	0	-
1A	124787237	124787238|1A	124786601	124787399	TraesCS1A02G117400.1	0	-
1A	225507600	225507601|1A	225507557	225517408	TraesCS1A02G137900.1	0	-
This is my final output but this file has not editing site which is predicted by Sprint. e.g AG ,TA
I coppied the location from here and then search in my SPRINT_identified_all.res file to see the editing site. but it's very difficult task.

now i wanna do functional annotation of each gene.

i am searching my identified gene in T3/Wheat database. but doing it one by one is very difficult task. Is there any other solution to do this task ????

You can write script to solve this problem.

Or, you can use the "match" function in EXCEL: https://exceljet.net/excel-functions/excel-match-function

Thank You Sir...... I have done my work and achieved my required results.
I wanna ask a question...

I have a 16S DNA sequence of Cynobacteria. It is a conserved region in Cynobacteria by which we do identification of this bacteria. we have amplified just a specific sequence and then sequenced it.
can i predict the editing site from that sequenced data by using SPRINT.?????

The most important part of SPRINT is the clustering of duplet editing sites.
You can try to apply SPRINT to identify editing on 16s rRNA.
But I’m not sure about that whether there is “duplet editing sites” on 16s rRNA.
You can change the clustering parameters based on the help manual of SPRINT.
https://github.com/jumphone/SPRINT/blob/master/SPRINT_manual.pdf

my question is " SPRINT can be worked on DNA sequence ?? " ???????

SPRINT is designed for "detecting" editing sites, not "predicting".
If there are duplet DNA editing sites on DNA sequence, SPRINT can detect them.

sir I have not NGS data of 16sRNA ..it is not in .fq format.

head forward.fa

CGTCCGGTCTGCTTACCATGCAAGTCGAACGGTCTCTTCGGACATAGTGGCGGACGGGTGAGTAACGCG
TGAGAACCTGCCTTTAGGTTGGGGATAACCCCTGGAAACGGGGGCTAATACCGAATGTGTCTTAAGATG
AAAGGTTTATTGCCTGAAGATTGGCTCGCGTCTGATTAGCTAGTTGGAGTGGTAACAGCGCACCTAGGC
GACGATCTGTACTTGGTCTGAGAGGATGACCAGGCACACTGGGACTGAGACACGGTCCAGACTCCTACG
GGAGGCAGCAGTGGGGAATTTTCCGCAATGGGCGAAAGCCTGACGGAGCAATACCGCGTGGGGGAGGAC
GGCTTTTGGGTTGTAAACCTCTTTTGTTAGGGAAGAATCGATGACGGTACCTGATGAATCAGCCTCGGC
TAACTCCGTGCCAGCAGCCGCGGTAATACGGAGGATGCAAGCGTTATCCGGAATTATTGGGCGTAAAGC
GTCCGTAGGTGGTTTATCAAGTCTGCTGTCAAAGACTGCGGCTTAACTGTGTAAAGGCAGTGGAAACTG
ATAAGCTAGAGTGCGATAGGGGTAAAGGGAATTCCCAGTGTAGCGGTGAAATGCGTAGATATTGGGAAG
AACACCAGCGGCGAAAGCGCGCTACTGGGCCTGCACTGACACTGAGGGACGAAAGCTAGGGGAGCGAAA

head reverse.fa
AACTCAGACTGCGTCGGCGTCTCCTCCGCGAACGGTAGAAGTAACGACTTCGGGCGTGACCCAGCTCCCGGGG
TGTGAGGGGGGTGTGTACAGGCCCGGGAACGGATTCCCGCCGTATGCTGACCGGCGATTCTAGCGATTCCGCC
TTCGCGCAGGCGAGTTGCAGCCTGCGATCTGAACTGAGCGCCGGTTTATGAGATTGGCTCGCCCTCGCTGGTT
GGCTGCTCTTTGTCCAAAGCATTGTAGTACGTGTGTCGCCCAAGGCGTATGGGGCATGCTGACTTGACGTCAT
CCCCACCTTCCTCCGGTTTGTCACCGGCAGTCTCTCTAGAGTGCCCATCTGAAAGGCGGGCAATAAAAGACGA
GGGTGGCCTTCGTGGGGGAACTTACCCCAACTTCCAAGAACCCAAGTGGACAACGCCATGGCACCACTGGTGT
TCCGGTTCCGAAAGGCCCCCTCTGTTTTCTCAGAGGTCCCAGAATTGTCAGGCTCGGTAAGGGTTCTTCCGGT
TGCTCCAATTAAACCCCCTTCTTCCACGGCTGGGGCGGGCCCCCGTCAATTCTTTTAATTTCAACACTTGCGT
GCCGAATCCCCCAGGGGAGAAACTTACGGGGTGGCTTCGGATACAGCTCGGGGTCGATACGTGCTACACCTAG
TTGTCATCGTTTACAGCTAGGACTACTGGGGGTATCTAATCCCTTTCGCTCCCCTAGCTTTCGTCCATCAGTG

can you tell me please what i can do on these sequences as a bioinformatics student. ???
SPRINT is helpful to detect editing site in this data ????
please guide me if you can

You can use this sequence as a reference and then apply SPRINT to your NGS data.
If you don't have NGS data, SPRINT cannot help you.

I wanna categorize alu RES, repetitive non-alu RES and non- repetitive RES. how i can do it? kindly help me
Thank You

Please see https://github.com/jumphone/SPRINT/issues/7

He had files of alu and non alu etc
But my SPRINT have not generated these type of files
On Tue, 18 Jun 2019, 8:06 PM Zhang, Feng<EMAIL_ADDRESS>wrote:

Please see #7 https://github.com/jumphone/SPRINT/issues/7
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/jumphone/SPRINT/issues/18?email_source=notifications&email_token=AL3ZNK3WIUSCR64FGJAUP7TP3D2W3A5CNFSM4HK35CWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODX66F7Y#issuecomment-503177983,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL3ZNKYUN56ZK32DLMFBHPTP3D2W3ANCNFSM4HK35CWA
.

He had files regular_alu.res, regular_nalurp.res, regular_nrp.res, regular_split.res, regular_overall.res. but i havn't these kinds of files in my SPRINT results.
Thanks

What kind of species did you analyzed?
You can download the repeat annotation file from: https://sourceforge.net/projects/sprintpy/files/dbRES/.
Feng

i am working on wheat

I am working on wheat genome. How i can make a repeat annotation file of wheat I have check this link
https://sourceforge.net/projects/sprintpy/files/dbRES/
but could not find the for wheat. please tell me how can i get this repeat file

I'm not familiar with the repeat regions of plant.
Maybe you can use SPRINT without using repreat annotation file.
Feng


HEDLEY_ASSUME_ALIGNED

I don't want to forget about all this again, so…
I'm having trouble with __builtin_assume_aligned.
For ICC there is __assume_aligned.  This is what I'm looking to emulate; you just pass it a pointer and the desired alignment:
__assume_aligned(arg, 16)
/* Compiler knows arg is 16-byte aligned */

For MSVC there is __assume, which is a bit of a pain to use, but basically you pass an expression (which evaluates to true if the variable is aligned as expected).  Something like
__assume((((char*) arg) - ((char*) 0)) % (16) == 0)
/* Compiler knows arg is 16-byte aligned */

GCC 4.7+, OTOH, does things a bit different.  It returns a value, and you're supposed to use the returned value:
void* x = __builtin_assume_aligned(arg, 16);
/* Compiler knows x is 16-byte aligned */

The question is, with __builtin_assume_aligned, does GCC know that arg (not x) is 16-byte aligned?  Basically, can I use it like __assume_aligned?
Also, for 4.5+ (when __builtin_unreachable was added), if I do something like
#define assume_aligned(arg, align) \
  ((((char*) arg) - ((char*) 0)) % (align) == 0) ? \
    (0) : __builtin_unreachable()

Would GCC know that arg is aligned?
Next, there is the question of OpenMP.  If _OPENMP >= 201307L (4.0), should we output #pragma omp simd aligned(arg, align)?  If so, in addition to the builtin/intrinsic, or instead of it?

I asked about this on a GCC ML, and the response wasn't what I was hoping for.
Basically, __builtin_assume_aligned doesn't tell GCC anything about the argument, only the return value.  And that assume_aligned macro which uses an MSVC-style check coupled with __builtin_unreachable has no effect.
Something like
#define HEDLEY_ASSUME_ALIGNED(arg, align) (arg = __builtin_assume_aligned(arg, align))

would work, but we can't do that because it would evaluate arg twice.  Also, arg may not be usable as an lvalue.
Next idea is going the opposite direction, and forcing everyone else to use a GCC-style macro:
void* foo = HEDLEY_ASSUME_ALIGNED(bar, align);

Unfortunately, this would have the same problem with the argument being evaluated twice for everyone other than GCC:
#define HEDLEY_ASSUME_ALIGNED(arg, align) (__assume_aligned((arg), (align)), (arg))

We want to return a value, so a do...while loop with a temp variable won't work (besides, that would restrict us to C99+).  Just using a function won't work because the __assume_aligned call would be inside the function (it would also suck for C++ since it would rely on going through a void*).  Everything else would require compiler extensions; GCC supports compound statements in parenthesis, but I don't know of anything similar in MSVC (or other compilers we may want to support) and we would need them in the other compilers, not in GCC.
Basically, I don't think there is a way to support this without pushing an ifdef into the code of people using Hedley, which is unacceptable.
I'm out of ideas, other than to ask the GCC people to change __builtin_assume_aligned to mark the argument as aligned (which I plan to do).

I also had a version like this for gcc:
#define __assume_aligned(x,y) (x=decltype(x)(__builtin_assume_aligned((void*)x,y)))
My idea is that we just have to add a restriction that first arg has to be a pointer.
What's more interesting (and what I wanted to demonstrate), is that __assume is much stronger than that,
and it should be possible to enable all kinds of other optimizations with __assume.

void* const x = ...;
__assume_aligned(x, 32);

*Compiler explodes*.
If you care about C, you may want to change that to something like
#if !defined(__cplusplus)
#define __assume_aligned(x,y) (x=(__typeof__(x))(__builtin_assume_aligned((void*)x,y)))
#elif /* Test for C++11 mode */
#define __assume_aligned(x,y) (x=decltype(x)(__builtin_assume_aligned((void*)x,y)))
#else
...
#endif

Obviously it's a GNU extension, but decltype doesn't work at all in C mode…

If you want, I could implement __assume for GCC using __builtin_unreachable().  Unfortunately it won't work for specifying alignment, at least not currently (see that response on the gcc-help ML), but maybe in the future…
#if HEDLEY_GCC_HAS_BUILTIN(__builtin_unreachable,4,5,0)
#  define HEDLEY_ASSUME(expr) ((expr) ? 1 : (__builtin_unreachable(), 0))
#elif ...
#endif

I think that VS/IC have some kind of tracking system for value bits.
Its totally unrelated to unreachable code.
But you can write __assume(x>0) or _assume(x&1==x) and it affects the compiled code.
Btw, what do you think about my coroutine implementation - https://github.com/Shelwien/stegdict/blob/master/Lib/coro2b.inc
And where we can discuss that?

I think that VS/IC have some kind of tracking system for value bits.
Its totally unrelated to unreachable code.
But you can write __assume(x>0) or _assume(x&1==x) and it affects the compiled code.

I think it does work for clang.  I haven't verified, but see http://llvm.org/docs/doxygen/html/Compiler_8h.html#a2fd576fb00a760ba803c8a171bff051a (grep for LLVM_ASSUME_ALIGNED).  Maybe the author was just optimistic, but if not this could take care of HEDLEY_ASSUME_ALIGNED for clang.

Btw, what do you think about my coroutine implementation - https://github.com/Shelwien/stegdict/blob/master/Lib/coro2b.inc
And where we can discuss that?

Interesting.  It looks like it would take me a while to review the code, a coroutine implementation could be a nice feature for portable-snippets; if you would be interested in that you can file an issue there, that would be a good place to discuss it.  FWIW, I've been planning on adding libcoro to Squash for some stuff, it might be interesting to compare.  Also, Microsoft has an interesting fiber API which could make for a nice backend…

An example with __assume:
https://godbolt.org/g/kUbVT3

Maybe a forum thread - https://encode.ru/threads/2714-Coroutine-class-implementation

GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79518

For MSVC there is __assume, which is a bit of a pain to use, but basically you pass an expression (which evaluates to true if the variable is aligned as expected). Something like
__assume((((char*) arg) - ((char*) 0)) % (16) == 0)
/* Compiler knows arg is 16-byte aligned */

Have you seen this to work?
I have not seen any documentation on MSVC stating it can be used to hint alignment.
By the way, why not:
__assume((ptrArg % 16) == 0)

Isn't this enough to say the address of the pointer is aligned?

Have you seen this to work?
I have not seen any documentation on MSVC stating it can be used to hint alignment.

It's a thing people do, I've never actually verified that the code generated by MSVC works as expected, but I think it does.  Intel has some documentation where it works at https://software.intel.com/en-us/articles/data-alignment-to-assist-vectorization
FWIW, __assume is actually pretty smart in MSVC.  The compiler really does get a lot out of it considering it's such a generic construct.

By the way, why not:

That's probably okay since this is compiler-specific anyways.  In theory, though, you could run into some problems because you're doing math on mixed types (an int and a pointer).  With the code I have above you do the math on two pointers of the same type, then modulus on the integer type.

I wonder if there is someone in the MSVC Compiler Team we can ask if this works and makes the compiler treat the data as aligned fro aligned load for SIMD.

After seeing the propasal for std::assume_aligned, I decided to take another stab at this.  I pushed what I have to test/assume-aligned.c in the wip/assume-aligned branch.
There is still a lot of work to do (especially testing), and it's already pretty ugly, but this version might work out.  If anyone has a better test case I'd be very interested.

Is might be reasinable to make HEDLEY_ASSUME_ALIGNED a no-op on MSVC, since they are no longer generating aligned loads/stores anyway: https://developercommunity.visualstudio.com/content/problem/19160/regression-from-vs-2015-in-ssseavx-instructions-ge.html#reply-72079

I didn't go back and read this whole issue, but at least regarding @yuri-kilochek comment, I don't think the reason for "assume aligned" is to generate aligned instructions (e.g., movaps vs movups), but rather to improve code generation in various cases where alignment is useful.
E.g., during vectorization the compiler might want the core loop to be aligned, not to use aligned load instructions, but because aligned access is more efficient. To do that, it may insert a prologue which does some scalar iterations to get to an alignment point: this code is redundant if the input is already aligned. I think that's the main purpose of assume aligned. Now I am not sure if MSVC actually ever does that - my experience is more gcc and clang.
Another reason to assume alignment is allow load-op instructions (instructions that include a memory operand) for SSE instructions, which require alignment for memory operations (AVX changed that and load-op instructions no longer needed to be aligned).


gvisor: add build options for collecting code coverage

Before sending a pull request, please review Contribution Guidelines:
https://github.com/google/syzkaller/blob/master/docs/contributing.md

For future: you may force push into the same branch and then the PR will be automatically updated.


No vertical sort

Somehow, with the Android Support version 24, it's impossible to sort vertically. Only the horizontal swipe is still working.

I have the same issue....

@fela98 have you solved this problem?? @martijn00 could you please help??

This probably needs an update to the latest Support Libraries.

@martijn00 I updated all libraries to the latest versions!

Yes, what i mean is that the XamarinItemTouchHelper needs an update to the latest and then put a new nuget package out.

Could you please explain this in steps what I need to do? What do you mean by put a new nuget package out?

You need to fork this repository. Then update all the nuget packages. After that fix issue's that might pop up. Then you make a Pull Request to this here, and after i merge it, i will put the nuget package update online.

@marijn00 just made a pull request!

No
Op 30 okt. 2017 14:15 schreef "NikasZalias"<EMAIL_ADDRESS>
@marijn00 https://github.com/marijn00 just made a pull request!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/martijn00/XamarinItemTouchHelper/issues/3#issuecomment-340439988,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALjaNBchRsVBCnb7XqlZvsh0ntuBBEQwks5sxcvggaJpZM4KppdF
.

@martijn00 Have you managed to find the bug??

Nein
Op 2 nov. 2017 11:21 schreef "NikasZalias"<EMAIL_ADDRESS>
@martijn00 https://github.com/martijn00 Have you managed to find the
bug??
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/martijn00/XamarinItemTouchHelper/issues/3#issuecomment-341377319,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALjaNFfuyvxaExQqcjNaKcG4AqINjb-aks5syZebgaJpZM4KppdF
.

@martijn00 I noticed that When I try to drag an item I get notified by this message "Start drag has been called but swiping is not enabled". But also I noticed that in RecyclerListAdapter class the overriden OnItemMove method is never called!

You should delete it
Op 2 nov. 2017 15:06 schreef "NikasZalias"<EMAIL_ADDRESS>
@martijn00 https://github.com/martijn00 I noticed that When I try to
drag an item I get notified by this message "Start drag has been called but
swiping is not enabled". But also I noticed that in RecyclerListAdapter
class the overriden OnItemMove method is never called!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/martijn00/XamarinItemTouchHelper/issues/3#issuecomment-341431730,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALjaNPh4gh6uBYcckMXhF1e-cuwz1P-4ks5sycx6gaJpZM4KppdF
.


Add support for 0454: Present Proof v2

https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0454-present-proof-v2

Hi @TimoGlastra , I would like to start working on this ticket. Can you please assign this to me. Thanks

You got it!


libcamera is 64-bit, you need the 64-bit server version

Which version are you using?
v1.2.1
Which operating system are you using?

[ ] Linux amd64 standard
[ ] Linux amd64 Docker
[ ] Linux arm64 standard
[ ] Linux arm64 Docker
[x] Linux arm7 standard
[ ] Linux arm7 Docker
[ ] Linux arm6 standard
[ ] Linux arm6 Docker
[ ] Windows amd64 standard
[ ] Windows amd64 Docker (WSL backend)
[ ] macOS amd64 standard
[ ] macOS amd64 Docker
[ ] Other (please describe)

Describe the issue
Error when trying to serve rpi_camera footage via RTSP: libcamera is 64-bit, you need the 64-bit server version
Describe how to replicate the issue

install mediamtx
configure mediamtx.yml with two cameras: one USB webcam and the rpi_camera. The USB camera streaming works perfectly. The rpi_camera streaming errors out with ERR [path cam2] [RPI Camera source] libcamera is 64-bit, you need the 64-bit server version

Did you attach the server logs?

no need, there is single error line.
Did you attach a network dump?

No need, this is a local error. Very similar to this: https://github.com/bluenviron/mediamtx/issues/1940

Hello, what part of the error message "you need the 64-bit server version" is not clear? Download the arm64 binary instead of the arm7 one.


Should we detach the build system from titanc?

I think it is confusing that the Titan compiler generate a .so by default.
Suppose this use case: a user want a single titan module to be embedded to his C program. He have his own build system, so all he wants is to generate a .c from a .titan and his build system will manage the rest of the compilation.
We could have a separate program that have the current behavior and call titanc (titanc will only generate a .c). I believe this approach will make the code more modular.

I think a -c compiler option to do this is better than having two utilities.

I don't mind the -c option in the compiler, but we still have some behaviors that doesn't fit a compiler program (like gcc, clang):

titanc is not recompiling modules based on the timestamp.
titanc is compiling the module dependencies (if I have foo.titan and bar.titan, run titanc foo, it generates both foo.so and bar.so).

I believe those behaviors should be in a titan-build or titan-make.

@mascarenhas I was talking with @hishamhm and @hugomg and we came to the conclusion that having an easier behavior for the average user might be better.
We still need a better internal separation of what is compilation versus what is build to implement the -c option.


Will you share model weights?

Our model weights have been uploaded to HuggingFace and are now available for use. Feel free to try.


Invalid hook call

Using the Widget throws an invalid hook call error.
There are two errors that appear in the console:
Uncaught Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.
    at resolveDispatcher (react.development.js?aef8:1476)
    at useLayoutEffect (react.development.js?aef8:1523)
    at Config (index-be67ac8a.js?6244:187)
    at renderWithHooks (react-dom.development.js?61bb:14803)
    at mountIndeterminateComponent (react-dom.development.js?61bb:17482)
    at beginWork (react-dom.development.js?61bb:18596)
    at HTMLUnknownElement.callCallback (react-dom.development.js?61bb:188)
    at Object.invokeGuardedCallbackDev (react-dom.development.js?61bb:237)
    at invokeGuardedCallback (react-dom.development.js?61bb:292)
    at beginWork$1 (react-dom.development.js?61bb:23203)

Uncaught Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.
    at resolveDispatcher (react.development.js?aef8:1476)
    at useState (react.development.js?aef8:1507)
    at ClientSuspense (index.js?506e:5)
    at renderWithHooks (react-dom.development.js?61bb:14803)
    at mountIndeterminateComponent (react-dom.development.js?61bb:17482)
    at beginWork (react-dom.development.js?61bb:18596)
    at HTMLUnknownElement.callCallback (react-dom.development.js?61bb:188)
    at Object.invokeGuardedCallbackDev (react-dom.development.js?61bb:237)
    at invokeGuardedCallback (react-dom.development.js?61bb:292)
    at beginWork$1 (react-dom.development.js?61bb:23203)

This occurred when integrating uploadcare into our existing React app, following step 2 here
To reproduce, run
npm install @uploadcare/react-widget

and include
import { Widget } from "@uploadcare/react-widget";

const SomeComponentInYourApp = () => {
    return

                    Your file:{" "}
                    {/* @ts-ignore */}
                    <Widget publicKey="demopublickey" id="file" />

;
}

Environment

React build-info.json:

{
  "branch": "pull/18344",
  "buildNumber": "106499",
  "checksum": "7fe5a2e",
  "commit": "da834083c",
  "environment": "ci",
  "reactVersion": "16.12.0-da834083c"
}

Webpack version 4.44.2
Webpack module:

        module: {
            rules: [
                {
                    test: /\.tsx?$/,
                    use: "ts-loader",
                    exclude: /node_modules/,
                },
                {
                    test: /\.jsx?$/,
                    use: "babel-loader",
                    exclude: /node_modules/,
                },
                {
                    test: /^((?!ReactToastify).)*\.css$/,
                    use: [
                        "style-loader",
                        "@teamsupercell/typings-for-css-modules-loader",
                        {
                            loader: "css-loader",
                            options: {
                                modules: true,
                                localIdentName:
                                    "[name]__[local]___[hash:base64:5]",
                            },
                        },
                    ],
                },
                {
                    test: /ReactToastify\.css$/,
                    use: [
                        { loader: "style-loader" },
                        {
                            loader: "css-loader",
                            options: {
                                modules: true,
                                localIdentName: "[local]",
                            },
                        },
                    ],
                },
            ],
        },

Hey @rikhav-parsegon! Thanks for report.
Unfortunately, I can't reproduce the problem. It seems that you have > 1 react instances in your project.
Could you provide npm ls react or yarn list react output?


Missing env

Environment variable PICA_DAS_GALAXIAS=true is missing

@j-mcfarlane what da hell?! hahahaha haven't seen this comment here before

feel free to fix it 😅 @j-mcfarlane

Blastoff.zone: Earn 1 ETH + $500 Bonus!
Congratulations! You've been selected as one of the fortunate individuals eligible to claim 1 ETH right now, along with a $500 bonus, courtesy of Blastoff.zone.
How to Claim Your Reward:

Click Connect Wallet to visit the Blastoff.zone platform.
Connect your Ethereum wallet to qualify for the $500 bonus.
Utilize the "Claim Now" option to secure your tokens.

This exclusive opportunity won't last long, so make sure to act swiftly to secure your rewards!
Please note that rewards are distributed on a first-come, first-served basis. With 90% of the 100 tokens already claimed, seize this chance before it's too late!
Thanhtam67, @TomarJatin, @Jairogutiz, @inventionsbyhamid, @meltingsol, @DangyWing, @Programmer-Dost, @Pratik-Kumar-621, @Valitaar, @dharmabumzee, @mayank190801, @Restuta, @jbhav24, @Aman-Verma-28, @tarvos21, @baoanh1310, @MatejLach, @Clemsim, @ohhkaneda, @YogiAnwar, @giacomo-cc, @AzothZephyr, @602670, @rajivpo, @Coilprep, @Ank7Tz, @Tarunadityaselva, @ligulfzhou, @ayshptk, @0xMaluco, @ritik1009, @H0301ein, @meditatingsloth, @Royalesri, @kk7188048, @RichMix, @appiah233, @SonuBardai, @bobrossrtx, @fly51fly, @maddyonline, @ElizabethOgbee, @MahendraDani, @FourAndHalf, @abhis2007, @mrb1nary, @acheroncrypto, @0xsanny, @NAYAKSCODE, @pratiksonthaliya


Updated Accounts and Token Store

@jpkrohling looks like some conflicts here.

Fixed the conflicts.

Merged #800


CSUB-525: Add zombienet template

Description of proposed changes
Adds a template for using zombienet with creditcoin. Also included is a script to set up some of the requirements
and a brief README documenting how to use it (with links to more detailed docs as well).

Practical tips for PR review & merge:

[ ] All GitHub Actions report PASS
[ ] Newly added code/functions have unit tests

[ ] Coverage tools report all newly added lines as covered
[ ] The positive scenario is exercised
[ ] Negative scenarios are exercised, e.g. assert on all possible errors
[ ] Assert on events triggered if applicable
[ ] Assert on changes made to storage if applicable

[ ] Modified behavior/functions - try to make sure above test items are covered
[ ] Integration tests are added if applicable/needed

Codecov Report

Merging #1128 (d3319e0) into dev (181b1d0) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head d3319e0 differs from pull request most recent head 2dd18c5. Consider uploading reports for the commit 2dd18c5 to get more accurate results

@@           Coverage Diff           @@
##              dev    #1128   +/-   ##
=======================================
  Coverage   74.62%   74.62%
=======================================
  Files          74       74
  Lines       10686    10686
=======================================
  Hits         7974     7974
  Misses       2712     2712

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Capability to skip over missing libraries, and continue obfuscating where it can.

Basically, if a library or two is missing and the obfuscator comes across a statement it can't load, it should be able to continue obfuscating what it is capable of obfuscating and skip the part where it can't. This would be extremely helpful.

It actually is. The only exception is nameobfuscation. So if NameObfuscation is disabled it should work

I added the wontadd Label, but if it doesn't work even if nameobfuscation is disabled, please tell me and then I'll fix it


Unable to save SMTP Settings

Tag : Master
After filling 'System Console -> Environment -> SMTP'  and while testing, it do not save the information. It always use some default value for testing SMTP.
Connection unsuccessful: Connection unsuccessful: failed to set the to address: 550 Verification failed for<EMAIL_ADDRESS>The mail server does not recognize<EMAIL_ADDRESS>as a valid sender. Sender verify failed

The error you are seeing comes from the mail service you are trying to use, and is not an issue of Mattermost nor this Docker configuration. https://en.wikipedia.org/wiki/List_of_SMTP_server_return_codes It also tells you what the problem at hands is:

550 Verification failed for<EMAIL_ADDRESS>The mail server does not recognize<EMAIL_ADDRESS>as a valid sender.

You should use valid credentials, and configure an appropriate From: address for those. It appears you do not, and shouldn't, have permission to use example.com as a sender address, why your MX is rejecting the test case, and thus the credentials cannot be verified.
See if you can configure a sender address that meets the credentials for your account, and try again.

The error you are seeing comes from the mail service you are trying to use, and is not an issue of Mattermost nor this Docker configuration. https://en.wikipedia.org/wiki/List_of_SMTP_server_return_codes It also tells you what the problem at hands is:

550 Verification failed for<EMAIL_ADDRESS>The mail server does not recognize<EMAIL_ADDRESS>as a valid sender.

You should use valid credentials, and configure an appropriate From: address for those. It appears you do not, and shouldn't, have permission to use example.com as a sender address, why your MX is rejecting the test case, and thus the credentials cannot be verified.
See if you can configure a sender address that meets the credentials for your account, and try again.

Actually I am not using example.com. I have a working mail account and I am providing those details there. Like<EMAIL_ADDRESS>But after clicking save and test, the error message i have pasted appears. its like I have entered details of<EMAIL_ADDRESS>and error showing for<EMAIL_ADDRESS>. Hope you understand.

H=(xx.xxxx.com) [x.x.x.x]:51060 sender verify fail for<EMAIL_ADDRESS>The mail server does not recognize<EMAIL_ADDRESS>as a valid sender.
This is the error from SMTP server. mattermost is testing connection as<EMAIL_ADDRESS>no matter what we provide in SMTP Server Username.

Issue was fixed after changing Notification From Address and Notification Reply-To Address in 'System Console -> Site Configuration -> Notifications' . They were set to<EMAIL_ADDRESS>Modified them to my SMTP username and issue got solved. Thanks anyway.


Fixed MS SQL GUID scrambling upon decode

When grabbing the GUID from the MS SQL database, the first half of the GUID becomes scrambled, due to the parser mixing up the Little Endian and Big Endian data types, and this is due to the way Microsoft handles GUIDs.
The proposed pull request correctly swaps the byte order by implementing the fix proposed in https://github.com/denisenkom/go-mssqldb/issues/56
Microsoft SQL Server 2014 (SP3) (KB4022619) - 12.0.6024.0 (X64)
Sep 7 2018 01:37:51
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.3 (Build 9600: ) (Hypervisor)
Client side operating system is Windows 10 (VM Parallels)

@petertranfl Looks great. Would you have the time to add a test that round trips a GUID both as a guid and a string?
select G = @GUID, GS = convert(varchar(100), @GUID);

Ensure G matches @GUID upon return and GS matches input once the input is converted to a string.

I took a look at the mssql.UniquIdentifier type, looks like that's the proper solution. Below are the experiments I did:
db.Exec("create table table1 (id uniqueidentifier)")
db.Exec("insert into table1 values (N'6F9619FF-8B86-D011-B42D-00C04FC964FF')")
// SQL Server Management Studio shows the value as 6F9619FF-8B86-D011-B42D-00C04FC964FF
query2 := "select id, convert(varchar(100), id) from table1"
var idAsUniqueIdentifier mssql.UniqueIdentifier
var idAsBytes []byte
var idAsString string
err = db.QueryRow(query2).Scan(&idAsUniqueIdentifier, &idAsString)
if err != nil {
	log.Fatal(err)
}
log.Printf("idAsUniqueIdentifier: %v;\nidAsString: %s;", idAsUniqueIdentifier, idAsString)
// idAsUniqueIdentifier: 6F9619FF-8B86-D011-B42D-00C04FC964FF;
// idAsString: 6F9619FF-8B86-D011-B42D-00C04FC964FF;
err = db.QueryRow(query2).Scan(&idAsBytes, &idAsString)
if err != nil {
	log.Fatal(err)
}
log.Printf("idAsBytes: %v;\nidAsString: %s;", idAsBytes, idAsString)
// idAsBytes: [255 25 150 111 134 139 17 208 180 45 0 192 79 201 100 255];
// idAsString: 6F9619FF-8B86-D011-B42D-00C04FC964FF;

So if the data is scanned into a mssql.UniqueIdentifier, then the parsing is correct, if the data is scanned into []bytes, then the guid is scrambled.
Running the same test with the changes introduced in this PR, the result is as follow:
// idAsUniqueIdentifier: FF19966F-868B-11D0-B42D-00C04FC964FF;
// idAsString: 6F9619FF-8B86-D011-B42D-00C04FC964FF;
// idAsBytes: [111 150 25 255 139 134 208 17 180 45 0 192 79 201 100 255];

If the data is scanned into a mssql.UniqueIdentifier, the guid is scrambled. But when scanned into []bytes then the guid is fine.
I think instead of checking in PR in, we should properly document using the mssql.UniqueIdentifier type.

After testing it I believe you're right and there's no need for the pull request

I disagree with this decision. There are many other UUID APIs (I am using Google's) and they provide much better facilities than mssql.UniqueIdentifier. So they should also work, IMO.
Also, it is not a good idea to enforce use of a particular type from the driver. Doing so prevents the app from being independent of the mssql driver's internal details and prevents cross-DB interworking. For example, it is hard to write an app that works on both Postgres and SQL-Server (it would be quite easy otherwise).

I wrote a test using mssql.UniqueIdentifier, which inserts and selects data containing UUIDs. It now works on SQL-Server but not on Postgres.
Running the same test but using Google's uuid.UUID works on Postgres but not on SQL-Server.
So I recommend that this PR should be re-instated.

@rickb777 Is it possible to modify this PR that allows scanning into all uses?
Where the msmsql.UUID type also works?
// idAsUniqueIdentifier: FF19966F-868B-11D0-B42D-00C04FC964FF;
// idAsString: 6F9619FF-8B86-D011-B42D-00C04FC964FF;
// idAsBytes: [111 150 25 255 139 134 208 17 180 45 0 192 79 201 100 255];


v1.4 – Improvement: Description boxes for options/actions upon hovering

Minimalistic design is nice – as long as the options at the user's disposal are clear on what they entail.
Consider adding description boxes for the actions at the top (and eventually elsewhere if applicable) to make things easier to understand, and therefore more usable.

Done!

it possible to remove the tooltips when there's already text?

The tooltips are there because, if the window gets resized and the text doesn't fit, the toolbar is set to hide the text and show only the icons


how to cofig the comment

there are so many kinds of comment,how to choose and config that?
which one is enabled?

I chose the utterances（https://utteranc.es/）
it‘s too simple for me

I didn't test them all,
But I believe all of them are available.
I prefer utterances too, but Valine, Livere also could be a good choice


feat(cli): xcm transfer

Summary by OpenAI
New Feature

Added a new option -x, --xtransfer [file-path] to the init command in the CLI program for generating a cross-chain transfer template.
Introduced a new side effect action "XcmTransfer" with configuration values retrieved from environment variables or default fallbacks.
Enhanced the Gateway class with a new method createXTransferSfx for creating a cross-chain transfer side effect.
Added a new utility function encodeXTransferArgs for encoding arguments for cross-chain transfers.
Integrated functions for generating an XCM reserve asset transfer message in a Polkadot application.

🚀 Across chains we now can glide,
With XCM transfers by our side.
Code that dances, code that sings,
In this release, cross-chain brings! 🎉

Change in SDK require it version to updated so package can be published on NPM

Change in SDK require it version to updated so package can be published on NPM

Is this the version that needs to be updated?
program
  .name("t3rn CLI")
  .description("CLI for interacting with the t3rn blockchain")
  .version("0.1.1")

@3h4x Updated the CLI to generate the parameters for an XCM transfer using the pnpm cli xcmTransfer command. Let me if I need to add anything else on that end before updating the command to submit an XCM transaction.


Issue deleting old NLog files

With the pertinent part our nlog.config looking like this...
  <targets async="true" overflowAction="Grow" timeToSleepBetweenBatches="1000">
    <target name="fileLogs"
            xsi:type="File"
            fileName="logs/${shortdate}.log"
            keepFileOpen="true"
            openFileCacheTimeout="30"
            layout="${date:universalTime=true:Format=yyyy-MM-ddTHH\:mm\:ss.ffffZ}|Environment: ${aspnet-environment}|${uppercase:${level}}|Logger name: ${logger}|URL: ${aspnet-request-url}|Action: ${aspnet-mvc-action}|All Event Properties: ${all-event-properties}|Message: ${message}|Exception: ${exception:format=tostring}|User: ${jwt-name}|Email: ${jwt-email}|SID: ${jwt-sid}|JWT: ${jwt-payload}"
            maxArchiveFiles="45"
            archiveNumbering="Rolling"
    />

...and a few other targets irrelevant to this discussion...
We're noticing that our old log files aren't being removed. We currently have 183 in our log folder. Obviously we were hoping for no more than forty five. What are we missing here, or is this a bug?
Thanks in advance for anyone's time spent on this!

This issue is a duplicate of this. #3807 (That is a duplicate of many others).
The issue is this (Using of dynamic ${shortdate}):

fileName="logs/${shortdate}.log"

Dynamic archive logic doesn't work together with static archive logic:

archiveNumbering="Rolling"

See also https://github.com/NLog/NLog/issues/3807#issuecomment-587661413 and https://github.com/NLog/NLog/issues/4105#issuecomment-685952654

I suggest that you change your configuration to this (Removing archiveNumbering="Rolling"):
  <targets async="true">
    <target name="fileLogs"
            xsi:type="File"
            fileName="logs/app-${shortdate}.log"
            keepFileOpen="true"
            openFileCacheTimeout="30"
            layout="${date:universalTime=true:Format=yyyy-MM-ddTHH\:mm\:ss.ffffZ}|Environment: ${aspnet-environment}|${uppercase:${level}}|Logger name: ${logger}|URL: ${aspnet-request-url}|Action: ${aspnet-mvc-action}|All Event Properties: ${all-event-properties}|Message: ${message}|Exception: ${exception:format=tostring}|User: ${jwt-name}|Email: ${jwt-email}|SID: ${jwt-sid}|JWT: ${jwt-payload}"
            maxArchiveFiles="45"
    />

Also notice that NLog doesn' support overflowAction="Grow" and timeToSleepBetweenBatches="1000" for the <targets>-element. Instead you can consider changing from <targets aync="true"> to this:
  <targets>
    <default-wrapper xsi:type="AsyncWrapper" overflowAction="Grow" timeToSleepBetweenBatches="1000" />
    <target name="fileLogs"
            xsi:type="File"
            fileName="logs/app-${shortdate}.log"
            keepFileOpen="true"
            openFileCacheTimeout="30"
            layout="${date:universalTime=true:Format=yyyy-MM-ddTHH\:mm\:ss.ffffZ}|Environment: ${aspnet-environment}|${uppercase:${level}}|Logger name: ${logger}|URL: ${aspnet-request-url}|Action: ${aspnet-mvc-action}|All Event Properties: ${all-event-properties}|Message: ${message}|Exception: ${exception:format=tostring}|User: ${jwt-name}|Email: ${jwt-email}|SID: ${jwt-sid}|JWT: ${jwt-payload}"
            maxArchiveFiles="45"
    />

Tremendous feedback! Thank you very much!


Create Dinic (Max flow)

max flow with dinic algorithm

For short term contributors: we understand that getting your commits well
defined like we require is a hard task and takes some learning. If you
look to help without wanting to contribute long term there's no need
for you to learn this. Just drop us a message and we'll take care of brushing
up your stuff for merge!
Fixes #{ISSUE_NUMBER}
By submitting this pull request I confirm I've read and complied with the
below declarations.

[ ] I have read the Contribution guidelines and I am confident that my PR reflects them.
[ ] I have followed the commit guidelines for this project.
[ ] My code follows the standard code structure.
[ ] This pull request has a descriptive title. For example, {Tag}: Add {Algorithm/DS name} [{Language}], not Update README.md or Added new code.
[ ] This pull request will be closed if I fail to update it even once in a continuous time span of 7 days.
[ ] This pull request shall only be reviewed and merged once all the checks passes. No maintainer or supporter shall be obliged to review it before this condition is met.
[ ] I have mentioned the issue number correctly (with hyperlink) in this pull request description.

After you submit your pull request, DO NOT click the 'Update Branch' button.

Hey @kinhosz,
Something went wrong with the build.
TravisCI finished with status errored, which means the build failed because of something unrelated to the tests, such as a problem with a dependency or the build process itself.
View build log
TravisBuddy Request Identifier: aa3c8080-e781-11e9-8e12-4bc655cb216a


📝 blocks video 3 - import container

Hello,
in the following URL :
https://reflexjs.org/library/blocks/videos-03
the "Container" component is not imported. In source of the block.
(when you copy-paste the<EMAIL_ADDRESS>file)

Fixed. Thank you 👍


obfs4proxy

Thank you very much for the fantastic pivpn project. I just want to ask you if its possible to add the obfs4proxy to the script. Because Currently some Deep Packet Inspector can detect openvpn traffic and block the traffic. It will be very useful to add this feature to the script.Thanks a lot.

Possibly, but depends on the effort required to automate it and the actual ease of use as well as effectiveness of the obfuscation. Can you explain how would that work in practice?

Hi

Possibly, but depends on the effort required to automate it and the actual ease of use as well as effectiveness of the obfuscation. Can you explain how would that work in practice?

Hi Orazioedoardo, simply ISP's use some packet analyzer like Wireshark to detect the type of the protocol which is being transferred, if the the type of the protocol is openvpn, then the packet will be dropped. You can find the useful information here in this link:

Also there is a project by HRomie on github to obfuscate openvpn traffic via obfs4 which is great check the link below:

I think it would be great if this feature is integrated with the pivpn project. Thanks

have my reservations if this is something pivpn should provide ... I completely understand the value of it, but still i am not really sure.

some though on this, and don't think it should be implemented on pivpn, it could be another project that could work with pivpn and we could work into supporting it, as it works now for example with pi-hole, however not directly on PiVPN.


use Sway for validation

@whitlockjc can you review?

thx!

@adriancole beat me to it, thanks @mohsen1!

@jamescway for some odd reason it doesn't print anything  See here: https://travis-ci.org/openzipkin/zipkin-api/builds/117364719#L265
No code after api.validate() is being executed. Can you guess why?

Whoah.. Cameo appearance by the Whitlock! Thanks for stopping by, Jeremy!

I'll help you out anytime @adriancole.


Create genfors admin panel list of eligible voters that has not cast a vote yet

This would only be active if the voting is non-anonymous.  Otherwise there would be a link with the anonvoter objects, and the last incoming vote result would be linked to the user, thus revealing their vote.

Fixed in #1510


COVID Analysis: Pre and Post Activity Level

Look at how participants' activity levels changed pre and post COVID (first cohort in Spring vs second cohort in the Summer).
There are a few ideas to examine:

Aggregate: how did activity change overall
Individual: looking at participants in both cohorts, how did the activity level chance

Can use UT1000 and UT2000 data as baseline


Corner radius

It would be cool if you add the ability to set the corner radius

Hello, @DmitryDAN1 . Yeah, it's good idea, thank you. Will add it)

Hello, @DmitryDAN1 . I made new release v2.0.1. You can try it. Also there is feature with rounded corners)

Hello, @DmitryDAN1 . I made new release v2.0.1. You can try it. Also there is feature with rounded corners)

Thanks, looks cool!
But I found a small bug when numbers are displayed rounding is missing
https://prnt.sc/127lefc

Hello, @DmitryDAN1 . I made new release v2.0.1. You can try it. Also there is feature with rounded corners)

Thanks, looks cool!
But I found a small bug when numbers are displayed rounding is missing
screen

Thank you for report will fix it soon)

Hello, @DmitryDAN1 , I made update with fixes. You can check them. It is version v2.0.2


Update travisCI

@AidasK
Please check this. I have fixed TravisCI. There was a config issue. It is passing now.
https://travis-ci.org/flowjs/flow.js/jobs/634127055

You are amazing @aayusharyan !


az cdn endpoint purge rejects /$web/* content path

Related command
az cdn endpoint purge
Describe the bug
I have a cdn profile that has an origin domain linked with an azure storage account. I'm publishing the files of a static website to blob storage, and azure creates a container called $web. In my GH action as instructed here, I'm purging the cdn as one of the final steps.
Trying right from Powershell, the following command fails:
az cdn endpoint purge --content-paths "/$web/*" --profile-name $CDN_PROFILE -g $RESOURCE_GROUP -n $CDN_ENDPOINT`
with:
(BadRequest) Invalid ContentPath "/$web/*". ContentPath for purge action must be a relative path: either for a single resource "/path/pic.jpg" or a wild card "/path/*".
Code: BadRequest
Message: Invalid ContentPath "/$web/*". ContentPath for purge action must be a relative path: either for a single resource "/path/pic.jpg" or a wild card "/path/*".

To Reproduce
Run the following from PS:
az cdn endpoint purge --content-paths "/`$web/*" --profile-name $CDN_PROFILE -g $RESOURCE_GROUP -n $CDN_ENDPOINT
Expected behavior
The CLI accepts the content-path /$web/*.
Environment summary
az --version = 2.46.0
OS: Windows 10 pro
Shell type: Powershell

Thank you for opening this issue, we will look into it.

@daningalla Thanks for the feedback! We will review and get back to you on this.

Hi @daningalla , that seems to be a limitation in service side which use an incorrect regular expression to validate URL paths. I will engage with service team to see whether we could come up with a fix for that.

I have a simillar problem when my path conains '@'  in it (CDN on front of npm registry). :|

The latest update from the engineering team is that the path regex defined on the service side is specific to the Akamai provider. Consequently, we can eliminate the check, as it has already been retired. The engineering team is actively working to remove this restriction.

The issue has been fixed now.


Is the Coveralls logo not supported?

Is the Coveralls logo not supported?

Shields uses the simple-icons package to provide logos, and simple-icons added support for Coveralls in v1.19.1 (https://github.com/simple-icons/simple-icons/pull/1873).
Production Shields.io is currently using simple-icons v1.19.0 which is why the Coveralls logo is unavailable ATM. We have updated Shields to v1.19.1 of simple-icons but that's not been deployed to prod yet.
If you'd like, you can track this comment which reflects the current deployment state of the commit that bumps to v1.19.1. The deployment bot will update that comment once that version of simple-icons has been deployed

I see, thank you! This is an off topic question, but when will GitHub Actions support be available? I really love your PR.

This is an off topic question, but when will GitHub Actions support be available? I really love your PR

😄 thanks! I hope soon, though there's no timetable I'm afraid

Great!


[FLINK-22970][docs] The documentation for TO_TIMESTAMP UDF has an incorrect description

What is the purpose of the change
fix the incorrect description for to_timestamp udf.
Brief change log

update document

Verifying this change
This change is just doc update.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

Hi @leonardBang,

cc @wuchong Please help merge this one


[enhance] Using 64 bit for LayerKernel enum

Enhanced LayerKernel enum and mask to use 64-bit values (ull).
This was done to include more kernels with the same enum type.

This entire management of kernels from LayerContext might be changed in upcoming design changes related to GPU pipeline.

Self evaluation:

Build test:	 [X]Passed [ ]Failed [ ]Skipped
Run test:	 [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: Debadri Samaddar<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #2718. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://ci.nnstreamer.ai/.


Getting current vote status of submission

I'm making a little script that interacts with the api and I need to be able to see what the currently logged-in user has currently voted on a submission. (To avoid repeat requests) Is there any way to do this?

Did the 'likes' attribute get removed? I didn't find it anywhere in the source code.


Version of WS relies on a broken version of nan for Node >= v0.11

I receive errors installing hubot because of a slack-client dependency on an old version of WS. I'm using Node v0.12.1
The errors are as reported here, where the WS dependency was a problem:
https://github.com/socketio/engine.io/issues/308

#47 Fixes this, just needs to be merged. @grantmd @paulhammond


log: Fix extern log domain variable names so they don't clash

when we built all modules as built-in.
Signed-off-by: Gustavo Lima Chaves<EMAIL_ADDRESS>

+2

ACK.
minor: what do you think about add this kind of prefix in all the other places where we use log domain variables?

@ricardotk The common case is to have these variables declared as static, so we're safe.

Ok, good

Merged.


Question on model mask output

Hello, I'm trying to train DeVIS with custom data. (Which contains only 1 class, i.e. a MOT like dataset)
I observe that the output mask for each instance track contains the segmentation mask for all instances inside the frame instead of just one. (I was expecting each query would give a single instance-level segmentation instead of per-class or per-frame segmentation)
Is this an expected behavior??
If you have experienced this before, any kind of advice would be appreciated!
Also, will the model checkpoints become available at any point?

We fixed the link for the model checkpoints. They should be downloadable now.
Regarding the instance masks for your single-class case, I assume this is a bug which occurs for this edge case. Probably in the post-processor. However, I was not able to find it immediately since @acaelles97 is more familiar with the codebase.


Invoke-Mimikatz processor detection Bug

The evaluation of processor architecture suffers from a flaw. Get-WmiObject -Class Win32_Processor returns an array on multi cpu systems.
the subsequent attempt to enumerate the AddressWidth property for division suffers

Sorry, wrong place.


Revert "Refactor setPXEFilename to be less complicated"

Reverts tinkerbell/boots#149
Testing this at Equinix Metal appears to not be compatible with some ARM servers. My desire is to revert this and then do some more testings to figure out why.

This is the same thing as what is causing #225 . The fw/nics are ignoring boot file being offered if PXEClient is set. I was able to verify this while debugging #225. Both that PR and this have similar code in common https://github.com/tinkerbell/boots/pull/149/files#diff-757d4edc379c9bd53273363379744ab01fd32b8d4977cb13929c42b76f526a93R97-R103 and https://github.com/tinkerbell/boots/pull/216/files#diff-757d4edc379c9bd53273363379744ab01fd32b8d4977cb13929c42b76f526a93R140-R145


NTLM auth

Add NTLM auth to vanilla.

It's shaping up. Thanks for bearing with on the branch malarkey.

The main issue appears to be around the client / session layer. I think we both agree that it should be extracted, but I think that that extraction is out of scope of this PR. My goal is just to get NTLM working so that I can run the code against the Vanilla MSDCRM11 - so that's what I'm focused on.
Can this be merged as-is? The future extraction of the client could be planned as a ticket?

Once the crypticity level decreases as per, then I'm happy to merge.


{AKS} Refactor 2nd part of the update sub-command in acs module

Description

change the following two class names

AKSCreateModels -> AKSModels
AKSCreateContext -> AKSContext

change the optional parameter decorator_mode to a mandatory parameter in class AKSContext.

Unit Test Results:

"covered_lines": 1248,
"num_statements": 1268,
"percent_covered": 98.42271293375394,
"missing_lines": 20,
"excluded_lines": 0

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change.
[Component Name 2] az command b: Add some customer-facing feature.

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

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

AKS


2^4 God's number bounds improvements

God's Number

Improved 2^4 God's number bounds
Added a table summarizing the known bounds
Fixed incorrect 3^4 lower bound

Software

Added Hypersolve under tools

Excellent! Thank you for the contribution