added aarch64 detection

gridcoind compiles and runs now on my ODROID C2.
But did not do any extensive testing on it.

Have you done any more testing on this? Do we need another scrypt asm for it to work?

@denravonska As far as I can tell this works as expected. The staging branch with this fix running stable on on my odroid-c2 for about 24h. I keep it running and will report any issues.

Merged, thanks. @skcin Let me know how the long term test goes.


cant mount flash drive

Please paste the output of the following command here: sudo edit-chroot -all

Please describe your issue:
i cant mount flash drive
If known, describe the steps to reproduce the issue:
plug in flash drive  eject in chrome file manger tryd to mount flash drive. it says you dont have permission to mount

If you have a USB drive accessible in Chrome OS, you should just be able to access it in crouton from /media/removable inside your chroots.
If you need to have the contents of the USB drive accessible somewhere else inside the chroot, you can run sudo mount --bind /media/removable/USB\ Drive\ Name /where/I/want/it/to/be from a terminal in your chroot. (You can use the tab key to list the USB drive names after typing /media/removable.)
If you can't access the drive in Chrome OS, however, it's a little more complicated.
First, run lsblk from inside your chroot. Look for a drive that's called either sdX or mmcblkX that doesn't have 12 partitions under it - that's the Chrome OS system drive. Let's say it's /dev/sdb. First, you'll need to create a directory to mount it: sudo mkdir -p /media/removable/myusb. Then, you'll need to mount it with something like sudo mount /dev/sdb1 /media/removable/myusb - sometimes you'll need the 1, other times it won't work if you use it. For mmcblk drives (usually SD cards), you might need to use something like mmcblk1p1.


refactor set method

Adds a set method that allows to set a particular formatting without affecting the rest.
Extends the testing.
Allows for the old behavior with set_with_default(): calling without parameters will restore a default value.
fixes #241
Also improves the mypy testing.

@belono, if you want to, please have a look at these changes. I am changing also that now mypy is called in CI. If you have any objections or issues with that, please let me know.
Thank you!

@belono, if you want to, please have a look at these changes. I am changing also that now mypy is called in CI. If you have any objections or issues with that, please let me know. Thank you!

Hi @belono would it be ok to merge this branch?

@belono, if you want to, please have a look at these changes. I am changing also that now mypy is called in CI. If you have any objections or issues with that, please let me know. Thank you!

Hi @belono would it be ok to merge this branch?

mypy is a great tool that I have never used before and from now on it will be a permanent part of my tooling. It's perfect to have it in CI.
The new implementation of the set method is looking really good.
No objections to merge at all. :+1:

Great, thanks for having a look!


Guidance needed for unit testing nested aggregrations

Hi all,
While I have been successful developing unit tests for a single aggregation I am not able to figure out how to mock a ISearchResponse object when dealing with nested aggregations.
When I have a single aggregation as in this example:
        var unresolved = _sourceElasticClient.Search<AnalyticalContentEventTrack>(s => s
               .Query(q => q
                   .Filtered(fq => fq
                       .Filter(f => f
                           .Bool(b => b
                               .Must(m => m
                                   .Missing(mis => mis
                                       .Browser.BrandName))
                               .MustNot(mn => mn
                                   .Term(t=>t.UserAgent, string.Empty))))))
                                   .Aggregations(ag=>ag
                                       .Terms(UserAgentTermAgg, t=>t
                                           .Field(f=>f
                                               .UserAgent)
                                               .Size(NumberOfTerms))));

I am then able to mock this as follows
         var mockSearchResponse = new Mock<ISearchResponse<AnalyticalContentEventTrack>> (MockBehavior.Strict);
         var aggs = new Dictionary<string, IAggregation> {{DeviceInformationRefreshProcessor.UserAgentTermAgg, new Bucket()}};
         ((Bucket)aggs[DeviceInformationRefreshProcessor.UserAgentTermAgg]).Items = new List<KeyItem> { new KeyItem { Key = "test" } };

         var aggHelper = new AggregationsHelper(aggs);
         mockSearchResponse.SetupGet(r => r.Aggs).Returns(aggHelper);

         _mockElasticClient.Setup(
             r => r
                 .Search(
                    It.IsAny<Func<SearchDescriptor<AnalyticalContentEventTrack>,
                        SearchDescriptor<AnalyticalContentEventTrack>>>()))
                           .Returns(mockSearchResponse.Object);

However when I have a nested aggregation, I am not able to figure out how to mock the ISearchResponse.
Consider this method which contains the aggregation.
private ISearchResponse GetContentSearchBoostResult(int itemListSize, int searchTokenSize, string desiredDateRange)
{
//for the given date range and page rank at or above a minimum value and for each content item
//get the Page Rank mode, average search relevancy score and significant search tokens
        var result = _elasticClient.Search<AnalyticalContentEventTrack>(s => s
                        .Query(q => q
                            .Filtered(qf => qf
                                .Filter(f => f
                                    .Range(r => r.GreaterOrEquals(MinimumPageRankLimit).OnField(PageRank)))))
                                    .Aggregations(dr => dr
                                        .DateRange(DateRange, dtr => dtr
                                            .Field(cd => cd.CreatedDate)
                                            .Ranges(nd => nd
                                                .From(desiredDateRange))
                                                    .Aggregations(cia => cia
                                                        .Terms(TopContent, tc => tc
                                                            .Field(ItemId).Size(itemListSize)
                                                            .Aggregations(pra => pra
                                                                .Terms(PageRank, pr => pr
                                                                    .Field(PageRank)
                                                                    .Size(1))
                                                                .Stats(RankScore, rs => rs
                                                                    .Field(SearchRelevancyScore))
                                                                .SignificantTerms(SearchTokens, st => st
                                                                    .Field(SearchTermLower)
                                                                    .Size(searchTokenSize))))))));
        return result;
    }

This method is then called from this code:
        var desiredDateRange = string.IsNullOrEmpty(dateRangeExpression) ? DefaultDateRange : dateRangeExpression;
        var results = new List<SearchTrackBoost>();

        var result = GetContentSearchBoostResult(itemListSize, searchTokenSize, desiredDateRange);
        var dateRange = result.Aggs.DateRange(DateRange);
        var content = dateRange.Items[0].Terms(TopContent);
        foreach (var i in content.Items)
        {
            var boost = new SearchTrackBoost
                {
                    ModifiedRank = Convert.ToInt32(i.Terms(PageRank).Items[0].Key) - (MinimumPageRankLimit/2),
                    ItemId = new Guid(i.Key),
                    AnalyzedDate = DateTime.UtcNow,
                    OriginalScore = i.Stats(RankScore).Average.HasValue ? i.Stats(RankScore).Average.Value : 0.0,
                    RankedDocumentCount = i.Terms(PageRank).Items[0].DocCount,
                    TotalDocumentCount = i.DocCount,
                    Tokens = i.Terms(SearchTokens).Items.Select(x => new SearchToken
                        {
                            Token = x.Key,
                            TokenCount = x.DocCount,
                            Contribution = 0.0
                        }).ToList()
                };

            results.Add(boost);

The body of the code that uses the result from the is what I want to have test coverage for.
This issue I have not been able to figure out is how to make the following lines work.
        var dateRange = result.Aggs.DateRange(DateRange);
        var content = dateRange.Items[0].Terms(TopContent);

While I am able to return the dateRange bucket, I am not able to figure out how to get the Items collection populated.  Items is always being returned as an empty collection resulting in an index out of range error.
In this example, we are using the 1.4.2 Nest client and .Net 4.5.

Hey @djnelson9715
What does your mock object look like for the latter, nested aggregation case?

closing this due to inactivity.

(for anyone who finds this page via google)
I figured this out. We use a terms->terms->avg aggregation.
This is our Nest agg descriptor:
const string PARENT_ID_AGG_KEY;
const string RELATED_ID_AGG_KEY;
const string DISTANCE_AVG_AGG_KEY;

var aggDescriptor = new AggregationDescriptor<object>()
    .Terms(PARENT_ID_AGG_KEY,
        terms1 => terms1
            .Field(PARENTID_FIELD_NAME)
            .Size(20)
            .Aggregations(a2 => a2.Terms(RELATED_ID_AGG_KEY,
                terms2 => terms2
                    .Field(RELATEDID_FIELD_NAME)
                    .Size(20)
                    .Aggregations(a3 => a3.Average(DISTANCE_AVG_AGG_KEY,
                        avg => avg
                            .Field(DISTANCE_FIELD_NAME))))));

Given a Dictionary<string, Dictionary<string, value>>, this is how to build the aggregation response for the above query:
private static ISearchResponse<object> BuildNestAggResponse(Dictionary<string, Dictionary<string, double>> parentIdsWithRelations)
{
    var aggregationDict = new Dictionary<string, IAggregation>
    {
        [PARENT_ID_AGG_KEY] = new Bucket
        {
            Items = parentIdsWithRelations.Select(kv =>
            {
                var relatedDict = new Dictionary<string, IAggregation>
                {
                    [RELATED_ID_AGG_KEY] = new Bucket
                    {
                        Items = kv.Value.Select(relatedIdWithWeight =>
                        {
                            var valuesDict = new Dictionary<string, IAggregation>
                            {
                                [DISTANCE_AVG_AGG_KEY] = new ValueMetric {Value = relatedIdWithWeight.Value}
                            };

                            return new KeyItem(valuesDict)
                            {
                                Key = relatedIdWithWeight.Key
                            };
                        })
                    }
                };

                return new KeyItem(relatedDict)
                {
                    Key = kv.Key
                };
            })
        }
    };

    var aggregation = new AggregationsHelper(aggregationDict);

    // Rhino mocks
    var mockSearchResponse = MockRepository.GenerateMock<ISearchResponse<object>>();
    mockSearchResponse.Stub(r => r.Aggs).Return(aggregation);
    mockSearchResponse.Stub(r => r.IsValid).Return(true);

    return mockSearchResponse;
}

The key thing is to set both the Aggregations dictionary and the Items property. This is the problem the OP was having

While I am able to return the dateRange bucket, I am not able to figure out how to get the Items collection populated. Items is always being returned as an empty collection resulting in an index out of range error.

The thing is that the .Aggregations property does not contain the values of the aggregation. Those go in the Items property. This seems obvious, but it's a bit confusing because the actual response from ES does not have the same structure. The .Aggregations property corresponds to the properties marked [1], the .Items property to those marked [2].
{
  "took": 16,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 1421,
    "max_score": 0,
    "hits": []
  },
  "aggregations": {
    "parentId": { <------ [1]
      "doc_count_error_upper_bound": 0,
      "sum_other_doc_count": 1171,
      "buckets": [ <--------- [2]
        {
          "key": "6a67bba13ec449e2a2e35c07baa00b9c",
          "doc_count": 42,
          "relatedId": { <-------- [1]
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 32,
            "buckets": [ <--------- [2]
              {
                "key": "0a2dd40100b64b5482a5fed09e8d651c",
                "doc_count": 1,
                "distance": { <-------- [1]
                  "value": 0.05000000074505806
                }
              }
            ]
          }
        }
      ]
    }
  }
}

