Add explaination how to create virtual devices

While all features explained on this page are accessible from the device page, this is the only feature that has to be accessed from somewhere else, which might not be clear to new users.

Fixes:

Submitting Pull Requests
Be sure to open an issue before starting work on a pull request, and discuss your idea with the NetBox maintainers before beginning work. This will help prevent wasting time on something that might we might not be able to implement. When suggesting a new feature, also make sure it won't conflict with any work that's already in progress.
Any pull request which does not relate to an accepted issue will be closed.
When submitting a pull request, please be sure to work off of the develop branch, rather than master. >
The develop branch is used for ongoing development, while master is used for tagging new stable releases.
All code submissions should meet the following criteria (CI will enforce these checks):

Python syntax is valid
All tests pass when run with ./manage.py test
PEP 8 compliance is enforced, with the exception that lines may be greater than 80 characters in length


Initial Databricks SQL dialect

Title says it all. There is quite a lot more to this dialect, but I'm aiming to keep each PR reasonably small for ease of review.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

50 of 53 (94.34%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 88.1%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/dialect/databricks.rs
7
10
70.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.01%

Covered Lines:
21329

Relevant Lines:
24210

💛  - Coveralls

@alamb Conflicts resolved

Thanks again!


Angular 2 not “in the zone” after PhoneGap Build

Background: My company's mobile app has been in both iOS and Google Play stores since July. It's built using Angular 2, Webpack, and PhoneGap. The working version was built using Angular 2.0.0-beta.17, and we now have a chance to go back and upgrade Angular to the latest released version. We went through the process of rewriting two other internal apps (web only, not ported to mobile) and it went pretty smoothly. They're updated and working. We tackled the mobile app last, using our experience from rewriting the other two apps, and it seemed to be going just as well. The app runs perfectly fine locally in a browser; it also runs perfectly fine using PhoneGap locally, either through the CLI or their desktop app. The problems arise when the app is built at PhoneGap Build (there are no build errors).
What I'm seeing is the simplest change detections not working properly, and it appears that tasks that should be "in the zone" are running outside of the zone and thus, not triggering change detection. Here's the most basic example:
When on the home page of the app, you can choose "register" or "sign in"; either one simply navigates to the respective page. On either page, we're using lifecycle hooks like this:
ngAfterViewInit() {
  console.log((<any>window).Zone.current);
  this.isBusy = false;
}

this.isBusy is just a boolean on the component, which we use like this in the template:

I've checked and the lifecycle hooks are working properly and this.isBusy gets set... but the view never gets updated. In the browser console I see this:
_name:"angular"
_parent:Zone

In the PhoneGap debug console, this:
_name:"root"
_parent:null

I've tried a ton of different ways to get this to work, including removing all Cordova plugins, thinking it must be one of them that's hijacking/changing the Angular's Zone, but even without plugins, the result is the same: no change detection.
I'm pretty sure I can't provide a Plunker that shows the problem since it works everywhere but on an app built with PhoneGap Build (Cordova), so I'm not sure what else I can do but answer questions from someone smarter than me who might be able to help figure this out.
Details for those who care:
Angular: 2.4.7
PhoneGap CLI: 6.5.0
Anyone?

I use cordova with angular 2,everything work fine,so could you provide a sample reproduce repository so I can try to debug the reason

Let me know if this is enough: https://github.com/rheomatic/angular-zone-issue636-example

@rheomatic , could you write a simple build steps?

Install package and dependencies

npm install

Build Angular2 app

npm run build:prod

Build Cordova app

cd pgdata/
./pg.pg.sh

Alternatively, from inside the pgdata/ directory, you could run cordova/phonegap commands to build or run platform versions of the app.
The Dockerfile.phonegapbuild.* files are used by Jenkins to build and ship the apps to PhoneGap Build, but I removed any sensitive data like app keys and IDs.

@rheomatic , I can't start the app through phonegap, after pg.pg.sh, should I run
 phonegap platform add ios

under pgdata folder?
I did that, but in simulator I just saw a blank page. more detail about build will help.

@JiaLiPassion, I made a few changes to the repo. I think if you run
phonegap build ios

after what you've already done, you should be able to run the project in Xcode and in the simulator.

@rheomatic , not working , still blank page.
When I run phonegap platform add ios, it report error, Error: Source path does not exist: www/res/icons/ios/icon-40.png, so I run
  phonegap platform add<EMAIL_ADDRESS>
instead, I can see the page in browser, but in xcode simulator, still blank page, nothing run.

@JiaLiPassion, there must be something left over from before the latest changes.
Delete /dist, /node_modules, /pgdata/platforms, /pgdata/plugins, /pgdata/config.xml (if it's there), and everything under /pgdata/www except for /pgdata/www/res.
Then run:
npm install

npm run build:prod

cd pgdata/
./pg.pg.sh
phonegap platform add ios
phonegap build ios

I just did these same steps and had no errors and the app runs in the simulator. Hopefully this will work for you.

BTW, I can't find how to install phonegap 6.5.0

That's the version PhoneGap Build is recommending (specified in config.xml), but it's not a released version we can install, correct. I'm going to roll back the version in config.xml and see if the resulting app works. Maybe that's been the issue all along.

FYI, I just tried
<preference name="phonegap-version" value="cli-6.4.0"/>

and
<preference name="phonegap-version" value="cli-6.3.1"/>

and neither of those produce a working app, either.

@rheomatic , I somehow make it output console.log, but I can't reproduce, please see the screenshot.

@JiaLiPassion, yeah, that's the difficult part of this issue, that building locally shows no sign of the problem. It's only when the app is built at build.phonegap.com that it doesn't work. I'm going to do a complete build locally and submit it to the App Store instead of going the build.phonegap.com route to try and further isolate the problem.

http://weblogs.thinktecture.com/thomas/2017/02/cordova-vs-zonejs-or-why-is-angulars-document-event-listener-not-in-a-zone.html

close for not be able to reproduce.


Switch integer mode default to bigint?

Alexey Orlenko asked if there's a reason for integer mode to default to number instead of bigint.

@honzasp and I discussed that BigInts are in no way "normal" for JS devs to deal with, and would likely cause more troubles than problems solved if they were the default for row data.  If this is the case, then it only makes sense for people to opt into them when they are prepared for the extra effort involved in understanding and dealing with them.


Cloning Raspbian from SD to SSD didn't change cmdline.txt nor fstab - didn't boot, fixed these to sda6 & sda7 started working

This is after the change. This is the original Raspberry SD-card that came with it (preinstalled)
sda      8:0    0 465.8G  0 disk
|-sda1   8:1    0   2.6G  0 part
|-sda2   8:2    0     1K  0 part
|-sda5   8:5    0    32M  0 part
|-sda6   8:6    0   256M  0 part /boot
`-sda7   8:7    0 462.9G  0 part /
I modified the following to fix the boot problem:
/boot/cmdline.txt:
changed "root=/dev/sda7"  (was some mmcblk*, the sd-card)
/etc/fstab :
/dev/sda6  /boot  (was mmcblk*)
/dev/sda7  /  (was mmcblk*)

It was while ago, I think it was NOOBS. With these two changes I made to configs, the tool worked perfectly


How to ground truth label your datasets for creating autonomous driving systems using matlab ground truth app

Article checklist
Pre-submission checks

Please ensure that you have only one open topic suggestion (issue) + in-review article (linked pull request) at a time. This will ensure that we complete the review process in a timely manner from inception to publishing

If you have not already, please go over our Resources Page for more tips and tricks on how to improve your overall technical writing so reviews are swifter, increase the chance of a payout and provide more value to our readers.

For first-time contributors and for more details on our submission guidelines, see our Contributing Guidelines.

Formatting and structure checks

[x] Have you used the correct folder and file structure? - see Contribution Guidelines

[x] Is your article properly formatted in Markdown? - see Github Markdown guide

[x] Have you used our preferred heading structure? - H3 (###) and up

[x] Does your article follow any of the suggested structure formats? - see example formats

[x] Is your article over 750 words? - Tool: Wordcounter.net

[x] Is the article you are submitting an in-depth and unique article? Does it go beyond what is in the official docs and what is covered in other blog sites. See these articles as examples.

[x] Does your article provide enough value and detail about your topic? - Articles should be clear, accurate, and fully explained.

[x] Can your article be understood by beginners? - Assume the audience is smart but has no prior exposure to the common terminology in your article.

[x] Have you included a hero image that is 600x400 pixels and have the copyright to use it? - Tools: Pixlr Image Editor for resizing and Unsplash for Creative Commons images

Grammar & plagiarism checks

[x] Have you spellchecked and grammar checked your article? - Tools: Write&Improve - ProWritingAid - Grammarly
[x] Please place your article through a 3rd party plagiarism checker. We suggest using Quetext, this tool is free and has a daily limit. We typically accept articles with 10% or less.
[x] Have you checked your article for readability? - Tool: Hemmingway
[x] Have you added sources for quotes and images that aren't yours?

Technical checks

[x] Are your code snippets properly formatted for syntax highlighting - see Syntax guide
[x] Have you checked your code runs correctly and you've highlighted all necessary dependencies for installation?
[x] Are the software programs and packages you're highlighting in your article up to date, using current versions and not deprecated?

Topic suggestion this closes

Remove the backticks and add the issue number below to link and close your Topic Suggestion (issue) when your article has been published (PR has been merged). See this video for more details.

`This closes #4255

Finally, delete the article checklist notes in blockquotes and submit your PR. We look forward to reviewing your article.

Hi, @linetachieng. To get your article in a ready to review state, please prepend /engineering-education/[article-folder-name] to your image links.

@louisefindlay23 links added.

Thanks, @linetachieng but you forgot the first /. That will make it an absolute link to ensure your images show up correctly.

@louisefindlay23 changes done.

Thanks, @linetachieng. Your article is now ready for review. One of our peer reviewers will review your article as soon as one becomes available.

Thanks, @linetachieng. Your article is now ready for review. One of our peer reviewers will review your article as soon as one becomes available.

@louisefindlay23, I'll review this article if it's okay, thanks.

Plagiarism check done @Dawe-7

@Dawe-7 it's linet achieng not @Joesongoma 😄😄,, sorry for the confusion.

@Dawe-7 it's linet achieng not @Joesongoma smilesmile,, sorry for the confusion.

Yeah, sorry it's like a template, forgot to change the github profile name.
Corrected it.

Jumping on this one. 👍

@Dawe-7 Please go through all the changes mentioned. The earlier article too had several errors. Let's make sure to add the ready for final review label only once everything is set within the article. Thank you.

@Dawe-7 Please go through all the changes mentioned. The earlier article too had several errors. Let's make sure to add the ready for final review label only once everything is set within the article. Thank you.

@lalith1403, i have done the changes, kindly check and see if they are okay. Thanks.

@lalith1403 issue fixed.
cc @Dawe-7

@Dawe-7 changes made

Several changes are required. Please note all the changes I made. Some changes had to be processed on your end. @Dawe-7 @linetachieng

@lalith1403 changes made.
cc @Dawe-7

@lalith1403
If the PR needs any more edits - please close this PR. 👍
While the author makes the required edits.

@Dawe-7 yeah it is provided by Matlab once you execute the command.

@Dawe-7 yeah it is provided by Matlab once you execute the command.

@lalith1403 i can see the changes have been effected. Could we kindly have a final review of this PR, thanks.

Jumping on this one


[SPARK-8401] [Build] Scala version switching build enhancements

These commits address a few minor issues in the Scala cross-version support in the build:

Correct two missing ${scala.binary.version} pom file substitutions.
Don't update scala.binary.version in parent POM. This property is set through profiles.
Update the source of the generated scaladocs in docs/_plugins/copy_api_dirs.rb.
Factor common code out of dev/change-version-to-*.sh and add some validation. We also test sed to see if it's GNU sed and try gsed as an alternative if not. This prevents the script from running with a non-GNU sed.

This is my original work and I license this work to the Spark project under the Apache License.

Can one of the admins verify this patch?

@mallman Have a look at https://cwiki.apache.org/confluence/display/SPARK/Contributing+to+Spark please
CC @ScrapCodes

I am Ok with 1.
Is there a reason we should restrict ourselves to GNU SED ? I suppose our scripts were posix complaint.

@srowen Will create a Jira ticket.
@ScrapCodes This is what I get with (presumably BSD) sed on OS X:
[msa@Michaels-MacBook-Pro spark-1.4]$ ./dev/change-version-to-2.11.sh
[msa@Michaels-MacBook-Pro spark-1.4]$ gst
On branch scala-versions
Your branch and 'vamp/scala-versions' have diverged,
and have 7 and 4 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   assembly/pom.xml
	modified:   bagel/pom.xml
	modified:   core/pom.xml
	modified:   dev/change-scala-version.sh
	modified:   docs/_plugins/copy_api_dirs.rb
	modified:   examples/pom.xml
	modified:   external/flume-sink/pom.xml
	modified:   external/flume/pom.xml
	modified:   external/kafka-assembly/pom.xml
	modified:   external/kafka/pom.xml
	modified:   external/mqtt/pom.xml
	modified:   external/twitter/pom.xml
	modified:   external/zeromq/pom.xml
	modified:   extras/java8-tests/pom.xml
	modified:   extras/kinesis-asl/pom.xml
	modified:   extras/spark-ganglia-lgpl/pom.xml
	modified:   graphx/pom.xml
	modified:   launcher/pom.xml
	modified:   mllib/pom.xml
	modified:   network/common/pom.xml
	modified:   network/shuffle/pom.xml
	modified:   network/yarn/pom.xml
	modified:   pom.xml
	modified:   repl/pom.xml
	modified:   sql/catalyst/pom.xml
	modified:   sql/core/pom.xml
	modified:   sql/hive-thriftserver/pom.xml
	modified:   sql/hive/pom.xml
	modified:   streaming/pom.xml
	modified:   tools/pom.xml
	modified:   unsafe/pom.xml
	modified:   yarn/pom.xml

Untracked files:
  (use "git add <file>..." to include in what will be committed)

	assembly/pom.xml-e
	bagel/pom.xml-e
	core/pom.xml-e
	dev/audit-release/blank_maven_build/pom.xml-e
	dev/audit-release/maven_app_core/pom.xml-e
	docs/_plugins/copy_api_dirs.rb-e
	examples/pom.xml-e
	external/flume-sink/pom.xml-e
	external/flume/pom.xml-e
	external/kafka-assembly/pom.xml-e
	external/kafka/pom.xml-e
	external/mqtt/pom.xml-e
	external/twitter/pom.xml-e
	external/zeromq/pom.xml-e
	extras/java8-tests/pom.xml-e
	extras/kinesis-asl/pom.xml-e
	extras/spark-ganglia-lgpl/pom.xml-e
	graphx/pom.xml-e
	launcher/pom.xml-e
	mllib/pom.xml-e
	network/common/pom.xml-e
	network/shuffle/pom.xml-e
	network/yarn/pom.xml-e
	pom.xml-e
	repl/pom.xml-e
	sql/catalyst/pom.xml-e
	sql/core/pom.xml-e
	sql/hive-thriftserver/pom.xml-e
	sql/hive/pom.xml-e
	streaming/pom.xml-e
	tools/pom.xml-e
	unsafe/pom.xml-e
	yarn/pom.xml-e

no changes added to commit (use "git add" and/or "git commit -a")

@srowen Should I create one Jira ticket for this or multiple?

One JIRA is fine. Yes I see the same problem with OS X sed, so falling back to gsed is probably good.

@srowen I created the Jira ticket which shows the problem with the current version changing scripts.

Looking good -- what's the need for the scaladoc update? wouldn't the build generate the scaladoc with the right location and name once the build is updated? Maybe there's a subtle reason there, but want to make sure this is something that must be done here and not elsewhere.

Indeed the build does generate the scaladoc in the right location, but the docs/_plugin/copy_api_dirs.rb is currently hardcoded to always look for the api docs in target/scala-2.10:
https://github.com/apache/spark/blob/7af3818c6b2bf35bfa531ab7cc3a4a714385015e/docs/_plugins/copy_api_dirs.rb#L37

ok to test

Merged build triggered.

Merged build started.

Test build #35166 has started for   PR 6832 at commit ad9b40a.

Test build #35166 has finished for   PR 6832 at commit ad9b40a.

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

Merged build finished. Test PASSed.

@ScrapCodes any thoughts? otherwise LGTM

I am inclined towards having sed replacement command which is compatible with POSIX (works both on bsd and GNU). I do not have a BSD system handy right now. :/  to help out.

Yeah me too but I remember being unable to figure it out when I took a shot at it, and I assume you couldn't either. This at least uses GNU sed consistently.

I am going to give it a shot, if you allow me some time.

Sure thing. FYI, I'm leaving for Iceland tomorrow (Saturday), and I'll be away for two weeks. I will probably be incommunicado during this time. If you need something from me, can we put this PR on hold? Or if you find a cross-platform sed syntax that works, I won't mind if you just push that change. Let's keep the jackson and scaladoc fixes either way.
Cheers.

@ScrapCodes go for it but do you have a better solution in sight? would it be reasonable to merge this as a step forward?

@srowen I tried it, all we need to do is drop the -i flag, which in-place replaces the file. Instead we need to probably redirect the stream by correctly setting each filename using find or something.
Unfortunately, I do not have a BSD system handy. I am going to try it out. Meanwhile if you could help, that would be great. Incase, nothing lands here in next 2 days feel free to merge this as interim solution.

NAVER - http://www.naver.com/
<EMAIL_ADDRESS>님께 보내신 메일 <Re: [spark] [SPARK-8401] [Build] Scala version switching build enhancements (#6832)> 이 다음과 같은 이유로 전송 실패했습니다.

받는 사람이 회원님의 메일을 수신차단 하였습니다.

BTW: Is there a way to report spam in github ?

@ScrapCodes yes you can click the user link and report abuse. I have already done that but please go ahead too.
If you mean you need an OS X system, I think we can try it out. What change specifically needs to be made here?

Try this as dev/change-version-to-2.11.sh on OSX with bsd sed.

# Note that this will not necessarily work as intended with non-GNU sed (e.g. OS X)
BASEDIR=$(dirname $0)/..

for f in `find $BASEDIR \( -name 'pom.xml' -type f -and -not -path '*target*' \) -print`; do
    echo -e "$f"
    sed -e 's/\(artifactId.*\)_2.10/\1_2.11/g' "$f" >"$f.tmp"
    cat "$f.tmp" >"$f"
    rm "$f.tmp"
done

# Also update <scala.binary.version> in parent POM
sed -e '0,/<scala\.binary\.version>2.10</s//<scala.binary.version>2.11</' "$BASEDIR/pom.xml" >"$BASEDIR/pom.xml.tmp"

cat "$BASEDIR/pom.xml.tmp" >"$BASEDIR/pom.xml"
rm "$BASEDIR/pom.xml.tmp"

@srowen Did you get a chance to try the above out ? did it work ?

@ScrapCodes that works as intended and doesn't leave the "-e" files around anymore, except that the update for scala.binary.verison does not work. This seemed to work:
sed -e 's/<scala\.binary\.version>2\.10</<scala.binary.version>2.11</' "$BASEDIR/pom.xml" >"$BASEDIR/pom.xml.tmp"

But I don't know if that's standard sed syntax now! seems simple though?

Yes it looks simple, If you think this suggestion work for both gnu and bsd systems. Can we update the patch accordingly ?

@mallman what do you think about these changes instead?

@mallman are you able to look at this further or should maybe @ScrapCodes proceed with the changes he identified?

@srowen I just returned from my vacation abroad and am catching up. Sorry for the wait. I'll take a look at this tomorrow. Cheers.

I've spent some more time googling around this problem. Unsurprisingly, there's plenty of discussion/frustration around finding a cross-platform solution. There doesn't seem to be a magic bullet. In addition to the options we've discussed, I think there are two more worth considering. One is to use the -i flag but passing a backup file suffix like sed -i.bak .... Then delete the .bak files. This solution is described here: http://stackoverflow.com/a/22084103. Another option is to use perl instead of sed.
That brings us to four approaches:

Look for GNU sed and exit if it can't be found. (what I did)
Write sed output to temporary files and move the temporary files to the original files. (what @ScrapCodes did)
Use the -i.bak syntax and delete the .bak files. This works on GNU and BSD sed, but maybe not XYZ or PDQ sed. The point being that -i in any form just isn't part of the posix standard.
Use perl -i ..., which is cross-platform.

At this point I would lean toward either (2) or (4), with (4) being the cleaner (easier) implementation. It also assumes the system has perl. Thoughts?

I think I also like option 2. On OS X I actually am not sure whether I have GNU sed because of OS X or because of brew, so maybe slightly better not to have to rely on it, and to not have to detect it. I think this ends up simplifying the common script then?

I was also inclined towards having an echo (Like the one in script above.). It gives the user necessary feedback, as to what changed.

I'll work on a revision following along the lines of what @ScrapCodes did and push it to this PR. Incidentally, I was going to suggest we use mktemp to create the temp files, but then I realized that tool is different on bsd versus gnu systems.

I've run into a roadblock. This syntax:
sed -e '0,/<scala\.binary\.version>2.10</s//<scala.binary.version>2.11</' pom.xml

doesn't work with my Mac's sed. I'm not sure why. Maybe this is a bug in Yosemite's sed? I haven't tried other versions.
I spent a good deal of time this morning trying various alternatives without success. I need to put this aside for the day. If you guys find something that works please post.
Cheers.

sed -e 's/<scala\.binary\.version>2\.10</<scala.binary.version>2.11</' ... worked for me on Yosemite. Is that not standard syntax too? that's what I always use with sed.

The original code replaces only the first instance of <scala.binary.version>2.10< in the file, which is the desired behavior. The code you presented replaces all of them. You can more clearly see how that's a problem if you run that sed commend to change from version 2.10 to 2.11, then back again to 2.10, and then run git diff pom.xml.

I thought that would be fine but, yeah it changes the 2.11 in the 2.11 profile to 2.10 on the way back, which is wrong. I fished around a little more and this seems to work as desired on OS X:
sed -e '1,/<scala\.binary\.version>2.10</s/<scala\.binary\.version>2.10</<scala.binary.version>2.11</' ...

That is, use 1 instead of 0, and repeat the pattern. See http://www.linuxtopia.org/online_books/linux_tool_guides/the_sed_faq/sedfaq4_004.html and http://stackoverflow.com/questions/148451/how-to-use-sed-to-replace-only-the-first-occurrence-in-a-file
Do you have GNU sed handy to confirm if that's portable? the page above suggests it is, since this won't occur on the first line.

Thanks for the tip, @srowen. That works.
I now have a version following approach (2) which I've verified works on OS X with its built-in sed. I'll test on a GNU system later this afternoon or tomorrow. Assuming that works I'll push a new commit.

Merged build triggered.

Merged build started.

I've pushed a commit to implement the second strategy. I've tested this script successfully on OS X Yosemite and Ubuntu 14.

Test build #36943 has started for   PR 6832 at commit 02296f2.

Test build #36943 has finished for   PR 6832 at commit 02296f2.

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

Merged build finished. Test FAILed.

Test build #1024 has started for   PR 6832 at commit 02296f2.

Test build #1024 has finished for   PR 6832 at commit 02296f2.

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

Test build #1026 has started for   PR 6832 at commit 02296f2.

Test build #1026 has finished for   PR 6832 at commit 02296f2.

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

Test build #1036 has started for   PR 6832 at commit 02296f2.

Test build #1036 has finished for   PR 6832 at commit 02296f2.

This patch fails MiMa tests.
This patch does not merge cleanly.
This patch adds no public classes.

Test build #1038 has started for   PR 6832 at commit 02296f2.

Test build #1038 has finished for   PR 6832 at commit 02296f2.

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

Looking strong @mallman. @ScrapCodes how about we finish this by:

Deleting the change-version-to-* scripts
Updating dev/create-release.sh to reflect the new script
Updating docs/building-spark.md too

@srowen @ScrapCodes Let me know if you'd like me to take on those additional tasks. Cheers.

@mallman I think you can go for it

Ping @mallman I think you can make the additional changes. I don't mind just merging as is though, so will otherwise do that in a day or two.

@srowen Sorry, I've been swamped. I think I can get this done by Saturday if you want to wait.

@srowen I'm working on this now.

Merged build triggered.

Merged build started.

Test build #37848 has started for   PR 6832 at commit cde2f17.

@srowen I've pushed a new commit to replace usage of dev/change-version-to-*.sh scripts with dev/change-scala-version.sh <version>. I also modified the latter so it takes a single argument instead of two. While this makes the current script more tied to version 2.10 and 2.11 specifically, I believe the simplicity in usage obtained is worth deferring the extra complexity of programmatically determining the "from version" when we begin support for 2.12.

Test build #37848 has finished for   PR 6832 at commit cde2f17.

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

Merged build finished. Test PASSed.

Looks good to me. @ScrapCodes any more thoughts?

Yeah, Looks good !

Merged into master


Further improve the crash trace output

After the great work in #1283 to improve the crash trace and make it signal-safe, I realized that by looking at crash trace in the log alone, it could be difficult to know some details I think would be helpful:
o)   which process is crashing
o)   whether the same one is crashing over and over or potentially a set of different processes…. or
o)   if the crashtrace happened weeks ago or recently.
My proposal is to add at a minimum the process name, pid, and integer time (since time() is signal-safe and we already have the ability to print it even in an exception handler) to scopeSignalHandlerBacktrace().

