Tools will only break one block regardless of enchant level and not sneaking

Minecraft version
None
LibX version
5.0.5
Simply Tools version
2.0.0
MoreVanillaLib version
5.0.1
Forge version
47.1.0
The latest.log file
N/A (Logs don't show an error or warning when I mine)
Issue description
The animation for the 3x3 area looks correct but when it ends only the middle block breaks. I've tried with every Excavator and Hammer at all enchanted levels. I've checked my configuration and I am not sneaking.
I tried updating to the latest SimplyTools hoping for a fix but that version requires me to use a higher version of Forge which breaks other mods. I tried just using SimplyTools latest version in a new world by itself and I am seeing the same issue. The Forge version I used in that case was 47.1.44, the other mods (LibX, MoreVanillaLib) stayed the same.
Steps to reproduce

Install the above-mentioned versions of Forge and the mods
Load into a creative world
Utilize either hammer or excavator at the appropriate level (Ii.e. Obsidian)

Other information
No response

Already fixed here: https://github.com/MelanX/SimplyTools/commit/15225940638c03503fb1476294d5eeae53b68ba5

It does not seem fixed. I upgraded to forge 47.1.42 and version 2.0.1 of the mod and I still can only mine one block at a time no matter what

Did you try basic combinations like iron hammer on stone, or anything special like obsidian hammer on stone?

If you find out which mod is messing up, you could create a new issue for that and I try to find the problem.

Found it! It's a tree-chopping mod, it messes with how blocks break, I didn't think it would affect things like stone but apparently, it does. Here's the link to the file of the mod: https://www.curseforge.com/minecraft/mc-mods/treechop/files/4685647
For now, I'm gonna try to find another tree-chopping mod that works, this one is kinda basic anyways. Thank you for the quick replies and for your work, I love this mod!


[SPARK-38003][SQL] LookupFunctions rule should only look up functions from the scalar function registry

What changes were proposed in this pull request?
This PR updates the Analyzer rule LookupFunctions to only use scalar function registry instead of using both scalar function and table function registries, since currently LookupFunctions only handles scalar functions.
Why are the changes needed?

To make the error message consistent when a scalar function does not exist.
Does this PR introduce any user-facing change?
No
How was this patch tested?
Existing unit tests.

thanks, merging to master!


Broadcaster channel name

What's the problem? (required)
I am unable to configure a human-readable name as the Broadcaster in media.livepeer.org, which means that my viewers are unable to build awareness of my name and brand, as a broadcaster.
What's the current behavior? (required)
When a viewer loads up a stream, e.g. Livepeer TV, they are told that the Broadcaster is 0x0dDB225031cCB58fF42866f82D907F7766899014. My conjecture is that this information has limited meaning or relevance to a viewer.
See below.

Do you have any personal experiences dealing with this problem? (optional)
I have the problem that I don't feel like my viewers "get it" as well as they might.
Describe a possible solution you've considered (optional)
Create a mechanism to store a "channel name" associated with the broadcaster address, with this information signed and stored in the Blockchain.
It's unlikely that it will change often, although the solution ought to allow unlimited changes by the key holder(s).
Then, when the channel is loaded by the viewer, it should show the "human-readable" name instead of the hex code. Like so:

Additional context (optional)
Keep up the good work, it's very nice.

One way to accomplish is via ENS name resolution - if the broadcaster 0x0dDB225031cCB58fF42866f82D907F7766899014 owns the ENS name livepeertv.eth, livepeer.tv could redirect to https://media.livepeer.org/channels/livepeertv.eth and the player could resolve livepeertv.eth to 0x0dDB225031cCB58fF42866f82D907F7766899014 under the hood


The inscription hovered

Why is it that when scanning and going to the moon, the inscription hangs from the bottom and does not disappear

It only freezes for the host, in my opinion everything is fine for others


[textanalytics] Set up nightly build run

The live test pipeline exists, but currently doesn't run nightly.

Nightly build set up to run at 3:30am each night


Fix inspect --format '{{.Mounts}}.

Go templating is incapable of dealing with pointers, so when we moved to Docker compatible mounts JSON, we broke it. The solution is to not use pointers in this part of inspect.

May we should add a test?

TO DO (monday): Add compatability wrappers - map Dst to Destination and Src to Source in Go templates

LGTM + Tests

Added support for .Src and .Dst aliases. Added test.

This is ready

/lgtm


[Settings] UI fixes

Summary of the Pull Request

Windows color settings hyperlink buttons are now disabled if the module is disabled (#9877).
Spacing fixes on the File Explorer add-ons page.
Spacing fixes on Plug-in manager item template. (#9918)
Increased the Plug-in manager to OS default: 14px for better readability.
Adding periods after warnings (#9881).

Quality Checklist

[X] Linked issue: #9918, #9881, #9877
[ ] Communication: I've discussed this with core contributors in the issue.
[ ] Tests: Added/updated and all pass
[ ] Installer: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Docs: Added/ updated
[ ] Binaries: Any new files are added to WXS / YML

[ ] No new binaries
[ ] YML for signing for new binaries
[ ] WXS for installer for new binaries

Contributor License Agreement (CLA)
A CLA must be signed. If not, go over here and sign the CLA.

@niels9001
You have missed the color settings link on the PowerLauncher page.

Found a small bug. Can you fix it in this PR?

(Plugin Management description is not "disabled".)

Found a small bug. Can you fix it in this PR?

Thanks, fixed!

(Plugin Management description is not "disabled".)

We don't have a brush for that defined, you can see this behavior on other pages using secondary text as well. To be honest, it's a bit of a non-issue IMO.

(Plugin Management description is not "disabled".)

We don't have a brush for that defined, you can see this behavior on other pages using secondary text as well. To be honest, it's a bit of a non-issue IMO.

Where do we have this on other pages? If you mean e. g. the radio description on the color picker page, I agree with you.
Maybe we misunderstand each other. I don't mean the plugin description. I mean the text "You can include (...)". And on the Color Picker page we disable the list view description.

Maybe we misunderstand each other. I don't mean the plugin description. I mean the text "You can include (...)". And on the Color Picker page we disable the list view description.

@htcfreek Oh, thought you were talking about the plug-in description. Fixed the plugin management description test with https://github.com/microsoft/PowerToys/pull/9949/commits/2cc8bd6437492d1fd10034f44220639ff626fb29

Maybe we misunderstand each other. I don't mean the plugin description. I mean the text "You can include (...)". And on the Color Picker page we disable the list view description.

@htcfreek Oh, thought you were talking about the plug-in description. Fixed the plugin management description test with https://github.com/microsoft/PowerToys/pull/9949/commits/2cc8bd6437492d1fd10034f44220639ff626fb29

Because the change looks good to me, I don't test it in a local build.

@enricogior
Will this PR merged for and psrt of 0.33.0?

There is a link in KBM that is not disabled.

There is a link in KBM that is not disabled.

Saw this yesterday too. But because this is a general information link, I think it should be accessible before enabling kbm. Maybe we should move it to the side panel (it will look better an small window mode).

There is a link in KBM that is not disabled.

Saw this yesterday too. But because this is a general information link, I think it should be accessible before enabling kbm. Maybe we should move it to the side panel (it will look better an small window mode).

@niels9001
What about a new side panel section called "Important notes" as second section from top.

I think it's fine as if.. It's important enough to be under the toggleswitch, but it doesn't need to be disabled because it's good to look at even when the module is disabled.

Then we should be ready to merge. Correct?

I would like to merge this today, if there is anything that we want to address later, let's open issues to track them.

@enricogior @htcfreek Yep, this is ready to go :)


How to use UIKit?

error: unexpected token
   --> src/lib.rs:227:17
    |
227 |

    |                 ^^
    |
    = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

    fn apps(&self) -> Html {
        html! {

@fanux thanks for this question. The parser should give a better error here. The issue is that you are using uk-accordian like a property but there is no value.
Did you intend to do:
        html! {

        }

Or did you intend to do:
        html! {

        }

It works thanks


infinite paging

hi there,
first of all great work, finally php is starting to make coding almost as fun as those djangonauts have in their pockets! ;)
I am considering forking and creating a new adapter based on the doctrine adapter that allows for endless pagination al la: http://pypi.python.org/pypi/django-endless-pagination
are there any plans for this? or shall I go ahead and make the fork/branch?
regards
RCdH

Sure, ill let you know when something develops :) next few weeks as Im pretty overloaded atm :) but good work mate :)

Thx. So keep me posted and happy coding :>

Started a basic infinite paging Pager "InfinitePager" implementation as well as infinipage twig and php helpers :)


