3.30.20 release checklist

It's not yet time for the 3.30.20 release (we are waiting on a final version of ADMB 13), but feel free to add notes about the release here
Checklist for before prerelease

[x] Update GHA to use ADMB 13 (IT)
[ ] SS testing and debugging completed (IT)
[ ] r4ss updated (IT)
[ ] Put together pre-release announcement (RM)
[ ] code committed and tagged in repo as v3.30.20-prerel, which will trigger a gha to build the prerelease executables (KJ)
[ ] All exes added to github releases as v3.30.20-prerel (KJ) (use exe artifacts from the gha in step above)
[ ] Announce prerelease (RM)

Checklist for before release

[ ] Manual updated and tagged in repo (CW) - address at least issues with the 3.30.20 release label
[ ] Manual added to a github release, include attaching a pdf version (KJ and CW)
[ ] Manual release version on website updated once pdf and html built (KJ) (update https://github.com/nmfs-stock-synthesis/doc/blob/main/docs/SS330_User_Manual_release.html to the 3.30.20 version; update links to link to 3.30.20 in https://github.com/nmfs-stock-synthesis/doc/blob/main/docs/index.md#links-to-documentation)
[ ] SSI updated and github release created (NS)
[ ] Make changes to SS3 if any bugs caught in prerelease (RM)
[ ] Change log updated in Stock Synthesis repo (RM)
[ ] Code committed and tagged in repo as v3.30.20, which will trigger a gha to build the release executables (KJ) (Instructions on how to push a a local tag to a remote)
[ ] Exe and .tpl archived on Google drive (KJ)
[ ] All exes added to github releases as v3.30.20 (KJ) (get exes in the artifacts of the gha that built the release exes)
[ ] Send out release announcement msg (RM)

Checklist for after release

[ ] examples updated in user-examples repo using this script (KJ)
[ ] Update test-models reference files to the release version using this update script (KJ). also tag after updating with release number.
[ ] Removed "resolved" tag and close all issues worked in the milestone for this release (RM)
[ ] Move unworked issues for the release milestone to the next milestone (RM)

@kellijohnson-NOAA has kindly agreed to coordinate this release, so she will be making sure the checklist gets completed when the time comes for the release.

Note I reassigned tasks that I usually do to coordinate a release (by changing initials in the checklist), so please take a look and let me know if you have any concerns about any new tasks! I will be available to answer questions if they arise.

The change log was still a blank slate for 3.30.20.  So rather than create al those entries, I am trying to just improve the labelling and linking for all the PRs and Issues in Milestone 3.30.20.  Is a milestone view publicly accessible?

If you navigate to issues you can enter
milestone:3.30.20

in the search bar and it will search for issues and pull requests with that milestone.

This is an area where Kathryn was the key to making the changelog happen.
Kelli's search could be linked in a release message but the list is pretty messy: https://github.com/nmfs-stock-synthesis/stock-synthesis/issues?q=milestone%3A3.30.20+
I was just looking at github projects and see that they are private by default. For instance, this milestone tracker is not visible when I'm not logged into github https://github.com/orgs/nmfs-stock-synthesis/projects/2/views/1, but it could easily be made public. It's a cleaner list for folks to look at, but still not great.
If you want a change log like what we've done in the past, I can budget some time tomorrow or next week to try to populate one.

Thanks for feedback.  I know how to do it myself, what I am looking for is something that any user could easily do.

I thought about this a bit in the past and couldn't come up with a good, concise way to use the project board. What I had hoped to do (and didn't have time for) was to create a ghaction that pulled info from the Pull request form and populated the change log for us. Unfortunately, I think it is hard to automate a change log, because issues (and even pull requests) tend to be a bit messy.
At least with the PR template, I think someone could copy/paste the lines from it for this release, which is a little less work than in the past.

I find this view from current Excel change log:

no better than this view from modified project board:

The problem is sharing that view with the community.  It is a convenient format for reviewing what has been done; I can even edit labels from within that view.