Closing manually, since it's been merged into release/1.3


Bump the scalding version

Might aswell filter it through, make sure its pushed around and tests pass...

:+1:


secure_spoke_virtual_network_resource_ids doesn't work without additional config outside the module

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Versions

terraform: 1.3.8
azure provider:  3.44.1
module: 3.1.2
Description
Describe the bug
The option for secure_spoke_virtual_network_resource_ids does not work if the steps described in this issue is not followed:

https://github.com/Azure/terraform-azurerm-caf-enterprise-scale/issues/491#issuecomment-1353390545
https://github.com/nthewara/tf-secured-virtualhub

This can give a false expectation from people trying implement this, and believe the vnets are secured.
Also, I did not find any information about this in the docs, but I found it when searching through closed issues. The post in the issue above should be implemented in the docs.

Hi @tlfzhylj
Have you seen the accompanying Azure/terraform-azurerm-lz-vending module? This has just released the capability to configure these settings for spoke vnets.
You can use this module with existing subscriptions as well.
Therefore, what do we need to be able to set in this module to correctly configure the Azure Firewall?

When I configure the following outside of the module, I am able to secure internet traffic. If this is not set, the vnets configured in secure_spoke_virtual_network_resource_ids internet traffic will not be secured.
resource "azurerm_virtual_hub_route_table_route" "secure_traffic" {
  name           = "all_traffic" # Name needs to be 'all_traffic' to reflect the configuration in Azure Portal. Ref. https://learn.microsoft.com/en-us/azure/firewall-manager/secure-cloud-network-powershell#deploy-azure-firewall-and-configure-custom-routing
  route_table_id = "${values(module.caf-enterprise-scale.azurerm_virtual_hub["virtual_wan"])[0].id}/hubRouteTables/defaultRouteTable"

  destinations_type = "CIDR"
  destinations      = ["<IP_ADDRESS>/0", "<IP_ADDRESS>/8", "<IP_ADDRESS>/12", "<IP_ADDRESS>/16"]

  next_hop_type = "ResourceId"
  next_hop      = values(module.caf-enterprise-scale.azurerm_firewall["virtual_wan"])[0].id

  provider = azurerm.connectivity
}