perf: #31 use GeneratedRegex

perf: #31 use GeneratedRegex
Description :memo:

Purpose: Optimizes use of regex objects to parse JS stacktraces
Approach: Use Generated Regex from .NET 7

Type of change

[x] Bug fix (non-breaking change which fixes an issue)

Updates

Used "convert to GeneratedRegexAttribute" in Rider, which generated the necessary code.

Test plan :test_tube:

Covered in unit test in ErrorDetailsTest.cs.

Author to check :eyeglasses:

[ ] Project and all contained modules builds successfully
[ ] Self-/dev-tested
[ ] Unit/UI/Automation/Integration tests provided where applicable
[ ] Code is written to standards
[ ] Appropriate documentation written (code comments, internal docs)

Reviewer to check :heavy_check_mark:

[ ] Project and all contained modules builds successfully
[ ] Change has been dev-/reviewer-tested, where possible
[ ] Unit/UI/Automation/Integration tests provided where applicable
[ ] Code is written to standards
[ ] Appropriate documentation written (code comments, internal docs)

I will fix CI in a different PR and cleanup this one afterwards

Waiting for #51 to be merged


updating dockerfile image reference

Purpose

Updating the attested-tls sample to use the newer dockerfile image (not cloning the repo/referencing specific commit from openenclave)
Does this introduce a breaking change?

[ ] Yes
[ x ] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[ x ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test

Get the code

git clone https://github.com/Azure-Samples/confidential-computing
cd Azure-Samples/confidential-computing
git checkout angoring/attested-tls
npm install

Test the code

docker build .

Was this tested?


Make dotnet-ef a global tool

Part of aspnet/EntityFrameworkCore#10554

Btw, to get this into the CLI, make a PR to update this file: https://github.com/dotnet/cli/blob/master/build/BundledDotnetTools.props


Different height for input and select on text-xs

When using text-xs and leading-none on text input and select, their heights are different.
Please check this fiddle - https://jsfiddle.net/us5y8nhv/1

This is just a CSS limitation, browsers ignore a line-height of less than about ~1.15 on inputs and revert to some weird default number, so it's not actually possible to set line-height: 1 on an input element and have the browser respect it. You'll have to use a different line-height and adjust the padding accordingly if you want the overall control size to be a specific height.


Add Python 3.10 support

Summary
Details and comments
Fixes #

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.3%) to 64.313%

Totals

Change from base Build<PHONE_NUMBER>:
0.3%

Covered Lines:
3406

Relevant Lines:
5296

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
3357

Relevant Lines:
5245

💛  - Coveralls

Doesn't tox.init need to be updated as well? Also can you add a release note.


FileNotFoundError: "... /style_tomato_sample.xml"

I was following your "AgML-Synthetic.ipynb" example.
I have run the code below:
generator.generate(name = 'tomato_sample', num_images = 3),
and an error follows:
FileNotFoundError                         Traceback (most recent call last)
/tmp/ipykernel_2880/388478152.py in <module>
      1 # Generate the data.
----> 2 generator.generate(name = 'tomato_sample', num_images = 3)

~/anaconda3/envs/agml/lib/python3.7/site-packages/agml/synthetic/generator.py in generate(self, name, num_images, output_dir, convert_data)
    355         xml_options = self._convert_options_to_xml()
    356         xml_file_base = f"style_{name}.xml"
--> 357         xml_options.write(os.path.join(XML_PATH, xml_file_base))
    358         xml_options.write(os.path.join(metadata_dir, xml_file_base))
    359

~/anaconda3/envs/agml/lib/python3.7/xml/etree/ElementTree.py in write(self, file_or_filename, encoding, xml_declaration, default_namespace, method, short_empty_elements)
    758                 encoding = "us-ascii"
    759         enc_lower = encoding.lower()