Another tricky part was to realise that if you set the wrong type of IAggregation (e.g. Terms is a KeyItem, Avg is a ValueMetric), then no exceptions are thrown. Internally NEST just returns null if it can't find an aggregation of the expected type. So you have to check AggregationsHelper.cs for the exact type NEST will actually return for your aggregation, before your mock will work.

@djnelson9715  pinging you on this old issue since I don't have your contact details and didn't spot you at the elasticon party yesterday: let me know when you want to pair on typeselector today! Also it be good to get your email :)

Hi Martijn
Sorry I missed you at the party.  My email address iso
<EMAIL_ADDRESS> my phone number is<PHONE_NUMBER>.  Let's try to
connect during lunch
On Mar 9, 2017 10:24 AM, "Martijn Laarman"<EMAIL_ADDRESS>wrote:

@djnelson9715 https://github.com/djnelson9715 pinging you on this old
issue since I don't have your contact details and didn't spot you at the
elasticon party yesterday: let me know when you want to pair on
typeselector today! Also it be good to get your email :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/elastic/elasticsearch-net/issues/1287#issuecomment-285436444,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABy19XX5xUmbVup95O4aBwxadbn_fK_Jks5rkEP0gaJpZM4D0my9
.

Hi guys,
I'm having a similar issue and even though the above explanation is helpful, it's still not very clear to me how I could adapt it to my case as it makes use of unexplained code ("parentIdsWithRelations" etc.).
Say I have a 3-layer terms aggregation using attributes: genre. director, country and I get the following response from ES:
{
"aggregations" : {
    "genre" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 0,
      "buckets" : [
        {
          "key" : "comedy",
          "doc_count" : 2427,
          "director" : {
            "doc_count_error_upper_bound" : 0,
            "sum_other_doc_count" : 0,
            "buckets" : [
              {
                "key" : "Woody Allen",
                "doc_count" : 4,
                "country" : {
                  "doc_count_error_upper_bound" : 0,
                  "sum_other_doc_count" : 0,
                  "buckets" : [
                    {
                      "key" : "USA",
                      "doc_count" : 30
                    }
                  ]
                }
              },
              {
                "key" : "Tim Burton",
                "doc_count" : 250,
                "country" : {
                  "doc_count_error_upper_bound" : 0,
                  "sum_other_doc_count" : 0,
                  "buckets" : [
                    {
                      "key" : "Great Britain",
                      "doc_count" : 30
                    },
                    {
                        "key": "France",
                        "doc_count": 2
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "key" : "drama",
          "doc_count" : 2,
          "director" : {
            "doc_count_error_upper_bound" : 0,
            "sum_other_doc_count" : 0,
            "buckets" : [
              {
                "key" : "Steven Spielberg",
                "doc_count" : 2,
                "country" : {
                  "doc_count_error_upper_bound" : 0,
                  "sum_other_doc_count" : 0,
                  "buckets" : [
                    {
                      "key" : "USA",
                      "doc_count" : 10
                    },
                    {
                      "key" : "Italy",
                      "doc_count" : 2
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    }
  }
}

And say the code I'm trying to test is interested in "key" values for all buckets and "doc_count" for the innermost bucket (so the buckets for "country"). How do I mock a response like this in C#? As said, I'm only using terms aggregations here.
I'm quite new to this, so all help would be much appreciated! Let me know if anything is unclear.


Change ODE Solver, remove_provinces and plotting

Changed remove_provinces to sumCases_provinces; changed ODE solver from solve_ivp to odeint, because it is a compiled FORTRAN routine, faster than Python interpreted; change little things in plotting

@gasilva I cannot see any difference in the PR. Could you check it?

@gasilva I cannot see any difference in the PR. Could you check it?

see the fd39930

6567b08 was cancelled because it duplicated
fd39930

I could not open another pull request so I did it here. See only the remove_provinces changes.


chore(main): release 0.5.4

:robot: I have created a release beep boop
0.5.4 (2024-09-18)
Bug Fixes

bump: release please (12bc5c1)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/MetalBrackets/AutoChangelogMainPush/releases/tag/v0.5.4 :sunflower:


API doc improvements

Coverage remained the same at 32.765% when pulling 0343a9eb7d50f40d18bdf11aa19da564a31a7a21 on api_wiki_2 into 362d8626e710834a79d2fffde33b2068d524635e on master.

Coverage remained the same at 32.765% when pulling 0343a9eb7d50f40d18bdf11aa19da564a31a7a21 on api_wiki_2 into 362d8626e710834a79d2fffde33b2068d524635e on master.


A sort of typo in exercise: [courseId=grammar-intro_eng][lessonNumber=13][exerciseId=393]

Description
The word you appears twice in the sentence. I tried to correct this myself in the exercises but their generation seems way more complex than I could grasp by a quick read 😛
I would guess the problem is the generator for the "sumtcita part" spat out a sentence ended with the word you and the generator for the rest of the sentence spat out one that started with you.
Diagnostics information (do not remove)

Exercise identifier: [courseId=grammar-intro_eng][lessonNumber=13][exerciseId=393]
Exercise payload: {"sentences":[{"text":"Who made you you translate to Lojban?","lojbanic":false}],"title":"Translate this sentence","type":"typing"}
Attempted solution: {"text":"gau ma do fanva fi lo lojbo"}
Attempted solution was classified as correct: yes
Validation payload: {"canonicalAnswer":"gau ma do fanva fi lo lojbo","correct":true}

Thank you for submitting this issue. You are indeed correct, and I have submitted a pull request resolving this issue. Nice catch!

Thank you @vinivosh and @emorchy!


Add support for HermitOS

HermitOS is a microkernel target aiming to provide a simple OS for
virtualized applications. It recently added support for the poll() and
eventfd() system calls, which means we can target it with our poll()
based backend.
Hermit does not have a traditional libc; instead it uses hermit-abi.
However rustix does not support using hermit-abi as its underlying
layer yet. So we have to build a shim layer until it does.
Closes #177
cc bytecodealliance/rustix#1012
cc @stlankes

Looks good from my side! However, we have an issue last_os_error() and it doesn't work like expected. But we are able to fix it. I  will give you a hit, it it works like expected.

Looks good from my side! However, we have an issue last_os_error() and it doesn't work like expected. But we are able to fix it. I will give you a hit, it it works like expected.

Could you elaborate? What error is being returned?

In std we determine the last error code in a different way and ignored last_os_error. We just don't use it. To solve it, we submit rust-lang/rust#121765. In the current stage, I would directly use hermit-abi to get the last error code.

@stlankes I've fixed it to use get_errno instead of last_os_error, can you take another look?


Add coveralls + code coverage to docs

Istanbul uses esprima which only has partial support for ES6, so that's out of the question for coverage.

^ nvm. I can compile to commonjs and instrument that.

I should have guessed it – @thejameskyle has the solution :)

:stuck_out_tongue_winking_eye:

Instead of coveralls, I'm going to use CodeClimate. CodeClimate gives you coverage and also some extra stats if you're interested in that sorta thing.


"Post" step should print the key if upload was successful

In order to debug issues of not finding cache, it would help to know the exact key that the cache was previously uploaded with.
Currently the only info printed in the "post" step is:
Post job cleanup.
/usr/bin/tar --posix --use-compress-program zstd -T0 -cf cache.tzst -P -C /home/runner/work/repo/repo --files-from manifest.txt
Cache saved successfully

It seems a logging line is missing in file save.ts, in case upload was successful
https://github.com/actions/cache/blob/354332455a7a9ae5492723ca9d4d082484e173bc/src/save.ts#L43-L46

This should now be logged with changes here: https://github.com/actions/cache/pull/509

Thanks, it works!


Merge to Master

<!-- Make sure you have read http://napalm.readthedocs.io/en/latest/contributing/index.html --!>

+1


mapping/RVIZ not work on PC talking to tb4 -> topics missing from PC -> time sync problem -> best solution?

Robot Model
Turtlebot4 Standard
ROS distro
Humble
Networking Configuration
Simple Discovery
OS
Ubuntu 22.04
Built from source or installed?
Installed
Package version
Create 3 is using firmware version H.2.4 (updated through web server) from Create 3 Releases (https://iroboteducation.github.io/create3_docs/releases/overview/)
Raspberry Pi 4 is using code image Humble 1.0.0 from TurtleBot4 Humble page (https://turtlebot.github.io/turtlebot4-user-manual/changelogs/humble.html)
I have done sudo apt update && sudo apt upgrade on the RaspPi4
PC is running Ubuntu 22.04 and ROS2 Humble
Type of issue
Navigation (SLAM, Nav2 etc.)
Expected behaviour
I can run RVIZ and localization and mapping on my PC and see a clean map in RVIZ with the localization and navigation indicators and can see all topics and messages on my PC (and even generate a map as per UserManual -> TUTORIALS -> 4. Generating a map)
Actual behaviour
RVIZ on PC displays error that Map frame is missing
/odom topic not on PC (and others also missing), but it is on RaspPi4
/tf does not comtain odom->base_frame transform (other transforms missing too) but it is on RaspPi4
In debugging, went down the road of checking ntp time sync and did get Create3 and RaspPi4 sync'd with correct time (same as PC). But setup is non-persistent and will not work if TB4 not on internet-connected network (of course), and still don't see topics even if everyone is on same internet-connected network.
Error messages
Errors in RVIZ about missing Map = "Global Status Error Frame [map] does not exist", "RobotModel error, no transform from [map]"
Some in Create3 WebUI LOGS about ntp timesync fail (before fixing timesync)

To Reproduce
TB4 on wireless network
PC on same wireless network
Start TB4
Run RVIZ/localization/navigation on PC
Other notes
(Here comes all the gruesome details)
I wanted to have my Turtlebot4 and my Ubuntu PC on the same wireless network and be able to run RVIZ, localization, and navigation on my PC for both making a map and for navigation. (As per Turtlebot4 User Manual, TUTORIALS section, "4. Generating a map" and "5. Navigation"
I first tried putting my PC on the "Turtlebot4" network - the default the T4 starts with as an access point. This didn't work - RVIZ showed errors about Map frame not available and I never saw the scan results in RVIZ.
I switched to putting my T4 on a wireless network. My site wireless is very picky about what it allows, so I switched to my home wireless network/internet. I was able to put the T4 on that wireless network, but things sitll didn't work - RVIZ showed errors about Map frame.
Poking around ROS2 on my PC and on the T4 RaspPi, I noticed there were topics on the RaspPi that were not on my PC. Important topics like /odom, and in fact all the missing topics appeared to be ones that originate with the Create3.
Searching through the Turtlebot4 Issues board found Issue #300 which seemed completely relevant to my situation. The problem in Issue #300 was that the RaspPi and the Create3 were not time synced. Looking at ROS topics, I realized all the packets on /odom were significantly behind the "current time" (by 12 days). Also transforms on /tf from odom->base_link (for example) were on the RaspPi with old timestamps. The /odom topic was not visible on my Ubuntu PC, nor were the odom->base_link transforms visible in /tf on my PC. I also saw the line in the Create3 LOGS about ntpd trying to timesync with irobot.pool.ntp.org servers.
On the Issues board, I found Issue #216 which showed how to configure the Create3 ntp.conf through the WebUI. Doing this did seem to get the two systems in time sync, based on looking at the Create3 time in the WebUI and the RaspPi time in a shell (after ssh to the RaspPi).
After a lot of fiddling around I also figured out that if I put the RaspPi onto a different wireless network, say its own wireless network or a network that didn't have internet access, the RaspPi time reverted to a time in the past (specifically, the day I installed the 1.0.0 image). Then the Create3 would time sync to the RaspPi and thus my laptop (once on the same wireless network) would not see any ROS2 information (topics or messages). From this I realized that the RaspPi was timesync-ing to an internet-based time server and thus would revert time when not on a wireless network with internet access.
ISSUE #1: I can't guarantee that the Turtlebot4 will always be on a wireless network that has internet access.
My solution for this would be to install a small real-time clock module on the RaspPi (like one from AdaFruit or MakerFocus. I'm wondering if this is something that would be recommended for the Turtlebot4 by Clearpath, and if there is a recommended add-on. I haven't yet exposed the board to see if the needed pins are available.
ISSUE #2: Even when I have the T4 and my PC on a wireless network with internet access, I still don't see all the topics on my PC (or all the transforms in /tf). I did confirm that the time does appear to be in sync between RaspPi, Create3, and my PC. I even confirmed that some messages on /tf are on /tf on both the RaspPI and my PC.
I'm not as sure how to continue to debug this one. I'm wondering if it could be a routing issue between my PC and the Create3 (through the RaspPi). As mentioned in the User Manual, SETUP->4.DiscoveryServer->UserPC However, the appearance of some Create3 ROS2 topics (like /cmd_vel) would imply that perhaps routing is okay? Any ideas here would be welcome.
Thanks!

An update: The three systems (my Ubuntu PC, TB4 RaspPi, TB4 Create3) are indeed time-sync'd. I confirmed this by looking at system time on each system and the times were the same. But I believe I'm still seeing issues with topics and messages not traveling between my PC and the Create3.
I confirmed this by looking at various Create3 topics,  such as /battery_state, /odom, and  /wheel_status. /odom does not appear at all on the PC but is on the RaspPi. /battery_state and  /wheel_status appear in both places (PC  and RaspPi), but "topic echo" on the RaspPi  shows messages,  while on the PC it does not. Also, /cmd_vel appears in both places but publishing a msg to /cmd_vel on the PC does not move the TB4  while  publishing to /cmd_vel on the RaspPi  does.
I've  seen issues on the board around simple  discovery vs discovery server so I'm wondering if my problem might be related to this. I'm currently using Simple Discovery but tomorrow I will try using a Discovery Server setup and see if that makes a difference.
As always, any thoughts or input from Clearpath support are appreciated. Thanks!

Hi @yeff-fresh it looks like you have a few things going on so I'll do my best to touch on the different topics.

Time syncing - I wanted to briefly mention this and then we can come back to it when we have the other issues sorted. It is true that the raspberry pi is not able to retain it's time sync on reboot and relies on being able to synchronize the time remotely. One option is that you can add a hardware solution but I would agree with your later comment, that it is better to pursue syncing to a local NTP server. It seems that you already found the instructions on how to modify the ntp server settings on the create3. The raspberry pi actually uses the timedatectl package by default to manage the timesyncing. You can modify the ntp fallback server in /etc/systemd/timesyncd.conf or you can disable this to opt for the NTP daemon that you may be more familiar with.
Create3 topics - this issue you are describing seems a bit more complex. Before we get deeper into troubleshooting simple discovery, it may be worth determining whether you ultimately want to be using simple discovery or discovery server. Simple discovery is currently necessary if you want to run multiple robots and have them communicating with each other. However, it does use multicasting which may be a problem on restricted networks. Discovery server is a bit more set up but does not rely on multicasting. The caveat is that we have not yet had time to release multi-robot with discovery server. Assuming we pursue troubleshooting the current set up, it would be helpful if you can try running ros2 daemon stop then ros2 daemon start on your pc and then ros2 topic list and then share the full list of topics that you are able to see on each of your robot and user PC.

Newest update: reading through docs in detail I realized I had not put the Create3 on the wireless network, just the RaspPi. So I used the WebUI at port 8080 to set the Create3 on the wireless network and (surprise!) the topics appeared on my PC. Which, of course, makes perfect sense once I think about it (duh).
At that point, I can launch localization, nav2, and RVIZ on my PC and they all eventually get in sync and things appear to be working (and RVIZ is happy). I have a bad map of my house, but I believe I might be able to generate a better one now so that's a future task.
The NavigateToPose action server doesn't seem to be starting as my code (which talks to NavigateToPose to move the TB4 around) says it's waiting for the server but I'll work on figuring that out.
I also have an issue where the RaspPi (and maybe the Create3 too) have trouble joining most wireless networks, but I'll try to diagnose that and see if I can find any details.
I'm not sure if I can consider this issue Closed yet, but I'll keep this issue updated as I move forward.

Sounds good, thanks for the update. I have some thoughts that may help you with your endeavors:

what does timedatactl use as the primary ntp server? Is that setting in a configuration file somewhere if we wanted to set a different primary?

Honestly I'm not sure on this one, I haven't modified its behavior before so your google search is as good as mine.

I also have an issue where the RaspPi (and maybe the Create3 too) have trouble joining most wireless networks, but I'll try to diagnose that and see if I can figure any details.

In regards to joining different wireless networks, there is much more flexibility with the raspberry pi on joining different networks. The create3 is limited to 2.4GHz networks and you have to use the webpage to configure it. If this becomes a problem you can switch to the discovery server which doesn't require the create3 to be directly connected to the network. For the raspberry pi, if the setup tool does not cover your use case, you can manually modify the netplan files to add the fields that you need.

I have a bad map of my house, but I believe I might be able to generate a better one now so that's a future task.

You had mentioned prior that the map wasn't as high of resolution as you wanted. If you want to increase the map resolution, there are a few things that you can do although it will rely heavily on the computational power of the device that you run the mapping on. You can pass in your own config file when launching slam (ros2 launch turtlebot4_navigation slam.launch.py params:=/full/path/to/slam.yaml). In particular I would want to bring your attention to resolution and minimum travel distance / heading. The first to increase the resolution (although if I remember correctly you have to decrease this number here) and the second to ease the load on the machine doing the computation and to ensure that the system can catch up when you stop moving the robot. Then make sure you watch your output for when the queue is getting too full. Be aware though that a non-zero minimum travel distance does mean that it will not start mapping until the robot moves.

The NavigateToPose action server doesn't seem to be starting as my code (which talks to NavigateToPose to move the TB4 around) says it's waiting for the server but I'll work on figuring that out.

In general the navigation can take a little bit to load up (just in terms of discovering all of the topics etc). If you are having a persistent issue with trying to get Nav2 to launch then feel free to expand on that.

First, thanks @hilary-luo  for the details on increasing map resolution - I will be giving that a try at some point soon.
It turned out there was one more issue that was preventing everything from working correctly. We use Docker containers for our development environment. It turned out the Docker container I was using (which I didn't create) had switched the DDS middleware to Cyclone instead of FastRTPS and configured Cyclone to only run on the loopback interface. Once I removed these changes, I now had topics and messages appeared in all relevant places (on the RaspPi, on my Ubuntu PC, and in my Docker container).
With this final fix, I can run localization (with my map) and nav2 on the RaspPi, run RVIZ on my Ubuntu PC, and run our software in the Docker container - everything communicates and I can interact with the Turtlebot4 from our sofftware. Success!
I think with this final fix I can consider this issue Closed. I will update the original issue to detail all my findings and issues, in case anyone runs across similar issues in the future.


improvements to help text and documentation for decontam-identify-batches

Depending on the value of --p-method, different parameters are required, and this isn't indicated in the help text. Additionally, there isn't a check for whether these are provided, so the error message that users receive doesn't help them to figure out what's going wrong. We should update the help text and explicitly check for errors (which we might be able to handle with a type map).

@jordenrabasco, would you be available to work on this one?

@gregcaporaso, yup no worries! I should be able to take a look at it sometime next week if that works for you guys?


bump tonic

Upgrade tonic to 0.7
This is a breaking change

TODO:
They've made it harder to break TLS so for now I've just commented out the test that uses that feature. Probably for the best this way
I've deleted these tests. We should find a way to test them properly at some point but for now I think it's fine

Looks good, we should update the changelog too.

Looks good, we should update the changelog too.

@alexheretic @conradludgate wondering if we have an ETA on this release? We are currently using this for some custom lookaside load balancing and would love to be able to use tonic 0.7.0


Add Stanford Background Dataset

Describe the dataset
Add Stanford background dataset to Hub. So this would work.
import hub
ds = hub.load("username/stanford-background")

Steps

Please take a look at the docs on uploading datasets.

Uploading script should be added to examples folder

Example
You can find an example of large dataset loading and upload here:

https://github.com/activeloopai/Hub/blob/master/examples/coco/upload_coco2017.py

Can you assign me this task ?

Hi @KarthiK2601! Thank you so much for your willingness to contribute! Let me know if you have any questions, and please star our package while you're at it.  @davidbuniat will be in touch shortly and explain in greater detail.
Feel free to ask us additional questions in the GitHub Discussions (we have beta access!) or our dedicated Slack channel. Thanks a mil!

can I get a Idea how big is the data set ?
for implementing the corresponding method for adding the dataset

@KarthiK2601 , it should be 14.0MB - it is linked here

oh yeah got it

can you please guide me through ?

@KarthiK2601 Here's a tutorial for uploading datasets using Hub that might be helpful. Let me know if you need more help!

I am facing problems installing the package, i have downloaded the whole code and extracted it on my desktop, I am using python 3.8, when i type pip3 install hub I am facing a syntax error

Hey Karthik, you don't need to download our repository to install hub, it should work with just pip.
You need to type in pip3 install hub in the terminal and not inside a python shell/file for it to install.
Hope this clears things up!

'pip3' is not recognized as an internal or external command,
operable program or batch file.
i get this error when i run it on the windows command prompt

Try using pip install hub. If that doesn't work try python --version and let me know the output.

okay i got it, i installed anaconda and now it works fine
anyway to retrieve my Snark AI credentials ?

registered with another username and email and now i have logged in

Now in the standford dataset, for every image we have 4 integer matrices, now how do i load the  array of examples and corresponding array of labels ?
should i use this Load NumPy arrays with tf.data.Dataset

Great @KarthiK2601! Please feel free to put 4 integers in a single tensor or have 4 separate tensors with each having a single digit.
Just using NumPy should work, no need for tf.data.Dataset.

Hey @KarthiK2601, do you need any assistance with uploading the dataset? We've just released v1 of Hub, which makes uploading even easier. If you need any help, feel free to join our Community Slack to ask questions!

Closing this feature request due to inactivity and lack of interest. Will revive it if more users request it.


Classes implementing nested interfaces are dropped on formatting

Classes that implement interfaces that aren't pure type_identifier lose those interfaces in the formatting.
global class Me implements namespace.InterfaceName {
}

Formats as
global class Me implements  {
}

Noting the drop of the namespace.InterfaceName from the output.
The parse tree for that part looks like this:
interfaces: interfaces [0, 16] - [0, 57]
  type_list [0, 27] - [0, 57]
    scoped_type_identifier [0, 27] - [0, 57]
      type_identifier [0, 27] - [0, 36]
      type_identifier [0, 37] - [0, 57]

A similar example but different type setup:
public with sharing class Me implements Database.Batchable<SObject> {}

Parse tree:
    interfaces: interfaces [0, 29] - [0, 67]
      type_list [0, 40] - [0, 67]
        generic_type [0, 40] - [0, 67]
          scoped_type_identifier [0, 40] - [0, 58]
            type_identifier [0, 40] - [0, 48]
            type_identifier [0, 49] - [0, 58]
          type_arguments [0, 58] - [0, 67]
            type_identifier [0, 59] - [0, 66]

Fixed, and both are guarded with new tests
ClassInterface1.in
ClassInterface2.in


Move the client calls to the runtime pkg

Create the runtime pkg and start converting a few things to using kubectl.
Remaining Commands:

oc login
creating svc accounts
creating rolebindings

Changes proposed in this pull request

Move RunCommand to the runtime pkg
Use kubectl for a few commands

 (20) Agnostic Runtime phase 1

@rthallisey @eriknelson @shawn-hurley this looks simple enough anyone care if we merge?

@jmrodri I am good with merging this, secrets PR will need to be rebased


As for dynamic styles

I understand reasons behind, but maybe it should be implemented via inline styles in a browser and via https://facebook.github.io/react-native/docs/direct-manipulation.html in React Native for performance reasons. I don't know. Just a question.

Nice catch yeah. I am going to release a blog post about when to use CSS (CSS-in-JS) and Inline Style. Fela is intended to be used for dynamic "components" that have some static styles and a definite number of "variations". e.g. if you have a  component that is used as a flexbox provider, you might have sth. like
const rule = props => ({
display: 'flex',
flexShrink: props.shrink || 0,
flex: props.flex,
alignSelf: 'stretch',
justifyContent: props.justifyContent,
alignItems: props.alignItems
})
Now every  has the display, flexShrink and alignSelf by default, while justifyContent, alignItems and ofc flex are dynamic. Nevertheless you will have many use cases where e.g. flex is 1 or 1 0 auto. So the class is shared and reused. This is extremely useful when doing layouts as you can use flexible styles, still reuse them with all the CSS benefits and yet do not have to define single CSS classes or have tons of bloated inline style strings.
Anytime your rule styles are dynamic in a way that each "variation" is only used once, you might do better using inline styles.
Also, everything that is dynamically animated with JS (not CSS Animations!) should be done via inline styles.
After all, it's the individuals decision on when to use which as I never had any issues even doing dynamic stuff with classes, but you won't get 60fps doing so. Anyways, Fela does not force you to nothing else :P
Well but its hard to write down here in few mins. Be sure to check out the blog post when its out :P


[dart2wasm] Implement inlining functions with function expressions in the body

Consider this function from the protobuf library:
void _readPacked(CodedBufferReader input, void Function() readFunc) {
  input._withLimit(input.readInt32(), () {
    while (!input.isAtEnd()) {
      readFunc();
    }
  });
}

Assuming wasm-opt can inline and eliminate dart2wasm closures with just one call site, inlining this can potentially yield performance improvements, as it would eliminate tear-off allocations in the call sites.
Doing the same transformation manually yielded great improvements: https://github.com/google/protobuf.dart/pull/911.
However we currently can't do this, because function expressions currently prevent inlining: https://github.com/dart-lang/sdk/blob/94e653fe0e26d5a4fd4b905517ec38d0b44d122e/pkg/dart2wasm/lib/translator.dart#L954
We should remove this restriction and allow inlining functions with function expressions.

I wasn't sure what is missing here and what needs to be done, so I've run the tests (with optimizations) with the membersContainingInnerFunctions line removed.
These are the failing tests:

language/optimize/inferrer_synthesized_super_constructor_test
language/constructor/evaluation_redirecting_constructor_test
language/type_variable/field_initializer_closure_test
language/super/call2_test
language/regress/regress25246_1_test
language/type_variable/field_initializer_closure2_test
language/variance/variance_out_field_test
language/constructor/constructor6_test
language/variance/variance_in_field_test
language/variance/variance_inout_field_test
lib/js/export/static_interop_mock/mockito_test

They all fail with the same error:
[parse exception: Reached function end without seeing End opcode (at 0:97305)]
Fatal: error parsing wasm (try --debug for more info)

A small repro:
class A {
  @pragma("wasm:prefer-inline")
  Function foo = (int x) {};
}

class B extends A {
  void m(int x) {
    foo(x);
  }
}

main() {
  var b = B();
  b.m(123);
}

It looks like the function to the closure is missing an end. wami output looks like this:
128319|  (func $_TypeUniverse.substituteFunctionTypeArgument (;850;) (param $var0 (ref $_FunctionType)) (param $var1 (ref $Array<_Type>)) (result (ref $_FunctionType))
...
128354|  )
128356|  (func $A. closure at file:///usr/local/google/home/omersa/dart/sdk_wasm/test/test.dart:2:18 (;851;) (param $var0 (ref struct)) (param $var1 i64) (result noneref)
128358|  (func $new B (initializer) (;852;) (result (ref $#ClosureBase))
...
128392|  )

Note that the closing paranthesis is missing for $A. closure at ....
(Minor: we should probably drop the . in the closure name: $A closure at ...)


[TRIVIAL] Correctly compare default-constructed Slice instances

Currently, a default constructed Slice does not initialize the data_ pointer, so it can have any value, including potentially, nullptr. When comparing two instances of Slice for equality, we use std::memcmp. I believe that calling std::memcmp with nullptr, even if the size is 0, results in undefined behavior. See, inter alia, http://stackoverflow.com/questions/16362925/can-i-pass-a-null-pointer-to-memcmp
Make a default-constructed Slice explicitly initialize data_ to nullptr and fix the equality comparison operator, to never invoke std::memcmp on empty slices.

Current coverage is 66.57% (diff: 100%)

Merging #1947 into develop will increase coverage by <.01%

@@            develop      #1947   diff @@
==========================================
  Files           692        692
  Lines         49482      49484     +2
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits          32938      32943     +5
+ Misses        16544      16541     -3
  Partials          0          0

Powered by Codecov. Last update 8425e45...65d7f91

Slice is effectively a boost::asio::const_buffer. And the default constructor for that class creates an empty buffer (e.g. data is nullptr). If we had the networking TS in the standard, we would be using that type instead of Slice. So we should model Slice exactly like the asio type.

@vinniefalco agreed. Should we just scrap Slice entirely and use boost::asio::const_buffer instead?
@ximinez: more tests incoming.

@nbougalis When I refer to const_buffer I am talking about the one in the Networking TS not the current one in Boost.Asio (sorry for the mixup). The interface has changed, for the better. No need for buffer_cast or buffer_size, it now has data() and size() members. We should make sure Slice has an identical interface, and when we adopt the Networking TS the switch will be painless.

@vinniefalco: this change actually moves us closer to the Networking-TS const_buffer, but the spec has const_buffer::data returning a void const* whereas we return a std::uint8_t const*. Should we migrate to void const* too, and require casting when we need to use the buffer?

We should probably use void const*. Which is unfortunate.

FYI
https://github.com/cplusplus/networking-ts/issues/52

👍

Added tests requested by @ximinez.

Rebased & squashed.

Merged as c7de7950c4cce4765bdf38f8c328de5415e0c04d


only enable hand tracking ext if supported

Make the MeshInstances on the HandControllers visible in the editor to see blocks for hands.
fixes #26
This PR is not actually tested on a runtime without hand tracking ext support.

Confirmed I am no longer receiving the error about hand tracking being unsupported as in #26., tested using the CI produced files and as well as rebuilt manually to be sure.

Confirmed I am no longer receiving the error about hand tracking being unsupported as in #26., tested using the CI produced files and as well as rebuilt manually to be sure.

Owh I had already solved this differently in my actions rework... this is causing me a bunch of cleanup :)

Owh I had already solved this differently in my actions rework... this is causing me a bunch of cleanup :)

Oh, sorry about that, I didn't realize and it seemed like a simple enough fix that touches very few lines. Feel free to rebase your branch on reverting this commit if it's nicer code.

Oh, sorry about that, I didn't realize and it seemed like a simple enough fix that touches very few lines. Feel free to rebase your branch on reverting this commit if it's nicer code.


Flutter Hero widget is not working

Hero Widget is not accepting any arguments????
Source code
import 'package:flutter/material.dart';

void main(){
  runApp(Hero());
}

class Hero extends StatefulWidget {
  _HeroState createState() => _HeroState();
}

class _HeroState extends State<Hero> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "hero animation",
      home: MainPage(),
    );
  }
}

class MainPage extends StatefulWidget {
  _MainPageState createState() => _MainPageState();
}

class _MainPageState extends State<MainPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Hero"),
      ),
      body: Container(
        child: Hero(
          tag:'HeroAnimations',
          child:Image.asset('images/car.jpg')
        ),

      ),
    );
  }
}

class DetailPage extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Detail Page"),),
      body: Container(child: Image.asset('images/car.jpg')),
    );
  }
}

Because you've made your own widget called Hero, Dart is using this instead of Material's Hero widget, which is the one you want to be using if you're trying to create a hero animation. Change the name of your Hero widget so Dart doesn't use the class you don't want it to be using. Something like HeroApp and _HeroAppState might make sense as you're using this widget as the runApp argument.

This method is not helping me ...

What's not working about it? This is starting to get towards something that should be answered on Stack Overflow.

That hero tag and child is underlined and that's only on my pc .I tried in my friend pc
that is working correctly.then i checked for update VS code, Flutter , Dart ,but nothing
changed.
Thanks for the help.

Closing, as this isn't an issue with Flutter


tortoise: count ballots when beacon is available

this change makes it so that ballot is never dropped if beacon is not yet available.
i want to have something more straighforward, but i will do that after thinking more in https://github.com/spacemeshos/go-spacemesh/pull/3888
closes: https://github.com/spacemeshos/go-spacemesh/issues/3933

bors merge

bors merge

bors merge


FlatList animation performance

Hey @computerjazz!
This isn't an issue with your library but we've found a performance issue with Animated FlatList's.  If you instead use a SectionList with one section you'll see smooth animations with animated values.
<FlatList data={[1,2,3]} />
// =>
<SectionList sections={[{ data: [1,2,3]}]} />

Sounds stupid, but it's the only way we've found to fix it until the root issues with FlatList are resolved.  https://github.com/facebook/react-native/issues/24364
I don't believe there's any downsides to using this approach.

Interesting, thanks for the heads up -- I'll check it out!

@markbrown4 can you please provide some example how to apply this fix. We also suffer android performance issue.
What need to be changed?

If you do implement this you'll need to also update how you access scrollTo* methods.
From this._flatList.scrollToEnd() to this._flatList._wrapperListRef._listRef.scrollToEnd().

There was an update on the issue I raised:
https://github.com/facebook/react-native/issues/24364#issuecomment-482431369
The react team suggests scrollEventThrottle={1} on the FlatList when it's tied to native animations, may be worth a test to see if that improves things.


Use animated emoji slots since they are less used

Discord gives servers 50 slots for each non-animated and animated and bot can use animated emojis without problem.

Introduced USE_ANIMATED_EMOJIS environment variable to make it optional and compatible with provided EMOJI_GUILD_ID

Closing due to inactivity and not being updated w/ master. But also because we're actively moving towards a hosted solution that won't require anyone to have emojis on their own servers


z-index problem when modal is opened in issue detail page

Hi,
I found a bug in issue detail page. Some elements appeared on the modal backdrop when the modal is opened.
I tested on Chrome(v78.0.3904.108) and Microsoft Edge Dev(v79.0.287.3).
Sample Url
https://github.com/sindresorhus/refined-github/issues/1137
Screenshot

also the Sticky Header:

Probably due to sticky-discussion-sidebar

also the Sticky Header:

Sticky header looks the same on production.


I am trying to install EntityFrameworkRuler thru nuget but I get an error

Im using VS2022 and the project targets .NET6 but when I try to install the package, I get the following errors:
NU1202	Package EntityFrameworkRuler 1.0.28 is not compatible with net6.0 (.NETCoreApp,Version=v6.0). Package EntityFrameworkRuler 1.0.28 supports:

net6.0 (.NETCoreApp,Version=v6.0) / any
net7.0 (.NETCoreApp,Version=v7.0) / any

'EntityFrameworkRuler 1.0.28' has a package type 'DotnetTool' that is not supported by project ...
NU1212	Invalid project-package combination for EntityFrameworkRuler 1.0.28. DotnetToolReference project style can only contain references of the DotnetTool type
Any ideas on what I am doing wrong?

Looks like you're trying to reference the CLI package.  Reference Design instead:

dotnet add package EntityFrameworkRuler.Design
PM> NuGet\Install-Package EntityFrameworkRuler.Design

Thanks.  That installed but now I am not sure my next steps.  Do I need to install the CLI tool using:
PM> NuGet\Install-Package EntityFrameworkRuler
or do I go straight to:

efruler -g

Thanks again for the help

To install the CLI tool, run the following from a developer terminal:

dotnet tool install --global EntityFrameworkRuler

Then you would use the "efruler -g ..." command to generate the rule file from the EDMX.
However, I may have an easier option for you.  I just published a VS extension that allows you to generate AND edit rules from the UI.   In VS, go to Manage Extensions and search up "Entity Framework Ruler", or go here and download:
https://marketplace.visualstudio.com/items?itemName=Randell.EF-Ruler
Then you just right-click on an EDMX and go to Convert EDMX to DB Context Rules.

Plus, I would appreciate feedback on it.
With the rules.json file in the root of your EF Core project, and the Design library references, all you have to do is run the scaffold command to generate the model with all customizations applied. For example:

dotnet ef dbcontext scaffold "data source=localhost;initial catalog=Northwind;persist security info=True;Integrated Security=SSPI;TrustServerCertificate=True;" Microsoft.EntityFrameworkCore.SqlServer -o Models -c NorthwindEntities -f  --co
ntext-dir Context

Thanks for trying.  Looks like you should have better luck with the CLI tool for now.  I'll look into the extension issue.

Is this in a Developer Powershell window within VS?  I just tested again locally and it worked fine.
You can try tacking on the version arg to see if that helps:

dotnet tool install --global EntityFrameworkRuler --version 1.0.28

That did it - I had to specify the version.  I now have a rules.json file.  I have a couple more questions (sorry for so many :( ):

I can bring up the DB Context Rule Editor now and I can see all of my tables with the exception of one.  The one that is missing uses table splitting in the edmx.  Is that going to be a problem or is table splitting supported?

When I try the scaffold command in PowerShell I get an error.  Here is the command I am running:

Scaffold-DbContext 'Data Source=localhost;Initial Catalog=NextGenPlastics' Microsoft.EntityFrameworkCore.SqlServer

Here is the error it gives:
Scaffold-DbContext : The term 'Scaffold-DbContext' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and
try again.
At line:1 char:1

Scaffold-DbContext 'Data Source=localhost;Initial Catalog=NextGenPlas ...

  + CategoryInfo          : ObjectNotFound: (Scaffold-DbContext:String) [], CommandNotFoundException
  + FullyQualifiedErrorId : CommandNotFoundException

I assume I am not using the scaffolding command in PowerShell properly?
Thanks again!

I might have more than one problem based on the scaffolding limitations.  Looking at the link you sent not only is table splitting not supported but also inheritance hierarchies.  This is another thing I do heavily.  Here is a screenshot of just a portion of the full edmx I am working towards replacing.  You will see RecipeZone is the SQL table.  There are close to 100 inheritance classes in the code using RecipeZone.  They map to RecipeZone thru the RecipeName field using table mappings.  Is this also something that cannot be done?  I need to determine if I am stuck in .netframework 4.8 which would be crazy or is there another solution?
Thank you for the help and info.

I am still having troubles with scaffolding:

dotnet ef dbcontext scaffold "data source=localhost;initial catalog=NextGenPlastics;persist security info=True;Integrated Security=SSPI;TrustServerCertificate=True;" Microsoft.EntityFrameworkCore.SqlServer -o Models -c NextGenPlasticsEntities -f --context-dir Context
Could not execute because the specified command or file was not found.
Possible reasons for this include:

You misspelled a built-in dotnet command.
You intended to execute a .NET program, but dotnet-ef does not exist.
You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.

It sounds to me like your dotnet ef tools are outdated.   try the following:

dotnet tool install --global dotnet-ef
dotnet tool update --global dotnet-ef
dotnet tool restore

Go here for details.
after that, run "dotnet ef".  It should indicate 7.0.0 is installed.
Regards to your inheritance dilemma, Reverse Engineer is generally just not an option for you.  Unless I figure out a way to make this available via EF Ruler, which won't be very soon.
The beauty of the Reverse Engineer, however, is that it produces a model that is basically ready to use as Code-First.  So the best option for you right now is to use EF Ruler and Reverse Engineer to get as close as possible to what you need, just as a starting point.   Then adjust the entity configurations to apply the appropriate inheritance (as described here).
Going forward, you will then be doing Code-First (like probably 90% of the people that use EFCore).  This is a big shift in workflow because it means you apply DB changes via code and then run "dotnet ef database update".  It's a good process if your project can support it.

You were right - the tools were out of date.
To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see http://go.microsoft.com/fwlink/?LinkId=723263.
The column 'dbo.Lot.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.
The column 'dbo.MeasuredPlastic.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.
The column 'dbo.PlasticType.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.
The column 'dbo.Sample.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.
The column 'dbo.TargetLens.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.
The column 'dbo.TargetPlastic.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.
The column 'dbo.Users.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.
The column 'dbo.VirtualLens.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.

The classes generate but seem to ignore the .json file.  I have PowerShell in the root folder of the Data project which is the same location as the 'NextGenPlasticsEntities-rules.json' file.
Any idea on why it would say Unable to open NextGenPlasticsEntities-rules.json ?

Did you edit the Rule file using the UI Editor (and saved changes)?  If so, your json model is probably different than what the Design library is expecting.  I made a change in the VS Extension version, but you are using v1.0.28 of Design, which is prior to that change.   Long story short, I need to push updated NuGet packages to sync up with the VSIX.  I'll do that shortly.
To get up and running immediately, you can run "efruler -g..." again to regenerate the json, don't make edits with the UI Editor, and then run the scaffold.  It should work fine.

I need to determine if I am stuck in .netframework 4.8 which would be crazy or ..

BTW, you are not stuck on 4.8 either way.   Old Entity Framework 6.4 works perfectly fine with .net core projects.  I'm in that situation now with some large projects and am using EF Ruler as a means to migrate to EF Core 7.

Good point - I guess I could keep a 4.8 version of the data model with the edmx around while we workout the issues with EF Core.
Can you let me know when you update the nuget package so I can edit with the UI Editor?  Thanks for all the help today - I really appreciate it.  I am more than happy to help flush out issues with table splitting and inheritance in the future if ever needed.

NuGet packages updated v1.1.0..   should be 100% compatible with your VSIX version now

Thanks!  I just tried it and I think I am still doing something wrong.
First I updated the nuget package.
Then I ran the Generate DB Conext Rules from EDMX and even though my project references System.ComponentModel.Annotations, it throws this error:

It creates the -rules.json file but the file looks like this:
{
"Name": "NextGenPlasticsEntities",
"PreserveCasingUsingRegex": false,
"IncludeUnknownSchemas": false,
"SplitEntityTypeConfigurations": false,
"Schemas": [
""
]
}

While I can't reproduce this error, I published another version of the extension with some changes that may help.   Let me know if it works better.
Remember that the command line tool can also be used as backup if generation fails using the extension.

I really appreciate all the help you are giving me and I think I am close but I am still having problems.
So maybe I am not understanding what to do.  Let me start from the beginning and maybe you can tell me where I am going wrong:

With no rules.json file, using the CLI I run: >efruler -g "D:\JJV\Development\Workspaces\ProjectLifeCycle\NGPMetrology\Main\JJV.NGP.EDMX\NGPContext.edmx" "D:\JJV\Development\Workspaces\ProjectLifeCycle\NGPMetrology\Main\JJV.NGP.Data"
This generates a rules.json file in the Data project.

From the CLI I run: >dotnet ef dbcontext scaffold "data source=localhost;initial catalog=NextGenPlastics;persist security info=True;Integrated Security=SSPI;TrustServerCertificate=True;" Microsoft.EntityFrameworkCore.SqlServer -o Models -c NextGenPlasticsEntities -f
This creates all the classes in Data project.  So far, so good.

I modify the rules.json (using the DB Context Rule Editor) file to update any Table and/or Column names that are not correct

From the CLI I run:>efruler -a "D:\JJV\Development\Workspaces\ProjectLifeCycle\NGPMetrology\Main\JJV.NGP.Data"
I get "Error: Unable to open NextGenPlasticsEntities-rules.json"

What am I doing wrong?
Thanks again!

Before step 2, you should ensure that you have referenced the EntityFrameworkRuler.Design library (from the Data project).
This library serves 1 purpose: it automatically interacts with the EF Core scaffolding process to apply all the rules in the local folder.
So after modifying the json file using the editor, simply rerun the scaffold command (step 2) as if you made a DB change.  the generated entities will reflect your customizations automatically.
Forget about the "efruler -a" command.

I already have the EntityFrameworkRuler.Design referenced.
When I rerun step 2 - It overwrites my rules.json file and creates the classes with the old names.  I lose the changes I made.
Side note:  After the rerun of step 2 if I try to update the rules file again and run the step 2 command again I get "Build failed.".  I have to remove all the classes that were created before I can run the step 2 command again.  Regardless, it just overwrites the rules.json file

Maybe I am not using the Editor properly.  Here is what I see when I load the editor:

Notice TargetLen and VirtualLen tables.
If I want the table to be TargetLens, do I edit the Expected Entity Name, New Name or both?

Only set New Name to TargetLens.
It is normal to see your changes to Expected Entity Name to be overwritten (corrected), but New Name should NOT be overwritten when you run the scaffold.   is that happening?

Yes.  I set New Name to TargetLens, rerun scaffolding and the result class is TargetLen.  If I open the Rule Editor, New Name is set back to TargetLen

It sounds like the json file can't be opened during the scaffolding either, so at the end a new file is being initialized (overwriting your changes).
When you run the scaffold command, you should see confirmation that the file is loaded such as:

Build started...
Build succeeded.
EF Ruler detected Entity Framework v<IP_ADDRESS>
Rule loader resolved target assembly: JJV.NGP.Data
EF Ruler loaded 1 rule file(s).

Can you tell me what it says when you run it?  But first, double-check that you have updated your EntityFrameworkRuler.Design reference to the latest in the JJV.NGP.Data project.  Currently v1.1.1

I am on the latest EFRuler.Design.  Here is everything I get:

dotnet ef dbcontext scaffold "data source=localhost;initial catalog=NextGenPlastics;persist security info=True;Integrated Security=SSPI;TrustServerCertificate=True;" Microsoft.EntityFrameworkCore.SqlServer -o Models -c NextGenPlasticsEntities -f
EF Ruler detected Entity Framework v<IP_ADDRESS>
Rule loader resolved target assembly: JJV.NGP.Data
EF Ruler loaded 1 rule file(s).
To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see http://go.microsoft.com/fwlink/?LinkId=723263.
The column 'dbo.Lot.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.
The column 'dbo.MeasuredPlastic.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.
The column 'dbo.PlasticType.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.
The column 'dbo.Sample.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.
The column 'dbo.TargetLens.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.
The column 'dbo.TargetPlastic.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.
The column 'dbo.Users.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.
The column 'dbo.VirtualLens.Active' would normally be mapped to a non-nullable bool property, but it has a default constraint. Such a column is mapped to a nullable bool property to allow a difference between setting the property to false and invoking the default constraint. See https://go.microsoft.com/fwlink/?linkid=851278 for details.
Info: DbContext rule file written to NextGenPlasticsEntities-rules.json
Updated NextGenPlasticsEntities-rules.json in 62ms

The other thing I notice is after I run the command, I cannot run it again until I delete every class it created and undo modifications to any classes it updated.  If I don't do this then the command just returns Build failed.

That's helpful, but we could use more info.   Update Design ref to 1.1.3 (just published) then add -v to the scaffold command for verbose logging.  Let's see what that says

Here you go...
scaffoldResults.txt

I made a mistake! - It is not overwriting the rules.json file when it runs.  It is just creating the classes for the tables with the old names.  I was seeing the old info in the rules file because I have to undo all changes after I run the scaffolding command if I want to run it again.  So at this point the issue is even though I set TagetLen to TargetLens, it still creates a class called TargetLen.
Sorry for the incorrect info :(

I do see an issue, I believe related to the table inheritance.  I'm investigating. However, it would be most efficient if I could test using your project.  Could you send me a copy of the EDMX and  DB creation script (zipped up)?  With those 2 pieces, I can test it all, and possibly also investigate whether it's possible to reverse engineer entities with inheritance properly.
If you want, the zip can be pw protected and you can pass the pw to me via one time secret
The other thing is I was expecting to see some log messages there that were not.  Suggests that the Design reference was not >= 1.1.3

Here you go.  I also included a few other files:

EFCore folder (Data Porject) has the t4 templates I am using to add in namespaces as well as decorate the properties with INotifyPropertyChanged interface.  I created these files when I was trying to use EF Core Power Tools last week.  Your tool seems to be picking them up as well :)
PartialClasses folder (Data Project).  This contains other properties that are either not stored in the database or are created from deserializing a field from the database.

ScaffoldingFiles.zip
Thanks for all your time and effort!

Got it thanks. You can remove the attachment now if you want to remove from public eye

This issue is resolved.  Extension and nuget packages updated to v1.1.5.
Tested with your EDMX and DB and it works well.
Note, the compile error youre getting after scaffolding is because you are scaffolding into a project with existing code files.  the scaffold process does not clear out entity files before writing to the model folder.  when doing renaming of tables, you will likely end up with an old file with the old name that existed before, and EF will write a new file with the new name.  You have to reconcile this yourself.

What I have discovered is I have to delete the partial classes as well as my engine class.  Then I can run the scaffolding tool without error.  Then I add the deleted files back in.  Seems a bit strange I have to do this but it works!  If I don't delete them, the scaffolding throws errors on these classes saying it cant find properties.  The properties it can't find are properties the scaffolding command will build :)
Last questions.. for now :)  Can you point me to an example of how to do table splitting and inheritance using Code First?  No problem if you don't have anything off the top of your head.
Thank you so much for all the help on this problem and for the quick response.

I will test the --no build option.  Thanks
I did not include the inheritance in the EDMX I sent you - I didn't want to try and tackle too many things at one time.  If you look at this EDMX screenshot, you will see what I am currently doing with EDMX:

You will see the table RecipeZone (Recipe in SQL) is the base type for many other entities.  There are no tables for the inheriting entities in SQL - only the RecipeZone table.  Using table mappings, the entities map to there type based on a field stored in RecipeZone called "RecipeClassName".  For example, the image shows the table mapping for RecipeZoneOffset to RecipeZone.
The reason for doing this is because regardless of the recipe we are using, it is always a RecipeZone.  RecipeZone is related to other tables with 1 to many relationships.  All recipes have 0 to n records in the other tables.
Make sense?  If not, I could probably build another EDMX with this demonstrated.
Also, can you tell me where do to go to rate your tool?
Thanks

This I believe describes what I am doing:
Table per Hierarchy (TPH): Enable polymorphism by denormalizing the SQL schema, and utilize a type discriminator column that holds type information.

Also, can you tell me where do to go to rate your tool? Thanks

You can hit the Star button here on Github.  Other than that, you can add a review on the VS Extension at this link:
https://marketplace.visualstudio.com/items?itemName=Randell.EF-Ruler&ssr=false#review-details
Much appreciated!
Note, I also recently setup Github Sponsorship (Sponsor button).  I will never request sponsorship from anybody, but people may consider it as a means to show appreciation or prioritize requests.
In the meantime, I created another ticket on the TPH topic and will post updates on it there as I find out more.

The Sponsorship link is not working.  It goes to PayPal but says:
Sorry.
It looks like nothing was found at this location. Maybe try one of the links below or a search?

Whoa, that's not good.  These are 2 options for sponsorship; thru GitHub and PayPal:

https://github.com/sponsors/R4ND3LL
https://paypal.me/R4ND3LL?country.x=CA&locale.x=en_US

Can you verify that the above Paypal link works?  And the short version does NOT work for you (https://paypal.me/R4ND3LL) ?
Both work for me, but if the short version doesn't work, I'm guessing the "country.x" parameter is required for your location. I'll update it accordingly

Many thanks, @jdanielpa!   Very much appreciated.


⚠ ClamAV has degraded performance

In 89af4d1, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 198 ms

Resolved: ClamAV performance has improved in 0000872.


Drag Indicator (Capsule) not clickable

For some unknown reason you can't tap on the capsule to change the state of the BottomSheet.
If anyone knows what's the problem here please report it.
Thank you.

One solution is to add a .onTapGesture modifier to the Capsule view, and remove the view from the Button label closure. Adding the switchPositionIndicator call inside this modifier results in the expected behavior.
For some reason, the Button does not recognize the Capsule in its label as something that can be tapped - replacing it with a normal Text view results in the expected behavior.


pre-commit hook removes files from the commit

Describe the bug

With latest version, if I run pre-commit run -a, it will pass OK. However, if I run git commit, it will remove .ctt dir automatically from the commit.
To Reproduce

Uncompress repo.zip

Clone it (it's a bundled repo) with git clone ./sample there && cd there

pre-commit install

Change anything: touch foo && git add foo

Check git status; all is OK, just as expected.

Commit the change: git commit -m testing. It will do something like:
 ➤ git commit -m testing
 copier-template-tester...................................................Passed
 [main da038e0] testing
  1 file changed, 0 insertions(+), 0 deletions(-)
  create mode 100644 foo

That's wrong.

Check with git status that .ctt was created but is untracked:
 ➤ git status
 On branch main
 Untracked files:
   (use "git add <file>..." to include in what will be committed)
     .ctt/

 nothing added to commit but untracked files present (use "git add" to track)

OK, let's add .ctt and commit it:
 ➤ git add .ctt

 ➤ git commit -m add-ctt
 copier-template-tester...................................................Failed
 - hook id: copier-template-tester
 - exit code: 1

 Starting Copier Template Tester for /tmp/tmp.4ZCnGezWFN
 Note: If files were modified, pre-commit will report a failure.

 Using `copier` to create: .ctt/defaults
 Traceback (most recent call last):
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/bin/ctt", line 8, in <module>
     sys.exit(run_cli())
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/copier_template_tester/main.py", line 67, in run_cli
     run(base_dir=args.base_dir, check_untracked=args.check_untracked)
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/copier_template_tester/main.py", line 44, in run
     write_output(src_path=input_path, dst_path=base_dir / output_path, data=defaults | data)
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/copier_template_tester/_write_output.py", line 146, in write_output
     copier.run_copy(str(src_path), dst_path, **kwargs)
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/copier/main.py", line 980, in run_copy
     with Worker(src_path=src_path, dst_path=Path(dst_path), **kwargs) as worker:
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/copier/main.py", line 205, in __exit__
     raise value
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/copier/main.py", line 981, in run_copy
     worker.run_copy()
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/copier/main.py", line 736, in run_copy
     self._print_message(self.template.message_before_copy)
   File "/nix/store/c3cjxhn73xa5s8fm79w95d0879bijp04-python3-3.10.13/lib/python3.10/functools.py", line 981, in __get__
     val = self.func(instance)
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/copier/template.py", line 325, in message_before_copy
     return self.config_data.get("message_before_copy", "")
   File "/nix/store/c3cjxhn73xa5s8fm79w95d0879bijp04-python3-3.10.13/lib/python3.10/functools.py", line 981, in __get__
     val = self.func(instance)
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/copier/template.py", line 272, in config_data
     result = filter_config(self._raw_config)[0]
   File "/nix/store/c3cjxhn73xa5s8fm79w95d0879bijp04-python3-3.10.13/lib/python3.10/functools.py", line 981, in __get__
     val = self.func(instance)
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/copier/template.py", line 231, in _raw_config
     for p in self.local_abspath.glob("copier.*")
   File "/nix/store/c3cjxhn73xa5s8fm79w95d0879bijp04-python3-3.10.13/lib/python3.10/functools.py", line 981, in __get__
     val = self.func(instance)
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/copier/template.py", line 478, in local_abspath
     result = Path(clone(self.url_expanded, self.ref))
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/copier/vcs.py", line 190, in clone
     git(
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/plumbum/commands/base.py", line 113, in __call__
     return self.run(args, **kwargs)[1]
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/plumbum/commands/base.py", line 252, in run
     return p.run()
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/plumbum/commands/base.py", line 215, in runner
     return run_proc(p, retcode, timeout)
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/plumbum/commands/processes.py", line 299, in run_proc
     return _check_process(proc, retcode, timeout, stdout, stderr)
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/plumbum/commands/processes.py", line 17, in _check_process
     proc.verify(retcode, timeout, stdout, stderr)
   File "/var/home/yajo/.cache/pre-commit/repoozco1e_t/py_env-python3.10/lib/python3.10/site-packages/plumbum/machines/base.py", line 27, in verify
     raise ProcessExecutionError(
 plumbum.commands.processes.ProcessExecutionError: Unexpected exit code: 1
 Command line: | /usr/libexec/git-core/git --git-dir=.git --work-tree=/tmp/tmp.4ZCnGezWFN commit -m 'Copier automated commit for draft changes' --no-verify --no-gpg-sign
 Stdout:       | On branch main
               | Your branch is up to date with 'origin/main'.
               |
               | nothing to commit, working tree clean

Nothing to commit? What's happening?
 ➤ git status
 On branch main
 nothing to commit, working tree clean

Expected behavior

When ctt produces changes, it should fail (problem at step 6).
When ctt changes are added to commit, they should be kept (step 8).

Thanks for the source code! I can replicate the same issue 😞
On an initial pass:

It looks like the logic for detecting a dirty repository and making a commit is somehow conflicting with copier|ctt|pre-commit|?: https://github.com/copier-org/copier/commit/6cc94c6ad12d7e858a50f3ba7fee0afb77b2fd6c
I found a separate issue with recursion when the .ctt directory wasn't ignored (I'm not sure why that isn't a problem here)

I'll keep investigating and see if I can figure out what is going on

Okay, so I might have a patch released in 2.1.0
There are a couple of things still to address, but in testing locally, the plumbum error wasn't occurring. The root cause seems to have been part of a change intended to resolve #24 by removing the .ctt destination directory that caused a regression for this issue (https://github.com/KyleKing/copier-template-tester/commit/8e9aa2e96fd505e242d6900f78212f756c6f41ae)
Remaining Issues:

[ ] Exclude rules should be added dynamically when no subdir is specified. The current approach to detect recursion only happens in a test environment and requires the user to take manual steps (which could be handled within ctt)
[ ] Restore removal of dst_dir to support non-updatable templates (#24), but in a way that doesn't conflict with the internal logic of copier
[ ] When .ctt is first created and untracked, raise an error that it needs to be committed (pre-commit returns success currently)

I released 2.1.1 to address the three tasks from above and tested it against the sample repo.
Let me know if this resolved the issues!

Thanks! It seems to work now ❤


python3Packages.umap-learn: patch for numpy>=1.24

Description of changes
ZHF: #230712
https://hydra.nixos.org/build/221534472
The dependency scikit-tda still fails to build because it does not support numpy>=1.24.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

@ofborg build python3Packages.umap-learn python3Packages.umap-learn.passthru.tests


fix(start): pass state and createSend to onError hook

Hey,
I noticed that the state and createSend was actually not available in the on error hook. Added it, and now it works ☺

Coverage remained the same at 98.6% when pulling 5b9211993ae6a3bdedbd305ec766e09c44bb7b93 on finnp:onerror into 483955952d700d6c567d0b2f86cb8035dddacce6 on yoshuawuyts:master.

There seems to be an issue on choo for this, closes https://github.com/yoshuawuyts/choo/issues/142

Isn't this the same as #49 ?

Nope the change from #49 is already implemented here https://github.com/yoshuawuyts/barracks/commit/0064e6a048ff53521f56a481c27322e12f8fd01f. However the arguments are missing at this place as well.

Coverage increased (+0.006%) to 98.606% when pulling 941f5609d98ae92754f0fc537cc4173a10bf267a on finnp:onerror into 483955952d700d6c567d0b2f86cb8035dddacce6 on yoshuawuyts:master.

Coverage increased (+0.006%) to 98.606% when pulling 941f5609d98ae92754f0fc537cc4173a10bf267a on finnp:onerror into 483955952d700d6c567d0b2f86cb8035dddacce6 on yoshuawuyts:master.


Added a few bots

Hi,
Again from parsing my logs I found a few more bots.
Regex & UA tests added.
Cheers :beers:

:heart:

Released


Fix print libfunc format

Fix print libfunc format
Description
Description of the pull request changes and motivation.
Checklist

[ ] Linked to Github Issue
[ ] Unit tests added
[ ] Integration tests added.
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

Codecov Report
Attention: Patch coverage is 0% with 25 lines in your changes are missing coverage. Please review.

Project coverage is 77.55%. Comparing base (baf57d2) to head (7b00037).

Files
Patch %
Lines

runtime/src/lib.rs
0.00%
25 Missing :warning:

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #437   +/-   ##
=======================================
  Coverage   77.54%   77.55%
=======================================
  Files         110      110
  Lines       32413    32409    -4
=======================================
  Hits        25134    25134
+ Misses       7279     7275    -4

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


Updated some colors

Can you provide some details about the why for the color change?

backround was a typo. Also, it makes more sense to me to have --paper-step-primary-color based on --primary-color rather than --primary-background-color. Otherwise, shouldn't it be called --paper-step-primary-background-color? So that change is to remove confusion.
Since the declaration of --paper-step-primary-color now takes --primary-color into account, I changed the two instances of var(--primary-color, --paper-step-primary-color); to var(--paper-step-primary-color);.
I made the other changes when I was trying to get the colors to conform more to Material Design.


Refactor historic appointments

There are currently three pages that are index pages displaying all historic past role holders of major roles in government, which have all recently been moved from being rendered in whitehall to being rendered in this application:

Past prime ministers
Past foreign secretaries
Past chancellors

This refactors these three types of historic appointment to re-use as much code as possible. So specifically, this PR goes:

from 3 individual controllers to a single historic appointments controller
from 3 separate view templates to a single one

Other improvements in this PR:

Remove the hard-coding of past foreign secretaries and past chancellors from the controller, instead creating yaml content items here as per the coronavirus landing page.
Add more tests for these pages
Introduce a historic appointments presenter, responsible for presenting some information for past chancellors and past foreign secretaries in a similar way to the past prime ministers presenter
Move all hard-coded text on the index pages to locale files
A bit of rationalisation of the partials to render these pages

A note on the differences between past prime ministers and the other two pages
There's a slight complexity in these pages in that only one (prime ministers) is rendered from a content item, the other two have always been hard-coded. The ideal state is that all of these pages are rendered from a content item that is published by whitehall as the publishing application that has access to this data.  This means that we often have to treat these separately in code.
Trello
⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠
Follow these steps if you are doing a Rails upgrade.

Thanks for the review @hannako! I did wonder how far to go with the refactoring, so agree with your suggestion of keeping the controllers separate. Hopefully I can just revert the last few commits and do it not too painfully, I think the controllers bit was the last bit. All your other suggestions look sensible too, will have a rework and let you know when it's ready to have another look.


Swift

hello!  I am a beginner of the iOS, I use a Swift, translation of the library, you have a problem, the last two don't know how to remove the animation in the middle of the curve. Don't know why the Objective - c: no problem, trouble you see, what's the problem?  https://github.com/king129/SJActivityIndicatorView.git

https://github.com/ninjaprox/NVActivityIndicatorView


Should withPreloadedLanguageModels() only load specified languages?

Currently withPreloadedLanguageModels() loads the models for all languages. However, (if I see that correctly), when a LanguageDetector is created only for a specific subset of all languages, then the models of the other languages would never be accessed.
Would it make sense to therefore have withPreloadedLanguageModels() only load the specified languages instead of all?

LanguageDetector, line 388:
private fun preloadLanguageModels() {
    runBlocking {
        languageModels.map { models ->
            async(Dispatchers.IO) { languages.forEach { language -> models[language]?.value } }
         }
    }
}

languages is the selected subset of all languages, and only this subset is preloaded. So what you want is already there. :)

Oh sorry you are completely right! I tried refactoring the code and accidentially changed it to load all languages, and then thought the main branch would behave the same ...
And sorry for all the issues / pull requests. I am not trying to spam this project. Recently I started playing around with the project to see if and where performance could be improved. I don't have changes in a polished state to submit a pull request, but if you want I could open an issue highlighting areas where performance could be improved. Would you be interested in that?

Yes, of course. I'm always interested in performance improvements, so please go ahead. :)


Automatic code formatting

Is your feature request related to a problem? Please describe.
Inevitable when we are working on new features we are touching a lot of files and our IDEs might reformat code unrelated to our change. This is not ideal because it makes reviewing much more difficult (hard to find the important changes) but also might introduce unnecessary conflicts.
Describe the solution you'd like
I suggest we introduce automated formatting (i.e using black)

Run it as part of CI/CD
Urge contributors to use it as a pre-commit hook

Describe alternatives you've considered
The other alternative is to ask for people to refrain from doing such changes but this relies on good intentions it won't always work.

In favour, however I recommend using Ruff instead of black as it's significantly faster and covers most linters in one. We used to use black within aws-sdk-pandas but recently made the switch to ruff and are happy customers


Missing dragonborn trait

This id is inconsistent (returns null). Took from http://www.dnd5eapi.co/api/races/5
{
url: "http://www.dnd5eapi.co/api/traits/36",
name: "Damage Resistance (Dragonborn)"
}
EDIT: After a further lookup it seems to be this url: http://www.dnd5eapi.co/api/traits/18

Fixed in #52