As shown in this repo, you can also have other configurations, based on your needs.

Another question, which is related:
Private traffic is set to unsecured when peering a spoke with the hub. Is this by design.
Is this by design?
Here's a screenshot to show you what I mean (taken from a Stackoverflow post):

I tried the ALZ vending module now, and see how I can fix my last question regarding securing private traffic.
Propogated route table needs to be set to none like this under the resource azurerm_virtual_hub_connection.
propagated_route_table {
      route_table_ids = ["${values(module.caf-enterprise-scale.azurerm_virtual_hub["virtual_wan"])[0].id}/hubRouteTables/noneRouteTable"]
      labels = ["none"]
    }

I think I will configure peering outside the module.

Anyhow, I still think the bug this issue originally was about needs to either be documented or fixed in code. I may be wrong, and something I don't understand like I tried to explain here: https://github.com/Azure/terraform-azurerm-caf-enterprise-scale/issues/632#issuecomment-1451547661

I tried the ALZ vending module now, and see how I can fix my last question regarding securing private traffic.
Propogated route table needs to be set to none like this under the resource azurerm_virtual_hub_connection.

propagated_route_table {

      route_table_ids = ["${values(module.caf-enterprise-scale.azurerm_virtual_hub["virtual_wan"])[0].id}/hubRouteTables/noneRouteTable"]

      labels = ["none"]

    }