--> 760         with _get_writer(file_or_filename, enc_lower) as write:
    761             if method == "xml" and (xml_declaration or
    762                     (xml_declaration is None and

~/anaconda3/envs/agml/lib/python3.7/contextlib.py in __enter__(self)
    110         del self.args, self.kwds, self.func
    111         try:
--> 112             return next(self.gen)
    113         except StopIteration:
    114             raise RuntimeError("generator didn't yield") from None

~/anaconda3/envs/agml/lib/python3.7/xml/etree/ElementTree.py in _get_writer(file_or_filename, encoding)
    795         else:
    796             file = open(file_or_filename, "w", encoding=encoding,
--> 797                         errors="xmlcharrefreplace")
    798         with file:
    799             yield file.write

FileNotFoundError: [Errno 2] No such file or directory: '/home/username/anaconda3/envs/agml/lib/python3.7/site-packages/agml/_helios/Helios/projects/SyntheticImageAnnotation/xml/style_tomato_sample.xml'

Can you show me the output of the following command?

tree /home/username/anaconda3/envs/agml/lib/python3.7/site-packages/agml/_helios/Helios/projects/SyntheticImageAnnotation (assuming username is your home directory, otherwise replace with the corresponding path.

I can't reproduce your error on my end, so there may be a path issue, or Helios may not have been fully installed. Try deleting the Helios directly and re-installing/compiling it.

Can you show me the output of the following command?

tree /home/username/anaconda3/envs/agml/lib/python3.7/site-packages/agml/_helios/Helios/projects/SyntheticImageAnnotation (assuming username is your home directory, otherwise replace with the corresponding path).

I can only find .gitignore under /home/username/anaconda3/envs/agml/lib/python3.7/site-packages/agml/_helios/Helios/projects. No SyntheticImageAnnotation.

Try deleting the Helios directory directly and re-installing/compiling it.

Okay. I think .../agml/_helios/Helios seems to be same as shown here: https://github.com/PlantSimulationLab/Helios, where the projects folder only contains .gitignore.

Try deleting the Helios directory directly and re-installing/compiling it.
Could you give me a more clarification on what to compile from this directory?

Delete the Helios directly in agml/_helios, then run agml.synthetic.reinstall_helios().

That worked! Actually, agml.synthetic.reinstall_helios() shows an error when there is no agml/_helios. So, I removed and re-installed the whole agml using pip to run agml.synthetic.reinstall_helios() afterwards. Then,  generator.generate(name = 'tomato_sample', num_images = 3) went without issue. Thanks!


TabView Icon Sizes Are Too Small

When adding an icon to TabView it looks so small

@Egehanozsoy, can you attach a small repro?

A good workaround would be to not use the Icon property and use a font icon in the Label instead. That approach is working for me, especially since the font icon can adapt to a theme change, whereas the image can't.

Well, I encountered the same issue. So I took a look at official sample and found out that it had TabStripHeight. Setting that in xaml for TabView makes the icons size property.


Nutrition Label Step 31 - Grammatical errors

CSS Learn Typography/Nutrition Label: Step 31
“Create an .small-text selector and set the font-size to” the “an” should actually be an “a”.
Windows 11/ Chrome browser Version 110.0.5481.78 (Official Build) (64-bit)

It helps if you use the New Issue template.
Link to challenge: https://www.freecodecamp.org/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-31
Suggested correction:

Create a .small-text selector and set the font-size to 0.85rem, which would calculate to be roughly 13.6px (remember that you set your html to have a font-size of 16px).

iam new to opensource can i work on this issue?

@Zebulon-Hopper Would you like to solve this issue? Or shall I go for it? Feel free to try 😀

iam new to opensource i love to work on this issue.

Yes you can
On Sat, 11 Feb 2023 at 19:55, Akash ks @.***> wrote:

iam new to opensource i love to work on this issue.
—
Reply to this email directly, view it on GitHub
https://github.com/freeCodeCamp/freeCodeCamp/issues/49335#issuecomment-1426821009,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHV67JULLC2RF4QSN6NGUDTWW677HANCNFSM6AAAAAAUYAZ72A
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

An issue with the https://github.com/freeCodeCamp/freeCodeCamp/labels/help wanted or https://github.com/freeCodeCamp/freeCodeCamp/labels/first timers only label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors.
If you would like to contribute, and have not read the contributors docs, please do so here: https://contribute.freecodecamp.org/#/
If you have any issues with contributing, be sure to join us on the contributors channel, or on the contributors sub-forum

To solve this issue, change this line from

Create an .small-text selector and set the font-size to 0.85rem, which would calculate to be roughly 13.6px (remember that you set your html to have a font-size of 16px).

to

Create a .small-text selector and set the font-size to 0.85rem, which would calculate to roughly 13.6px (remember that you set your html to have a font-size of 16px).

Here is the file
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f522dea4f776f64dc3e91.md

If you would like to fix this issue, please make sure you read our guidelines for contributing, we prioritize contributors following the instructions in our guides. Join us in our chat room or the forum if you need help contributing, our prolific contributors will guide you through this.


fix delete_method

char_id => chat_id typo fix
and for some reason, def_request returned a boolean anyways, so the strict string compare broke stuff
could possibly do res.as_bool, but I'm not familiar enough with Crystal yet to be confident that won't blow up.

In what case did def_request (request) return boolean? Because it shouldn't or at least then we have to change the comparation in a few more methods too.

Whenever a message was deleted successfully, I'd see the following:
E, [<<timestamp>>] ERROR -- : update was not handled because: Expected begin_object but was bool at 1:1
I did some inspects on the comparison and for whatever reason, it's returning a bool. I'm not sure if the JSON stuff in Crystal got updated, or what.

Strange, because editMessageText should return the same and that works without the error. The message gets deleted tho, only the returned answer can't be parsed.
I'll try to find out what is exactly going on before changing the code, I fixed the typo.

it should be fixed in https://github.com/hangyas/telegram_bot/commit/d26bd9ef75ea69c9f07412f2e19704484522fba0 if not, please open an issue

If there's a way for res to be false at all, then it'll end up returning true instead (since res.as_bool? would return true, since false is a bool, and then it'd return true immediately and drop whatever the result is)
However, I also don't know if it's even possible for it to just be false, so there is that as well. Should be fine, I guess

@chrjguill as_bool? returns the value or nil (which is also falsy) so it only returns true if res is really true. But yes, the API only returns true or error

Pretty sure that as_bool? returns the underlying value

I mean if it's a Bool, nil otherwise https://github.com/crystal-lang/crystal/blob/master/src/json/any.cr#L151

ah, yeah, I see now. I'd just woken up and hadn't had any coffee, so I got the as_bool stuff mixed up a bit.
Thanks!


Fix deserialize a message id without partition topic

Motivation
The MessageId.fromByteArrayWithTopic ignores deserialize a message id without partition topic, it is behavior incorrectly, we should be support deserialize message id with any type topic.
Modification

Remove check partition topic in fromByteArrayWithTopic

Documentation

[x] no-need-doc

It is fix.
Signed-off-by: Zixuan Liu<EMAIL_ADDRESS>

Duplicated with https://github.com/apache/pulsar/pull/12984, I will close this one @nodece and please help review https://github.com/apache/pulsar/pull/12984, thanks


Web support

Currently the main problem is that ffmpeg and this plugin require to write files to a temporary path.
The problem is that web does not support file writings or path_provider does not offer a web solution.
A possible solution might be to have a look at how flutter_sound has managed to conquer web.

Currently the main problem is that ffmpeg and this plugin require to write files to a temporary path. The problem is that web does not support file writings or path_provider does not offer a web solution.
A possible solution might be to have a look at how flutter_sound has managed to conquer web.

If FFMPEG is the only problem, Is it possible to use https://pub.dev/packages/ffmpeg_wasm which wraps https://github.com/ffmpegwasm/ffmpeg.wasm JavaScript library? Or will there be any other problem when trying to implement for web? I am planning to try to implement for web.

Great! I didn't know of this package! If you have the knowledge you are the best guy to do this! Thanks a lot!
Right now we write each captured frame to a temporary directory and then process those frames via ffmpeg.
As file writing usually is also a problem for web, we might should consider piping (not saving, but directly feeding to ffmpeg - a way more effective method, that has not been implemented yet)them directly to web, as mentioned here:  #3  (this guy might know more about it).
If file writing is not supported by ffmpeg_wasm, maybe another wasm package can help you out there.
I am looking forward to your contribution! I will try to be the best help to you with quickly merging pull requests :) or give you more info regarding the package.

I have used ffmpeg_wasm in another project for a web application. It works great and may be implemented in this plugin.
The following things would need to be done:

Write a universal_ffmpeg.dart file for this plugin, where both mobile & web can be handled.  With the basic execution command run(List<String> command) and file management (write file to web ffmpeg).

Reopen and Merge the #15 piping frames ffmpeg (but only exclusively for the web)

Configure web & ffmpeg_wasm instructions in index.dart

@TamilKannanCV Thinking about giving your piping contribution a new chance in life.  Check out above, you might be interested.

hello @polarby i am interested in web support for this package, any updates for it?

Currently not on my agenda any time soon. The documentation is however there and can be quite easily implemented. If this is an essential feature for you, you may consider adding it yourself:)

Currently not on my agenda any time soon. The documentation is however there and can be quite easily implemented. If this is an essential feature for you, you may consider adding it yourself:)

i will see if i can implement it, most probably it will not be the best, but if i got it working i will open the pr


Prevent routes of similar (but not exact) URLs from being executed as middleware

It's a little hard to explain this in text. I apologise if I am not clear. I am using express v4.14.
// main.js - Defines app
var app = require("express")();
app.use("/order/job", require("./job").router);
app.use("/order", require("./order").router);
app.use(function (req, res) {
    res.sendStatus(204); // All middleware requests will end here
});

// job.js - Defines the routes for job
var router = require("express").Router();
module.exports.router = router;
router.get("/:jobId", mw_job); // Full url is /order/job/:jobId

// order.js - Defines routes for order
var router = require("express").Router();
module.exports.router = router;
router.get("/:orderId", mw_order); // Full url is /order/:orderId

Send GET request to /order/job/testing123, where testing123 is :jobId
mw_job will be executed.
mw_order will be executed, even though the URL is not an exact match.

The full url for mw_order is /order/:orderId, hence :orderId in this case is job

The last middleware will send the response.

As I am using require("express").Router(), there is no matter of precedence in the routes.
Question: Is there any way where I can stop mw_order from executing? I will still prefer to use the router instance because I have this scenario:
// main.js
var app = require("express")();
app.use("/order", require("./order").router);
app.use(function (req, res) {
    res.sendStatus(204); // All middleware requests will end here
});

// order.js
var router = require("express").Router();
module.exports.router = router;
router.get("/:orderId", mw_order); // Full url is /order/:orderId
router.get("/:orderId", mw2_order); // Added - This is expected to be executed after mw_order

Hi @iamjoyce I'm trying to reproduce your issue, but even after setting up the code you provided (and I filled in what I made a guess for your mw_job and mw_order since you didn't provide an implementation), I'm unable to.
Here is a log of my console:
$ npm i<EMAIL_ADDRESS>+<EMAIL_ADDRESS>added 1 package and updated 11 packages in 1.7s

$ cat main.js
// main.js - Defines app
var app = require("express")();
app.use("/order/job", require("./job").router);
app.use("/order", require("./order").router);
app.use(function (req, res) {
    res.sendStatus(204); // All middleware requests will end here
});

app.listen(3000);

$ cat job.js

// job.js - Defines the routes for job
var router = require("express").Router();
module.exports.router = router;
router.get("/:jobId", mw_job); // Full url is /order/job/:jobId

function mw_job(req, res) {
  res.send('response sent from mw_job');
}

$ cat order.js

// order.js - Defines routes for order
var router = require("express").Router();
module.exports.router = router;
router.get("/:orderId", mw_order); // Full url is /order/:orderId

function mw_order(req, res) {
  res.send('response sent from mw_order');
}

$ node main.js &
[1] 79737

$ curl http://<IP_ADDRESS>:3000/order/job/testing123
response sent from mw_job