Good point Rick
To that end, I just created a new project called "change log", added all issues matching the following:
label:"change log" milestone:"3.30.19" status:"Done"
and changed the settings to make it public.
Here's the link https://github.com/orgs/nmfs-stock-synthesis/projects/11/views/1 which I think we could put into the release notes. Would that work?
Initially I created a "public change log" view within the "milestone tracker" project (it's still there), but realized that it would require making all the views in that project public if we want to make one of them public. I'm not sure that's a bad thing, but it could create more confusion than a single-view project like the one linked above.

Thanks Ian.  I had created a change log view within the ss3-issue-tracker project, but if we are to share this it makes sense to have a dedicated project just for that purpose.
But we do not want too many projects because items need to be individually added to each project, so that favors putting things into just one project from which we can share views.
The project system in github favors putting Issues into the project and then letting the system display linked PR.  I like that.  So, I should stop putting PR directly into the project because it clutters things by having something represented by both a PR and an Issue, and not even adjacent rows.

I think we could train ourselves to apply the "change log" label and add to the "change log" project at the same time on an issue worth including. Or we could do away with the "change log" label and just use the project board. Presumably those issues would already have been added to the "ss3-issue-tracker" project at the point that they started getting tracked or worked on.
I added the 3.30.20 milestone issues to the change log project and removed one pull request that were in that project. But that PR (https://github.com/nmfs-stock-synthesis/stock-synthesis/pull/270) maybe should belong anyway because it includes a partial fix for one issue (#265) and the PR isn't showing up as linked to either #265 or #268 (which is now in the project).
I don't know how you created the milestone groupings in the ss3-issue-tracker.

I just rearranged the columns so you can see each entries milestone level.  It is easy to click that entry pulldown to change it to a different milestone assignment.  Similarly, easy to add/delete labels.

Thanks for the tip on the grouping option. I'm now sold on using a project board to replace the change log.
Yes, this can be a work in progress and we can get feedback from users and refine as we go. I'm not sure how many of them actually read the change log anyway.

Yes, great work, Rick! It's looking good.

@kellijohnson-NOAA
@iantaylor-NOAA
@nschindler-noaa
What is status of work to get ready for this release?   I would like to get it out on Friday this week.

@Rick-Methot-NOAA given that we are not doing a prerelease can I cross off the last four items in the pre-release checklist?

go for it.

The repo has been tagged with v.3.30.20 and the executables can be found in this zip file. The files can also be found on the google drive here. I tested the windows executable with {ss3sim} and everything appears to be fine. @Rick-Methot-NOAA do you want me to "Draft a new release", which is a button available here and add the exes or do you want to do that?

You're on a roll.  Please do draft that new release and link to the release message that I will broadcast  via VLAB

Thank you Kelli and everyone contributing to this release


Location of velocity-status-widget

Would it be possible to provide a optional argument to specify the location of the velocity-status-widget? Something like:
bottom-left
bottom-right
upper-left
upper-right

this is now possible in the latest release, please see the readme for details

Wow, that was a really fast turn around time. Thank you so much!


make check fails with unittest/baseapi_test.cc:190: undefined reference

Making check in unittest
make[1]: Entering directory '/home/shreeshrii/tesseract/unittest'
make  libgtest.la libgtest_main.la libgmock.la libgmock_main.la libabseil.la apiexample_test applybox_test baseapi_test bitvector_test cleanapi_test colpartition_test dawg_test denorm_test fileio_test heap_test imagedata_test indexmapbidi_test intfeaturemap_test intsimdmatrix_test lang_model_test layout_test linlsq_test loadlang_test mastertrainer_test matrix_test nthitem_test osd_test paragraphs_test params_model_test progress_test qrsequence_test recodebeam_test rect_test resultiterator_test shapetable_test stats_test stringrenderer_test tablefind_test tablerecog_test tabvector_test tfile_test commandlineflags_test lstm_recode_test lstm_squashed_test lstm_test lstmtrainer_test unichar_test unicharcompress_test unicharset_test validate_grapheme_test validate_indic_test validate_khmer_test validate_myanmar_test validator_test
make[2]: Entering directory '/home/shreeshrii/tesseract/unittest'
make[2]: 'libgtest.la' is up to date.
make[2]: 'libgtest_main.la' is up to date.
make[2]: 'libgmock.la' is up to date.
make[2]: 'libgmock_main.la' is up to date.
make[2]: 'libabseil.la' is up to date.
make[2]: 'apiexample_test' is up to date.
make[2]: 'applybox_test' is up to date.
/bin/sh ../libtool  --tag=CXX   --mode=link g++  -g -O2 -std=c++14   -o baseapi_test baseapi_test.o libabseil.la libgtest.la libgtest_main.la -lpthread ../src/api/libtesseract.la  -llept  -lpthread
libtool: link: g++ -g -O2 -std=c++14 -o baseapi_test baseapi_test.o  ./.libs/libabseil.a ./.libs/libgtest.a ./.libs/libgtest_main.a ../src/api/.libs/libtesseract.a -llept -lpthread
baseapi_test.o: In function `TestBody':
/home/shreeshrii/tesseract/unittest/baseapi_test.cc:190: undefined reference to `tesseract::TessBaseAPI::AdaptToWordStr(tesseract::PageSegMode, char const*)'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:1305: baseapi_test] Error 1
make[2]: Leaving directory '/home/shreeshrii/tesseract/unittest'
make[1]: *** [Makefile:2248: check-am] Error 2
make[1]: Leaving directory '/home/shreeshrii/tesseract/unittest'
make: *** [Makefile:500: check-recursive] Error 1

latest code from master, built with
./autogen.sh
./configure --disable-shared --disable-opencl --disable-graphics --disable-openmp --disable-debug --disable-legacy
make -j 4
make training -j 4

make check -j 4

Please try pull request #2440.

Updated to tesseract -v
tesseract 5.0.0-alpha-67-g7e9d2
leptonica-1.76.0
libgif 5.1.4 : libjpeg 6b (libjpeg-turbo 1.5.3) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 1.0.0
(Not yet updated with #2440)
Now getting the following errors:
/bin/sh ../libtool  --tag=CXX   --mode=link g++  -g -O2 -std=c++14   -o intfeaturemap_test intfeaturemap_test.o libgtest.la libgtest_main.la -lpthread ../src/api/libtesseract.la  -lpthread
/bin/sh ../libtool  --tag=CXX   --mode=link g++  -g -O2 -std=c++14   -o intsimdmatrix_test intsimdmatrix_test-intsimdmatrix_test.o libgtest.la libgtest_main.la -lpthread ../src/api/libtesseract.la   -lpthread
/bin/sh ../libtool  --tag=CXX   --mode=link g++  -g -O2 -std=c++14   -o lang_model_test lang_model_test.o libabseil.la libgtest.la libgtest_main.la -lpthread ../src/training/libtesseract_training.la ../src/training/libtesseract_tessopt.la ../src/api/libtesseract.la  -licui18n -licuuc -licudata  -licuuc -licudata  -lpthread
libtool: link: g++ -g -O2 -std=c++14 -o intfeaturemap_test intfeaturemap_test.o  ./.libs/libgtest.a ./.libs/libgtest_main.a ../src/api/.libs/libtesseract.a -llept -lpthread
intfeaturemap_test.o: In function `TestBody':
/home/shreeshrii/tesseract/unittest/intfeaturemap_test.cc:41: undefined reference to `tesseract::IntFeatureSpace::IntFeatureSpace()'
/home/shreeshrii/tesseract/unittest/intfeaturemap_test.cc:42: undefined reference to `tesseract::IntFeatureSpace::Init(unsigned char, unsigned char, unsigned char)'
/home/shreeshrii/tesseract/unittest/intfeaturemap_test.cc:43: undefined reference to `tesseract::IntFeatureMap::IntFeatureMap()'
/home/shreeshrii/tesseract/unittest/intfeaturemap_test.cc:44: undefined reference to `tesseract::IntFeatureMap::Init(tesseract::IntFeatureSpace const&)'
intfeaturemap_test.o: In function `tesseract::IntFeatureMap::IndexAndSortFeatures(INT_FEATURE_STRUCT const*, int, GenericVector<int>*) const':
/home/shreeshrii/tesseract/unittest/../src/classify/intfeaturemap.h:107: undefined reference to `tesseract::IntFeatureSpace::IndexAndSortFeatures(INT_FEATURE_STRUCT const*, int, GenericVector<int>*) const'
intfeaturemap_test.o: In function `TestBody':
/home/shreeshrii/tesseract/unittest/intfeaturemap_test.cc:79: undefined reference to `tesseract::IntFeatureMap::OffsetFeature(int, int) const'
/home/shreeshrii/tesseract/unittest/intfeaturemap_test.cc:83: undefined reference to `tesseract::IntFeatureMap::InverseIndexFeature(int) const'
/home/shreeshrii/tesseract/unittest/intfeaturemap_test.cc:84: undefined reference to `tesseract::IntFeatureMap::InverseIndexFeature(int) const'
/home/shreeshrii/tesseract/unittest/intfeaturemap_test.cc:79: undefined reference to `tesseract::IntFeatureMap::OffsetFeature(int, int) const'
/home/shreeshrii/tesseract/unittest/intfeaturemap_test.cc:102: undefined reference to `tesseract::IntFeatureMap::DeleteMapFeature(int)'
/home/shreeshrii/tesseract/unittest/intfeaturemap_test.cc:103: undefined reference to `tesseract::IntFeatureMap::DeleteMapFeature(int)'
/home/shreeshrii/tesseract/unittest/intfeaturemap_test.cc:104: undefined reference to `tesseract::IntFeatureMap::FinalizeMapping(tesseract::SampleIterator*)'
intfeaturemap_test.o: In function `tesseract::IntFeatureMap::IndexAndSortFeatures(INT_FEATURE_STRUCT const*, int, GenericVector<int>*) const':
/home/shreeshrii/tesseract/unittest/../src/classify/intfeaturemap.h:107: undefined reference to `tesseract::IntFeatureSpace::IndexAndSortFeatures(INT_FEATURE_STRUCT const*, int, GenericVector<int>*) const'
intfeaturemap_test.o: In function `TestBody':
/home/shreeshrii/tesseract/unittest/intfeaturemap_test.cc:43: undefined reference to `tesseract::IntFeatureMap::~IntFeatureMap()'
/home/shreeshrii/tesseract/unittest/intfeaturemap_test.cc:94: undefined reference to `tesseract::IntFeatureMap::InverseIndexFeature(int) const'
/home/shreeshrii/tesseract/unittest/intfeaturemap_test.cc:43: undefined reference to `tesseract::IntFeatureMap::~IntFeatureMap()'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:1349: intfeaturemap_test] Error 1
make[2]: *** Waiting for unfinished jobs....
libtool: link: g++ -g -O2 -std=c++14 -o intsimdmatrix_test intsimdmatrix_test-intsimdmatrix_test.o  ./.libs/libgtest.a ./.libs/libgtest_main.a ../src/api/.libs/libtesseract.a -llept -lpthread
libtool: link: g++ -g -O2 -std=c++14 -o lang_model_test lang_model_test.o  ./.libs/libabseil.a ./.libs/libgtest.a ./.libs/libgtest_main.a ../src/training/.libs/libtesseract_training.a ../src/training/.libs/libtesseract_tessopt.a ../src/api/.libs/libtesseract.a -llept -licui18n -licuuc -licudata -lpthread
make[2]: Leaving directory '/home/shreeshrii/tesseract/unittest'
make[1]: *** [Makefile:2248: check-am] Error 2
make[1]: Leaving directory '/home/shreeshrii/tesseract/unittest'
make: *** [Makefile:500: check-recursive] Error 1

@Shreeshrii, I just tested it myself. The reported linker error is fixed. But there are lots of similar linker errors.

We got the same result. :-)

I will wait for your fix.  :-)

I think tests should be run with standard (default) setup (that does not modified API).
And IMO disabling legacy engine is bad idea: it has better result in some cases e.g. OSD see #2062

Pull request #2441 fixes the build make check without legacy engine. It does not fix the unittest. Some fail and need more care.

@stweil Thanks. make check is building ok now. However as mentioned above by you, some unittests are failing.
Should I leave this issue open till that is fixed?

Yes, please leave it open.

Please see https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/tesseract-ocr/9HSpp7Ysduw/r8FPCHhBFAAJ as it might be related to this issue.

I recently made a few changes related to this issue.
Is someone wants to test this and see if the issue of failing tests when the legacy engine is disabled still occurs?

See https://github.com/tesseract-ocr/tesseract/issues/3226 for currently failing tests with --disable-legacy

See https://github.com/tesseract-ocr/tesseract/issues/3226 for currently failing tests with --disable-legacy


Fix unused parameter compiler warnings

Towards https://github.com/informalsystems/apalache/issues/1064. Second chunk of fixes for compiler warnings of the shape
parameter value arg in {class, method} MySymbol is never used

Rationale for the fix in the commit message.

Codecov Report

Merging #1472 (b5cf289) into unstable (8c2f6a2) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

:exclamation: Current head b5cf289 differs from pull request most recent head 9f6da15. Consider uploading reports for the commit 9f6da15 to get more accurate results

@@             Coverage Diff              @@
##           unstable    #1472      +/-   ##
============================================
- Coverage     74.69%   74.68%   -0.01%
============================================
  Files           358      358
  Lines         11505    11505
  Branches        548      558      +10
============================================
- Hits           8594     8593       -1
- Misses         2911     2912       +1

Impacted Files
Coverage Δ

...yte/apalache/tla/bmcmt/SymbStateRewriterImpl.scala
92.68% <ø> (ø)

...te/apalache/tla/bmcmt/rules/BuiltinConstRule.scala
80.00% <ø> (ø)

...forsyte/apalache/tla/bmcmt/rules/FunCtorRule.scala
88.09% <ø> (ø)

...rsyte/apalache/tla/bmcmt/rules/FunExceptRule.scala
93.33% <ø> (ø)

...syte/apalache/tla/bmcmt/rules/IfThenElseRule.scala
93.33% <ø> (ø)

...rsyte/apalache/tla/bmcmt/rules/IntDotDotRule.scala
68.75% <ø> (ø)

...yte/apalache/tla/bmcmt/rules/IsFiniteSetRule.scala
66.66% <ø> (ø)

...t/forsyte/apalache/tla/bmcmt/rules/PrimeRule.scala
66.66% <ø> (ø)

...t/forsyte/apalache/tla/bmcmt/rules/SubstRule.scala
60.00% <ø> (ø)

...orsyte/apalache/tla/bmcmt/rules/UserOperRule.scala
63.63% <ø> (ø)

... and 7 more

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 8c2f6a2...9f6da15. Read the comment docs.

Regarding @unused, why not just change the API?

Kept for argument compatibility with the other rewrite* methods at the callsite

I don't get this comment.

What I meant is that calls to other methods at the same location expect these arguments; changing the API of a single one makes that entire code misaligned and hard to read.

What I meant is that calls to other methods at the same location expect these arguments; changing the API of a single one makes that entire code misaligned and hard to read.

I would personally still just delete them, except in cases where methods are overridden from some base class (not the case here, afaict). The notion of "alignment" is a bit questionable to me, I don't see why different methods that do similar, but not identical, things would need to have the same parameter set.

I would personally still just delete them, except in cases where methods are overridden from some base class (not the case here, afaict).

All of the *Rule classes extend RewritingRule. I suppose the only reason this doesn't take a SymbStateRewriter argument is because it's implemented as Trait. I found no double inheritance there, we can open a separate PR to replace it with an abstract class.


a new set of 128 aivs and a aic for the next release =)

So I have been working on a whole new set of aivs based on real castles cities etc from the real world which I finished the other day in its first complete set (alot of the ais will get an update going forward but for now its good enough to stand alone).
If you guys are interested in checking them out and giving feedback you can feel free to do all that over here  on the git I set up for it.
There is also a aic file that goes along with it which which isnt mandetory for the aivs to work properly but sure makes it more interesting.
Here is a preview of what you would be able to expect.
While the castles are developed with the visual style you see in the screenshots it should work decent in the default crusader look as well. that beeing said you can get the theme I am working on (from the screenshots) as well, there is a download to the changed files like the waterpot towers etc etc as well in case you want to check them out.

With that beeing said if @Sh0wdown wants to add it do the patcher i would welcome that a bunch afterall i made them for that reason most of all.

Great to see this project entering the wild! :)

Very impressive! Must have been a lot of work and does look really good :)

Looks really awesome! Especially with the SH1 texture pack.
I hope in the future we will be able to install those SH1 texture packs with the UCP.

Omg Looks really great! Cant wait to test them out!

wow, well done sir!

Great, great, awesome! Beautiful fortresses! Say the bots themselves are still old? I think such locks + new AI Bots and Rat will become impenetrable.
Великолепно отлично потрясающе! Красивые крепости!  Скажи а сами боты ещё старые? Думаю, такие ЗАмки + новый ИИ Ботов и Крыса станет непробиваемой.

@Monsterfisch  Wow! Awersome !!!!!

@Russianstory there is an aic for ai behavior in the download area you can feel free to modify it and improve on it ofc =)
@Lolasik011 @DarkThief-Darek  I agree sh1 visuals are just the best in my humble opinion. I assume since showd0wn mentioned something about snipping files from already installed instances of the previous game for character quotes if that works I am sure something like texture packs in the patcher could actually become a thing. that being said its not super complicated to add them as you really just have to drag and drop the files in the gm folder ;)

Hey, really cool project, and I think you might be interested in what I released a short while ago: My history pack, though with just 16 castles. =)
You might be interested in the equal and different choices we made any why. For example:

Your Nottingham is the 15th century layout, mine the 13th century.
Saladin really-really-really should have the citadel of Damascus.
Also, Saladin would never pick Cairo. Instead, it is very much Caliph.
You might be interested in what I picked for Sultan, Wazir, and Caliph and especially why.
I think it's hilarious that we both gave Trifels to Richard.

This is no request for changes, though. Just my way of appreciating different works based on the same ideas. Great work!

yeah, i saw the release you did earlier today glad to see i am not the only one with the idea of actually bringing some real castle shapes into the game instead of you know mostly geometric shapes ;)

In terms of Nottingham, I really wanted the sheriff to be an ai that has cities under his control, similar to his vanilla character, hence why I didn't focus on giving him the fortress only which you have done. with the 13th century version.
with Damascus, the issue really was that I had finished all my Saladins already before I started working on my Emirs and I didn't stumble on hints when researching the place that would point in Saladins direction. mind filling me in a little about the connection between Saladin and Damascus?
Cairo as far as i could research is actually quite a bit influenced by Saladin so it confuses me a little that you wouldn't give it to him. After all, according to Wikipedia (whatever that is worth), Saladin constructed the Cairo Citadel and build a wall to surround Cairo and Fustat to make one big city out of the two
I will definitely give your description another look as I really just skimmed over it when I looked at them
-Trifels is a pretty iconic castle in Richards life so I am not surprised ^^ I am also planning to make the castle he was shot at and died as additional a castle, as I am planning to make more Aivs so people get more castles to play around with.  as there are still so many I would like to make just limited slots

Oh yes yes)))) I just have to get acquainted with this program)). I would be glad. If the program were translated into Russian, as well, when you hover the mouse cursor over the function name and the slider, a brief summary of the function would pop up next to the mouse cursor (what it is for). I think it will be good and useful for all who will be engaged.
О да да))))  мне только предстоит познакомиться с этой программой)). Был бы рад Если бы программу перевели ну русский язык, а также, при наведении курсора мыши на название функции и на бегунок - возле курсора мыши всплывало бы краткое содержание функции (для чего она). Думаю, это будет хорошо и полезно для всех, кто будет заниматься.

@Russianstory
The hover-descritpion function is already planned by @ByBurton ; the creator of the AIC Editor.

Excellent castles! I assume you will be giving Sultan tower archers in the aic?

@Monsterfisch
Wow !!!!
I saw new towers textures. I want your texture pack to be in the next version of the patch.

@Monsterfisch So, the relevant pieces of history are this:

Cairo was founded by be Fatimids to be their capital, a dynasty of caliphs.
Saladin did start off as the Sultan of Egypt before getting his hands on Syria etc.
Indeed Saladin ordered the construction of the Citadel of Cairo to protect it from the crusaders.
However, although Egypt was his big money maker, he apparently despised it. Think Richard and England.
Instead, Saladin's favoured "residence" and capital-ish city was Damascus.

heh that's deeper than i would have gone in the association analysis between the two. what I could see myself do however, would be switching Emirs Damascus with Saladin's Cairo, as I set the two chars up rather similarly. The caliph, on the other hand, is not really meant to have a city-based aiv, Bagdad being the exception of the rule

Sure thing, makes sense. As for the Caliph and cities... that's why my history Caliph got the citadel of Cairo and Wazir got the actual city. After all, besides other things, some viziers were the representatives of a caliph.
I just happen to know that because I read up a ton of background info from all parties involved in the first three crusades.

Makes sense after all this is no bare common knowledge.
Do you happen to know some more character relevant castles that would be worth creating btw? I am planning to make additional castles for people to pick and choose going forward.

The choices I made due to fitting historical characters:

Saladin -> Damascus
Caliph -> Something from Cairo due to the Fatimid Caliphate, Egypt in general
Sultan -> Something from Konya, see Kilij Arslan II. of the Sultanate of Rum, and other castles in said sultanate in general
Richard -> Really should get something from Anjou, which is where Richard spent most of his time if he wasn't imprisoned or waging war
Frederick -> Must have Nürnberg, favourite residence of all medieval German emperors. Another great pick would be Rothenburg ob der Tauber, where he gathered his army and then began his part of the third crusade.
Philipp -> Paris is an excellent pick and the most important one. Others would be Orleans and other rich cities of the tiny medieval french Crown domains.
Sheriff -> Nottingham, the rest doesn't matter
Wazir -> Basically whatever Caliph gets
Nizar -> Masyaf, the rest doesn't matter

The choices I made due to fitting the Stronghold lore:

Rat, Snake, and Pig should get french and english castles. French ones representing their possible origins, and english ones from duchies marked as their territory during the Stronghold 1 campaign.
The Wolf, if again going by names, should get italian and scottish castles.
The Marshal should get a castle from Cornwall, as that's the county from where you start your rebellion in Stronghold 1.
The Abbot should only get scottish stuff.

@Evrey I was more thinking castles I haven't done already ;)
But Nürnberg is a good cool and the Anjou region as well I already got Chinon castle where Richard's father lived as well. The Sultan stuff is something I will look in as well .
Are there any particular castles/medieval cities you could point out being generally interesting and not necessarily relevant to the characters? ;)

@Monsterfisch You could add for Rat some slavs villages such as Biskupin and alike, instead of the generic.

I am sure there were lots of Arabian castles controlled by local emirs during the Crusades. As a historical character, I always have seen Emir as representing one of the local rulers Saladin appointed.

The Abbot should only get scottish stuff.

Maybe one based on a medieval monastery design too, maybe this desert monastery: https://en.wikipedia.org/wiki/Saint_Catherine's_Monastery

@Monsterfisch You already have most cool castles I could think of within your collection.

There is Coburg, quite influential and never conquered, but it is architectually way less spectacular than all the other ones. So it might not fit your otherwise overly decorative style.
The Hornburg of the LotR movies is pretty cool, if you fix the inner gate issue, but that's not a real life castle, though it does have a realistic layout.
Eltz is an amazing castle, but pretty much impossible to model in any Stronghold game in any interesting way. Any attempt would be unrecognisable at best.
 And making the citadel a miniature within the surrounding city was a good choice, IMHO. Aleppo lives from its gate palace, the massive dimensions, the S curve within,... Very, very hard to replicate in Stronghold, if not impossible.
Okay, well, using your technique of re-positioning the technique in the AIV editor, you could try making a better attempt at modelling Tintagel castle.

ah yeah nice, you happen to know a couple more settlements like that or some other type of village reconstruction I could check out? @Rakso69
@PitchNeeded I actually saw that monastery in my research as well I will defiantly look into that one too
@Evrey yeah my rendering of eltz castle sure doesn't look like the original as you can't replicate the vertical layout in stronghold unless you can have custom terrain alongside with the aiv. I had the same issue with Fleckenstein castle. In the end you get a compromise that should at least work according to the original and still be fun to play against.
as for coburg id say its spectacular enough to make the cut heh
tinagel castle would be an interesting challenge as well so yeah noted.

Hello Monsterfisch, how did you get the Stronghold 1 skin mod working? Is there an way for Crusader Extreme to intstall a Skin packet?
It's because of the TroopsLimit why i choose Extreme over normal Crusader.
Thanks for u help.

I have a couple of modified image files on the GitHub page where you download the castles you basically use those together with the ones from sh1 (overwrite the sh1 files you have placed in shc extreme)

I have now copied and replaced the .gm1 files from stronghold 1 and afterwars your files from the github in the gm folder from stronghold extreme, but now my stronghold extreme wont start anymore(load half of the red loading and shutdown without error message), am i doing anything wrong?

try moving them in 2 by 2 instead of the whole bunch and start the game inbetween to locate which ones cause the crash

Ok i tested it the following gm1 files are the error:
icons_front_end.gm1
icons_front_end_builder.gm1
icons_front_end_combat.gm1
if anyone else have the same issues copy all files but not this 3 ones and all is ok.
Thanks Monsterfisch for help

ah yeah you dont need those files at all i have also only change the files that affect the ingame visuals not the interface etc so only walls building terrain etc

Can u specifally give the file names u replaced because now i have ingame two bugs, one my cavallary have issues and the game interface.

or is there a list which files to replace?

i think i only replaced all files starting with "tile" and the "anim" for castle and buildings if you than encounter i think that should be a safe starting point and from there you can replace stuf you are missing based on the name like stables etc as they tend to have some little piece that looks out of place otherwise

Ah ok, i only replaced the tiles u said now and all worked for me, thank you Monsterfisch.
Maybe i create an github with the files needed and tutorial on it, if anyone else want sh1 graphics  in extreme .

it would probably be sufficient if you write up a guide for it which I could add to my github page considering there are files in missing in sh1 that were added in a crusader like the 3x3 tower and the waterpot that I have added via my files.

Hello Monsterfisch,
i wrote an Guide on the following Git https://github.com/Gaaammmler/Stronghold-Crusader-Sh1-Graphics
i hope it helps other people out there to use the beautiful SH1 Textures.


Optimize hydrating/retrieving data by using SOQL functions as much as possible

Is your feature request related to a problem? Please describe.
SOQL should be used as much as possible for executing data functions before retrieving.
Describe the solution you'd like
A couple of examples...
EXAMPLE 1:
select count(*) from salesforce_opportunity
^ this query will
a) download all records from salesforce_opportunity
b) perform a SQL count() on the data in postgres
It works for a few hundred records maybe, but for data sets of thousands this takes quite awhile.  SOQL has its own count() function, so why not use that and let Salesforce carry the load?
EXAMPLE 2:
select id, createddate from salesforce_account limit 10
^ this query will retrieve the first 10 records from the Account object and runs relatively quickly.
but...
select id, createddate from account order by createddate desc limit 10
^ this query will download all records from the Account object then sort them in Postgres by createddate, then return the first 10 records which can take quite awhile.
Salesforce has its own 'order by' function - why not use it and let Salesforce do the lifting here?
Describe alternatives you've considered
Waiting for real simple queries like the above to execute, or even time-out if large data is present in Salesforce.

Many Salesforce connectors/libraries use parsers, such as mulesoft's hardened code:
https://github.com/adam84luong/salesforce-soql-parser/blob/master/src/main/antlr3/org/mule/tools/soql/parser/SOQL.g
Here is a similar one in golang...
https://github.com/tzmfreedom/soql-parser/blob/master/parser/soql_parser.go
...but then perhaps we're just bound by what simpleforce can do and this is an issue for that code base

@d416 Thanks for opening this issue!
At the moment, for queries like the one you shared above, we don't get any order by information from queries, so unfortunately we wouldn't be able to use that information to affect how we form the SOQL and make API calls.
I've opened https://github.com/turbot/steampipe-plugin-sdk/issues/596 for tracking, which would enable us to do so.
I'm closing this issue in the meantime as the feature is not available, but if there are additional use cases outside of order by, please feel free to re-open!


Streaming build context for faster incremental build

As far as I could see from the current codebase, draftd sends the whole project files as the build context to the docker daemon.
This, "in theory", slow down docker build by unnecessary sending unchanged files from draftd to docker daemon.
Similarly as I've noted in https://github.com/GoogleCloudPlatform/skaffold/issues/195, I guess we could enhance draft to use streaming to send only diffs from draftd to docker daemon.
Just for clarification, this is for the "2" in the below diagram:

draft --1--> draftd --2--> docker daemon

Honestly, I'm not sure how the path "1" works today in draft. It would make sense to address it in an another github issue if necessary, too.

Yes! We would love to have this in place. I know @fibonacci1729 has played with a few ideas in this space and might be able to share some of this thoughts.

@mumoshu the new draft .12 removes the daemon completely, removing the problem. Rerun tests, and see if there are still optimizations here we should work on.

partially. While we have removed draftd from the system and thereby eliminating the draft --1--> draftd cycle, technically speaking we are still sending the entire build context to the docker daemon.
The architecture looks more like this:
draft --1--> docker daemon --> container registry (if configured) --> kubernetes
Docker has a relatively new feature that allows clients to send incremental build contexts to the daemon. We could take advantage of that during long-running sessions such as a draft up with the local file watcher feature enabled.
Other than that, you're completely right. For the most part this issue is moot.


About the speed

Have you tested the speed? It run over 30 seconds for a 10k vertices mesh, which is abnormal compared with open3d. I checked it was compiled with openmp.
Thank you. It is a great work.

Yes, I have encountered a similar issue. This package seems much slower than other UV unwrapping libraries. I mainly followed the logic in UVAtlas.cpp, eliminating all optional branches. Could you please run the official Microsoft UVAtlasTool on the same mesh and let me know how long it takes?

Oooops, I have encountered similar issues actually. This package seems much slower than other UV unwrapping libraries. I mainly followed the logic in UVAtlas.cpp, eliminating all optional branches. Could you please run the official Microsoft UVAtlasTool on the same mesh and let me know how long it takes?

I didn't try the official tool, but it is much faster as far as I know.
If it was me to debug, I would profile which part is most time consuming. I guess it only uses one cpu core to compute while openmp is enabled. Also maybe there are some optimization methods not suitable for linux.

https://github.com/isl-org/Open3D/blob/main/cpp/open3d/t/geometry/kernel/UVUnwrapping.cpp

Oooops, I have encountered similar issues actually. This package seems much slower than other UV unwrapping libraries. I mainly followed the logic in UVAtlas.cpp, eliminating all optional branches. Could you please run the official Microsoft UVAtlasTool on the same mesh and let me know how long it takes?

I didn't try the official tool, but it is much faster as far as I know. If it was me to debug, I would profile which part is most time consuming. I guess it only uses one cpu core to compute while openmp is enabled. Also maybe there are some optimization methods not suitable for linux.

Thank you for the feedback :] Sorry that I'm a bit busy with my paper right now. I estimate I will have time to look at this bug in a few weeks. I'll look into it right away as soon as I have some free time.

It seems we need a pcapartition and then process parallely.
https://github.com/isl-org/Open3D/blob/main/cpp/open3d/t/geometry/kernel/PCAPartition.cpp

It seems we need a pcapartition and then process parallely. https://github.com/isl-org/Open3D/blob/main/cpp/open3d/t/geometry/kernel/PCAPartition.cpp
Will you improve this?

I'll take a look. I have also noticed that the parameter parallel_partitions in open3d.cpu.pybind.t.geometry.TriangleMesh.compute_uvatlas significantly affects the speed of UV mapping. However, it's strange that I can't seem to get the correct UV partitions when using it. Download bunny.obj here.
import open3d as o3d
import numpy as np
import trimesh
import time

mesh = trimesh.load('bunny.obj', process=False, force='mesh')

o3d_mesh = o3d.t.geometry.TriangleMesh()
o3d_mesh.vertex.positions = o3d.core.Tensor(mesh.vertices)
o3d_mesh.triangle.indices = o3d.core.Tensor(mesh.faces)

t1 = time.time()
o3d_mesh.compute_uvatlas(size=1024, gutter=10, parallel_partitions=4)
print("Time:", time.time() - t1)

# since in open3d uv is defined on triangles, we need to rearrange vertices
new_v = mesh.vertices[mesh.faces.reshape(-1)]
new_f = np.arange(len(new_v)).reshape(-1,3)
new_uv = o3d_mesh.triangle.texture_uvs.numpy().reshape(-1,2)

mesh = trimesh.Trimesh(
    vertices=new_v,
    faces=new_f,
)
mesh.visual = trimesh.visual.TextureVisuals(
    uv=new_uv.astype(np.float32),
)
ret = mesh.export('bunny.uv.obj')

It seems we need a pcapartition and then process parallely. https://github.com/isl-org/Open3D/blob/main/cpp/open3d/t/geometry/kernel/PCAPartition.cpp
Will you improve this?

I'll take a look. I have also noticed that the parameter parallel_partitions in open3d.cpu.pybind.t.geometry.TriangleMesh.compute_uvatlas significantly affects the speed of UV mapping. However, it's strange that I can't seem to get the correct UV partitions when using it. Download bunny.obj here.
import open3d as o3d
import numpy as np
import trimesh
import time

mesh = trimesh.load('bunny.obj', process=False, force='mesh')

o3d_mesh = o3d.t.geometry.TriangleMesh()
o3d_mesh.vertex.positions = o3d.core.Tensor(mesh.vertices)
o3d_mesh.triangle.indices = o3d.core.Tensor(mesh.faces)

t1 = time.time()
o3d_mesh.compute_uvatlas(size=1024, gutter=10, parallel_partitions=4)
print("Time:", time.time() - t1)

# since in open3d uv is defined on triangles, we need to rearrange vertices
new_v = mesh.vertices[mesh.faces.reshape(-1)]
new_f = np.arange(len(new_v)).reshape(-1,3)
new_uv = o3d_mesh.triangle.texture_uvs.numpy().reshape(-1,2)

mesh = trimesh.Trimesh(
    vertices=new_v,
    faces=new_f,
)
mesh.visual = trimesh.visual.TextureVisuals(
    uv=new_uv.astype(np.float32),
)
ret = mesh.export('bunny.uv.obj')

I've identified the bug: it's important to remember to pass process=False when initializing a trimesh.Trimesh. Now, the issue is that I wasn't aware Open3D already has a similar UVAtlas tool when I initially wrapped this package. After some testing, I found that Open3D performs better, although it requires several rounds of conversion. Given this, is it still necessary to update this repository?

It seems we need a pcapartition and then process parallely. https://github.com/isl-org/Open3D/blob/main/cpp/open3d/t/geometry/kernel/PCAPartition.cpp
Will you improve this?

I'll take a look. I have also noticed that the parameter parallel_partitions in open3d.cpu.pybind.t.geometry.TriangleMesh.compute_uvatlas significantly affects the speed of UV mapping. However, it's strange that I can't seem to get the correct UV partitions when using it. Download bunny.obj here.
import open3d as o3d
import numpy as np
import trimesh
import time

mesh = trimesh.load('bunny.obj', process=False, force='mesh')

o3d_mesh = o3d.t.geometry.TriangleMesh()
o3d_mesh.vertex.positions = o3d.core.Tensor(mesh.vertices)
o3d_mesh.triangle.indices = o3d.core.Tensor(mesh.faces)

t1 = time.time()
o3d_mesh.compute_uvatlas(size=1024, gutter=10, parallel_partitions=4)
print("Time:", time.time() - t1)

# since in open3d uv is defined on triangles, we need to rearrange vertices
new_v = mesh.vertices[mesh.faces.reshape(-1)]
new_f = np.arange(len(new_v)).reshape(-1,3)
new_uv = o3d_mesh.triangle.texture_uvs.numpy().reshape(-1,2)

mesh = trimesh.Trimesh(
    vertices=new_v,
    faces=new_f,
)
mesh.visual = trimesh.visual.TextureVisuals(
    uv=new_uv.astype(np.float32),
)
ret = mesh.export('bunny.uv.obj')

I've identified the bug: it's important to remember to pass process=False when initializing a trimesh.Trimesh. Now, the issue is that I wasn't aware Open3D already has a similar UVAtlas tool when I initially wrapped this package. After some testing, I found that Open3D performs better, although it requires several rounds of conversion. Given this, is it still necessary to update this repository?

I am new to this area and trying to reproduce your code. I have successfully generated wrapped atlas from bunny.obj, but im having trouble converting the atlas (uvs, indices and vmapping) into 2D .png file. Can u plz share how u generate this pic?


Relative path with authority part present fails

Why relative paths forbidden when authority part is present?
https://github.com/guzzle/psr7/blob/69568e4293f4fa993f3b0e51c9723e1e17c41379/tests/UriTest.php#L599-L605
This violates withPath contract. Also there's clear description how to avoid problem described in the aforementioned code comment.

Relative paths are allowed. The test there does not assert they are not allowed. It shows an invalid example of a relative path.


Changes to test ID framework to make things more efficient and simpler

see #304
test IDs are now hardcoded values unless they need to contain some user-defined text (like a name)
modified the test ID convert function to match the angular codebase
updated the readme

PR Storybook available here

PR Storybook available here


Tx unexpectedly reverts with "out of gas" reason

Hi,
When processing the below tx with the revm I get an out of gas revert?
https://snowtrace.io/tx/0x5d9999e9e8ccdea2d87736cc39c38f51863f6f23169ac32ef2d9a1842aa94c23
Gas limit on the tx is 348,243 and gas used is 348,243. Seems strange to me that it fails with revm but doesn't fail on avalanche?
Avalanche just use a copy of geth for this stuff afaik.

Just to add some extra info to this.
It seems like every "withdraw" call to this contract: https://snowtrace.io/address/0xf6ccf601bd024612aaf85440153c2df0524e4607 (same fn and contract called by the 0x5d99.. tx linked above) costs 3 GAS more using the REVM compared to Avalanche Coreth.

That is suspicious

Some more info:
Here are 4 txs that cost exactly 3 extra gas using the revm vs Avalanche Coreth/ Sputnik EVM:
- 0x2a592ab55d9823aa6e25386a361569ae74c274d5352214632505daefdfd885c3
- 0xe6f7f5fe3287e922bf6ecc17104d243bb6c9234574bba2b01c90b90fd883a77f
- 0x5d9999e9e8ccdea2d87736cc39c38f51863f6f23169ac32ef2d9a1842aa94c23
- 0x832e5a4b5f3596eeba4c88aef567a73fd50cebb5d2d46a4710ee1ef1e36428fc

I ran each of these txs with REVM and Sputnik logging each opcode that was used and the number of time each was used. Here are the differences:
1)
Different counts! Opcode: 91. REVM count: 4756. SPUTNIK count: 4700
REVM contains an extra opcode: 254. COUNT: 9
Different counts! Opcode: 0. REVM count: 10. SPUTNIK count: 8

2)
Different counts! Opcode: 91. REVM count: 1465. SPUTNIK count: 1446
REVM contains an extra opcode: 254. COUNT: 2
Different counts! Opcode: 0. REVM count: 10. SPUTNIK count: 8

3)
Different counts! Opcode: 0. REVM count: 8. SPUTNIK count: 6
REVM contains an extra opcode: 254. COUNT: 9
Different counts! Opcode: 91. REVM count: 5361. SPUTNIK count: 5294

4)
REVM contains an extra opcode: 254. COUNT: 3
Different counts! Opcode: 0. REVM count: 14. SPUTNIK count: 12
Different counts! Opcode: 91. REVM count: 3480. SPUTNIK count: 3430

Note: I also ran this for txs that get the gas cost exactly correct and the only difference i saw was in the "91" opcode so maybe there is something up with my logging for that? Seems strange that the 254 (INVALID) opcode is appearing for failed txs and there are always 2 extra "0" (STOP) opcodes.
Does anyone have any ideas?

91 is jumpdest, seems strange
padding is just adding zeroes to end of bytecode so I don't need to check length but just assume that there is stop at the end, evmone does it, that should be fine. I am not sure why it is always by 2
256 it 0xFE is just differently marked, it is probably just noice nothing more. (There is recent EIP that dissabled bytecode that start with 0xFE: https://eips.ethereum.org/EIPS/eip-3541)
Best way to debug this is to get traces, I am not sure how to do in sputnik, but for revm you can use this Inspector here: https://github.com/bluealloy/revm/blob/main/bins/revme/src/statetest/trace.rs it will printout all stuff needed.

btw, what version of revm are you using?

btw, what version of revm are you using?

I'm using: version = "2.1.0"

@rakita We think we've fixed it with this PR: https://github.com/bluealloy/revm/pull/259
Does it make sense to you?

In sputnik if len is zero, memory expansion is not taken into account:
https://github.com/rust-blockchain/evm/blob/0036e1eba39444460fdf2752947195d1f14928f7/gasometer/src/lib.rs#L696-L698
same with openethereum: https://github.com/openethereum/openethereum/blob/6c2d392d867b058ff867c4373e40850ca3f96969/crates/vm/evm/src/interpreter/gasometer.rs#L420-L423
and I am doing it in other places for different opcodes.
That is the bug, good find!

There are a few fails test, probably related to the order of operations, in essence do check for data overflow then check for len zero and memory overflow. But let me check that statement.

Amazing! Has been a nightmare trying to track the bug down so glad that was it!

Finding this kind of bug is the devil's job, traces usually help a lot and even with them it is hard to pinpoint.
kudos!

revm: v2.2.0 published


Ignore x-skygear-access-token if it is not required

For example, request forgot password does not require access token. If an invalid access token is included in the header, the request will fail.

Double checked that it was my problem. Closing this.


CMakePresets error including nested presets files

Brief Issue Summary
Nested includes on preset files fail to load, when loaded a second time, the final error on the log is that there are expansion errors on the presets files.
These presets setup works correctly from the command line and CMakeTools successfully validates them with the schema.
My case would be this. I have a project that I need to build on linux and windows platforms. I have the following cmake presets files which I load with includes and presets that have a condition to either hide them or show them.
CMakePresets.json
├── cmake
│   ├── presets
│   │   ├── 00_CMakePresetsBasics.json
│   │   ├── 01_CMakePresets_win.json
│   │   ├── 01_CMakePresets_unix.json

I've stripped the presets files the most I could to generate a MWE

CMakePresets.json : root preset file

{
  "version": 7,
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 27,
    "patch": 0
  },
  "include": [
    "cmake/presets/01_CMakePresets_win.json",
    "cmake/presets/01_CMakePresets_unix.json"
  ]
}

00_CMakePresetsBasics.json : this file stores common presets for both operating systems that the specific presets inherit. A MWE follows:

{
  "version": 7,
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 27,
    "patch": 0
  },
  "configurePresets": [
    {
      "name": "base",
      "hidden": true,
      "binaryDir": "${sourceDir}/build/${presetName}",
      "cacheVariables": {
        "CMAKE_INSTALL_PREFIX": "${sourceDir}/build/${presetName}/delivery",
        "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
      }
    },
    {
      "name": "windows_only",
      "hidden": true,
      "condition": {
        "type": "equals",
        "lhs": "${hostSystemName}",
        "rhs": "Windows"
      }
    },
    {
      "name": "linux_only",
      "hidden": true,
      "condition": {
        "type": "notEquals",
        "lhs": "${hostSystemName}",
        "rhs": "Windows"
      }
    }
  ],
  "buildPresets": [
    {
      "name": "build_base",
      "inheritConfigureEnvironment": true,
    }
  ]
}

01_CMakePresets_win.json : this file holds the presets configurations for windows and it includes the basics presets file

{
  "version": 7,
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 27,
    "patch": 0
  },
  "include": ["00_CMakePresetsBasics.json"],
  "configurePresets": [
    {
      "name": "VS2019_x64_config",
      "inherits": ["base"],
      "hidden": true,
      "generator": "Visual Studio 16 2019",
      "toolset": {
        "value": "host=x64",
        "strategy": "set"
      },
      "architecture": {
        "value": "x64",
        "strategy": "set"
      }
    },
    {
      "name": "VS2019_NoTests_config",
      "inherits": ["VS2019_x64_config", "windows_only"],
      "displayName": "VS2019 NoTests"
    }
  ],
  "buildPresets": [
    {
      "name": "VS2019_NoTests_build",
      "configurePreset": "VS2019_NoTests_config",
      "inherits": ["build_base"],
      "displayName": "Release"
    }
  ]
}

01_CMakePresets_unix.json : this file holds the presets configurations for windows and it includes the basics presets file

{
  "version": 7,
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 27,
    "patch": 0
  },
  "include": ["00_CMakePresetsBasics.json"],
  "configurePresets": [
    {
      "name": "mai001_NinjaMulti_GCC_13_64bits",
      "inherits": ["base"],
      "cacheVariables": {
        "CMAKE_C_COMPILER": "/usr/local/bin/gcc",
        "CMAKE_CXX_COMPILER": "/usr/local/bin/g++"
      },
      "hidden": true,
      "generator": "Ninja Multi-Config"
    },
    {
      "name": "mai001_NoTests_config",
      "inherits": ["mai001_NinjaMulti_GCC_13_64bits", "linux_only"],
      "displayName": "mai001 NoTests"
    }
  ]
}

This setup does not work. Things I've tried:

Removing the include for 01_CMakePresets_unix.json on the root preset makes it all work again.
Putting everything on a single presets file also works.
Moving the include for 00_CMakePresetsBasics.json to the root preset does not work. this needs to be included on the relevant files.
Version 1.18.19 of CMakeTools also works.

CMake Tools Diagnostics
{
  "os": "win32",
  "vscodeVersion": "1.88.0",
  "cmtVersion": "1.19.36",
  "configurations": [
    {
      "folder": "c:\\Users\\my_user\\Desktop\\my_test",
      "cmakeVersion": "3.27.9",
      "configured": false,
      "generator": "",
      "usesPresets": true,
      "compilers": {}
    }
  ],
  "cpptoolsIntegration": {
    "isReady": false,
    "hasCodeModel": false,
    "activeBuildType": "",
    "buildTypesSeen": [],
    "requests": [],
    "responses": [],
    "partialMatches": [],
    "targetCount": 0,
    "executablesCount": 0,
    "librariesCount": 0,
    "targets": []
  },
  "settings": [
    {
      "communicationMode": "automatic",
      "useCMakePresets": "always",
      "configureOnOpen": false
    }
  ]
}

Debug Log
[proc] Executing command: C:\cae\CMake\bin\cmake.EXE --version
[proc] Executing command: C:\cae\CMake\bin\cmake.EXE -E capabilities
[main] Safe constructing new CMakeProject instance
[variant] Constructing VariantManager
[main] Constructing new CMakeProject instance
[main] Starting CMake Tools second-phase init
[expand] expanded ${workspaceFolder}
[kit] Reading kits file C:\Users\my_user\AppData\Local\CMakeTools\cmake-tools-kits.json
[kit] Successfully loaded 10 kits from C:\Users\my_user\AppData\Local\CMakeTools\cmake-tools-kits.json
[kit] Not reading non-existent kits file: c:\Users\my_user\Desktop\WIP\my_test\.vscode\cmake-kits.json
[presetController] Reading presets file C:\Users\my_user\Desktop\my_test\CMakePresets.json
[presetController] Reading and validating the presets "file C:\Users\my_user\Desktop\my_test\CMakePresets.json"
[presetController] Successfully validated C:\Users\my_user\Desktop\my_test\CMakePresets.json against presets schema
[presetController] Reading presets file C:\Users\my_user\Desktop\my_test\cmake\presets\01_CMakePresets_unix.json
[presetController] Reading and validating the presets "file C:\Users\my_user\Desktop\my_test\cmake\presets\01_CMakePresets_unix.json"
[presetController] Successfully validated C:\Users\my_user\Desktop\my_test\cmake\presets\01_CMakePresets_unix.json against presets schema
[presetController] Reading presets file C:\Users\my_user\Desktop\my_test\cmake\presets\00_CMakePresetsBasics.json
[presetController] Reading and validating the presets "file C:\Users\my_user\Desktop\my_test\cmake\presets\00_CMakePresetsBasics.json"
[presetController] Successfully validated C:\Users\my_user\Desktop\my_test\cmake\presets\00_CMakePresetsBasics.json against presets schema
[presetController] Reading presets file C:\Users\my_user\Desktop\my_test\cmake\presets\01_CMakePresets_win.json
[presetController] Reading and validating the presets "file C:\Users\my_user\Desktop\my_test\cmake\presets\01_CMakePresets_win.json"
[presetController] Successfully validated C:\Users\my_user\Desktop\my_test\cmake\presets\01_CMakePresets_win.json against presets schema
[presetController] Expanding presets file C:\Users\my_user\Desktop\my_test\CMakePresets.json
[preset] Could not find configure preset with name base
[preset] Could not find configure preset with name base
[preset] Could not find configure preset with name windows_only
[preset] Could not find configure preset with name windows_only
[preset] Could not find configure preset with name windows_only
[expand] expanded ${sourceDir}/build/${presetName}
[preset] Configure preset windows_only: No binaryDir specified, using default value "${sourceDir}/out/build/${presetName}"
[expand] expanded ${sourceDir}/out/build/${presetName}
[preset] Configure preset linux_only: No binaryDir specified, using default value "${sourceDir}/out/build/${presetName}"
[expand] expanded ${sourceDir}/out/build/${presetName}
[preset] Configure preset VS2019_x64_config: No binaryDir specified, using default value "${sourceDir}/out/build/${presetName}"
[expand] expanded ${sourceDir}/out/build/${presetName}
[expand] expanded ${sourceDir}/build/${presetName}/delivery
[expand] expanded ${hostSystemName}
[expand] expanded ${hostSystemName}
[preset] Configure preset VS2019_NoTests_config: No binaryDir specified, using default value "${sourceDir}/out/build/${presetName}"
[expand] expanded ${sourceDir}/out/build/${presetName}
[expand] expanded ${sourceDir}/build/${presetName}
[expand] expanded ${sourceDir}/build/${presetName}
[expand] expanded ${sourceDir}/build/${presetName}/delivery
[expand] expanded ${hostSystemName}
[expand] expanded ${sourceDir}/build/${presetName}/delivery
[expand] expanded ${hostSystemName}
[preset] Could not find build preset with name build_base
[expand] expanded ${sourceDir}/out/build/${presetName}
[presetController] Expansion errors found in the presets file.
[main] CMakeProject instance initialization complete.
[extension] Attempting to use cache to configure workspace file:///c%3A/Users/my_user/Desktop/my_test
[main] Starting new CMake driver
[main] Starting CMake driver
[cmakefileapi-driver] Creating instance of CMakeFileApiDriver
[driver] Initializing base driver using preset
[main] Unable to configure with existing cache

Additional Information
So currently I'm testing this on windows, I assume the error would be the same on linux.
Anyways I'll update the issue only in the case that I find something different on unix.
These are the versions for my development environment. I work on an offline system so my update cycle is not as good as it could be. I have to install extensions from vsix
Versions:
Visual Studio Code 1.88.0
CMake 3.27.9
Windows Server 2016
CMakeTools 1.19.36
Visual Studio 2019

@pilarArr Thanks for the issue. We are aware of this and have a PR open here: #3958. Addiitonally, you can confirm that the PR fixes your issue by testing out the vsix here: https://github.com/microsoft/vscode-cmake-tools/issues/3956#issuecomment-2268777063

Hello @gcampbell-msft , thanks for the quick reply. I saw that issue but I wasn't sure it was my case as well.
I've tested the vsix you commented and it works on windows.
I've being doing some testing on the unix setup and it does not work. Either of them. But it's another error. It looks like this one #1841. I tried resetting vscode by deleting the folders mentioned there and I still get the same error.
But using CMakeTools 1.18.19 does work. Should I open a new issue or continue with #1841 ?

@pilarArr I think I understand the issue. Essentially, on Linux there is a weird behavior of Fedora where it uses aliasing and environment variables, and because we try to expand all environment variables, it says that there is an error. In the event now that we're being more strict about validation, it fails the configure preset.
I think it'd be worthwhile for you to create a new issue, link the other, and provide a full repro steps and repro project. Thank you for testing on pre-release as well

@pilarArr Thank you very much for your testing, it greatly helps us. Could you try out a quick fix I'm investigating to see if it possibly fixes your issue?
cmake-tools.zip
My understanding is that we should scope our expansion of the environment to the environment variables that are defined in the preset. Please let me know if this fixes the issue on linux and still works on windows. Thanks!

@pilarArr Thank you very much for your testing, it greatly helps us. Could you try out a quick fix I'm investigating to see if it possibly fixes your issue? cmake-tools.zip
My understanding is that we should scope our expansion of the environment to the environment variables that are defined in the preset. Please let me know if this fixes the issue on linux and still works on windows. Thanks!

@gcampbell-msft  I've tested the vsix and it does not work. I've opened a new issue as you suggested. #3961
Thanks for your help.


fix(RHINENG-8333): correct ouia-type empty state

some tests are failing because FEC utils haven't been updated yet https://github.com/RedHatInsights/frontend-components/pull/2085

/retest

it will fail until ocp-advisor update frontend-components version as it contains some changes for cypress utils https://github.com/RedHatInsights/frontend-components/pull/2085

so finally I made it work, had to bump utils package too and added redux-mock-store package to dev dependencies otherwise cypress tests were failing locally and on Travis.
I also had to fix cypress tests for bulk select as structure looks correct now for bulk menu list and tests have to be updated

:tada: This PR is included in version 1.45.9 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Not working on fresh Laravel v5.8.35

I tried to send exceptions and messages on fresh Laravel v5.8.35 install. Configuration same as in manual. Exception handling and using methods inside code captureMessage($message) and captureException($exception) returns UUID of event but I can't find it in Sentry.
Fresh Laravel v5.8.35 with default config
PHP 7.1.29 on Windows 10 PRO

Sentry works by sending on best effort and to prevent infinite loops transport errors are ignored and I think what is happening is that your PHP is configured without a correct openssl.cafile as explained here: https://stackoverflow.com/a/39812970/1580028. This can cause requests to sentry.io to fail and events are then never arriving although it looks like they were correctly sent.
Can you try setting up the openssl.cafile configuration if you don't already and see if that fixes it for you?
Related and possibly the same issue: https://github.com/getsentry/sentry-laravel/issues/181#issuecomment-455616463

This is it! Thanks @stayallive for help :) I set up OpenSSL, but I completely forgot about openssl.cafile and that's why I rejected this idea.
Maybe it's a good time to add this notice to readme.md or change application to throw an exception or something else ? This issue stopped me for a long time...

Yeah that might not be a terrible idea, however this is really a environment configuration issue and not something we want to guard against, this will break all https requests in your app not just Sentry.
The reason we don't throw an Exception is because Sentry would capture that again which could quickly snowball out of control. However we are working on improving the debugging situation, so this will be less of an issue later.


Hotfix/4.5.7

update and add/remove sections as needed
Fixes

Fixing the GHA workflow

Testing
Testing is being performed on GHA
Prior to merging for releases:

[x] update the project's version in the top-level CMakeLists.txt file
[x] update the appVersion to be the new container image tag version in chart/Chart.yaml

GHA workflow seems to work, so it's tested as far as it can be before making a new release.


os.c build failure

Maybe my question doesn't belong in an issue, in which case I really apologize.
I would like to build the mimalloc library on Windows, without Visual Studio. I use GCC and Make to build my projects.
I have configured the CMake (where I so specified the compilers to use) to compile according to these preferences and it seems to work fine.
However, I have a compilation problem when building os.c, as shown in the given picture, PROCESSOR_NUMBER (and the functions that follow) don't seem to be found or exist. Nevertheless, some fixes to the MinGW version seem to have already been made 🤔

I'm not used to using Windows headers, and I haven't found anything on the Internet that can help me overcome this problem of build. I don't know where to find what is missing. What should I change in my configurations? Or don't I have all the necessary files?
I would really like to test mimalloc, which looks really well designed, thanks :)

Ah interesting. I would like mingw compilation to work.
Can you try to change the #ifdef WIN32 on line 1015 to #ifdef MAXIMUM_PROCESSORS and see if that compiles?
If not, change it to #if defined(WIN32) && !defined(__MINGW32__) and try that.
Both these options will disable NUMA awareness though -- not great :-(
A better option is to make the needed definitions available. Perhaps you need to include <processthreadsapi.h> explicitly?
Or as a final option declare them inline in os.c for mingw compilation? something like:
typedef struct _PROCESSOR_NUMBER {
    WORD   Group;
    BYTE  Number;
    BYTE  Reserved;
} PROCESSOR_NUMBER, *PPROCESSOR_NUMBER;
WINBASEAPI VOID WINAPI
GetCurrentProcessorNumberEx(    _Out_ PPROCESSOR_NUMBER ProcNumber );
WINBASEAPI BOOL WINAPI
GetNumaProcessorNodeEx( _In_  PPROCESSOR_NUMBER Processor, _Out_ PUSHORT NodeNumber );

Let me know how it goes.

Thank you for your response,
I tried your proposals in the dev branch, and this is the result:

The same error occurs when replace #ifdef WIN32 by #ifdef MAXIMUM_PROCESSORS.

#if defined(WIN32) && !defined(__MINGW32__), seems to compile correctly, but I'm getting errors in the linker, as shown in the following picture:

Which seems strange because I get the expected generated files:

and the test executable also well works.

For the explicit file inclusion <processthreadsapi.h>, no change from the original problem is to be reported.

Finally, the last proposed option:

#ifdef __MINGW32__
typedef struct _PROCESSOR_NUMBER {
    WORD   Group;
    BYTE  Number;
    BYTE  Reserved;
} PROCESSOR_NUMBER, *PPROCESSOR_NUMBER;
WINBASEAPI VOID WINAPI
GetCurrentProcessorNumberEx(    _Out_ PPROCESSOR_NUMBER ProcNumber );
WINBASEAPI BOOL WINAPI
GetNumaProcessorNodeEx( _In_  PPROCESSOR_NUMBER Processor, _Out_ PUSHORT NodeNumber );

also works and generate the files, but still with the linker errors display, as shown in the first image.

I see. That the explicit inclusion of the definitions works is good since we can use that to have numa aware allocation from mingw too.
The linker errors seem unrelated to this particular issue -- the linker cannot find mi_free which means the linker didn't get the right library to link with? Perhaps run cmake as verbose to see how it links. Perhaps there is some unix .so versus .dll (or .a versus .lib) confusion in the cmake file?

This is what the CMAKE_VERBOSE_MAKEFILE ON option displays: https://pastebin.com/DuPAtvN9
I don't know if this is what you were expecting?
Anyway, the linker error occurs when linking "mimalloc-test-stress.exe":
[100%] Linking C executable mimalloc-test-stress.exe
This file does not appear in the well generated ones. I don't know if it's maybe a linker error for this particular file.

Ah, I meant to say that I would like to see the actual linker command line. I can get that by running
make VERBOSE=1

The link command I see on Ubuntu for mimalloc-test-stress is:
[ 96%] Linking C executable mimalloc-test-stress
/usr/bin/cmake -E cmake_link_script CMakeFiles/mimalloc-test-stress.dir/link.txt --verbose=1
/usr/bin/cc  -g   CMakeFiles/mimalloc-test-stress.dir/test/test-stress.c.o  -o mimalloc-test-stress -rdynamic libmimalloc-debug.so.1.6 -lpthread -lrt -Wl,-rpath,/xxx/dev/mimalloc/out/debug
make[2]: Leaving directory '/mnt/c/Users/daan/dev/mimalloc/out/debug'

Ah ok, excuse me. Here's what I get (I've removed the Warnings to make it easier to read):
Linking C executable mimalloc-test-stress.exe
"...\cmake.exe" -E cmake_link_script CMakeFiles\mimalloc-test-stress.dir\link.txt --verbose=1
"...\cmake.exe" -E remove -f CMakeFiles\mimalloc-test-stress.dir/objects.a
C:\Strawberry\c\bin\ar.exe cr CMakeFiles\mimalloc-test-stress.dir/objects.a @CMakeFiles\mimalloc-test-stress.dir\objects1.rsp
C:\Strawberry\c\bin\gcc.exe -O3 -DNDEBUG   -Wl,--whole-archive CMakeFiles\mimalloc-test-stress.dir/objects.a -Wl,--no-whole-archive  -o mimalloc-test-stress.exe -Wl,--out-implib,libmimalloc-test-stress.dll.a -Wl,--major-image-version,0,--minor-image-version,0 @CMakeFiles\mimalloc-test-stress.dir\linklibs.rsp

Hmm, looks ok at first look. I wonder if it has to do with the "implib"?  Maybe static linking works? Not sure why it fails as I haven't used mingw for a while. Perhaps there is a mingw expert that can pitch in?

That may indeed be the case. I did a little research, it seems that implib doesn't work for mingw-w64, but only for w32 if I understood correctly (source).
Maybe compiling with a w32 version of the mingw toolchain should solve this problem. I don't have that version, but if I have time tomorrow, I'll try.

I bumped into this. For the mimalloc-test-stress link error, is it missing __declspec(dllexport) expected for Windows in mimalloc.h#L55-L57 ?
Seems fixed by defining mi_decl_export the same as in the _MSC_VER condition above.
#elif defined(__GNUC__)                 // includes clang and icc
  #if !defined(__MINGW32__)
    #define mi_cdecl                      // leads to warnings... __attribute__((cdecl))
    #define mi_decl_export                __attribute__((visibility("default")))
  #else
    #define mi_cdecl                      __cdecl
    #if !defined(MI_SHARED_LIB)
      #define mi_decl_export
    #elif defined(MI_SHARED_LIB_EXPORT)
      #define mi_decl_export              __declspec(dllexport)
    #else
      #define mi_decl_export              __declspec(dllimport)
    #endif
  #endif

For the PROCESSOR_NUMBER compile error in os.c, it looks like mingw defaults to an old _WIN32_WINNT version. Setting to >= _WIN32_WINNT_WIN7 seems to fix without need to modify code.
Mingw also seems to have an old winnt.h which is missing MEM_EXTENDED_PARAMETER_TYPE_BITS and associated types, causing [-Wunused-parameter] for 'numa_node' in mi_os_alloc_huge_os_pagesx. It may be viable to add these missing defines / declarations after include <windows.h>, similar to here?
I also got printf format warnings for "%z", specifying __USE_MINGW_ANSI_STDIO=1 seems to work around.
With the above, building without warning on win 10 pro / mingw-w64 / gcc 8.1.0:
mkdir -p build_mingw_gcc/release && cd build_mingw_gcc/release
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-D_WIN32_WINNT=_WIN32_WINNT_WIN7 -D__USE_MINGW_ANSI_STDIO=1" ../..
cmake --build . -j -v
ctest

@jonty-dawson : Awesome ! I just pushed a fix for the dynamic compilation by just using the same path as _MSC_VER for __MINGW32__ -- this way we do not need to duplicate the code for export declarations. (commit #50bfacd).  The other commit to avoid the numa warning seems just too much to include all the definitions and the warning is fixed already by #64e8cfa.  (Just means huge pages and numa awareness is not working on mingw until they update the headers.)
Can you try the latest dev branch to see if works now?

I guess you still want the empty #define mi_decl_restrict and others from the elif defined(__GNUC__) condition branch, but agree you might be able to DRY with some re-arranging.
First occurrence:
./src/stats.c:7:
./include/mimalloc.h:98:1: warning: 'restrict' attribute directive ignored [-Wattributes]
 mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_malloc(size_t size)  mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1);
 ^~~~~~~~~~~~~~~~~

Just pushed more fixes -- can you try again?  Hope it goes through this time around :-)

0f3bd05fd5a9471ddb9f7fe42b40a561b7e3650b causes error if I build with -D_WIN32_WINNT=_WIN32_WINNT_WIN7
src\os.c:1021:16: error: redefinition of 'struct _PROCESSOR_NUMBER'

No compile error if I build with mingw's default old _WIN32_WINNT, but get reintroduced [-Wimplicit-function-declaration] for FlsAlloc.

0a3e5bb69980f29373337e564a80d77de1b80af0 fixes the restrict warnings on mingw 👍

Just pushed commit 34d3b8c, one more try :-)  Now I check the _WIN32_WINNT version to conditionally include the definitions for GetProcessor and FlsAlloc.

That seems good - confirmed can build on mingw64 without additional compile switches, and also with any of -D_WIN32_WINNT=_WIN32_WINNT_WIN7 / -D_WIN32_WINNT=_WIN32_WINNT_WIN8 /  -D_WIN32_WINNT=_WIN32_WINNT_WIN10
Thanks!

Great! Thanks for your help in fixing this issue.

Sorry sir, but you have the wrong email address.
On Mon, Apr 6, 2020 at 12:30 PM Jonty Dawson<EMAIL_ADDRESS>wrote:

Hi @dannx https://github.com/dannx, with
https://github.com/microsoft/mimalloc/tree/50bfacdb71503181e58a2e3ca3f1db14eb390632
I'm getting a bunch of 'restrict' attribute warnings.
I guess you still want the empty #define mi_decl_restrict
https://github.com/microsoft/mimalloc/blob/50bfacdb71503181e58a2e3ca3f1db14eb390632/include/mimalloc.h#L58
and others from the elif defined(GNUC) condition branch, but agree
you might be able to DRY with some re-arranging.
First occurrence:
./src/stats.c:7:
./include/mimalloc.h:98:1: warning: 'restrict' attribute directive ignored [-Wattributes]
mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_malloc(size_t size)  mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1);
^~~~~~~~~~~~~~~~~
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/mimalloc/issues/217#issuecomment-609931988,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAW5GWT7EC2P3CLVIRUAUELRLIGUHANCNFSM4L2PPV5Q
.

sorry my bad, I meant daanx not dannx


data: raghu-007

Fixes Issue

Changes proposed

Check List (Check all the applicable boxes)

[ ] My code follows the code style of this project.
[ ] My change requires changes to the documentation.
[ ] I have updated the documentation accordingly.
[ ] All new and existing tests passed.
[ ] This PR does not contain plagiarized content.
[ ] The title of my pull request is a short description of the requested changes.

Screenshots

Note to reviewers

You need to remove the comma from line 17. Thank You!

done

In the recent update, we don't need to add avatar: anymore, it will auto-pick your GitHub profile picture. So, please remove that. Updated docs: https://linkfree.eddiehub.io/docs/quickstart Thank You!

done

You can also add tags, tags will help people discover your profile. You can refer to this docs https://linkfree.eddiehub.io/docs/how-to-guides/tags.

looks good
tq


MINOR: Revert Jetty to 9.4.25

9.4.25 renamed closeOutput to completeOutput
(https://github.com/eclipse/jetty.project/commit/c5acf965067478784b54e2d241ec58fdb0b2c9fe),
which is a method used by recent Jersey versions including the
latest (2.30.1). An example of the error:

java.lang.NoSuchMethodError: org.eclipse.jetty.server.Response.closeOutput()V
at org.glassfish.jersey.jetty.JettyHttpContainer$ResponseWriter.commit(JettyHttpContainer.java:326)

The request still completes and hence why no test fails. We should think about how
to improve the testing for this kind of problem, but I want to get the fix in before
2.5 RC0.
Credit to @rigelbm for finding this.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@mumrah we need this in the 2.5 branch.


Create Configurable Hook and Utilities to set endpoint of Service Discovery Service

Resolved by 0.5.0


Noise generation library

I noticed that this project is using the Python noise library.  I've ported the FastNoiseSIMD C++ library, which is a lot faster and more capable, to Python:
https://github.com/robbmcleod/pyfastnoisesimd
The underlying C library uses SIMD vector instructions, and I multi-threaded it using concurrent.futures.  One can make pseudo-plate-like features with cellular noise with the library, so it may accelerate quite a bit more than just the Perlin noise generation steps.

@robbmcleod anything equivalent in rust? :)


Adding repository gives a timeout

It adds normally  until it gets stuck on Done: Packages until it times out POSIX: Operation timed out

Not an issue. Timeouts on static sites like this one would probably be caused by the host or the network connection. Unless you have a really really large Release and Packages file.


Problem when calling the editor

When calling suneditor from within our CMS with:

var editor=document.getElementByName('image_description');
     console.log(editor);

       var editor = SUNEDITOR.create(test), {
            display: 'block',
            width: '100%',
            height: '70vh',
            maxheight: '70vh',
            popupDisplay: 'full',
            resizingBar: false,
            placeholder: 'Start typing something...'
        });

I get the following error message::
"Uncaught SyntaxError: Invalid destructuring assignment target"
Has anyone an idea what's going on here?

var editor = SUNEDITOR.create('id', {
            display: 'block',
            width: '100%',
            height: '70vh',
            maxheight: '70vh',
            popupDisplay: 'full',
            resizingBar: false,
            placeholder: 'Start typing something...'
});

Thank you so much JiHong 🙄 - I overlooked this typo surely a hundred times yesterday.


[Feature Request] Add Ability to Initiate Per-room cleaning

Add functionality to specify the room(s) to clean when cleaning

I've added this using the ability to send custom commands. The only command available right now is segmented_cleanup which accepts a parameter called segment_ids. This signature intentionally matches Valetudo RE's room cleaning commands.
To run it do something like this in Home Assistant:
service: vacuum.send_command
target:
  entity_id: vacuum.my_vaccuum # this is your vacuum entity
data:
  command: segmented_cleanup
  params:
    segment_ids:
      - Bedroom # this is a list of rooms you want to clean based on the name you gave them in the Wyze app


Why is currency unit limited 5 characters in markets?

Currently, currency_id has up to 10 characters limit, but ask_unit and bid_unit have 5 characters limit. even if we can add currency which has named over 5 characters, they cannot be added to markets. Is there reason why Peatio has the limit?

@fish-en Thanks for opening issue
This is bug we will fix it soon


Pass the PKCE code verifier to the ID provider implementations

I'll let them know they need better PR if they want more brainwashed cultists to do their nefarious deeds


Remove no longer needed docker and kubernetes files

@bdunne Please review.

I see... followup to https://github.com/ManageIQ/manageiq_org-spaces_purger/pull/4


input value containing '/' is not substituted as is in the substitution assets

Currently when a user passes input variables that are containing / and using it in the substitution assets, they get replaced as &#x2F.
eg: When I use input such as AWS arn
arn:aws:iam::xxxxxxxxxx:role/yyyyyyy it gets replaced as arn:aws:iam::xxxxxxxxxx:role&#x2Fyyyyyyy in the substitution asset
Steps To reproduce:

Create a project using blueprint builder from CodeCatalyst
Update the Options in the blueprint.ts to allow input from user
Use the input variable to replace the input token using the substitution asset API
Synthesize and publish the blueprint preview
Create a new project using the preview with any valid input value containing /

Expected:
Input value:arn:aws:iam::xxxxxxxxxx:role/yyyyyyy should get substituted as is provided by the user
Actual:
Input value is getting substituted as arn:aws:iam::xxxxxxxxxx:role&#x2Fyyyyyyy
Repository to reproduce this issue:
<EMAIL_ADDRESS>

Mustache templating rules are used here so in order to not have the templating engine HTML-escape the variable you would need to use a triple bracket, i.e. {{{name}}}. We will update the documentation to make this clear.


Explanation of how to use apriltags for beginners.

Copied from comment here: https://github.com/personalrobotics/apriltags/issues/8#issuecomment-234775839
@Asukamax commented 4 hours ago

Excuse me .I'm a newbie.
I don't know how to use this package ,even I could build it ,run the launch file successful...
When I run the apriltags.launch ,it seem like doing nothing?
Is that I should run some node to make my camera active and publish the image imformation to topic?
If is that , which package I could use?
Thanks a lot

@asukamax: You are correct, the apriltags node only processes image data, but it does not connect to a camera.  You need to run one of several camera driver ROS nodes to get data from your camera and publish it on ROS.
The exact driver you need to use depends on your camera. For USB cameras, two common options are:

http://wiki.ros.org/usb_cam
http://wiki.ros.org/uvc_camera

The standard for cameras on ROS is to publish a subset of a few standard topics, such as:

/image_raw - an unmodified camera image
/image_mono - a black and white version of the image
/camera_info - information about the camera calibration

After your camera node is outputting these, you need to rectify the image in order to remove the distortions from the camera not being physically ideal.  ROS provides another node for this, in the image_proc package:
http://wiki.ros.org/image_proc
This node will take in one of the above images, and use the information in /camera_info to produce a new image topic called /image_rect.  This will be the same image, only warped to remove the camera distortions.
At this point, you can set the /camera_info and /image_rect topics in the apriltags.launch file so that your camera images are fed into the Apriltags node. The output will be a stream of detections, one message per frame.
You can read through the ROS tutorials for setting up a camera, it should help explain more about what these nodes do and how to use them.

After your camera node is outputting these, you need to rectify the image in order to remove the distortions from the camera not being physically ideal. ROS provides another node for this, in the image_proc package:
http://wiki.ros.org/image_proc

@psigen I was wondering about this, I seem to get better performance in terms of the pose estimation when I didn't give rectified images to the detector. My guess was that its because the call to solvePnP takes into account the distortion coefficients https://github.com/personalrobotics/apriltags/blob/master/src/apriltags.cpp#L118 if you feed the rectified image these coefficients should be zero instead.

That's a good point @andre-nguyen, we should probably document that.

Could a .bag also be provided? It would be nice to test against a known working set.

Hi, I also felt the usage of  apriltags in ros is not well documented yet.
So I tried to manage. Here https://github.com/xenobot-dev/apriltags_ros
welcome comment. :)


feat(evergreen): add combo-box component to evergreen component mapper

combo-box will be treated similar to a select component, with a required format for an array of objects to populate items

A combo box is not a supported component in the DDF core as it is usually covered by the select component or is added as a custom component. I know there are some differences with this mapper specifically for the editor though.
@rvsia unless you have strong feelings against adding I don't really mind.

@Hyperkid123 As there is a combobox coming directly from Evergreen package, I do not see any reason why to not include it here as well.

:tada: This PR is included in version @data-driven-forms/evergreen-component-mapper-v0.2.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Apple Music is not available in your country or region.[BUG]

Describe the bug
I log in and it says Apple Music is not available in your country or region. I'm in the USA so i can't see how this is a problem.
To Reproduce
Steps to reproduce the behavior:

Go to log in
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. Linux/Mac/Windows]
Application Version [e.g. 2.4.0]

Log File
Check your log file for any errors or the last message to be sent and post them here.
Additional context
Add any other context about the problem here.
Have you followed the troubleshooting guide found here and checked for any outstanding/pinned issues that can help?
Yes/No

Please provide the rest of the information that the template requests, more specifically what version are you on?

I'm getting this on 2.4.1 on Windows 10 using the EXE and Winget installation!

I suggest you upgrade to v2.5.0, which can be found here. On this version, the issue is fixed.

That fixed it! Thank you!

Glad to hear it, if you or anyone else experience any UI issues (as we have had reports of css not being loaded) with elements disappearing follow the clean installation guide


Re-enable windows tests

Looks good here! It's odd that the Appveyor log ends with compilation commands and no errors, though...

The problem is this build message:

Build exceeded allowed resource quotas. Fix your build to consume less resources or contact AppVeyor support to request quotas increase

I guess we have to run less tests on appveyor. I'm going to try to coalesce some of the tests to see if that helps here.

Any news on this?


Request: add resources page for community-made public goods

As various providers, devs, and validator operators have public goods they want to share to the community, it would be great to have a page that people can list and contribute to.

Snapshots
Public RPCs/APIs
Seed Nodes
Addrbooks
Explorers
Wallets
Faucets
Governance UI
etc.

We should find the right structure for this (all in the same page, all in separate pages, etc.) as some of these fit into existing pages, while there's not a clear place for others. As it is difficult to fully ensure the security of all of these services, it should caveat that they are to be used at your own risk, and the community should be vigilant about flagging any that are or are suspected to be malicious in any way.

@btroo how do you think this should coexist with https://www.zetachain.com/ecosystem ?


Add a basic SIR model for stratification tests

Description
New model AMR json for stratification manual tests.

There is one already in the Google Drive referenced in the different tests.
We should not save random assets in the repo.

@liunelson I uploaded the file onto the shared google drive
/testing/manual tests/stratify model/data


Multi-Arch Docker images

Is your feature request related to a problem? Please describe.

Describe the solution you'd like
If the Docker image contained an arm build, it would probably work better. But I'm not sure how to do that and I don't have a Mac to test. 🤷♀

This was done in #89


Reconstruct project

Motivation:
split two modules to make others can reuse convertor etc, in starter module, we only provide auto configure and spi file
Modification:
split two modules
Result:
Fixes #.
If there is no issue then describe the changes introduced by this PR.

Codecov Report

Merging #57 into master will decrease coverage by 0.03%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             master      #57      +/-   ##
============================================
- Coverage     54.87%   54.83%   -0.04%
- Complexity        0      335     +335
============================================
  Files            51       51
  Lines          1549     1550       +1
  Branches        264      264
============================================
  Hits            850      850
- Misses          552      553       +1
  Partials        147      147

Impacted Files
Coverage Δ
Complexity Δ

...fa/rpc/boot/runtime/adapter/H2cBindingAdapter.java
100% <ø> (ø)
2 <0> (?)

...pc/boot/runtime/converter/H2cBindingConverter.java
60% <ø> (ø)
3 <0> (?)

...rpc/boot/runtime/binding/RpcBindingMethodInfo.java
0% <ø> (ø)
0 <0> (?)

...ay/sofa/rpc/boot/common/SofaBootRpcParserUtil.java
61.53% <ø> (ø)
6 <0> (?)

...a/rpc/boot/health/RpcAfterHealthCheckCallback.java
70% <ø> (ø)
3 <0> (?)

...ofa/rpc/boot/context/SofaBootRpcStartListener.java
88.88% <ø> (ø)
3 <0> (?)

...fa/rpc/boot/runtime/adapter/RpcBindingAdapter.java
29.62% <ø> (ø)
4 <0> (?)

...fa/rpc/boot/runtime/parser/GlobalFilterParser.java
50% <ø> (ø)
6 <0> (?)

.../rpc/boot/runtime/adapter/DubboBindingAdapter.java
30% <ø> (ø)
3 <0> (?)

...pay/sofa/rpc/boot/runtime/binding/RestBinding.java
100% <ø> (ø)
2 <0> (?)

... and 39 more

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 9e12621...fa6f882. Read the comment docs.


set clickable option?

I'd like to be able to click a notification then copy the caption text to my clipboard.
I don't see from the API how to dismiss the notification by dismissing it.
Is there a way to capture that clicking event?

The first feature could be easily added however I don't quite understand your second case. And there is no way yet to add execute some code when some notification is dismissed.

*I don't see from the API how to dismiss the notification by clicking on it.
Is what I meant.

And there is no way yet to add execute some code when some notification is dismissed.

I am working around it now by having a button called "Dismiss and copy text" which copies the text over when the notification is dismissed. Or did you mean something else?

I don't see from the API how to dismiss the notification by clicking on it.
You can call .set_closable(true) when adding a new toast to be able to dismiss it.

But for now there is no way to copy the caption of the notification, these notifications were intended for short messages. What is your usecase for copying notification's caption?

What is your usecase for copying notification's caption

The app produces an ID that is searchable online, so I want the user to be able to use the app and immediately be able to go online and paste the string into a search engine.
It is an UX optimization of sorts (I could simply just print the text on the GUI and have them copy it that way) but its something other apps in this category don't do and so I thought it would be nice if mine did just to cut down on steps.
It's not a big deal, was just curious if it would be possible but it seems like "the juice is not worth the squeeze". Thanks for your help regardless.


[Sync] kserve/modelmesh-serving-v0.11.0-rc0 to main branch

Motivation
This is Release Sync. Detail information is here:

Sync Date:
kserve/modelmesh release issue: https://github.com/kserve/modelmesh-serving/pull/390
kserve/modelmesh-serving release version : v0.11.0-rc0
odh/modelmesh-serving branch: main

Test
go get github.com/onsi/ginkgo/v2
go install github.com/onsi/ginkgo/v2/ginkgo
export PATH=${GOBIN}:${PATH}

TAG=fast MM_USER=Jooho BRANCH=20230605_sync_main REPO_URI=remote CONTROLLERNAMESPACE=opendatahub NAMESPACE=modelmesh-serving FORCE=true NAMESPACESCOPEMODE=true make  deploy-mm-for-odh  deploy-fvt-for-odh repeat-fvt

Result
....
Ran 5 of 5 Specs in 183.129 seconds
SUCCESS! -- 5 Passed | 0 Failed | 0 Pending | 0 Skipped

Ginkgo ran 1 suite in 3m5.144013328s
Test Suite Passed
Passed fvt/hpa. Move on the next test
[SUCCESS] FVT Test Passed!

PR checklist
Checklist items below are applicable for development targeted to both fast and stable branches/tags

[X] Unit tests pass locally
[X] FVT tests pass locally
[ ] If the PR adds a new container image or updates the tag of an existing image (not build within cpaas), is the corresponding change made in live-builder and cpaas-midstream to add/update the image tag in the operator CSV? Link the PRs if applicable

Checklist items below are applicable for development targeted to both fast and stable branches/tags

[X] Tested modelmesh serving deployment with odh-manifests and ran odh-manifests-e2e tests locally

/retest

/lgtm


Clear dates

Hi,
how can i clear the dates? tried to add a function on the click cancel button but no event is emitted on the click button.
any recommedation on how to implement this clear dates functionality?

Just added a @cancelled event when user clicks cancel. So maybe you can use this. Available in v 1.9.2

HI,
Im trying to use the component inside a vuetify dialog (modal window), but once the calendar is open it wont close anymore clicking on the trigger or on the modal area..
any advice ?
thanks

@osnielcainzos Seems there are some issues with this plugin together with modals in Vuetify. I'm going to try to solve these issues.

thanks @MikaelEdebro
is there a way to close the calendar when second date is selected ? Im trying setting the trigger to false in the event but nothing happens.


some problem in syzkaller fuzz？

why always only the VM0 run fuzzer？

the VMs are all dead？

it is reproducing the crashes, so all vms are occupied

What @Da5hes said


Continuous 'Compling lib\main.dart for the web' and slow hot reload

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.73.1(user setup)
OS Version: Windows 10

Steps to Reproduce:

Open my project and select Chrome like a device to use.

Run my procject and open it.

But the compiling lib\main.dart for the web remain

when i click the hot reload button is too slow.

This issue is caused by an extension, please file it with the repository (or contact) the extension has linked in its overview in VS Code or the marketplace for VS Code. See also our issue reporting guidelines. If you don't know which extension is causing the problem, you can run Help: Start extension bisect from the command palette (F1) to help identify the problem extension.
Happy Coding!


[Errno 17] File exists: <DIR_NAME>

Hi.
We have 10 / 20 errors each day for each carbon cache instance running on our graphite boxes.
What they exactly means?
First, i think you should make sure that if ....../system/interface/eth3/if_octets is a file or directory.
Second, i think you would better provide at least one metric name under these these dirs.
I think this seems to happen when carbon detects that there is no such whisper file and choose to create one.

Hi @andyxning .
I'm working with 0.10 master version  ( commit b80ce915a5e420b46e6972512801491e536db1b6) . And "yes" always the file in the error log refers to a directory.
As you say it seems like happens when trying to create a new whisper file.
I've found these logs in the console.log
26/01/2016 20:48:56 :: "[Errno 17] File exists: '....dir_nameA"

And this other line in the create.log
26/01/2016 20:48:56 :: creating database file ....dir_nameA/metric_nameA (archive=[(60, 21600), (300, 25920), (3600, 9840)] xff=0.5 agg=average)

At the same time...

@toni-moreno

How is your carbon architecture in using?
how many carbon cache instance running in the machine?
How is the relay rules between carbon relay and carbon cache?

Seems some race condition.

This is my carbon.conf
[cache]
LOG_DIR=/logs/graphite
STORAGE_DIR    = /dir/metrics/
USER=carbon
LOCAL_DATA_DIR = %(STORAGE_DIR)s/
ENABLE_LOGROTATE = True
MAX_CACHE_SIZE = inf
MAX_UPDATES_PER_SECOND = 50000
MAX_CREATES_PER_MINUTE = 500
LINE_RECEIVER_INTERFACE = <IP_ADDRESS>
ENABLE_UDP_LISTENER = False
UDP_RECEIVER_INTERFACE = <IP_ADDRESS>
UDP_RECEIVER_PORT = 2003
PICKLE_RECEIVER_INTERFACE = <IP_ADDRESS>
USE_INSECURE_UNPICKLER = False
CACHE_QUERY_INTERFACE = <IP_ADDRESS>
USE_FLOW_CONTROL = True
LOG_UPDATES = False
LOG_CACHE_HITS = False
WHISPER_AUTOFLUSH = False
LOG_LISTENER_CONN_SUCCESS = False

[cache:wr05a]
LINE_RECEIVER_PORT=2013
PICKLE_RECEIVER_PORT = 2014
CACHE_QUERY_PORT = 7002

[cache:wr05b]
LINE_RECEIVER_PORT=2113
PICKLE_RECEIVER_PORT = 2114
CACHE_QUERY_PORT = 7102

[cache:wr05c]
LINE_RECEIVER_PORT=2213
PICKLE_RECEIVER_PORT = 2214
CACHE_QUERY_PORT = 7202

[cache:wr05d]
LINE_RECEIVER_PORT=2313
PICKLE_RECEIVER_PORT = 2314
CACHE_QUERY_PORT = 7302

[cache:wr05e]
LINE_RECEIVER_PORT=2413
PICKLE_RECEIVER_PORT = 2414
CACHE_QUERY_PORT = 7402

[cache:wr05f]
LINE_RECEIVER_PORT=2513
PICKLE_RECEIVER_PORT = 2514
CACHE_QUERY_PORT = 7502

[relay]
LOG_DIR=/logs/apps/graphite
USER=carbon
ENABLE_LOGROTATE = True
LINE_RECEIVER_INTERFACE = <IP_ADDRESS>
PICKLE_RECEIVER_INTERFACE = <IP_ADDRESS>
RELAY_METHOD = consistent-hashing
MAX_QUEUE_SIZE = 1000000
MAX_DATAPOINTS_PER_MESSAGE = 500
QUEUE_LOW_WATERMARK_PCT = 0.8
TIME_TO_DEFER_SENDING = 0.0001
USE_FLOW_CONTROL = True
USE_RATIO_RESET=False
MIN_RESET_STAT_FLOW=1000
MIN_RESET_RATIO=0.9
MIN_RESET_INTERVAL=121
LOG_LISTENER_CONN_SUCCESS = False

[relay:dist05]
LINE_RECEIVER_PORT = 2003
PICKLE_RECEIVER_PORT = 2004
REPLICATION_FACTOR = 1
DESTINATIONS = localhost:2014:wr05a, localhost:2114:wr05b, localhost:2214:wr05c, localhost:2314:wr05d, localhost:2414:wr05e, localhost:2514:wr05f
```

I think it this is the situation:
Assuming we have two metrics: a.b.c and a.b.d. according to the consistent-hashing, these two metrics will be distributed between cache-instance-a and cache-instance-b. Because there are two cache instance in the same machine and may be that when cache-instance-a have checked that there is no directory a/b exists and begin to make it. However, at the same time, cache-instance-b have checked it also and make it earlier than cache-instance-a. This will make cache-instance-a report the error.
Sorry for not having a staging carbon env and i think you can test this situation.
here is the code related to this logic.
        try:
            if not exists(dbDir):
                os.makedirs(dbDir)
        except OSError, e:
            log.err("%s" % e)
        log.creates("creating database file %s (archive=%s xff=%s agg=%s)" %
                    (dbFilePath, archiveConfig, xFilesFactor, aggregationMethod))

It seems that carbon will check for the dir existence and if it does not exist it will try to make it. This is a check and create logic. So, there must be some race condition. However, when such thing happens, carbon just make sure that the dir is absolutely exist and just log the error info and continue to create the new whisper file. Nothing else will be made and no data will be lost. It just record the race condition, i think. :)

@toni-moreno Have you tried test it? If you confirmed that, i think we can close this issue now. :)

I've closed this issue because this error seems not impact in the service, and finally the metric is created. Thanks a lot @andyxning