I think I will configure peering outside the module.

I recommend you use lz-vending to configure the vhub connection. You can then set this route table association there.
The only thing that needs to be done is to ensure that the route tables exist in the vhub.

Anyhow, I still think the bug this issue originally was about needs to either be documented or fixed in code. I may be wrong, and something I don't understand like I tried to explain here: https://github.com/Azure/terraform-azurerm-caf-enterprise-scale/issues/632#issuecomment-1451547661

I agree this should be better documented, or placed into the module. Thanks for the feedback!

Hi @MCrank
You're right. Anything more complex should be managed outside this module.
The lz-vending module can work with existing subscriptions and supports much more complex vwan connection configurations.

Can we enable this feature for the traditional hub vnet, as we are not using Virtual WAN network resources?


Use vue/cli as a boilerplate

They have great hot reloading out of the box, it should increase development speed.

why would this increase development speed? whats the issues with the current way. Please elaborate.
Also maybe @kenodressel help with a decision. For reference our work in the boilerplate: https://github.com/kenodressel/aepp-boilerplate/pull/7

Hot reloading allows applying changes of particular components without reloading the whole page. It currently is not enabled in this repo: any small change of a component leads to page reloading. This is more time consuming when the page depends on remote data or some login flow.
I have compared the time that needed to make a change in this app and in the Base aepp (it uses @vue/cli) on my computer. In this app, I was adding random text after title in TipRecordComponent looking at the root page, and in the Base app, I was doing the same in ListItemTransaction looking at transaction list. Time was measured manually between pressing ctrl+s in the editor and showing the necessary changes. I have repeated measurements several times. So, for the Base app it takes about 2 seconds, and for this app about 8 seconds.

I agree that hot-reloading is a nice feature but the question is
a) is the effort to switch this over to vue-cli worth the time we save?
b) is it possible  to integrate hot-reloading in the current boilerplate (also could be helpful for the aepp-boilerplate repo)

is the effort to switch this over to vue-cli worth the time we save?