You can see that the request I made to your app for /order/job/testing123 only ran the mw_job code. Can you provide any additional details? Not sure how to proceed on my end.

Hi @dougwilson Thank you very much, I apologise for the lack of details.
Can you modify your files as such -
// main.js - Defines app
var app = require("express")();
app.use("/order/job", require("./job").router);
app.use("/order", require("./order").router);
app.use(function (req, res) {
    res.json(req.reply); // All middleware requests will end here
});

app.listen(3000);

// job.js - Defines the routes for job
var router = require("express").Router();
module.exports.router = router;
router.get("/:jobId", mw_job); // Full url is /order/job/:jobId

function mw_job(req, res) {
    // res.send('response sent from mw_job');
    req.reply = 'response sent from mw_job';
    next();
}

// order.js - Defines routes for order
var router = require("express").Router();
module.exports.router = router;
router.get("/:orderId", mw_order); // Full url is /order/:orderId

function mw_order(req, res) {
    // res.send('response sent from mw_order');
    req.reply = 'response sent from mw_order';
    next();
}

curl http://<IP_ADDRESS>:3000/order/job/testing123 will then give you response sent from mw_order instead of mw_job.

Hi @iamjoyce unfortunately I had to fill in some additional code, as the code you provided gave the error ReferenceError: next is not defined. After I got it into a runnable state I still got response sent from mw_job, not the mw_order like you did. Can you point out what is different here? How were you able to run the code without getting the ReferenceError: next is not defined that I got? It's possible that the modifications I did is what is making our outcomes different, which is why I'm wondering.
Can you paste out your console to me just the same way I'm doing? That may help a lot.
$ npm i<EMAIL_ADDRESS>+<EMAIL_ADDRESS>added 42 packages in 4.069s

$ cat main.js
// main.js - Defines app
var app = require("express")();
app.use("/order/job", require("./job").router);
app.use("/order", require("./order").router);
app.use(function (req, res) {
    res.json(req.reply); // All middleware requests will end here
});

app.listen(3000);

$ cat job.js
// job.js - Defines the routes for job
var router = require("express").Router();
module.exports.router = router;
router.get("/:jobId", mw_job); // Full url is /order/job/:jobId

function mw_job(req, res, next) {
    // res.send('response sent from mw_job');
    req.reply = 'response sent from mw_job';
    next();
}

$ cat order.js
// order.js - Defines routes for order
var router = require("express").Router();
module.exports.router = router;
router.get("/:orderId", mw_order); // Full url is /order/:orderId

function mw_order(req, res, next) {
    // res.send('response sent from mw_order');
    req.reply = 'response sent from mw_order';
    next();
}

$ node main.js &
[1] 7461

$ curl http://<IP_ADDRESS>:3000/order/job/testing123
"response sent from mw_job"

Hi @dougwilson, thank you very much for your patience. I guarantee this code is correct -
// main.js - Defines app
var app = require("express")();
app.use("/order/job", require("./job").router);
app.use("/order", require("./order").router);
app.use(function (req, res) {
    res.json(req.reply); // All middleware requests will end here
});

app.listen(3000);

// job.js - Defines the routes for job
var router = require("express").Router();
module.exports.router = router;
router.get("", mw_job); // Full url is /order/job

function mw_job(req, res, next) {
    console.log("mw_job invoked");
    req.reply = "response sent from mw_job";
    next();
}

var router = require("express").Router();
module.exports.router = router;
router.get("/:orderId", mw_order); // Full url is /order/:orderId

function mw_order(req, res, next) {
    console.log("mw_order invoked");
    req.reply = "response sent from mw_order";
    next();
}

$ curl http://<IP_ADDRESS>:3000/order/job/testing123
"response sent from mw_order"

Hi @iamjoyce hmm, weird indeed. This time when I coped your code above and ran the server and did the curl command, it gave no error, and an empty response, so I'm still not getting the response sent from mw_order like you. Can you point out where I went a-miss in the log of my console below? Perhaps you can provide the same kind of console capture of your session as well?
$ npm i<EMAIL_ADDRESS>+<EMAIL_ADDRESS>added 42 packages in 4.012s

$ cat main.js
// main.js - Defines app
var app = require("express")();
app.use("/order/job", require("./job").router);
app.use("/order", require("./order").router);
app.use(function (req, res) {
    res.json(req.reply); // All middleware requests will end here
});

app.listen(3000);

$ cat job.js
// job.js - Defines the routes for job
var router = require("express").Router();
module.exports.router = router;
router.get("", mw_job); // Full url is /order/job

function mw_job(req, res, next) {
    console.log("mw_job invoked");
    req.reply = "response sent from mw_job";
    next();
}

$ cat order.js
var router = require("express").Router();
module.exports.router = router;
router.get("/:orderId", mw_order); // Full url is /order/:orderId

function mw_order(req, res, next) {
    console.log("mw_order invoked");
    req.reply = "response sent from mw_order";
    next();
}

$ node main.js &
[1] 14716

$ curl http://<IP_ADDRESS>:3000/order/job/testing123

Hi @dougwilson, I am very very sorry, the URL is supposed to be without testing123
$ curl http://<IP_ADDRESS>:3000/order/job/

Background
Basically I have two URLs,

job.js http://<IP_ADDRESS>:3000/order/job

This URL returns list of jobs

order.js http://<IP_ADDRESS>:3000/order/:orderId

This URL returns one order

An order can have one or many jobs, which is why the URL is in this way.

Expected Outcome
I have modified job.js to be clearer on what's the final goal.

curl http://<IP_ADDRESS>:3000/order/job/

Current: (1) mw_job, (2) mw2_job, (3) mw_order are invoked. (Incorrect)

Output is "response sent from mw_order"

Expected: (1) mw_job, (2) mw2_job will be invoked.

Output should be "response sent from mw2_job"

curl http://<IP_ADDRESS>:3000/order/testing123/

Current/Expected: (1) mw_order is invoked. (Correct)

Output is "response sent from mw_order"

// main.js - Defines app
var app = require("express")();
app.use("/order/job", require("./job").router);
app.use("/order", require("./order").router);
app.use(function (req, res) {
    res.json(req.reply); // All middleware requests will end here
});

app.listen(3000);

// job.js - Defines the routes for job
var router = require("express").Router();
module.exports.router = router;
router.get("", mw_job); // Full url is /order/job
router.get("", mw2_job); // <------ Added

function mw_job(req, res, next) {
    console.log("mw_job invoked");
    req.reply = "response sent from mw_job";
    next();
}

function mw2_job(req, res, next) {
    console.log("mw2_job invoked");
    req.reply = "response sent from mw2_job"; // This line will overwrite req.reply from mw_job
    next();
}

var router = require("express").Router();
module.exports.router = router;
router.get("/:orderId", mw_order); // Full url is /order/:orderId

function mw_order(req, res, next) {
    console.log("mw_order invoked");
    req.reply = "response sent from mw_order";
    next();
}

$ curl http://<IP_ADDRESS>:3000/order/job/
"response sent from mw_order"

Ah, I see now. Sorry, I didn't see the URL; I kept seeing the one with the testing123 for some reason. Ultimately your issue is in your use of "next()"; you see, when you call "next()", you are declaring that the code didn't want to finish off the request, that the next things in line should complete the request handling. You need to use res.send() or similar when you want to respond and don't call next instead of storing the response in req.reply and calling "next()", otherwise when you make route definitions that apply to more than one URL (as in your case), they will both always execute.
In your example job.js file, you have
router.get("", mw_job); // Full url is /order/job
router.get("", mw2_job); // <------ Added

... which both will always match the same URL, so of course mw2_job will run that URL if mw_job called "next()".
I hope that helps!
From what I can see, this isn't a bug, so if you are looking for support or discussions around how to implement something, please stop by our support channel: https://gitter.im/expressjs/express

And mw_order is also called in your case because the path for that is set to "/order/:orderId", which means /order/job/ will match it, since ":orderId" is just anything in that segment. You can do a few things for that case:
(1) Add a guard in mw_order to "if (req.params.orderId === 'job') return next();"
(2) Declare the ":orderId" parameter on the router and code in what you expect to be a valid ":orderId" like "router.param("orderId", function (req, res, next, orderId) { if (orderId === 'job') next('route') else next() })" (see http://expressjs.com/en/4x/api.html#router.param)
(3) If you want the trailing slash to matter in the routing, enable strict routing mode "router = require('express').Router({ strict: true })" (see http://expressjs.com/en/4x/api.html#express.router)


Provide a more faithful json mapping of html sibling nodes of mixed types

Currently, the json{} displayer comines all text node children of an element node together (separated by spaces)
# echo '
a1b2 3
' | pup 'div json{}'
[
 {
  "children": [
   {
    "tag": "span",
    "text": "a"
   },
   {
    "tag": "span",
    "text": "b"
   }
  ],
  "tag": "div",
  "text": "1 2 3"
 }
]

This produces the same output as a different html document
# echo '
a1 2b3
' | pup 'div json{}'
[
 {
  "children": [
   {
    "tag": "span",
    "text": "a"
   },
   {
    "tag": "span",
    "text": "b"
   }
  ],
  "tag": "div",
  "text": "1 2 3"
 }
]

I would like the json output to preserve the distinction between these documents. For example,
# echo '
a1b2 3
' | pup 'div json{}'
[
 {
  "children": [
   {
    "children": [
     {
      "text": "a"
     }
    ],
    "tag": "span"
   },
   {
    "text": "1"
   },
   {
    "children": [
     {
      "text": "b"
     }
    ],
    "tag": "span"
   },
   {
    "text": "2 3"
   }
  ],
  "tag": "div"
 }
]

# echo '
a1 2b3
' | pup 'div json{}'
[
 {
  "children": [
   {
    "children": [
     {
      "text": "a"
     }
    ],
    "tag": "span"
   },
   {
    "text": "1 2"
   },
   {
    "children": [
     {
      "text": "b"
     }
    ],
    "tag": "span"
   },
   {
    "text": "3"
   }
  ],
  "tag": "div"
 }
]

Im also trying to parse a webpage with an item name followed by a price, and a second item name followed by its own price, and using a comma ',' I get both items names first, and both prices last, separate from names. Why doesn't pup keep the original order?
Any way to fix this?
I'm running: pup '[class="product-name"],[class="price"] json{}'
Thanks


[#1601] accounts for possible None values in validation

partial fix for modflow model instance specific problem in issue #1601 which has problems with other resource types which still need to be addressed

@pkdash  or @zhiyuli could you please revise this?

+1


/account/balance

Description
When MA are introduced, users now can have balance in multiple tokens, not just ÀDA therefore when querying for an account balance also MA tokens will need to be retruned (if any).
Implementation details

Tokens should be returned as an extra Amount in the balances array as described here.
When querying for transaction outputs, also ma_tx_out needs to be joined by ma_tx_out.tx_out_id = tx.id
Token symbol is an UTF-8 hex string, check out this query.
This query is the one that needs to be changed.
Be careful as this endpoint receives a block identifier as a filter. This means that it lets the API users to query for the balance at a certain point in time. The query that handles that is quite complex so be careful when changing it.
Do test different scenarios (balance 0, when tokens are received, when tokens are spent).

Token symbols have a maximum size (64 bytes?).  This may be useful to know?   Note that you may need to deal with two different forms of token representation internally:

ada-only (pre-Mary)
ada plus other tokens (Mary and later)

I believe that the Mary implementation will use the latter representation even when the UTxO only contains ada, so you should use the new form when submitting transactions on-chain.  This is one of the things that the node "era flag" handles internally.
You may find it useful to have an operation to return a total ada-only balance, even where there native tokens present, since this is useful for eg checking administrative costs.
Note that an "account" could presumably contain a mixture of UTxO types.  To determine the total value in the account, you would need to sum values for each token type that was present (including ada) across all the UTxO.  To transfer values, you would need careful coin selection (because of the different minutxo costs for native tokens - you might need to take ada from some "payment" input if splitting a native token, for instance).
Some of these details might be hidden by the wallet backend implementation?

Token symbols have a maximum size (64 bytes?).  This may be useful to know?   Note that you may need to deal with two different forms of token representation internally:

ada-only (pre-Mary)
ada plus other tokens (Mary and later)

I believe that the Mary implementation will use the latter representation even when the UTxO only contains ada, so you should use the new form when submitting transactions on-chain.  This is one of the things that the node "era flag" handles internally.
You may find it useful to have an operation to return a total ada-only balance, even where there native tokens present, since this is useful for eg checking administrative costs.
Note that an "account" could presumably contain a mixture of UTxO types.  To determine the total value in the account, you would need to sum values for each token type that was present (including ada) across all the UTxO.  To transfer values, you would need careful coin selection (because of the different minutxo costs for native tokens - you might need to take ada from some "payment" input if splitting a native token, for instance).
Some of these details might be hidden by the wallet backend implementation?

Note that token names may not be UTF-8

Note that token names may not be UTF-8

Note that token names may not be UTF-8

Ok, is there any way the clients can decode such hex strings? I mean, how do they know how to handle them?

Note that token names may not be UTF-8

Ok, is there any way the clients can decode such hex strings? I mean, how do they know how to handle them?

To transfer values, you would need careful coin selection (because of the different minutxo costs for native tokens - you might need to take ada from some "payment" input if splitting a native token, for instance).

Coin selection is out of scope. That logic needs to be done by the clients as Rosetta specifies it.

To transfer values, you would need careful coin selection (because of the different minutxo costs for native tokens - you might need to take ada from some "payment" input if splitting a native token, for instance).

Coin selection is out of scope. That logic needs to be done by the clients as Rosetta specifies it.

I believe that the Mary implementation will use the latter representation even when the UTxO only contains ada, so you should use the new form when submitting transactions on-chain. This is one of the things that the node "era flag" handles internally.

We will use this CDDL. Is it ok?

I believe that the Mary implementation will use the latter representation even when the UTxO only contains ada, so you should use the new form when submitting transactions on-chain. This is one of the things that the node "era flag" handles internally.

We will use this CDDL. Is it ok?

You may find it useful to have an operation to return a total ada-only balance, even where there native tokens present, since this is useful for eg checking administrative costs

We will only implement the Rosetta Spec API although we can add this to the backlog.

You may find it useful to have an operation to return a total ada-only balance, even where there native tokens present, since this is useful for eg checking administrative costs

We will only implement the Rosetta Spec API although we can add this to the backlog.

Note that an "account" could presumably contain a mixture of UTxO types. To determine the total value in the account, you would need to sum values for each token type that was present (including ada) across all the UTxO. To transfer values, you would need careful coin selection (because of the different minutxo costs for native tokens - you might need to take ada from some "payment" input if splitting a native token, for instance).
Some of these details might be hidden by the wallet backend implementation?

Indeed

Note that an "account" could presumably contain a mixture of UTxO types. To determine the total value in the account, you would need to sum values for each token type that was present (including ada) across all the UTxO. To transfer values, you would need careful coin selection (because of the different minutxo costs for native tokens - you might need to take ada from some "payment" input if splitting a native token, for instance).
Some of these details might be hidden by the wallet backend implementation?

Indeed

I believe that the Mary implementation will use the latter representation even when the UTxO only contains ada, so you should use the new form when submitting transactions on-chain. This is one of the things that the node "era flag" handles internally.

We will use this CDDL. Is it ok?

Yes, that's the latest version!

I believe that the Mary implementation will use the latter representation even when the UTxO only contains ada, so you should use the new form when submitting transactions on-chain. This is one of the things that the node "era flag" handles internally.

We will use this CDDL. Is it ok?

Yes, that's the latest version!

You may find it useful to have an operation to return a total ada-only balance, even where there native tokens present, since this is useful for eg checking administrative costs

We will only implement the Rosetta Spec API although we can add this to the backlog.

That's fine, of course :)

You may find it useful to have an operation to return a total ada-only balance, even where there native tokens present, since this is useful for eg checking administrative costs

We will only implement the Rosetta Spec API although we can add this to the backlog.

That's fine, of course :)

Note that token names may not be UTF-8

Ok, is there any way the clients can decode such hex strings? I mean, how do they know how to handle them?

Jared says you can decode them as UTF-8 if you like (we do this for error messages).  I think the point is that they could really be e.g. unicode so the display might be sub-optimal, but that shouldn't matter too much

Note that token names may not be UTF-8

Ok, is there any way the clients can decode such hex strings? I mean, how do they know how to handle them?

Jared says you can decode them as UTF-8 if you like (we do this for error messages).  I think the point is that they could really be e.g. unicode so the display might be sub-optimal, but that shouldn't matter too much


'Key' missing in example

The GalleryView widget requires a 'Key' parameter, but there is no reference in the example or readme about using a Key. It's not clear how or why the Key is needed or how to use it.

Hey @mbeazer are you able to solve this or use any other plugin?

 What is key?
Delete your plugin!!!

Someone was able to solve this? I cannot also find the needed key...


dcp client plan

Hi,
When are you planning to include these features:

Export current session state for durability
Start from specific session state (import durable state)
?

@belaazim I added it today, right now with simple JSON byte[] import and export. I didn't have time yet to come up with examples but at every point in time you can call  byte[] state = client.sessionState().toJson();  and persist it.. and when the app starts you take the byte[] and instead of initFrom* you call initFromJson() with it and then start streaming.

I didn't find an implementation of initFromJson() ?

woops, I didn't commit it yet.. I'll do asap, maybe check back tomorrow :)

committed the changes right now, you can find the initFromJson on the client.

Thanks for quick commit.
I stored the state as you explained. Then stop connecting to dcp client.
I do some modification on my couchBase documents.
I connect again, but this time I restored the state. and I launch the client.initFromJson(state);
The modification between the stop and the reconnect using (restore state) was not detected.
More then, If I do any change on couchbase documents this was not detected too.
It seems no listening to changes
Maybe something misses from the commit :)

can you please share your code so I can reproduce it?

I'm using the same code you are describing in readme.

DCP Client load data from begining and Store State

client.connect().await();
// Initialize the session state to stream from 0 to infinity
client.initFromBeginningToNoEnd().await();
// Start streaming on all partitions
client.startStreams().await();
// Wait for 1 min
long endTime = System.nanoTime() + TimeUnit.NANOSECONDS.convert(1L, TimeUnit.MINUTES);
while ( System.nanoTime() < endTime ){
;
}
// Store state in a file
byte[] state = client.sessionState().toJson();
storeState(state);
// Shut down once done.
client.disconnect().await();

DCP Client load data from specific State

// Connect to the cluster
client.connect().await();
// restore state from the previous file
byte[] state = restoreState();
client.initFromJson(state);
// Start streaming on all partitions
client.startStreams().await();
while(true) {
Thread.sleep(1000);
;
}

I find my error
I must use client.initFromJson(state).await();
instead of
client.initFromJson(state);
It works fine ! thanks a lot :)