I think so. Today I have tried to build using @vue/cli (#124) and I didn't face any significant problems while migration.

is it possible to integrate hot-reloading in the current boilerplate

For sure it is possible, but it would be more efficient to use webpack configs maintained by vue community.


fix browser, browser context and page links

remove forward slash from the of browser, browser context and page links to avoid opining "page not found" page

Thanks for pointing this out! The way the chapter branches work make this tricky. I updated the code, so I'm going to close this pull request.


Unable to read NUnit 3 TestResults.xml files

VSTS will not read XML file output from NUnit 3. This is crucial for dotnet core support, where the VSTS test runner itself doesn't work.
We have no viable solution here for visibility of build failure.

Same issue as #2468. We are working on adding the support.
Thanks!

Thanks @atinb - I hadn't found that before - I'll follow it.
Get Outlook for Androidhttps://aka.ms/ghei36

From: Atin Bansal<EMAIL_ADDRESS>Sent: Tuesday, October 18, 2016 8:30:51 AM
To: Microsoft/vsts-tasks
Cc: Keith Jackson; Author
Subject: Re: [Microsoft/vsts-tasks] Unable to read NUnit 3 TestResults.xml files (#2887)
Closed #2887https://github.com/Microsoft/vsts-tasks/issues/2887.

You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/vsts-tasks/issues/2887#event-827042761, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABvhYT-2ZHn1iK2iUBLNW-VRYLZBHZolks5q1HWrgaJpZM4KY5fW.


docs: minor documentation fixes

Codecov Report

Merging #136 (5ec25c7) into main (298c369) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #136   +/-   ##
=======================================
  Coverage   71.06%   71.06%
=======================================
  Files          12       12
  Lines        1258     1258
=======================================
  Hits          894      894
  Misses        364      364

Impacted Files
Coverage Δ

clippy-sarif/src/bin.rs
93.75% <ø> (ø)

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 436c29c...5ec25c7. Read the comment docs.


[Enhancement] Add Installation Manual to README

There is a very simple way to install a working release binary of the application on one's machine using Cargo.
Shall I add a corresponding information to the README?

Hmm, I'm actually not aware of that, how does that work?

With Cargo, you are allowed install Rust crates with binary targets locally on your machine, typically in ~/.cargo/bin/.  For instance, you can create an offline HTML version of the latest Rust book with the crate mdbook.  You install this crate with the following command:
cargo install mdbook

See for https://github.com/rust-lang/book for details.
This not only works with crates on crates.io but also with public Git projects and even local projects.  To install the latest stable version of commit-analyzer, just run:
cargo install --git https://github.com/wert007/commit-analyzer

However, installation is one thing, updating another one.  Since mdbook has versions but commit-analyzer does not, updating the latter one becomes slightly more difficult.  Updating a crate with versions just requires you to install it again using the same command as you used to install it.  Cargo will reject to update if you would download the same version again.  But for projects without versions, just as commit-analyzer, you need to overwrite the current version.  You can literally enforce that:
cargo install --force --git https://github.com/wert007/commit-analyzer

I would like to suggest to add these information to the README since it adds more comfort to use the application and to outline the required additional "effort" to update the installed version.  This might help other people to install and experience the application themselves.
There are projects which have the same installation procedure, such as https://github.com/curlpipe/ox, a terminal text editor.

Basically, this implies a relationship of this issue to #13.

Yeah, that sounds good. 👍


Apply spring problem details change

JIRA link (if applicable)
No ticket
Change description
Deprectae zalando problem details API in favour of spring 3 problem details
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ ] No

See tag https://github.com/hmcts/darts-api/tree/Spring3ProblemDetails


FancyZones Custom Zone Set Up Across 2 Displays Does Not Hold to Specific Display

Microsoft PowerToys version
0.78.0
Installation method
GitHub
Running as admin
Yes
Area(s) with issue?
FancyZones
Steps to reproduce
I have two 28inch displays that are set a different custom set up for FancyZones for each.  Every morning, the zones are both the same (4x4 quadrant) and I have to go into PowerToys each day and re assign to designated display.  This happens every day.,
✔ Expected Behavior
I set a custom zone for designated monitor and I don't have to modify this until it's changed by me manually again.
❌ Actual Behavior
I have two 28inch displays that are set a different custom set up for FancyZones for each.  Every morning, the zones are both the same (4x4 quadrant) and I have to go into PowerToys each day and re assign to designated display.  This happens every day.,
Other Software
No response

I have a similar experience to both @MontanaIrish and more closely to how @madelynnw described it. I have a newish machine with integrated Intel graphics card, and it has always been on W11, and have two matching monitors. My FancyZone layouts get swapped or mirrored after wake up from sleep. This was not the experience I had on my old machine with W10. I honestly forget if it has always been misbehaving from first install on this new W11 machine or if was working as expected (set it and forget it) in the beginning and now is faulty.
If I set my left (primary / "3") screen to a grid of 4 FZs, and my right (secondary / "2") screen to a very customized "dashboard" layout in the morning, when I wake it back up after going to lunch or stepping away for a bit, I will have them both set as the "dashboard" layout or sometime then will flip-flop and the grid is on "2" and the dashboard is on "3". This is pretty consistent after wake, whether it is for 30 minutes or overnight (I do not turn off the desktop overnight).
"3" and "2" is referring to how Windows identifies them in the Display Settings pane of Windows Settings. I have a third monitor plugged in that is marked as "disconnect this display" in the layout section for mirroring or extending. I notice when I wake my computer, that Screen 2 wakes up itself a bit before Screen 3, based on when the On Screen Display of the monitor itself appears for each (it shows the connection interface that is active - HDMI).
Windows 11 Pro - fully updated
Intel NUC13 - integrated graphics
Admin user
Admin PowerToys - fully updated, has been happening for a number of versions now

我也遇到了同样的问题，双显示器，每个屏幕设置了布局，并且应用程序设置在对应的网格内，锁屏登录，或者第二天早上登录后，发现副屏的应用程序都跑到了主屏上，需要重新拖拽到副屏上，我用的windows10.


[BACKLOG-7972] - Hadoop File Output: Hadoop Clusters dropdown doesn't…

… preserve selected cluster after reopen a transformation
return api in TextFileInputMeta to have metastore for loadSource method, needed for HadoopFileInputMeta, adaptate interface to use StringBuilder instead of StringBuffer as in engine, write tests to fail on api changed in engine again
update version for jersey to 1.19.1 due to incompatibility jersey before 1.19 with java 1.8(was reproduced with fail )

Base build failed with return code 1

@dkincade @hudak could you take a view?
could you please send logs with reasons of build failure

Base build failed with return code 1

This is failing because it can not find the source folder in the assembly module. This is a known issue with wingman. I am going to include the pull request.


Fix README.md: filename extension should be json instead of js

Description
Fix README.md. The example in the README.md is specifying the filename as bundlesize.config.js but it should be bundlesize.config.json.
Please review and merge. Thanks~!

Looks like it's correct though https://github.com/siddharthkp/bundlesize/blob/86b58c8c57316ab1c0a60e17251a66007062a011/src/config.js#L9

Thanks for the quick review~!
Yes, the acceptable configuration paths are package.json and bundlesize.config.json.  Currently, the readme is specifying the file extension of bundlesize.config file as .js  which is incorrect.
- 2. `bundlesize.config.js`
+ 2. `bundlesize.config.json`

Hope my understanding is correct 🤔💭

Yes, you're right. README.md is actually specifying the filename as bundlesize.config.js. I think we should merge this PR.

Good catch! Thanks!

oops, sorry for the confusion


Access to an undefined property App\Models\User::$name.

Larastan Version: 0.6.11
--level used: 1

Description
I recently updated to Laravel 8 and while I believe this was working after the update, I'm not sure if it was Laravel 8 or Larastan that changed between this passing and now not passing.  When I run:
./vendor/bin/phpstan analyse -l 1

I'm getting numerous warnings for model classes such as:
 ------ -----------------------------------------------------------------
  Line   Models/Thread.php
 ------ -----------------------------------------------------------------
  116    Access to an undefined property App\Models\Thread::$created_at.
  244    Access to an undefined property App\Models\Thread::$created_by.
  259    Access to an undefined property App\Models\Thread::$created_at.
  397    Access to an undefined property App\Models\Thread::$name.
 ------ -----------------------------------------------------------------

  Line   Models/User.php
 ------ ---------------------------------------------------------
  216    Access to an undefined property App\Models\User::$name.
  219    Access to an undefined property App\Models\User::$name.

Not sure how this normally checks, but I haven't changed much in these classes in a while.
Laravel code where the issue was found
User class for reference.

<?php

namespace App\Models;

use App\Models\UserStatus;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use Illuminate\Auth\Authenticatable;
use Illuminate\Auth\MustVerifyEmail;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
use Illuminate\Contracts\Auth\MustVerifyEmail as MustVerifyEmailContract;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Notifications\Notifiable;

/**
 * @property mixed $id
 */
class User extends Model implements AuthenticatableContract, AuthorizableContract, CanResetPasswordContract, MustVerifyEmailContract
{
    use Authenticatable;
    use Authorizable;
    use CanResetPassword;
    use MustVerifyEmail;
    use Notifiable;
    use HasFactory;

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'users';

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = ['name', 'email', 'password', 'user_status_id'];

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
     */
    protected $hidden = ['password', 'remember_token'];

    /**
     * A how many events the user created.
     */
    public function getEventCountAttribute()
    {
        return $this->hasMany(Event::class, 'created_by')->count();
    }

    /**
     * A user can have many series.
     */
    public function series()
    {
        return $this->hasMany(Series::class);
    }

    /**
     * A user can have much activity.
     */
    public function activity()
    {
        return $this->hasMany(Activity::class);
    }

    /**
     * A user can have many comments.
     */
    public function comments()
    {
        return $this->hasMany(Comment::class);
    }

    /**
     * A user can have one profile().
     */
    public function profile(): HasOne
    {
        return $this->hasOne(Profile::class);
    }

    /**
     * A user has a status.
     */
    public function status(): HasOne
    {
        return $this->hasOne(UserStatus::class, 'id', 'user_status_id');
    }

    /**
     * Return the primary photo for this user.
     *
     * @return Photo $photo
     *
     **/
    public function getPrimaryPhoto()
    {
        // get a list of events that start on the passed date
        $primary = $this->photos()->where('photos.is_primary', '=', '1')->first();

        return $primary;
    }

    /**
     * Get all of the events photos.
     */
    public function photos()
    {
        return $this->belongsToMany(Photo::class)->withTimestamps();
    }

    /**
     * Return the count of events the user is attending.
     */
    public function getAttendingCountAttribute()
    {
        $responses = $this->eventResponses()->get();
        $responses->filter(function ($e) {
            return 'Attending' == $e->responseType->name;
        });

        return count($responses);
    }

    /**
     * A user can have many event responses.
     */
    public function eventResponses()
    {
        return $this->hasMany(EventResponse::class);
    }

    /**
     * Return the count of entities the user is following.
     */
    public function getEntitiesFollowingCountAttribute()
    {
        $responses = $this->follows()->get();
        $responses->filter(function ($e) {
            return 'entity' == $e->object_type;
        });

        return count($responses);
    }

    /**
     * Return the count of tags the user is following.
     */
    public function getTagsFollowingCountAttribute()
    {
        $responses = $this->follows()->get();
        $responses->filter(function ($e) {
            return 'tag' == $e->object_type;
        });

        return count($responses);
    }

    /**
     * Return the count of series the user is following.
     */
    public function getSeriesFollowingCountAttribute()
    {
        $responses = $this->follows()->get();
        $responses->filter(function ($e) {
            return 'series' == $e->object_type;
        });

        return count($responses);
    }

    /**
     * Return the count of threads the user is following.
     */
    public function getThreadsFollowingCountAttribute()
    {
        $responses = $this->follows()->get();
        $responses->filter(function ($e) {
            return 'thread' == $e->object_type;
        });

        return count($responses);
    }

    /**
     * A user can follow many objects.
     */
    public function follows()
    {
        return $this->hasMany(Follow::class);
    }

    /**
     * An profile is owned by a user.
     *
     * @ return \Illuminate\Database\Eloquent\Relations\BelongsTo
     */
    public function getFullNameAttribute()
    {
        if ($profile = $this->profile) {
            $full = $profile->first_name . ' ' . $profile->last_name;

            return strlen($full) > 1 ? $full : $this->name; //$profile->first_name.' '.$profile->last_name;
        }

        return $this->name;
    }

    /**
     * Return a list of events the user is attending in the future.
     */
    public function getAttendingFuture()
    {
        $events = Event::join('event_responses', 'events.id', '=', 'event_responses.event_id')
            ->join('response_types', 'event_responses.response_type_id', '=', 'response_types.id')
            ->where('response_types.name', '=', 'Attending')
            ->where('event_responses.user_id', '=', $this->id)
            ->where('start_at', '>=', Carbon::today()->startOfDay())
            ->orderBy('events.start_at', 'asc')
            ->select('events.*')
            ->get();

        return $events;
    }

    /**
     * Return a list of events the user is attending in the future.
     */
    public function getAttendingToday()
    {
        $events = Event::join('event_responses', 'events.id', '=', 'event_responses.event_id')
            ->join('response_types', 'event_responses.response_type_id', '=', 'response_types.id')
            ->where('response_types.name', '=', 'Attending')
            ->where('event_responses.user_id', '=', $this->id)
            ->where('start_at', '>=', Carbon::today()->startOfDay())
            ->where('start_at', '<', Carbon::tomorrow()->startOfDay())
            ->orderBy('events.start_at', 'asc')
            ->select('events.*')
            ->get();

        return $events;
    }

    /**
     * Return a list of events the user is attending.
     */
    public function getAttending()
    {
        $events = Event::join('event_responses', 'events.id', '=', 'event_responses.event_id')
            ->join('response_types', 'event_responses.response_type_id', '=', 'response_types.id')
            ->where('response_types.name', '=', 'Attending')
            ->where('event_responses.user_id', '=', $this->id)
            ->orderBy('events.start_at', 'desc')
            ->select('events.*');

        return $events;
    }

    /**
     * Return a list of entities the user is following.
     */
    public function getEntitiesFollowing()
    {
        $entities = Entity::join('follows', 'entities.id', '=', 'follows.object_id')
            ->where('follows.object_type', '=', 'entity')
            ->where('follows.user_id', '=', $this->id)
            ->orderBy('follows.created_at', 'desc')
            ->select('entities.*')
            ->get();

        return $entities;
    }

    /**
     * Return a list of tags the user is following.
     */
    public function getTagsFollowing()
    {
        $tags = Tag::join('follows', 'tags.id', '=', 'follows.object_id')
            ->where('follows.object_type', '=', 'tag')
            ->where('follows.user_id', '=', $this->id)
            ->orderBy('tags.name', 'asc')
            ->select('tags.*')
            ->get();

        return $tags;
    }

    /**
     * Return a list of series the user is following.
     */
    public function getSeriesFollowing()
    {
        $series = Series::join('follows', 'series.id', '=', 'follows.object_id')
            ->where('follows.object_type', '=', 'series')
            ->where('follows.user_id', '=', $this->id)
            ->orderBy('follows.created_at', 'desc')
            ->select('series.*')
            ->get();

        return $series;
    }

    /**
     * Return a list of threads the user is following.
     */
    public function getThreadsFollowing()
    {
        $threads = Thread::join('follows', 'threads.id', '=', 'follows.object_id')
            ->where('follows.object_type', '=', 'thread')
            ->where('follows.user_id', '=', $this->id)
            ->orderBy('follows.created_at', 'desc')
            ->select('threads.*')
            ->get();

        return $threads;
    }

    /**
     * Events that were created by the user.
     *
     * @return BelongsToMany
     */
    public function createdEvents()
    {
        $events = $this->events()->where('created_at', '=', Auth::user())->orderBy('start_at', 'ASC')->get();

        return $events;
    }

    /**
     * A user can have many events.
     */
    public function events()
    {
        return $this->hasMany(Event::class, 'created_by')->orderBy('start_at', 'DESC');
    }

    public function addPhoto(Photo $photo)
    {
        return $this->photos()->attach($photo->id);
    }

    public function hasGroup($group)
    {
        if (is_string($group)) {
            return $this->groups->contains('name', $group);
        }

        return (bool) $group->intersect($this->groups)->count();
    }

    public function assignGroup($group)
    {
        return $this->groups()->save(
            Group::whereName($group)->firstOrFail()
        );
    }

    /**
     * @return BelongsToMany
     */
    public function groups()
    {
        return $this->belongsToMany(Group::class);
    }

    /**
     * Fetch the last published post for the user.
     *
     * @return HasOne
     */
    public function lastPost()
    {
        return $this->hasOne(Post::class, 'created_by')->latest();
    }

    /**
     * Fetch the login date for the user.
     *
     * @return HasOne
     */
    public function lastActivity()
    {
        return $this->hasOne(Activity::class, 'user_id')->latest();
    }

    /**
     * Check that the user is active.
     *
     * @ return boolean
     */
    public function getIsActiveAttribute()
    {
        if ($this->status && 'Active' === $this->status->name) {
            return 1;
        }

        return 0;
    }

    /**
     * Return the feed of user activity.
     *
     * @param $user
     * @param int $take
     *
     * @return array
     */
    public function feed($user, $take = 50)
    {
        return static::where('user_id', $user->id)
            ->latest()
            ->with('object')
            ->take($take)
            ->get()
            ->groupBy(function ($activity) {
                return $activity->created_at->format('Y-m-d');
            });
    }

    /**
     * Get a list of group ids associated with the user.
     *
     * @ return \Illuminate\Database\Eloquent\Relations\BelongsToMany
     */
    public function getGroupListAttribute()
    {
        return $this->groups->pluck('id')->all();
    }

}

Hello Geoff! Larastan has improved :) Please make sure your migrations are correctly written.
More info: https://github.com/nunomaduro/larastan/blob/master/docs/custom-config-paramaters.md#databasemigrationspath