awesome!! :) can we close this one then?


Skip inbuilt DateTime functions used in transformConfigs, and mark the value as null in the null index when the input column value is null and the function does not accept nulls

Currently, if:

Inbuilt DateTime functions that cannot take null (e.g. fromdatetime, timezoneHour, dateTimeConvert, etc.) are used as ingestion transforms (in transformConfigs).
Input column value is null.

Then: these inbuilt functions throws java.lang.NullPointerException instead of marking the value as null in the null index.
Example:
"ingestionConfig": {
    "transformConfigs": [
        {
          "columnName": "updatedAt_timestamp",
          "transformFunction": "FromDateTime(updatedAt, 'yyyy-MM-dd''T''HH:mm:ss.SSS''Z''')"
        }
    ]
}

Recommendation:

Add an annotation for DateTime functions that cannot take null, and just return null when the function is annotated if used in transformConfigs and the input value is null.

Planning to send a PR to address the issue.

PR to fix this issue for inbuilt datetime functions: https://github.com/apache/pinot/pull/8382


Improve absolute error metrics

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (713cddb) to head (8868350).
Report is 17 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #459   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files          109       109
  Lines         2771      2775    +4
  Branches       168       168
=========================================
+ Hits          2771      2775    +4

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


Build and publish JAR

Automatically build and publish our library.
Maybe use jitpack.io or Maven Central or JCenter.

I guess we'll have to publish both jar and aar.

One important question to think about.
When we're creating AAR, we include prebuilt libroc.so and libroc_jni.so for all 4 supported Android ABIs.
What should we do in case of JAR?

Don't include native libraries. Does it even make sense?
Include only libroc_jni.so.
Include both.

And if we're including prebuilt libraries, what architectures should we support?
On way to go is:

Don't include libroc.so. Rationale: roc-java doesn't own it and doesn't control how it's built, so it should not ship it. Tell users that they should pre-install libroc system-wide to use the JAR.

Include prebuilt libroc_jni.so for some limited set of operating systems and hardware architectures. Tell users that if their platform is not in the list, they should build bindings from source.

Another way:

Ship both libraries. Instead of using system-wide libroc.so, roc-java should build it by itself, for all necessary platforms, like we do it for Android.

@MatteoArella what do you think?

BTW, in Go bindings we don't ship any native libraries and require system-wide installation of libroc.so. But in Go bindings we also don't need a native bridge like libroc_jni.so.
AFAIK, we could eliminate it in roc-java as well if we could use JNA or JNR-FFI instead of JNI. However, will we have performance and portability problems with them?

I guess we'll have to publish both jar and aar.

Yes exactly

One important question to think about.
When we're creating AAR, we include prebuilt libroc.so and libroc_jni.so for all 4 supported Android ABIs.
What should we do in case of JAR?
1. Don't include native libraries. Does it even make sense?

2. Include only libroc_jni.so.

3. Include both.

And if we're including prebuilt libraries, what architectures should we support?
On way to go is:
* Don't include libroc.so. Rationale: roc-java doesn't own it and doesn't control how it's built, so it should not ship it. Tell users that they should pre-install libroc system-wide to use the JAR.

* Include prebuilt libroc_jni.so for some limited set of operating systems and hardware architectures. Tell users that if their platform is not in the list, they should build bindings from source.

Another way:
* Ship both libraries. Instead of using system-wide libroc.so, roc-java should build it by itself, for all necessary platforms, like we do it for Android.

@MatteoArella what do you think?

In case of JAR in my opinion we should only ship libroc_jni.so library for differents os/architectures and let user pre-install libroc.

BTW, in Go bindings we don't ship any native libraries and require system-wide installation of libroc.so. But in Go bindings we also don't need a native bridge like libroc_jni.so.
AFAIK, we could eliminate it in roc-java as well if we could use JNA or JNR-FFI instead of JNI. However, will we have performance and portability problems with them?

I've no experience with JNA and JNR-FFI but surely performances will be worse than using JNI because of runtime overhead due to java reflection operations.

In case of JAR in my opinion we should only ship libroc_jni.so library for differents os/architectures and let user pre-install libroc.

Another thought, what about libc? Should we also build libroc_jni for different glibc and musl versions, for example?
Different problems are possible here:

We ship libroc_jni built with higher glibc version than installed on user system.

We ship libroc_jni with an glibc version, and glibc on the user system has a higher major version (probably a rare case).