I think I see the issue - I no longer have any migrations.   I used the new migrations squash feature in Laravel 8 to turn my initial database into database/schema/mysql-schema.dump, and eliminated the migrations in my project.
https://laravel.com/docs/8.x/migrations#squashing-migrations

@geoff-maddock In that case there is nothing we can do. You can use laravel-ide-helper to generate docblock for your model properties, or write them to a file and that file as a stub.

Thanks for the quick responses!  This points me in the right direction.
On Tue, Dec 29, 2020 at 3:12 AM Can Vural<EMAIL_ADDRESS>wrote:

@geoff-maddock https://github.com/geoff-maddock In that case there is
nothing we can do. You can use laravel-ide-helper to generate docblock
for your model properties, or write them to a file and that file as a stub.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nunomaduro/larastan/issues/746#issuecomment-751989890,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAANRRN2X6EUYBYB2K63BW3SXGFOTANCNFSM4VLY4ZGA
.

Not sure if / how you solved this, but as a workaround I did the following:

installed the kitloong/laravel-migrations-generator package

added the following to phpstan.neon:
  databaseMigrationsPath:
      - storage/larastan

added the following to my .zshrc:
  alias phpstan="mkdir storage/larastan && php artisan migrate:generate --path=storage/larastan --no-interaction --quiet && ./vendor/bin/phpstan analyse ; rm -r storage/larastan"

This just generates migrations in a temp directory, runs phpstan using the migrations from the file, and then removes the directory. Hacky but works!


Replaces http wasm middleware with more flexible implementation

Thank you for helping make the Dapr documentation better!
Please follow this checklist before submitting:

[x] Commits are signed with Developer Certificate of Origin (DCO - learn more)
[x] Read the contribution guide
[x] Commands include options for Linux, MacOS, and Windows within codetabs
[x] New file and folder names are globally unique
[x] Page references use shortcodes instead of markdown or URL links
[x] Images use HTML style and have alternative text
[x] Places where multiple code/command options are given have codetabs

In addition, please fill out the following to help reviewers understand this pull request:
Description
Currently, http wasm middleware uses a proof of concept simple rewrite function. This replaces it with a faster executing and more complete middleware: http-wasm
Issue reference
This adds the new middleware, and after that, it has to be linked in dapr/dapr https://github.com/dapr/components-contrib/pull/2239

@yaron2 should this be 1.9 or something else? I'm realizing we are already some patches into 1.9 ...

@yaron2 should this be 1.9 or something else? I'm realizing we are already some patches into 1.9 ...

This should target 1.10

ok rebased for v1.10

great job @hhunter-ms flows a lot better now with better experience.

here's a spike of a sample https://github.com/dapr/samples/pull/122

@codefromthecrypt - It would be good to add a link to the Wasm sample in the sample repo at the end, once this is checked in. This PR https://github.com/dapr/samples/pull/122/files

I think my action item here is to get the sample merged, then update the link then this is unblocked. lemme do this before I forget again

@msfussell so I made the changes I think to that sample repo. once that's merged I think we are good to complete this one. probably the holidays got in the way ya?

please re-open this

@codefromthecrypt resolve the conflict and we'll merge this

@yaron2 will do now!

@yaron2 as this is in v1.10 I rebased it onto that branch


Remove the id field from config.json

See https://github.com/api3dao/airnode/issues/411
After we remove the id field from config.json, we need to also remove it from the /next docs

This is done recently
https://github.com/api3dao/airnode/pull/414

So what is the unique identifier now, ois.title? If so can it be changed later. I saw a posting @bbenligiray made taking about it.

The id has been removed from several docs. It appears to still be in the receipts.json file example that goes with the airnode-starter. A new issue has been created for this as the airnode-starter repo is in need of an update given the ongoing Airnode changes for 0.1.0. See #136


Remove subkey

This pr removed subKey option from createProvider.
The subKey isn't really useful because connect components doesn't know the custom subscription key.
And according to discussion #944 , removing the subKey makes things simpler.

Remove subkey
Add tests to Provider

Imma just merge these in. Thanks!


Set forward vector

Being able to select the forward vector (without adding rotation to the matrices), would be helpful for engines that have unconventional forward vectors (ie. UE4s X-forward)
Thanks.

This is against glTF 2.0 specification:

glTF uses a right-handed coordinate system, that is, the cross product of +X and +Y yields +Z. glTF defines +Y as up. The front of a glTF asset faces +Z.


beginning of xarray dataformat conversion method

I'm thinking we can probably drop the DataFormat class (and associated file) completely if we just have two entry points in the DataSet class:
def import_from_xarray(xr):
    # do the conversion we discussed here

def export_to_xarray() -> xr:
    # reversses the conversion

Obviously, a lot of code cleanup also needs to happen -- remove dead code and working notes and update the comments

Codecov Report

Merging #262 (c5b8006) into develop (04e95c6) will increase coverage by 0.35%.
The diff coverage is 97.46%.

@@             Coverage Diff             @@
##           develop     #262      +/-   ##
===========================================
+ Coverage    80.19%   80.54%   +0.35%
===========================================
  Files           55       57       +2
  Lines         3443     3521      +78
===========================================
+ Hits          2761     2836      +75
- Misses         682      685       +3

Impacted Files
Coverage Δ

src/python/module/smartredis/dataset_utils.py
97.36% <97.36%> (ø)

src/python/module/smartredis/__init__.py
100.00% <100.00%> (ø)

src/python/module/smartredis/dataset.py
100.00% <100.00%> (ø)

src/python/module/smartredis/util.py
94.59% <100.00%> (ø)

src/cpp/redisserver.cpp
90.90% <0.00%> (-3.76%)
:arrow_down:

src/cpp/threadpool.cpp
72.34% <0.00%> (-2.13%)
:arrow_down:

src/cpp/redis.cpp
54.41% <0.00%> (-0.13%)
:arrow_down:

include/dbnode.h
33.33% <0.00%> (ø)

include/redisserver.h
0.00% <0.00%> (ø)

include/nonkeyedcommand.h
100.00% <0.00%> (ø)

... and 5 more

@juliaputko Thanks for all of the hard work on this.  It is really coming together nicely.  Just as another point of procedure before merging -- let's make sure to update the changelog to document the addition of these methods.

Really well done @juliaputko. Thanks for all the hard work.


boards add camera_capture everywhere and try to keep in sync

This is harmless and made it through CI. Merging.


process_spec fails because of missing /usr/bin/touch

tested on alpine linux: 3.5, crystal: 0.20.5
my patch:
diff --git a/spec/std/process_spec.cr b/spec/std/process_spec.cr
index 31b530f..4ee1e8f 100644
--- a/spec/std/process_spec.cr
+++ b/spec/std/process_spec.cr
@@ -178,7 +178,7 @@ describe Process do
     File.exists?(tmpfile.path).should be_false

     fork = Process.fork do
-      Process.exec("/usr/bin/touch", {tmpfile.path})
+      Process.exec("/usr/bin/env", {"touch", tmpfile.path})
     end
     fork.wait

Where is the touch utility located on alpine linux?  (I'm just curious).
Is in /bin/touch?

exactly!

Instead of using the touch binary, shouldn't we use direct syscall to replicate the same  effect?

@Bew78LesellB because the spec is trying to test running binaries...

Oh my bad...  Sorry about that..
I'm make sure to read the contexte next time!

does crystal have a built-in "touch" method anywhere? Sorry to ask here, google just sent me straight here when googling "crystal lang touch" :)

@rdp nope, not yet ;)

@Sija @rdp now with File.utime it could be possible to implement, pull requests are welcome :wink:

@luislavena with pleasure, see #4069 😉


ISPN-5721 SNI support for Hotrod server

https://issues.jboss.org/browse/ISPN-5721
This PR contains only core part of the implementation. There are 2 missing bits:

Netty release with SNI implementation and proper bridge between SSLContext (from java.net) and JdkSslContext (from Netty).
Hotrod server XML configuration (details will be sent to infinispan-dev mailing list)

@vjuranek @tristantarrant @galderz Could you please have a look at it?

Am I missing something or server always uses * as domain name?

This was the POC and yes, * is the default domain.
Please have a look at it here: https://github.com/infinispan/infinispan/pull/4255


Fix generated package.json files

Closes https://github.com/janosh/svicons/issues/4

Thanks for the quick fix! 👍

Can confirm it fixes the issues

@effen1337 Fix released in v0.1.8.