We ship libroc_jni built with glibc, and the user uses musl (e.g. we're running on alpine, which is often used with docker nowadays).

How such problems are usually approached in Java world?
One other idea is to make libroc_jni.so part of roc repo instead of roc-java repo (e.g. enabled conditionally at build time). The user builds and installs roc and gets both libroc and libroc_jni compatible with current system. In this case there is no need to ship native libraries in JAR. But I'm not sure that would be good from architectural point of view, since libroc_jni and roc-java are highly tied.

BTW, are there any cases where a JAR without libroc_jni is useful (assuming that libroc doesn't provide libroc_jni too).
 Is there a way to create and publish a Java package that can be easily imported (without a need for manual clone-build-install) and that will build libroc_jni automatically during installation on the user system? Similar approach is used in Go.

I'm now thinking about the following solution:

Select the list of hardware architectures we want to support.

Select the list of operating systems and their versions we want to support.

For Linux, select the list of popular distros and their versions we want to support explicitly. For each distro, find out what libc it uses and of what version.

Given all the above, gather the list of toolchain triplets we will support, like: x86_64-pc-linux-gnu, aarch64-linux-gnu, aarch64-linux-musl. For each toolchain triplet, also select the list of libc versions. If a libc is always backwards compatible, this list may consist of a single oldest version we want to support. If the backwards compatibility is preserved only within major versions, this list may consists of a few major versions.

Prepare an docker image or a set of images with all these toolchains and libc versions.

Cross-compile libroc_jni.so using every toolchain and libc version. Pack all built libraries into the JAR.

Write Java code that determines toolchain by the current environment and loads appropriate library from JAR.

It seems that rocksdb uses a similar approach: https://github.com/facebook/rocksdb/pull/3143. It would be helpful to find out how other projects deal with this problem.

Since the JAR publication wont be easy, I suggest to start with publishing AAR and online documentation and then continue working on JAR.
I've created a separate issue for AAR: #19, and renamed this issue to limit it to publishing JAR.

Since the gradle cpp-library plugin doesn't cross-compile, in my opinion it's better to write a custom gradle plugin based on cmake (taking inspiration for example from gradle native cmake library and adapting it to our needs); then we can create a docker image for each variant we want to support and write a cmake toolchain file for cross-compiling the library. In addition with this approach we can share CMakeLists.txtbetween roc-java and roc-android builds.

@MatteoArella Makes sense.

After this task, we should not forget to update doc links in README.

We're thinking about gradually migrating from jni to jffi: https://github.com/roc-streaming/roc-java/issues/109. It seems that the hot path (writing and reading frames) won't have any performance downsides.
If we would migrate, creating portable JAR will become trivial because no native part would be needed.


Add Edit State option

Hey guys, really like the tool :-)
I would like an option to edit a state that I've previously created.
Right now it's only possible if I click on a saved state under RECORDER and update the Response name to be exactly the same as the saved state name.
Would have to allow editing a specific option of a state as well.

also, Delete option would be great :)

close by https://github.com/outbrain/Leonardo/pull/85


Help on focusing

Hi! First of all, thanks for the lib, it's a great one!
I'm trying to use the BokehPass, but I'm having troubles focusing the elements. Even though I have my meshes with considerable space between each other, I can only seem to focus all or none of them.
It looks like all of the meshes are on the same plane and I'm either focusing it or not — which is not true, they have different depth coordinates.
I can show a snippet of the setup, but I'm just following the code on the Demo.
I'm using version4.3.2 of the lib, with Chrome 64.0.3282.186 on a 2017 Macbook Pro.
Thanks in advance!

Hi Antonio,
the Bokeh demo uses a logarithmic depth buffer and a camera with a near plane of 1 and a far plane of 50 to maximise the depth of field effect. I might be wrong, but I think that using large distances may not be the best choice to achieve the effect you're after.
Judging by the behaviour you described, my guess is that your composer doesn't have a DepthTexture to work with. If you use a pass that requires a depthTexture make sure that the composer creates one or supply your own DepthTexture instance:
const composer = new EffectComposer(renderer, {
	depthTexture: true
});

import { DepthTexture } from "three";
composer.depthTexture = new DepthTexture();

Although the BokehPass doesn't break if no DepthTexture is available, it won't operate correctly.
If this information didn't help, please prepare a code example so that we can locate and resolve the problem. This basic setup could serve as a basis.

Closing due to inactivity.

I am having the same problem, even though I have a depth Texture already assigned to the composer. I tried to debug my scene using a DepthEffect, but all I get is the actual renderPass result when adding a depthPass.


Remove handling of multiple timesteps from ensemble calibration

Addresses: Part of #854
Description
Remove handling of multiple timesteps from ensemble calibration, so that the unit tests are simplified and so as to simplify further changes. This functionality is redundant, as given the IMPROVER framework, the ensemble calibration will only ever to provided with a file that contains a single timestep.
Testing:

[x] Ran tests and they passed OK
[x] Added new tests for the new feature(s)

Thank you for doing this separately, it was a lot easier to review.


TypeError: multiple bases have instance lay-out conflict

System Info
Langchain version -- 0.0.277
python verion -- 3.8.8
window platform
Who can help?
@hwchase17
@agola11
Hi I am not able to run any of the langchain syntex on my windows laptop. For example if I just run from langchain.llms import OpenAI  I get the below error message. Can you please help!
 This will suppress the conflict

@himswamy  thank you for your answer but for me i have a new issue
Building wheel for hnswlib (PEP 517) ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 /tmp/tmphrkeylrl_in_process.py build_wheel /tmp/tmp3aejojh5
cwd: /tmp/pip-install-wtdvamm9/hnswlib
Complete output (21 lines):
running bdist_wheel
running build
running build_ext
creating tmp
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.9 -c /tmp/tmpzz0otw5w.cpp -o tmp/tmpzz0otw5w.o -std=c++14
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.9 -c /tmp/tmp73e62ri_.cpp -o tmp/tmp73e62ri_.o -fvisibility=hidden
building 'hnswlib' extension
creating build
creating build/temp.linux-x86_64-cpython-39
creating build/temp.linux-x86_64-cpython-39/python_bindings
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/tmp/pip-build-env-j_cemyld/overlay/lib/python3.9/site-packages/pybind11/include -I/tmp/pip-build-env-j_cemyld/overlay/lib/python3.9/site-packages/numpy/core/include -I./hnswlib/ -I/usr/include/python3.9 -c ./python_bindings/bindings.cpp -o build/temp.linux-x86_64-cpython-39/./python_bindings/bindings.o -O3 -march=native -fopenmp -DVERSION_INFO="0.7.0" -std=c++14 -fvisibility=hidden
In file included from /tmp/pip-build-env-j_cemyld/overlay/lib/python3.9/site-packages/pybind11/include/pybind11/detail/../attr.h:13,
from /tmp/pip-build-env-j_cemyld/overlay/lib/python3.9/site-packages/pybind11/include/pybind11/detail/class.h:12,
from /tmp/pip-build-env-j_cemyld/overlay/lib/python3.9/site-packages/pybind11/include/pybind11/pybind11.h:13,
from /tmp/pip-build-env-j_cemyld/overlay/lib/python3.9/site-packages/pybind11/include/pybind11/functional.h:12,
from ./python_bindings/bindings.cpp:2:
/tmp/pip-build-env-j_cemyld/overlay/lib/python3.9/site-packages/pybind11/include/pybind11/detail/../detail/common.h:266:10: fatal error: Python.h: No such file or directory
266 | #include <Python.h>
|          ^~~~~~~~~~
compilation terminated.
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
ERROR: Failed building wheel for hnswlib
Failed to build hnswlib
ERROR: Could not build wheels for hnswlib which use PEP 517 and cannot be installed directly


I can't run successfully when I change my computer.

GOOGLE_APPLICATION_CREDENTIALS=/Users/cxhmacbook/Documents/npms/recordChrome/test/auth.json node savemp3.js
this code can save a mp3 file;
node v10.13.0
npm v6.4.1
the same code and files  move to an other macbook can not run success~~!

may be  i am in Beijing, i can not  use google cloud service

Greetings!  Happy to help!

When you run your code on your macbook - are you getting some kind of error?
Are both machines running node 10.x?

Greetings! Happy to help!

When you run your code on your macbook - are you getting some kind of error?
Are both machines running node 10.x?

yes ,  I think  is network problems   when I open vpn  I  can  get results successfull,
thanks .
one in company  and other one macbook  in my home

Got it.  Well it sounds like you have things figured out :) Let me know if there's anything else we can do to help!


Historical Data Filters make Burnup/Burndown Charts useless

Due to the way Historical Data Filters are applied, it makes it impossible to reorganize a backlog after a project has started. We are a couple of months into the project had needed to add tags or area paths to organize the backlog by sub-projects. The Burnup charts do not work because it only includes items as of the date the tag or area path was assigned. It should include all items tagged as completed items regardless of when it was tagged.

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

ID: 735ade53-bdab-5f12-37b1-4ce7019b8d98
Version Independent ID: 89fa7b00-dad1-0549-2616-5eec922fb474
Content: Filtering on historical data from Analytics - Azure DevOps
Content Source: docs/report/analytics/analytics-historical-filtering.md
Product: devops
GitHub Login: @KathrynEE
Microsoft Alias: kaelli

@markyates90 I am assigning this to the author of that article to see if we need to update our documentation to address this. I recommend that you also file this as a bug report/feature request here:
Please report Azure DevOps or TFS software bugs, feedback, or questions in the Azure DevOps Developer Community.


Bug: BlobStorageClient.AcquireLease fails with infinite lease time

When using lease time set to -1, the call to BlobStorageClient.AcquireLease fails with:
storage.AzureStorageServiceError{Code:"MissingRequiredHeader", Message:"An HTTP header that's mandatory for this request is not specified.\nRequestId:2aebd74d-0001-0061-5c0c-aa75a6000000\nTime:2017-03-31T10:52:54.2325938Z", AuthenticationErrorDetail:"", QueryParameterName:"", QueryParameterValue:"", Reason:"", StatusCode:400, RequestID:"2aebd74d-0001-0061-5c0c-aa75a6000000"} ("storage: service returned error: StatusCode=400, ErrorCode=MissingRequiredHeader, ErrorMessage=An HTTP header that's mandatory for this request is not specified.\nRequestId:2aebd74d-0001-0061-5c0c-aa75a6000000\nTime:2017-03-31T10:52:54.2325938Z, RequestId=2aebd74d-0001-0061-5c0c-aa75a6000000, QueryParameterName=, QueryParameterValue=")

The reason is AcquireLease sets the mandatory x-ms-lease-duration header only when the supplied lease time is positive. However, this header must always be set, and it must be set to "-1" when lease is infinite. See docs: https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Lease-Blob?redirectedfrom=MSDN

Moving this issue to the Storage repository.


pyproject.toml:tool.poetry.version as version_source

Description
Ability to make pyproject.toml's version as version_source for semantic-release
Use cases
I have multiple projects which are basically small monorepos. Each of them in some way depends on some common objects so it makes sense to have them in such fashion. They have their own pyproject.toml files and their own versioning.
Possible implementation
Maybe add some variable that will overwrite existing values for version_source. I can make PR if you are interested

Hey 👋
I'm not 100% sure I follow your issue - are you trying to update multiple pyproject.toml files in different subdirectories of a monorepo?
It should already be possible to use pyproject.toml:tool.poetry.version as version_toml in your configuration with version_source = "commit", or alternatively you could use your Git tags as a common place for a version with version_source = "tag"
I think the functionality already exists in PSR but you will need to reference your metadata through a combination of version_toml, version_variable and version_pattern rather than adding a new option to version_source

I have such structure:
|.
|-b
| |b.py
| |pyproject.toml
|a.py
|pyproject.toml

Project A can have version 1.5.0 and project B can have something like 2.6.8. I managed to get their own changelogs with custom parser that checks scope of the commit (something like feat(A): changes for project A and vice versa).
If we use version_source = "commit" or tag, it does not really matter - one of the projects looks at the wrong version number. I changed project A's version_source to commit and project B's to tag but it looks like a pretty bad solution. What if I add project C and project D with their respective versions?
I think this change can be pretty convenient for some users

Ah I see - I would file this under "monorepo support". You might be able to get some mileage out of #509, but PSR doesn't currently support monorepos 😊

Ah I see - I would file this under "monorepo support". You might be able to get some mileage out of #509, but PSR doesn't currently support monorepos 😊

Thanks, that looks like a good solution to avoid writing custom parsers. I will add PR from that branch to add version_source from files

No update here, PR would be very desirable

As we have since deprecated and removed the version_source parameter in v8 the sole version identifier is tags. With this in mind while considering how to support monorepo constructs, I believe implementation for PSR will instead use tag prefixes as the version determinant as described in #579.
Closing this issue as the essence of this request will be handled in a different way but still meet the end goal.


Issue #1988, escape special character in content ID replacement for Migration51

This fixed the upgrade issue I was having moving from 5.0x to 5.1+  .
I've taken a quick look at the code base and don't see any other similar issues.  I've used Matcher.quoteReplacement() but I see that the same problem was addressed in TextQuoteCreator:49 by manually escaping the replacement string with a replaceAll() call.  I'm not sure if that was done deliberately because there's an issue with Matcher.quoteReplacement() or the author was just unaware of the method.

Probably the later.
But the odd thing is that contentID is supposed to be a URI. And that shouldn't have a \ or $ in it anyway. I can only assume someone is breaking the spec.

I presume you got something like:
java.lang.IllegalArgumentException: Illegal group reference

	at java.util.regex.Matcher.appendReplacement(Matcher.java:857)
	at java.util.regex.Matcher.replaceAll(Matcher.java:955)
	at java.lang.String.replaceAll(String.java:2223)
	at com.fsck.k9.mailstore.migrations.MigrationTo51.replaceContentUriWithContentIdInHtmlPart(MigrationTo51.java:395)

Thank you for adding test cases, that was sloppy of me not to add some but I didn't see similar test classes for the other Migration classes and I wasn't sure how straightforward it would be to set up.
I actually got an ArrayIndexOutOfBoundsException, see the stack trace below:
Exception while upgrading database. Resetting the DB to v0
java.lang.ArrayIndexOutOfBoundsException: length=2; index=2
	at java.util.regex.Matcher.group(Matcher.java:343)
 	at java.util.regex.Matcher.appendEvaluated(Matcher.java:626)
 	at java.util.regex.Matcher.appendReplacement(Matcher.java:601)
 	at java.util.regex.Matcher.replaceAll(Matcher.java:700)
 	at java.lang.String.replaceAll(String.java:2164)
 	at com.fsck.k9.mailstore.migrations.MigrationTo51.replaceContentUriWithContentIdInHtmlPart(MigrationTo51.java:393)

The content ID that caused this in my case was cid:707f20be$1$13d5c82b5cf$Coremail$ei-30$vip.126.com (which, based on that domain, unfortunately means that it was some spam rubbish that caused me this trouble and I could have simply deleted it from the mailbox instead and perhaps never encountered the problem again).

Yeah, if it was simple I'd have requested changes. I was going to just approve.
Instead I spent quite a while writing one so that the code's better going forward :+1:

@lazycodeninja: Thanks a lot for tracking down the bug and coming up with a fix. I changed the implementation from String.replaceAll() to String.replace() which avoids the need to use quoted/escaped strings.
@philipwhiuk: Thanks a lot for the tests. Having done a lot of Kotlin lately, I couldn't resist the temptation to convert them to Kotlin.


Possibility to gate Refined Storage

As it stands, Refined Storage is an amazing mod for storage, and has it so it is quite easy to automate things in a rapid manner after starting it. If you wanted to gate it, besides changing the recipes for the printed materials, the best and easiest ways would be to either change the recipe of quartz enriched iron or disable a multitude of the various recipes for silicon.
While you could just change the quartz enriched iron to be steel instead of iron, my personal preference would be to disable all methods of silicon except for the way to create it through Rockhounding Chemistry. Because, tbh, the only reason I have used Rockhounding so far is to make the bloomery. It would be an interesting take to start using the chemistry side of the mod as well for various parts.
This does come with the side effect of having a few recipes in Ender IO be a bit more difficult, but not excessively more difficult.

Alright, I made the quartz refined iron take steel.
I'll consider changing the recipe for silicon. For now though, I'm going to close this issue. I'll need to get into Refined Storage myself to get a better idea as to how I'd like to change the recipes further.


Updated README.adoc

Pull Request Test Coverage Report for Build 226

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

Totals

Change from base Build 220:
0.0%

Covered Lines:
1892

Relevant Lines:
2724

💛  - Coveralls


Simple Example - The function "registerDraw(OPC)" does not exist

I'm trying to follow your simple example using an LED strip (WS2812) and when I try to run the sketch in the processing IDE i get the error "the function registerDraw(OPC)" does not exist.
The error is on this line of OPC parent.registerDraw(this);

This helped point me in the write direction. Had to change a line in the OPC. https://groups.google.com/forum/#!topic/fadecandy/AMPRMHGqunE

For anyone else coming here with the same issue, the fix is to edit OPC.pde:30 and replace:
parent.registerDraw(this);

with:
parent.registerMethod("draw", this);

@bosgood you should submit a PR for this fix!

@toymachiner62 I would! But it looks like it was already fixed a long time ago (6b80fdb136cc39d1da74d10f5e1e411f19533d8a), we must have gotten some old copies of this repo that were still floating around.