Add in nullability annotations to getters and setters in `AbstractArc…

…hiveTask`
issue https://github.com/gradle/kotlin-dsl/issues/1206
Signed-off-by: Mike Kobit<EMAIL_ADDRESS>Context
Better kotlin-dsl IDE support, and will fail in the future if kotlin-dsl
Contributor Checklist

[x] Review Contribution Guidelines
[x] Make sure that all commits are signed off to indicate that you agree to the terms of Developer Certificate of Origin.
[x] Check "Allow edit from maintainers" option in pull request so that additional changes can be pushed by Gradle team
[ ] Provide integration tests (under <subproject>/src/integTest) to verify changes from a user perspective
[ ] Provide unit tests (under <subproject>/src/test) to verify logic
[ ] Update User Guide, DSL Reference, and Javadoc for public-facing changes
[ ] Ensure that tests pass locally: ./gradlew <changed-subproject>:check

Gradle Core Team Checklist

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation
[ ] Recognize contributor in release notes

I already did most of this in this PR: https://github.com/gradle/gradle/pull/7435

Oh nice! That one adds in some nice Property/`Provider integration, so I'll let the Gradle team close this one out in favor of yours. It looks like yours is on track to get merged, but I'll leave this open until they resolve yours.

Looks like this will be resolved in 5.1 from #7435 - closing

Thanks @mkobit, I meant to come back around to this one and close it.


Switch to a v3 onion address

It would be great if Keybase would be reachable using a new v3 onion addresses.
See: https://blog.torproject.org/tors-fall-harvest-next-generation-onion-services

This has been done sometime, as  the bottom of Keybase.io says:

Keybase, 2019 | Available within Tor at http://keybase5wmilwokqirssclfnsqrjdsi7jdir5wy7y7iu3tanwmtp6oid.onion

(ref https://github.com/keybase/keybase-issues/issues/482)

@Mikaela Thanks for making me aware that this is now fixed:+1:


Only create webpack.config for server, omit client

According to the docs, it looks like I have to pass a webpack.config that consists of both "client" and "server". Is there any way to pass the server config only, and omit the client (client is not needed at this moment)?

@jmca I can see that could be useful, I'd be happy to accept a PR supporting a single server bundle.


Dit this library support for JSON serialization or Hessian serialization?

Dit this library support for JSON serialization or Hessian serialization?
Another question is, did this library can communicate with sofa-rpc in Java?

:clap:

only protobuf serialization is supported is this library.
Yes, if the server provides BOLT+protobuf interfaces.


Update collection.yml

Hey, this is a neat collection!
And super cool you’ve already included one of my tweets :heart:
Here’s another one that I think people might enjoy :smile:

Thank you!


Fix "TypeError: can't compare datetime.datetime to datetime.time"

In TimeField if provided default is TZ aware it is being converted to datetime.time instance while in any other case it is already datetime.datetime. This leads to "TypeError: can't compare datetime.datetime to datetime.time".
Affects 1.9.x, 1.8.x, 1.7.x.

Thanks for the patch. A Trac ticket and a regression test are also required.

@timgraham sorry. I have no time for the rest at the moment. Will try to find some in the near future.

Okay, please open a new PR at that time.

That is awesome! Thanks for handling bug reports in this amazing way!


bump: sharp to ^0.32.2

merging this anytime soon? this could fix issue #576 Because right now I'm unable to deploy because it won't pull v0.30.5


Complete WorldState.Data models for the worldstate parser.

All of these models are returned by the worldstate api at api.warframestat.us, so we'll need to make C# models for every item returned to be used when deserializing from the JSON results.

[x] News
[x] Events
[x] Alerts
[x] Sorties
[x] Syndicate Missions
[x] Fissures
[x] Global Upgrades
[x] Flash Sales
[ ] Invasions
[ ] Dark Sectors (don't think these are used anymore?)
[ ] Void Trader
[ ] Daily Deals
[ ] Simaris
[ ] Conclave Challenges
[ ] Persistent Enemies
[ ] ICycle interface for cycles like Earth, Cetus and Orb Vallis.
[ ] Earth Cycle
[ ] Cetus Cycle
[ ] Orb Vallis Cycle. Doesn't look like it's in the docs, but iirc it's been added to the api.
[ ] Construction Progress for Fomorians etc.

If I missed anything please let me know.

Alerts should be done, created AlertMission and MissionReward. However it seems like the worldstate doesn't re-use models often between each route, only with a couple of exceptions, is there any reason for that?

Ah alright, well that's not too bad.

I've been pulling as many common fields into the base object, but it's pretty varied. I need to go through and clean up some of the responses like for Twitter. At some point, I'd like to write it in bicubic routes similar to what Nexus stats uses for their API that makes their docs largely auto-generated.

It's not a big problem, I'm just surprised DE didn't think about making their API cleaner in the first place.

Unable to do events for now since the docs say array of object and the api returns an empty array.

I'll also make an interface for cycles.

Sorties are done.

oh, i have actual swagger docs now: swagger

this codegen might make it go a bit faster.


current meter reading display not very good

Could we either show mA or always show 3 decimal points for the DC Current Measurement service? Right now it's really confusing as the length of the display changes.

We could move the service to use mA instead of A?

The module should implement the reading_resolution register to give a hint to the UI about the amount of significant numbers to show after the decimal point.


fix linting

Using airbnb-base instead of the full airbnb (which includes react)
Removed all custom rules, except for the import one
Added sub-config in test folder
simplified package script (.bin is added to the path when running npm ...)
removed the try/catch from the build script, the .catch will already catch that error

Looks awesome! Let me know what your thoughts are on the try/catch block on the build script.


fix indent in active_record/truncation.rb

fix indent and unnecessary space in truncation.rb

@HaiTo Thanks!


Fixes #114.

Skip checking for tslint path when re-using CLI tslint output.

Coverage increased (+0.01%) to 92.093% when pulling e518ade3559fa69c663296ba245facbb3c635773 on SoftwareBuildService:bugfix/tslint-path into 21d9b0475245399448d185e17904ba7021dc0a48 on Pablissimo:master.

Thanks for this, I can probably cut a 1.0.1 release with it in but presumably you're running your fixed build of it just now and can wait for a week or two?

It is just one issue keeping us from deploying the plugin. I will open another issue with accompanying PR (hopefully tomorrow), so there is no need to hurry.


Site should be updated to no-padding layout

Except for: all landing pages (including providers' show), surveys, tools

[x] Dashboard
[x] About page
[x] Steering committee
[x] Advisory council
[x] Partners
[x] FAQs
[x] Sleep Apnea
[x] PAP Devices
[x] Rank the Research
[x] Community
[x] Providers index
[x] Forums
[x] Settings

:+1:


segfault when using a nested flatbuffer

First off -- this is probably a foolish error on my part.
But here goes. Given:
#include <stdio.h>
#include "qmsg.h"

#undef ns
#define ns(x) FLATBUFFERS_WRAP_NAMESPACE(QQQ, x)

int main()
{
  flatcc_builder_t builder;
  flatcc_builder_init(&builder);

  ns(Msg_start_as_root(&builder));
    ns(Msg_payload_start_as_root(&builder));
      ns(Payload_someId_add(&builder, 456));
    ns(Msg_payload_end_as_root(&builder));
  ns(Msg_end_as_root(&builder));

  size_t bufSize;
  uint8_t *bufPtr = (uint8_t*)flatcc_builder_get_direct_buffer(&builder, &bufSize);
  ns(Msg_table_t) msgTable = ns(Msg_as_root(bufPtr));
  ns(Payload_table_t) nestedPayload = ns(Msg_payload_as_root(msgTable));

  uint32_t someId = ns(Payload_someId(nestedPayload)); // <--- Why a segfault here?
  printf("someId: %u\n", someId);

  return 0;
}

With the following schema:
namespace QQQ;

table Payload
{
  someId:uint;
}

table Msg
{
  payload:[ubyte] (nested_flatbuffer: "Payload");
}

root_type Msg;

I'm segfaulting on the uint32_t someId = ns(Payload_someId(nestedPayload)); line:
bt
#0  0x00000000004008a3 in __flatbuffers_soffset_read_from_pe (p=0x10060b9c0) at flatcc/include/flatcc/flatcc_endian.h:83
#1  0x0000000000400a41 in QQQ_Payload_someId (t=0x10060b9c0) at qmsg.h:943
#2  0x0000000000400fdf in main () at fbs_crash.c:24

Would you happen to know why? I've basically tried to follow this example:
https://github.com/dvidelabs/flatcc/blob/master/test/monster_test/monster_test.c#L1736
And as far as I can see, I have done so. Hopefully I'm missing something silly?
Also, my build script (linux):
FLATBUFFERS_DIR=../flatcc
FLATCC_EXE=../flatcc/bin/flatcc
FLATCC_INCLUDE=$FLATBUFFERS_DIR/include
FLATCC_LIB=$FLATBUFFERS_DIR/lib

$FLATCC_EXE --stdout -a qmsg.fbs > qmsg.h || exit 1
gcc -I$FLATCC_INCLUDE -g -o fbs_crash fbs_crash.c -L$FLATCC_LIB -lflatcc -lflatccrt || exit 1
gdb --args ./fbs_crash

From looking at the generated buffer appears that the nested buffer is not inserting a 4-byte length field for the ubyte vector containing the buffer. It appears this cause by internals failing to detect the buffer is nested. builder.buffer_mark should be non-zero - marking the buffer location of the inner buffer. But from a quick debug it seems buffer.level has an unexpected value.
https://github.com/dvidelabs/flatcc/blob/master/src/runtime/builder.c#L779
I don't dare making a quick fix becaue it might affect other parts. Also I don't know why the test case passes.
Table unions is an alterative approach that could be used as a workaround until I get this sorted.
Some additional hints -
gcc -I$FLATCC_INCLUDE -g -o fbs_crash fbs_crash.c -L$FLATCC_LIB -lflatcc -lflatccrt || exit 1
You likely only need -lflatccrt unless you want to compile schema in you application, and for debug purposes you want -lflatccrt_d because it has runtime assertions for things like failing to close a table - though it wouldn't have helped here because you use the interface correctly.

@mikkelfj Thanks!
I'm actually switching away from a table union toward nested flatbuffers because the table union approach was no longer serving my needs. I'm needing to do a lot of copying around of flatbuffers, storing them in databases, pulling from the the db and reassembling them in different ways, etc. So nesting is kind of a must for my use-case at this point.
If you have any ideas for quick fixes, I'm comfortable using it in my codebase and testing it out.

as a side question:
Can a nested_flatbuffer property be set to a union type (e.g. nested_flatbuffer: "SomeUnion")?

If you have any ideas for quick fixes, I'm comfortable using it in my codebase and testing it out.

Just add a member to the root table table in the schema and set the value before starting the nested buffer - no guarantee. But the problem is that buffer_mark can have a 0 value correctly, even for nested buffers.
A more detailed fix - (guessing) - but I can't do it without impacting performance - but you could try it as workaround:
The buffer_mark MUST have the correct value, so we cannot change it to mark an inner buffer. We also cannot use B->level because a it can vary. The is_top_buffer macro MUST return 1 or 0 because it is hack mapping to flag with value 1.
A possibly quick fix is to add a buffer level counter in the builder in buffer start and buffer end. The check this counter for is_top_buffer. It must return 1 both before and after entering the top-level buffer. So buffer_counter <= 1.
(For posterity - these lines won't remain valid after a fix but)
#define is_top_buffer(B) (B->buffer_mark == 0)
 https://github.com/dvidelabs/flatcc/blob/master/src/runtime/builder.c#L181
B->buffer_mark = B->level == 1 ? 0 : B->emit_start;
https://github.com/dvidelabs/flatcc/blob/master/src/runtime/builder.c#L779

as a side question:
Can a nested_flatbuffer property be set to a union type (e.g. nested_flatbuffer: "SomeUnion")?

A nested buffer doesn't really exists. It is just a ubyte vector with the exception that alignment is different. A nested buffer is an independent binary entity stored in this vector. All the accessors are just sugar around this fact. However, getting the alignment right is tricky, which is what the builder does more than anything else.
As such, this buffer must contain a table and not a union. FlatCC also permits use of structs at as buffer roots, but most other bindings do not not, AFAIK.

Can a nested_flatbuffer property be set to a union type (e.g. nested_flatbuffer: "SomeUnion")?

You can do something else though: there are variant of  start_as_root_with_identifier and as_typed_root. The latter stores the type hash identifier for a given table type. This is in effect a schema independent union assuming you namespace appropriately.
Note that retrieving a buffer will NOT verify the identifier, but you can still retrieve it because it is a standard buffer. Ther is a small risk of type hash conflicts, but a switch statement would then error, and you can change the namespace slightly. Let me know if you need more details.

Just add a member to the root table table in the schema and set the value before starting the nested buffer - no guarantee. But the problem is that buffer_mark can have a 0 value correctly, even for nested buffers.

Assuming you mean:
  ns(Msg_start_as_root(&builder));
    ns(Msg_firstint_add(&builder, 222));
    ns(Msg_payload_start_as_root(&builder));
      ns(Payload_someId_add(&builder, 456));
    ns(Msg_payload_end_as_root(&builder));
  ns(Msg_end_as_root(&builder));

and mod the schema to be like this:
table Msg
{
  firstint:uint;
  payload:[ubyte] (nested_flatbuffer: "Payload");
}

I already tried it, and it still segfaults :(
I'll try the more extensive fix tomorrow... thanks again.

I think it is because the table is still pending on the stack, so emit_start does not move. If you create string, it will likely work - you probably don't even have to store it.

    flatcc_builder_create_string_str(&builder, "");
    ns(Msg_payload_start_as_root(&builder));
      ns(Payload_someId_add(&builder, 456));
    ns(Msg_payload_end_as_root(&builder));
  ns(Msg_end_as_root(&builder));

Seems to work for me.

On nested buffers as unions:
https://github.com/dvidelabs/flatcc#file-and-type-identifiers

The original idea of the type hash was to avoid having a containing table/buffer and detect a message directly based on the type hash.

A made a correction to buffers with type hashes - see EDIT above.

Fixed - it was actually a bit tricky because buffer_mark was used to identify top-level buffers and to ensure that vtables are not shared across different buffers. Therefore I had to introduce nest_id.
Added a test case for this issue in monster_test.

It's working! Thank you!


[SUBS 409] fix failing message converter problem

Also add missing default constructors and fixing a typo

All good.


API Feedback

Thanks for taking the time to refactor your API with structs/handles. This has been pretty easy overall to bind to Lua and adapt. Good work on refactoring your collision routines to be public facing and making all of the useful collision functions easily accessible, including the dynamic tree.
I noticed a variety of functions are returning structs or accepting structs as parameters by value. I would recommend sticking with the by-value convention for all the functions regarding shape passing. Some of them currently accept pointers, while others are by value. It makes sense if you want to pass some by value if you've, for example, noticed a perf difference in debug mode. But for any optimized compile this isn't going to be an optimization, and at worst incur some pointer aliasing overhead. The bigger issue though was these pointers were an extra pain when binding the API to Lua. I ended up wrapping all the functions dealing with shapes by pointer with inline wrappers that deal with shapes by value. A minor thing, but still, would be a lot nicer generally if the convention was more consistent.
This feedback also applies to b2Hull, transforms, b2RayCastInput, etc.

Some other lingering thoughts. The _Atomic makes it a bit troublesome to compile. I noticed that pretty much all of the uses of _Atomic are on 4/8byte words and should already be atomic operations themselves, not necessitating the keyword. It would be nice if this was removed, or wrapped via overridable macros, to ease the integration into other projects. You should be able to safely remove these if you ensure byte alignment.
As far as cmake goes I had to spend extra time figuring out how to disable warnings as errors, as a number of warnings internal to Box2c were breaking the build (latest MSVC 2022).

Thanks for taking time to review the API Randy!
I agree that pass by value/pointer should be consistent. Conventional wisdom seems to be that structs 16 bytes or less should be passed by value while larger structs should be passed by pointer.
I recently had another issue filed where someone wanted pass by pointer for all structs to make interfacing with Haskell easier: https://github.com/erincatto/box2c/issues/163
You need to use C17 with Box2D. On MSVC you need to enable /experimental:c11atomics.
I'm not supporting older MSVC compilers that don't have /experimental:c11atomics.

I scanned the whole API again. It seems consistent according to the 16 byte rule. Did I miss something?
I'm using return value optimization for larger return values. https://en.wikipedia.org/wiki/Copy_elision
But I have to admit I haven't looked at the assembly for all call sites.

I'm not sure that conventional wisdom about byte size is very effective for a user API. Instead, from a user perspective, consistency would be strongly preferred. Either all pointers or all values. If you wanted to go the extra mile to make it easy for users to integrate, providing inline wrappers for the other option is something you might want to consider.
I know that traditional wisdom, especially in professional gamedev spheres, focuses on prioritizing optimization. However, my observation is, especially for 2D games, these kinds of hair-splitting differences aren't a priority and just add friction. From a user perspective flipping between pointers/values across a 16-byte size feels inconsistent and a little frustrating. This is pretty minor feedback overall though. I'm just offering it if you wanted to push the user experience quality bar as high as possible.
As for the license, I noticed you swapped to MIT from zlib. Is this because some other open-source libraries have used Box2D source, modified it, and licensed it without crediting you?
I want to replace some of my collision code with Box2c now that your collision APIs are easy to use without any prior object setup. So far though I've only incorporated code licensed under public domain/zlib to simplify license requirements for users (basically no consideration required from a user perspective). MIT is a little more invasive since now users would have to copy a license text file into their final product installations.
I understand if you might not want to comment about licenses. I'm just a bit new to redistributing MIT licensed code and was curious.

Quick example of what would be really nice to see in the box2c headers:
B2_API void b2Shape_SetCircle(b2ShapeId shapeId, const b2Circle* circle);
B2_API void b2Shape_SetCircle2(b2ShapeId shapeId, b2Circle circle);

B2_API void b2Shape_SetCapsule(b2ShapeId shapeId, const b2Capsule* capsule);
B2_API void b2Shape_SetCapsule2(b2ShapeId shapeId, b2Capsule capsule);

B2_API void b2Shape_SetSegment(b2ShapeId shapeId, const b2Segment* segment);
B2_API void b2Shape_SetSegment2(b2ShapeId shapeId, b2Segment segment);

Of course, internally in Box2c you can still abide by the 16-byte rule if you really wanted to maximize perf within Box2c's implementation.

I noticed you remove distance cache from a few of the collision functions, like b2CollideSegmentAndPolygon. Is there a reason b2CollideSmoothSegmentAndPolygon still has this as a required parameter?
b2DistanceJoint_IsLimitEnabled implementation seems to be missing altogether.

I don't want to add duplicate APIs to Box2D. This would cause a lot of confusion and require more testing.
There was a discussion about pass by value and people seemed to feel strongly that that API should not pass large structs by value. https://discord.com/channels/460295137705197568/1064661081903075429/1211018939132285010
I think this is one area where I cannot make everyone happy. So I will just aim for consistency.
Some collision algorithms no longer call GJK and don't benefit from a cache.
I'll implement b2DistanceJoint_IsLimitEnabled in the next PR.

Thanks!