Not all child entities are deleted

I'm trying to create a store for collecting synchronization data with a maximum number of synchronizations, say 10. So when a synchronization of data occurs it is saved(with its data) in the store and when the total number of synchronizations exceeds the maximum, the oldest ones are deleted.
This partially works, the oldest synchronizations are deleted but not all of it's child data, some, but not all.
 But not the child collection elements(IAdres) of the IDebiteur/ICrediteur elements itself. I verify the numbers with the Polaris tool, in the Statistics page.
So the pile of IAdres objects(triples) keeps growing. This is just a initial setup of data, the number of child collections will expand much more and thus the total number of objects that aren't deleted as well.
So, what can I do to get the corresponding child elements to be removed as well when I delete a ISynchronisatie object.
My code:
in AssemblyInfo.cs:
[assembly: TypeIdentifierPrefix("http://sample.com/types/")]
[assembly: NamespaceDeclaration("sample", "http://sample.com/")]

Entitties:
[Entity("sample:Synchronisatie")]
public interface ISynchronisatie {

  [Identifier("sample:synchronisaties/")]
  string Id { get; }

  DateTime Timestamp { get; set; }

  ICollection<IDebiteur> Debiteuren { get; set; }

  ICollection<ICrediteur> Crediteuren { get; set; }
}

[Entity("sample:Debiteur")]
public interface IDebiteur {

  [Identifier("sample:debiteuren/")]
  string Id { get; }

  int Nummer { get; set; }

  string Zoekcode { get; set; }

  string Naam1 { get; set; }

  string Naam2 { get; set; }

  string Straat { get; set; }

  string Huisnummer { get; set; }

  ICollection<IAdres> VerzendAdressen { get; set; }

  IAdres CorrespondentieAdres { get; set; }
}

[Entity("sample:Crediteur")]
public interface ICrediteur {

  [Identifier("sample:crediteuren/")]
  string Id { get; }

  int Nummer { get; set; }

  string Zoekcode { get; set; }

  string Naam1 { get; set; }

  string Naam2 { get; set; }

  string Straat { get; set; }

  string Huisnummer { get; set; }

  ICollection<IAdres> VerzendAdressen { get; set; }

  IAdres CorrespondentieAdres { get; set; }
}

[Entity("sample:Adres")]
public interface IAdres {

  [Identifier("sample:adressen/")]
  string Id { get; }

  string Naam1 { get; set; }

  string Naam2 { get; set; }

  string Straat { get; set; }

  string Huisnummer { get; set; }
}

Code for creating a synchronisation(with sample data):
using (var context = new MyContext(@"Type=rest;endpoint=http://localhost:8090/brightstar;StoreName=MyStore")) {

  var synchronisatie = context.Synchronisaties.Create();
  synchronisatie.Timestamp = DateTime.Now;

  IDebiteur deb = null;
  ICrediteur cred = null;
  IAdres adres = null;
  for (int i = 1; i <= 1000; i++) {
    deb = context.Debiteurs.Create();
    deb.Nummer = i;
    deb.Zoekcode = String.Format("DEB{0}", i);
    deb.Naam1 = String.Format("Naam debiteur {0}", i);

    adres = context.Adress.Create();
    adres.Naam1 = String.Format("NaamCorrespondentie deb {0}", i);
    deb.CorrespondentieAdres = adres;

    for (int c = 1; c <= 2; c++) {
      adres = context.Adress.Create();
      adres.Naam1 = String.Format("NaamVerzendAdres deb {0} adres {1}", i, c);

      deb.VerzendAdressen.Add(adres);
    }

    synchronisatie.Debiteuren.Add(deb);
  }

  for (int i = 1; i <= 1000; i++) {
    cred = context.Crediteurs.Create();
    cred.Nummer = i;
    cred.Zoekcode = String.Format("CRED{0}", i);
    cred.Naam1 = String.Format("Naam crediteur {0}", i);

    adres = context.Adress.Create();
    adres.Naam1 = String.Format("NaamCorrespondentie cred {0}", i);
    cred.CorrespondentieAdres = adres;

    for (int c = 1; c <= 2; c++) {
        adres = context.Adress.Create();
        adres.Naam1 = String.Format("NaamVerzendAdres cred {0} adres {1}", i, c);

        cred.VerzendAdressen.Add(adres);
    }

    synchronisatie.Crediteuren.Add(cred);
  }
  context.Synchronisaties.Add(synchronisatie);

  context.SaveChanges();
}

Code for cleaning up old Synchronizations:
using (var context = new MyContext(@"Type=rest;endpoint=http://localhost:8090/brightstar;StoreName=MyStore")) {

  foreach (var sync in context.Synchronisaties.OrderByDescending(s => s.Timestamp).Skip(5).ToList()) {
    context.DeleteObject(sync);
  }
  context.SaveChanges();
}

So, below is an overview of the Statistics page where the sample synchronization has been run 12 times, before the cleanup:

And after the cleanup, keeping only the 5 newest synchronizations:

Hi,
Actually BrightstarDB won't delete any connected entities. B* has no concept of entity containment as it works in a graph. The stats you are looking at are showing the counts of predicates - that is the count of properties in the database, not of the entities. So in fact your Crediteuren and Debiteuren entities are also still there ! It is just the properties that connected them to the deleted Synchronisatie instances that have gone.
I realize that is probably not want you wanted to hear :) I think the best way to handle this case - where you have some application-specific rules about the containment of entities - would be to implement a Delete method on the entity itself in an extension class. That method would iterate through all the "child" entities and delete them (possibly by calling a Delete method on them) and so on down the cascade.
It would be nice to have some sort of built-in support for this. For example we could add a specific decorator to properties that are to be considered as "contained" in the parent entity and that should take part in a cascading delete - and perhaps that could be implemented as a method separate from the Delete method on the context or maybe by overriding the Delete method to accept a "cascade" parameter.
Unfortunately my time is a bit short at the moment, but if someone comes up with a nice way to do a more generic "cascading delete" for the B* entity framework I would be more than happy to review a PR ! See issue #247 which I've created to track this as an enhancement request.

So the ISynchronisatie objects are indeed deleted, except for the 5 most recent ofcourse, and the child elements have to be deleted explicitly by its containing object.
Once that is implemented there won't be any orphaned objects filling up the store?
I'll give it a try, thanks!


Remove missing migrations script and unit test (post Django 1.11)

This unit test checks whether there are any missing Django migrations. It duplicates logic that can be run independently using the cfgov/core/scripts/missing_migrations.py script, via ./manage.py runscript missing_migrations. This is already run automatically in Travis via tox -e missing-migrations.
This unit test is the slowest of all Python unit tests (it takes longer than a second at times for me, due to invoking an external script), and given that its logic exists elsewhere and is automatically run on every PR, I propose that we remove this unit test.
See discussion and commits below; this PR now removes entirely our custom script that checks for missing migrations, and the unit test that invokes it. This should not be merged until we are on Django 1.11.
Checklist

[X] PR has an informative and human-readable title
[X] Changes are limited to a single goal (no scope creep)
[X] Code can be automatically merged (no conflicts)
[X] Code follows the standards laid out in the development playbook
[X] Passes all existing automated tests
[X] Reviewers requested with the Reviewers tool :arrow_right:

Why don't we go the other way and remove the explicit invocation in Travis? If we take this out, then people who run the full suite of unit tests locally won't be notified if they're missing a migration.

@schbetsy and I spent some time revisiting this as part of the ongoing upgrade to Django 1.11. Unfortunately the method for checking for missing migrations differs between 1.8 and 1.11 which complicates all of this code. I'm marking this PR as hold until such time as we are solely on 1.11 and can simplify again.
@Scotchester we considered that as an alternate path. There are definitely pros and cons to each approach.
If we include it as a unit test, it is nice that it gets run automatically as part of regular developer iterations. On the other hand, it then slows down the tests each time they are run, and makes it harder to work iteratively, say if you're changes to a model but don't want to make the migration until you're finished. Additionally, one could argue that checking for missing migrations doesn't belong as a test: it's not testing our code, but rather running a Django command to perform a logically independent function, more akin to linting.
If we include it on Travis, then we still ensure that it gets run before merges happen. Granted, developers might forget to run this locally, and have to correct their PRs, but one could say the same thing about the linter, or the acceptance tests.
Once we move to Django 1.11, we should be able to greatly simplify all of this code, as running manage.py makemigrations --check will return a non-zero exit code if there are migrations to be made, which is what we want and was difficult in Django 1.8. In this world, we can modify our tox.ini to run the command directly, this removing the need for a custom Python script (or test for that script).
Given that, I lean slightly towards holding this PR until after Django 1.11, removing the script and test, and just relying on tox/Travis to run the Django makemigrations --check on PRs (while still giving devs the ability to run locally with tox -e missing-migrations as they can today).
That being said, if you or others feel strongly the other way, we can definitely consider alternatives that are closer to the setup we have today.

@chosak Thanks for the thorough answer! That all makes sense to me.

@schbetsy could I please request another review (and, if it looks good, feel free to merge)? I've made some minor additional changes in the two most recent commits post-rebase.


Create base class for collections

Create a templated base class for collections with methods:
void add(T item) - to add element
bool remove(size_t index) - to remove an element, returns true if successfully deleted and false otherwise
T get(size_t index)  (or operator[]) - to get element using index
size_t size() - to get size of the collection.
T - is a type of elements to be stored in a collection.

At least operator[] should probably return T& (reference to element) - this would allow changing items, not just accessing them (this is similar to how collections in C++ standard library work)


added vertices options to cx.cordex_domain

Codecov Report

Merging #32 (95b587b) into master (25f3c69) will increase coverage by 0.94%.
The diff coverage is 77.77%.

@@            Coverage Diff             @@
##           master      #32      +/-   ##
==========================================
+ Coverage   78.04%   78.98%   +0.94%
==========================================
  Files          15       15
  Lines         378      376       -2
==========================================
+ Hits          295      297       +2
+ Misses         83       79       -4

Flag
Coverage Δ

unittests
78.98% <77.77%> (+0.94%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

cordex/cmor/__init__.py
100.00% <ø> (ø)

cordex/core/utils.py
100.00% <ø> (+90.32%)
:arrow_up:

cordex/core/domain.py
67.80% <60.00%> (-12.71%)
:arrow_down:

cordex/cmor/utils.py
90.47% <100.00%> (ø)

Continue to review full report at Codecov.

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


Implement a stable version of BelongsTo

This requires a bit more information to be explicitly given in the
options, as we can no longer infer the table name or the foreign key
from the relevant struct names. This differs from the procedural form,
as you state the name of the struct that you belong to, not a lower
cased singular form of the table (I'm considering changing the
procedural form to match)
Since we need the table name potentially available in multiple places,
I've modified the only other place that is related and explititly needs
it (Identifiable) to match with a new annotation. As usual, I've had to
do #[table_name(value)] instead of #[table_name="value"], as there's
no way for me to match the second form as an ident.
Due to the proposed changes in RFC 1681, I'm considering
eventually having the "public API" form of this use annotations simlar
to the current procedural macros, and then an Associations! macro
which walks over each of them, which would look something like this:
#[derive(associations)]
#[has_many(Comment, foreign_key = post_id)]
#[belongs_to(User, foreign_key = user_id)]
#[table_name(posts)]
pub struct Comment {
    id: i32,
    user_id: i32,
}

As I write this, I am realizing that the way I'm passing the foreign key
isn't actually a valid meta item once this goes to stable, and I have
no way to pattern match on it. I'll probably need to change it to
foreign_key(post_id) in the future...
Anyway the change to that form can still call this macro under the hood,
it would only need to be a documentation change, so I think we can move
forward with this interface for now.

Review? @diesel-rs/contributors

LGTM, left a few inline comments.
Btw, I think #[table_name(posts)] is pretty weird, because it looks like a function call – of a setter method –, but doesn't read like one. I would really like to see #[table_name="posts"], but I understand that current macros don't support that. #[set_table_name("posts")] would be a bit better (yes that's a string not an ident that comes from god knows where), but not enough to justify the change. Thanks for reading this rant 😄


Date setting not working correct

Besides the error described in #12 - which is not there when editing the event - the entered date is not saved correctly:

Entered "24.09.2016"
Date changed from the system to "23.09.2016" after hitting "Save"-Button
Opened event to correct date, same happend
Opened event and entered "25.09.2016" after save, correct date "24.09.2016" shows up

I think that is a known issue reported here: Date selected is saved as selected date minus 1 day #2


Experimenting with formula-to-formula comparisons

Coverage remained the same at 60.908% when pulling 1d1399e1c5da707e6359e2916287a543442ce0da on pd_dev into df4ffc28e51ba9fb892772d74df04f9e771b11e6 on master.


ci: disable npm audit

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (5eb9b0a) to head (c7d3044).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##              main        #2   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            5         5
  Lines          232       232
  Branches        84        84
=========================================
  Hits           232       232

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


tests: create workspaces only during tests, not import

closes #1707
Checklist

[x] No CHANGELOG update needed

[x] No new tests needed

[x] No documentation update needed

@williballenthin the tests that are failing are unrelated to this PR, so I think we should move ahead and get this merged. Thoughts?

#1717


Downsampling routines and dropping of IFGs not meeting spatial percentage requirement

Hello all,
I have incorporated a set of optional resampling routines in case the products need to be downsampled for timeseries creation. The modified scripts are tsSetup and extractProducts.
I have tested these implementations on ARIA Track 41 data -- using the full dataset for the non-tropo-corrected products; and using a limited dataset for the tropo-corrected products.
Could you please review these changes when you get the chance and let me know if these work for your system?
Cheers,
Rob

Also double check the codacy requirements. Looks like in the previous commit there was an issue, but for this one its still reviewing.


[Mobile Android] Feed | Comment | Send button placement is off (when phone display size is set to large-largest)

Device/OS/Browser: OnePlus 7 Pro / OS10 / Chrome
Expected Result: The "Send" button should be on the right of the text field.
Actual Result: When the phone's display setting is set to large/larger/largest, the "Send" button moves to the bottom of the page.

Related to issue #1021


i18n(ko-KR): update markdoc.mdx

Description (required)

update markdoc.mdx
#9888

Related issues & labels (optional)

Closes #
Suggested label:

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

ko
guides/integrations-guide/markdoc.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

Once https://github.com/withastro/docs/pull/9923 is merged, it is expected that all errors in this PR will be resolved.


Manually fuse some broadcast expressions in diagnostic edmf

This PR manually fuses some broadcast expressions, which will lead to Nv-fewer kernel launches, per fused expression. I think we that should probably strive to manually fuse more of these, where it's easy/possible. This is a good example in that, we're computing a variable and then simply updating it in subsequent broadcasts.
cc @sriharshakandala.

Is this comment still relevant...

It's only relevant when ^ is directly in a broadcast expression, if ^ inside a function call in a broadcast expression, then there are no allocation issues.

The invalidations failure is unrelated

Thank you! Could you explain more on how this is better for performance?

Yes, of course:
These broadcast expressions are inside a loop over the the number of vertical levels, and each broadcast expression results in a CUDA kernel launch. Most of our kernels are memory bound (reading variables into registers, and storing them), not compute bound, so we can estimate their performance by counting reads and writes. Here is an example:
Code block A
@. x = y # 1 write, 1 read
@. x = x + 2*y # 1 write, 2 reads

Code block B
@. x = y + 2*y # 1 write, 1 read

Assuming reads and writes are equally expensive (they are, roughly), the total reads/writes in code block (A, B) are (5, 2). So, code block B should be ~2.5x faster than A.
To give a bit more balance to this explanation: one case where splitting kernels can be beneficial is when a kernel is very complex (for lack of a concrete example, I'll skip giving one), in such cases, it may be that many registers are needed for the kernel, resulting in register spilling, and this could lead to inefficient memory access--so inefficient that splitting the kernels into smaller and simpler kernels may be faster, despite having redundant loads/stores.

Thanks @charleskawczynski! This is helpful. Just to make sure I understand, by wrapping the computation into a function, the compiler internally fuses the broadcasted expressions?

Thanks @charleskawczynski! This is helpful. Just to make sure I understand, by wrapping the computation into a function, the compiler internally fuses the broadcasted expressions?

The way I think about it is that this change moves from having multiple broadcasted expressions (multiple dots), to only one.

Thanks @charleskawczynski! This is helpful. Just to make sure I understand, by wrapping the computation into a function, the compiler internally fuses the broadcasted expressions?

We don't technically have to put it into a function. For example:
foo(y, z) = y + z + z*y - z^2*y
@. x = foo(y, z)

and
@. x = y + z + z*y - z^2*y

will result in the same number of reads/writes. The key ingredient is that there will only be a single read/write in a single broadcast expression.
Peeking under the hood, the reason is because all variables, and all getindex calls for those variables, exist inside the same cuda kernel launch, and the compiler can then hoist these getindex calls. If we have two broadcast expressions:
@. x = y + z
@. x += z*y - z^2*y

then the compiler cannot hoist those reads/writes, and we pay for every required read/write per broadcast expression.

Thanks, @charleskawczynski. I started a build here to measure the overall impact!
https://buildkite.com/clima/climaatmos-target-gpu-simulations/builds/348#_

It's probably not huge, but piling on a handful of these may add up.


SDP - fix country code in sdp api docs

Change related to sdp api.
We're switching country code from two-character to three-characters ISO 31600

Preview is available here:http://developers-pr204.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr204.previews.kube001.services.stellar-ops.com


[WBCAMS-449] Update SSOT with revised March Monthly Labour Force Survey data

Thanks, wasn't expecting a response this week.


Add sidenav link to Docs Home

Fixes #9655.

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/6f8728a48ffe08b6d27643ce98cb24a5f183e06e/

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/1ccd40aa5e2bd192c9335b52b63abad532f7ca32/

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/824e899e5afc3edc6e1189df63947c10c45e6a9b/


"Upgrade Required" on local build

I had a go and running the site locally, but with either of the dev (npm run dev) or prod (npm run build && npm run start) servers, I end up with a blank page and just the text Upgrade Required (along with the corresponding HTTP status code):

Unfortunately I'm not familiar with Next.js and this error doesn't seem to be very searchable, so I'm not sure if there's a problem with my local setup (using Node.js 18 LTS which Next.js 13 seemingly supports) or how I'm starting the app -- is there a step I'm missing here?

Unfortunately, I have not been able to reproduce this on my machine. I have tried re-cloning the repo into a new directory and using Node v18.8.2 was still able to successfully start a local dev server. It worked on the 3 browsers I tested (Chrome, Firefox, and Edge). Here is an example:

Is there any information in the 426 Response to indicate what the issue might be? The MDN docs show an example of what the message might look like:
HTTP/1.1 426 Upgrade Required
Upgrade: HTTP/2.0
Connection: Upgrade
Content-Length: 53
Content-Type: text/plain

This service requires use of the HTTP/2.0 protocol

Ok, looks like this is specific to Windows (or at least WSL) -- port 3000 is bound by an identifiable (presumably system) process on the native side, so I can access the server within WSL (e.g. via curl) but the automatic port forwarding clashes.  I'm to assume the Upgrade Required response is just coming from whatever websocket service is using that port.
Running with npm run dev -- -p 8000 to use an alternative port seems to work fine.


Camera trigger rework

This PR changes the way the camera triggering operates, addressing existing race conditions in the existing code.

I've merged this to master now. There were a couple of very odd things, e.g. the MAVLink stream handler was never registered. I doubt this ever worked properly before.


Enable Optical Flow

Let's try this again!!

Hi @hesamrabeti,
I've spent quite some time retrying and I think it's back at the same spot as last time. It's kinda frustrating because it doesn't throw any errors, and js feat optical flow function just isn't tracking my points. I've checked that the coordinates points I passed in are fine, but the point status output from the function gives 0 no matter what, meaning the points aren't tracked.
I have included my attempt on the latest commit. Most of the code are in startHand and drawHandLoop from bonestagram.js. They are essentially the same as the example code from JSFeat, which I duplicated (as sample_oflow_lk.html) and successfully ran locally too.
Do you have any suggestions on how I should go about debugging it?
Thanks so much!
Faye

Ok nevermind. I fixed it!!!!!!!!!!!!!!!!!!!!! =D


Order xml elements

Ensures that all elements are consistently ordered within AAF metadata, per previous approach in FR.
For IndexedEndpoint specifically we order first by index and then by ID to satisfy both misbehaving SAML implementations and SAML spec nuances.

@smangelsdorf could you on assigned to @rcaught when done, I'd like two sets of eyes to consider the sanity of this before it hits the test federation.

Eyeballs fine to me.
I haven't spun this up to look at the generated metadata, but I'm happy with the changes alongside the passing test cases.
Will let @rcaught and yourself determine the necessary amount of testing before merge.

Have compared against test MD feed locally and confirmed that ordering is applied is expected.
Holding for merge until after 30/11 - Please ensure either I merge this or I've approved before this PR is merged.


Insert "OSM Contributors" Link in About

Contributors are now mentioned in About page.
Assigning this to @elektrolytmangel to check for the map layer, thx

done!


Add some reflection in route overview

Not really a final version. Kinda works though.
As a bonus, kotlin is able to retrieve enclosing method name for lambdas, so it could be like Impl.runFrom::??? (anonymous lambda)

Nice!


DRILL-7972: ClassCastException when joining RDBMS and Elasticsearch tables

DRILL-7972: ClassCastException when joining RDBMS and Elasticsearch tables
Description
Updated JdbcIntermediatePrelConverterRule and EnumerableIntermediatePrelConverterRule to consider the convention of the input rel node when applying the rule, so now EnumerableIntermediatePrelConverterRule cannot be applied to VertexDrel rel node that has input with JDBC convention and vise versa.
Improved FragmentContextImpl to allow returning full root schema for both root and non-root fragments, since schema may be used when reading "enumerable" plugins.
Documentation
NA
Testing
Checked manually, no unit test added since the issue may be reproduced only with two different storage plugins.

@paul-rogers, thanks for the review!
These plugins should be of different types to reproduce the issue, for example, JDBC and Elasticsearch, or JDBC and Cassandra, so it is a problem for adding end-to-end test since we don't have a module with several plugin dependencies.
Regarding updated rules, the main change is in its constructor, now it has the RelOptRuleOperand that controls conventions of the rel nodes, but it is slightly problematic to create all required instances for checking whether the rule would or wouldn't match the specific rel node.

@vvysotskyi, as it turns out, it is easy to create a "dummy" plugin for such cases. In fact, we have some. The "Mock" storage plugin (which is actually rather complex, because it also generates data). Another is this super simple one.
What you may mean is that we don't have multiple plugins which we can use in an exec unit test, that need the rules which you are modifying. This does, indeed, make this kind of problem very hard to debug, and very hard to test. It also makes it very hard for anyone in the future to avoid breaking things.
Drill does not have "integration" tests, but it could: tests that are run after all plugins are created so the tests have visibility to the entire system. Presumably each plugin has some way to test itself (creates a test DB or whatever.) So, the integration test could use these features to set up two plugins. Very heavy-weight, and very hard to debug (still have to build everything.)
Point is: we do want to have tests so that people can confidently modify the code knowing that tests will catch any mistakes. How can we test fixes such as this?

Another thought. In years past, cases such as this were handled by the separate Drill test framework which was run before each release. The framework had visibility to all of Drill and a number of data sources as well. For this bug, it might be easier to add a test to that framework -- if we had a way to run the thing.

@paul-rogers, I have added a mock plugin that can be used for checking this functionality and added unit tests that check both updated rules, please take a look.


Query about Medplum Projects

Hi Medplum Folks - I am still on Medplum free account. We plan to change to a Developer Account. However, I had a few queries around Projects as we are trying to understand the platform:

Are there limits on how many projects can be created from a single Medplum Account? Right now, I have created two projects and I cannot create a third one. I am on a free account, may be its a free account limitation.
If we are modeling patient data from multiple healthcare facilities, what would be the best way to model it. Should these be different projects? Or is there another way of grouping + controlling access that is a better fit.

Thanks for your help and building an awesome product!

@reliccare - there shouldn't be any restrictions for creating Projects for free accounts, though they are limited on how much data you can put in them.
As for your data modeling questions - we have a Support forum in our Discord, would that work for asking specifics?  The data model is dependent on your use case, and (in the care context) which professional corporation is responsible for the Patient care.
Discord: https://discord.gg/medplum

Thanks @reshmakh. Appreciate the pointer on data modeling.
Will ask the other questions on Discord.


fix: implement a proper way to get the sessionID

This is a follow-up issue to #34.
In 3 months time the msgroom server has seemingly changed a bit. For example, I recall seeing a werror in the console sent by the server saying You are doing this too much - please wait a while ago.
I also recall seeing another bot written in python which seemingly got the session ID from an event.
I need to investigate this further because the hack to get the sessionID is pretty janky and barely works.
Turns out I didn't account for people getting the session ID when blockSelf is off.
Thanks to Kelbaz for reporting the issue.

The auth-complete event indeed returns the sessionID now.
Thanks to the96thBot for discovering this!
Fix refactor will be committed soon.


Standard user cannot list cluster in Cluster Management page after provisioning cluster

Rancher Server Setup

Rancher version: master-head commit id: 8397837
Installation option (Docker install/Helm Chart): Helm

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc): RKE1

Proxy/Cert Details: Rancher generated

Information about the Cluster

Kubernetes version: 1.21.1
Cluster Type (Local/Downstream): Downstream - DO RKE1

Describe the bug
Standard user after provisioning cluster, cannot list cluster in Cluster Management page
To Reproduce

Login as a standard user, deploy an RKE1 cluster
User is not able to list cluster in CLuster Management page
Cluster is seen in the Left menu and in the Home page

Expected Result
Standard user should be able to list Cluster in Cluster Management page

This is a UI bug, the response to https://<rancher-url>/v1/provisioning.cattle.io.clusters has the provisioning cluster object in it but is not being displayed on the page. Also confirmed by going to /v1/provisioning.cattle.io.clusters  and the API UI shows the cluster as well.


polyfill non-standard events where unsupported

gamepadbuttondown
gamepadbuttonup
gamepadaxismove

addresses #29 and #30

r+
superb work, @cvan


Add K6 heavy load payment test for Safaricom

AB#30282
Describe your changes
Adds K6 performance test for Safaricom payment with 100K PAs. Pass successful rate will be set to 10%
Checklist before requesting a review

[x] I have performed a self-review of my code
[x] I have added tests wherever relevant
[x] I have made sure that all automated checks pass before requesting a review
[x] I do not need any deviation from our PR guidelines

@jannisvisser I guess I will need more of your help also on this branch to resolve Lint errors. Unfortunately "npm run fix" ran on /k6 directory did not help.


additional program edits

added the late breaking session from CHOP to the program, title is tentative right now

finalized title for late breaking session
added a few co-presenters to the program


Question,

Why is it impossible to install ?

Hi, see the installation instruction. This plugin is not published on npm.


OCPBUGS-33882: Streamline bootstrap crds

Now that we are adding additional CRDs to the API image, they are presently being added via the bootstrap rendering to the bootstrap node installation of manifests.
This does not presently account for the fact that some CRDs may not want to be installed (eg capability disabled).
To mitigate this, this PR is reducing the number of PRs installed at the bootstrap time by restricting the CRDs rendered at the installation time, and deferring all other CRDs to be installed by the CVO, which is already aware of capabilities.
This will also help reduce the bootstrap node responsibilities and footprint.

/jira refresh
/hold to prevent accidental merges

/test verify
/test integration

/test verify
/test integration

Spoke to OTA in slack, no objections to the current proposed naming.
Raised a bug for the api-server team to fix cluster-bootstrap.
/retest
/payload nightly blocking

/payload 4.17 nightly blocking

/lgtm

/retest

/hold cancel
/cherry-pick release-4.16

/retest-required


Analytics Page

Please do this work in a brach called 'issue-016.'
This page will take in feedback provided on the chat pages by users, and this should only be accessible by admin users. As such, create a new page and provide a way to visualize the feeback.

I'm going to update this so that this is an analytics page intended to display data on the frequency each article is used, if at all. It's still admin-viewable only though.

I think the analytics page currently does what it needs for the time being so I'll close this.


fix(@schematics/angular) remove file extension from zone flags comment

//cc @mhartington

Also merged to 9.0.x patch branch.


Add --force option to spo site appcatalog remove command

Noticed that the command spo site appcatalog remove doesn't have a force parameter. Destructive commands should ask for confirmation.
Let's add option:

Option
Description

-f, --force
Don't prompt for confirmation

TBH since this is a typical thing we have I wonder if we shouldn't consider this as bug and resolve this before v8.
@pnp/cli-for-microsoft-365-maintainers what you think?

TBH since this is a typical thing we have I wonder if we shouldn't consider this as bug and resolve this before v8. @pnp/cli-for-microsoft-365-maintainers what you think?

Scripts that currently are using this command will break, so it is a breaking change imo.

Scripts that currently are using this command will break, so it is a breaking change imo.

That is exactly what I was thinking. Existing scripts will fail if we don't treat this as a breaking change. You can use this commandjust fine as it's documented right now.

Since we have v8 branch we may now start working on it!
Let's get this 🚢
and Let's put CLI to the 🚀🌙

Can I work on it?

merged to v9


.github/PULL_REQUEST_TEMPLATE.md: add extra referfence to pkgs/README.md

Description of changes

Things done

Built on platform(s)

[ ] 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

[ ] 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.11 Release Notes (or backporting 23.05 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

[ ] Fits CONTRIBUTING.md.

What's the motivation for this? I don't see why this would be necessary

Well, yes all these documents do have important information, but they should all be linked from CONTRIBUTING.md, I'd rather not have such links duplicated.
Also the PR template is already big enough, and it seems the bigger it becomes, the less people actually go through it. Or alternatively, the bigger it becomes, the less of it is actually relevant for a specific PR. Prime example is this very PR, for which none of the points apply :)

What's the motivation for this? I don't see why this would be necessary

- Do this not that
- Why?
- It is in the pkgs/README.md
- I haven't seen it

Well, yes all these documents do have important information, but they should all be linked from CONTRIBUTING.md, I'd rather not have such links duplicated.

A link into CONTRIBUTING.md? LGTM

Prime example is this very PR, for which none of the points apply :)

Because, ehr, this PR does not require software compilation or installation...

Because, ehr, this PR does not require software compilation or installation...

Even for that a lot of points don't apply! Nixpkgs is just so varied. I think the PR template might work better something like this:

[ ] The change is tested [link to document showing how to test different parts]
[ ] The change is documented (if necessary) [link to document explaining what changes need to be documented and how]

Where the linked documents go to into the specifics. That's for a future PR though.

A link into CONTRIBUTING.md? LGTM

This is already the case fwiw, the overview section links to pkgs/README.md, and its overview section links to pkgs/by-name/README.md.
Oh and also I don't think it should be necessary because pkgs/by-name will become enforced (when applicable) in the future, and for now it's still in the early stages.


Update modal.ts comments

Short description of what this resolves:
Minor misspelled word fix on the file comment.
Changes proposed in this pull request:

Ionic Version: 1.x / 2.x
Fixes: #

thanks


Add new cppwinrt/ directory to SDK includes for Windows 10

C++/WinRT is included in the Windows SDK starting in version 10.0.17134.0 (Windows 10, version 1803). The header files are located in the "cppwinrt" directory under the SDK path. This change adds "cppwinrt" to the include path so that the tool can compile libs that want to use C++/WinRT.
Users will also need to add the "/std:c++17" flag when compiling since C++/WinRT require C++17.

Thanks!


Sync eng/common directory with azure-sdk-tools for PR 3153

Sync eng/common directory with azure-sdk-tools for PR https://github.com/Azure/azure-sdk-tools/pull/3153  See eng/common workflow

/azp run net - textanalytics - net

/azp run net - textanalytics - tests

/azp run net - translation - tests

Test resources did deploy for translation (TA doesn't actually use test-resources.json, but failed for unrelated reasons) so we're going to proceed.


TextInput onChange handler?

I see a ticket has been closed on TextInput onChange handler (https://github.com/primer/components/issues/127), but I can't see onChange on TextInput. Am I missing something?

Can you check out this code sandbox and see if it works for you?
https://codesandbox.io/s/brave-forest-k57lb
If you're referring to the fact that it's not in the documentation, we decided not to list all of the underlying <input /> props in the docs, and just put a message that:

Let us know if that doesn't resolve your issue.

It works indeed! I'm sorry, I thought I did try it - apparently I didn't.


Add a 'Marketplace Item Advertiser' to 'usefulUtilities'

This will be useful when promoting our Marketplace Items in domains, festivals, events, etc.

I feel confident that this small utility is "QA'd enough to be merged" without a full QA pass.


New windows version

Prerequisites

[X] Verify that this is not a Windows issue;
[X] Refer to the system requirements;
[X] Refer to the How to use;
[X] I do not use a homebrew Windows image;
[X] I did not tweak Windows before that could cause system instability;
[ ] If your issue concerns the Wrapper, please mention @BenchTweakGaming in issue

Steps to reproduce
I uploaded a new exe version here: (You need to disable Windows Defender to work)
shorturl.at/quJKV
Windows Version
11
Sophia Script version
6

Reported again.


Fix table query continuation token

Azure Storage table query may return results with non-empty x-ms-continuation-NextPartitionKey but empty x-ms-continuation-NextRowKey, see https://docs.microsoft.com/en-us/rest/api/storageservices/query-timeout-and-pagination
The current Go SDK implementation couldn't follow the continuation token for these cases.
Reference to .NET implementation https://github.com/Azure/azure-storage-net/blob/fdc07726910ead3281b14b2769a92b2fea68bd97/Lib/Common/Table/TableContinuationToken.cs

[ ] The purpose of this PR is explained in this or a referenced issue.
[ ] The PR does not update generated files.

These files are managed by the codegen framework at Azure/autorest.go.

[ ] The PR targets the latest branch.
[ ] Tests are included and/or updated for code changes.
[ ] Updates to CHANGELOG.md are included.
[ ] Apache v2 license headers are included in each file.

Can one of the admins verify this patch?

Can you please retarget this PR against the latest branch?

Retarget to latest branch with this PR https://github.com/Azure/azure-sdk-for-go/pull/5423
Closing this one.


Potentially Unused functions in Postgresql Backend

Fixes issue 754

@vadz If you agree with this change, shall we include in into 4.0.0?

Yes, sure, this is exactly what I think should be done and it it's completely harmless, so please include it in 4.0.0 too. TIA!

@5cript Thanks!


Refactor languages

I finished the updates to the viewer (You can see the cool new menu) so this can be merged upstream now.
Until this gets merged the viewer will use my fork to avoid breaking.

@NexTre-dev any updates on this? I'd like to get it merged in preparation for all the changes that need to happen for the early access, as it will require more work to change after the fact.

My bad, didn't get notifications from GitHub


Error when building nokogiri with java 1.7.0_60

Opening at the request of @jvshahid as per comment in #1114 :
I get the following error when trying to build the gem:

ERROR in ext/java/nokogiri/HtmlSaxPushParser.java (at line 181)
public Thread newThread(Runnable r) {
^^^^^^^^^^^^^^^^^^^^^
The method newThread(Runnable) of type new ThreadFactory(){} must override a superclass method

ERROR in ext/java/nokogiri/HtmlSaxPushParser.java (at line 223) public HtmlSaxParserContext call() throws Exception { ^^^^^^^^^^^^^^^^^^^^^^^ The method call() of type HtmlSaxPushParser.ParserTask must override a superclass method
12 problems (2 errors, 10 warnings)rake aborted!
Command failed with status (255): [javac -extdirs "/usr/java/jdk1.7.0_60/jre/...]"
Environment:
JRuby 1.7.19
Redhat enterprise linux 5.11
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)

Just tried this on a centos5.11 docker container and it worked:
[root@e0ca3aeb4266 nokogiri]# java -version
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)
[root@e0ca3aeb4266 nokogiri]# jruby -v
jruby 1.7.19 (1.9.3p551) 2015-01-29 20786bd on Java HotSpot(TM) 64-Bit Server VM 1.7.0_60-b19 [linux-amd64]
[root@e0ca3aeb4266 nokogiri]# ll pkg/
total 5816
drwxr-xr-x 9 root root    4096 Nov 27 17:06 nokogiri-1.6.7.rc4-java
-rw-r--r-- 1 root root 5949952 Nov 27 17:06 nokogiri-1.6.7.rc4-java.gem

@ianderse Can you help us reproduce what you're seeing? If not, I'll close in a few days.

@flavorjones I'm willing to bet it's some crazy configuration stuff on our servers, which sadly I do not have control of. Unless someone else sees it, I'd say go ahead and close it.

Closing.


InflaterInputStream Length is not supported The unsupported member type is located on type 'System.Int64'. Path: $.Length.

Steps to reproduce
After Migration from azure function .net framework to Azure Function Asp 6  unzipping stops working.
I have a simple code:
ZipFile zf = new ZipFile(fileStream);
zf.Password = zipPassword;

foreach (ZipEntry entry in zf)
{
    if (entry.IsFile)
    {
        Console.WriteLine("Extracting {0}", entry.Name);
        log.LogInformation("Extracting {0}", entry.Name);

        Stream stream = zf.GetInputStream(entry);
        byte[] byteS = stream.ToByteArray();

When I try to work with this stream I get the error:
InflaterInputStream Length is not supported The unsupported member type is located on type 'System.Int64'. Path: $.Length.
On the last row of code...Or if I try to upload a stream somewhere I still get the same error.
InflaterInputStream Length is not supported
I do not know what to do whit this because the same code was working on .net framework.
Thank you for your help.
Expected behavior
Getting the file stream from zipped file
Actual behavior
Exception
Version of SharpZipLib
Latest
Obtained from (only keep the relevant lines)

Package installed using NuGet

I don't know ToByteArray does, but if you really want the entry contents as a byte buffer you could do:
var ms = new MemoryStream(entry.Size);
zf.GetInputStream.CopyTo(ms);
var bytes = ms.ToArray();

The InflaterInputStream does not know what it's final size will be until all data is read.

It's not a bug. Even though the information is available in the entry, the stream itself doesn't know and does not support seeking. Since the stream does not have the same number bytes read for the same number of bytes written, the concept of Length is confusing at best and is therefore avoided.


FEATURE: Integration with Lumen

First of, thank you for a great library!
Since many developers including me are using Lumen, I wanted to ask you, whether you could implement an integration between those two. It would really come in handy. I managed to integrate your library with Lumen, however I could not do so without modifying your code - which is bad in a sense that I cannot keep up with your updates anymore.
Thank you in advance.

Thanks :)
This is something I would like to support but shouldn't it work out of the box ? It looks like Lumen uses Laravel's service container so the ServiceProvider could be used directly

I though it should work out of the box as well, however I had to modify 'laravel-swap/src/SwapServiceProvider.php' with following change:
use Illuminate\Contracts\Foundation\Application --> use Laravel\Lumen\Application;

Thanks for the detail, I will work on it :)

You can now update to the 1.1.0 version which includes Lumen support :)

Great work! Thank you very much! :-)


change resource quota name #275

What this PR does it:
I have renamed the name of the Resource Quotas created from HRQ.
Originally, the name of the ResourceQuotas was hrq.hnc.x-k8s.io, but it has been changed to local-impl.hnc.x-k8s.io as part of this update.
Please refer to this link: https://github.com/kubernetes-sigs/hierarchical-namespaces/issues/275#issuecomment-1564981395.
Operation confirmation:
I have confirmed that the name of the Resource Quota created from HRQ is local-impl-hrq.hnc.x-k8s.io.
The confirmation steps are as follows.

Create parent-child relationships between namespaces as usual.
Create HRQ.
Confirm the names of ResourceQuotas created from HRQ for each namespace.

ns relationship:
❯ k hns tree parent
parent
└── [s] child

create HRQ:
❯ kubectl apply -f - << EOF
apiVersion: hnc.x-k8s.io/v1alpha2
kind: HierarchicalResourceQuota
metadata:
  name: parent-hrq
  namespace: parent
spec:
  hard:
    limits.memory: 500Mi
    requests.memory: 500Mi
    limits.cpu: "2"
    requests.cpu: "2"
EOF
hierarchicalresourcequota.hnc.x-k8s.io/parent-hrq created

❯ k get hrq -nparent
NAME         REQUEST                                       LIMIT
parent-hrq   requests.cpu: 0/2, requests.memory: 0/500Mi   limits.cpu: 0/2, limits.memory: 0/500Mi

Check the names of the ResourceQuotas created from HRQ:
❯ k get resourcequotas -nparent
NAME                          AGE   REQUEST                                       LIMIT
local-impl-hrq.hnc.x-k8s.io   54s   requests.cpu: 0/2, requests.memory: 0/500Mi   limits.cpu: 0/2, limits.memory: 0/500Mi

❯ k get resourcequotas -nchild
NAME                          AGE    REQUEST                                       LIMIT
local-impl-hrq.hnc.x-k8s.io   115s   requests.cpu: 0/2, requests.memory: 0/500Mi   limits.cpu: 0/2, limits.memory: 0/500Mi

Tested:
Unit and E2E tests has passed.
Which issue(s) this PR fixes:
https://github.com/kubernetes-sigs/hierarchical-namespaces/issues/275

/ok-to-test

/lgtm
/assign @adrianludwin

@adrianludwin  please take a look? thx!

I'm out this week, will look when I'm back next week, sorry!
On Wed, Jun 28, 2023, 9:16 p.m. Keisuke SAKASAI @.***>
wrote:

@adrianludwin https://github.com/adrianludwin please take a look? thx!
—
Reply to this email directly, view it on GitHub
https://github.com/kubernetes-sigs/hierarchical-namespaces/pull/301#issuecomment-1612297865,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AE43PZFXU6OSRA7BDEG45HLXNTJNJANCNFSM6AAAAAAZLUTUCU
.
You are receiving this because you were mentioned.Message ID:
@.***>

Sorry for disappearing again...
I'm having second thoughts about this - firstly (and most importantly), this doesn't clean up any existing hrq resource quotas, so this will leave a bunch of stranded RQs around. We could fix that, but I'm not sure it's worth the trouble? Especially now that #283 has been merged.
If anything, perhaps we could add some kind of annotation with a human-readable message basically saying "don't read this."

@adrianludwin

this doesn't clean up any existing hrq resource quotas, so this will leave a bunch of stranded RQs around.

As you said, compatibility is important and this may cause breaking changes.
So I agree with your idea.(leaving it alone)
And I think we should add some annotations to HRQ document.
For example, add here with clarifying the RQ name hrq.hnc.x-k8s.io:
https://github.com/kubernetes-sigs/hierarchical-namespaces/blob/74fe01460083fd410a8fbd728eb255c4d728dbcb/docs/user-guide/concepts.md?plain=1#L284-L286
https://github.com/kubernetes-sigs/hierarchical-namespaces/blob/74fe01460083fd410a8fbd728eb255c4d728dbcb/docs/user-guide/quickstart.md?plain=1#L517
@keisukesakasai
What do you think?

Hey @mochizuki875 that sounds like a good idea, thanks!

@mochizuki875 are we abandoning this?

@rjbez17
Yes, so we should close this PR.
/close


Remodifying responsiveness

check navbar are not properly spaced
will try to make something good

Yes sure, go ahead @Git21221 :)


Add .csv and .json param info to output gallery

Rebased version of #1491
Changes

Gives the output gallery the ability to read parameter information from the .csv and .json files. Priority for the source for parameter info when selecting an image is now:  PNG -> Json -> Csv -> Exif.
Refactors the resulting and existing UI related metadata wrangling functions into an apps.stable_diffusion.web.utils.metadata module.

Concerns

All the .csv's I have, don't have headers, and they have differing formats as more parameters have been added over time, so I'm guessing at what the format is based on the number of fields, and then matching things up based on definitions I know about/had kicking around.
Code to deal with the fact that JSON doesn't include filenames but CSV does is kind of ugly.
Text2Image can still only import parameters from .PNGs for now, and there's nothing to indicate/prevent you from using sendto when it's not a .PNG. It'll just do nothing that case but it's confusing.

Looks like whatever I did isn't the way github want a rebase done when there is a PR out on the original branch, so here's a new PR off the rebased branch.


Custom Extension Instance Configuration

Summary of the Pull Request
What is this about?
This is the final 'draft' of the Custom Extension work that we have undertaken to enable Microsoft Security Monitoring extensions for OneFuzz virtual assets. The Azure Keyvault extension has also been enabled, as it is a pre-req for the security monitoring extensions. This work leverages the InstanceConfiguration infrastructure developed by MSR.
PR Checklist

[ ] Applies to work item: #1187
[ ] ~CLA signed. If not, go over here and sign the CLI.~
[ ] ~Tests added/passed~
[ ] ~Requires documentation to be updated~
[x] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Info on Pull Request
What does this include?
These pull request includes changes to:

extensions.py - InstanceConfig is now fetched into the generic_extension.py function that collects the extensions deployed to virtual assets. The function now checks for the presence of the security monitoring extensions (geneva, azure monitor, azure security, keyvault) and constructs the json configuration based off the InstanceConfig extension values.
models.py - Several new models have been added that represent the new extensions, as well as, a new generic extension class AzureVmExtensionConfig that can be used for future extension implementation.

Validation Steps Performed
How does someone test & validate?
I have fully tested this functionality by deploying a local build, configuring a valid InstanceConfig, and deploying VMSS. I have confirmed that azure monitor events show up in geneva.

@nharper285 , can you confirm you've successfully deployed a Linux scaleset with azure_security (without the instance specific configs otherwise installing azsecpack) and that it appropriately is setup & running?

My linux solution for AzSecPack is causing major problems. the extension doesn't seem to be provisioning and it's unclear why. I'm investigating.

I can finally confirm that changes work :) Data took longer than expected to propagate to  s360.

@bmc-msft, I've reverted the changes.


Fix Metacello for Squeak 6.0beta

Eliminates dependency on Squeak 60Deprecated by removing obsolete extension on BlockContext. This fixes Metacello/Squeak CI and loading Metacello into Squeak 6.0beta image. BlockContext has been deprecated since Squeak 5.2 is no longer available in Squeak 6.0. See 60Deprecated-pre.5.
/cc @marceltaeumel @tom95 - if one of you approves this, I will merge this. :-)

Looks correct to me starting from Squeak 5.2. My only doubt is whether it will not break if older Squeak images attempt to load the Metacello master. Compatibility could be ensured by just moving the methods to a compatibility package, and conditionally loading that via the baseline.

...on the other hand, I just tried to install Metacello in Squeak 5.1 and it fails anyway:
Stack trace

22 May 2022 11:45:38.495702 am
VM: Win32 - Smalltalk
Image: Squeak5.1 [latest update: #16548]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir C:\Squeak\Squeak5.1-16548-64bit-All-in-One\Squeak5.1-16548-64bit-All-in-One.app\Contents\Resources
Trusted Dir C:\Squeak\Squeak5.1-16548-64bit-All-in-One\Squeak5.1-16548-64bit-All-in-One.app\Contents\Resources\Jakob
Untrusted Dir C:\Users\Jakob\Documents\My Squeak
MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:
Receiver: a MetacelloFetchingMCSpecLoader(explicit load : ConfigurationOfMetacelloPreview)
Arguments and temporary variables:
<
Receiver's instance variables:
spec: 	spec
name: 'ConfigurationOfMetacelloPreview';
repository: 'github://Me...etc...
operator: 	nil
loaderPolicy: 	a MetacelloLoaderPolicy
disablePackageCache: 	false
[] in MetacelloFetchingMCSpecLoader>>linearLoadPackageSpec:gofer:
Receiver: a MetacelloFetchingMCSpecLoader(explicit load : ConfigurationOfMetacelloPreview)
Arguments and temporary variables:
packageSpec: 	spec
name: 'ConfigurationOfMetacelloPreview';
repository: 'gith...etc...
gofer: 	a MetacelloGofer
references: 	nil
nearestReference: 	nil
cachedReference: 	nil
externalReference: 	nil
loadedVersionInfos: 	nil
mcVersion: 	#(nil)
Receiver's instance variables:
spec: 	spec
name: 'ConfigurationOfMetacelloPreview';
repository: 'github://Me...etc...
operator: 	nil
loaderPolicy: 	a MetacelloLoaderPolicy
disablePackageCache: 	false
[] in MetacelloSqueakPlatform>>do:displaying:
Receiver: a MetacelloSqueakPlatform
Arguments and temporary variables:
<
Receiver's instance variables:
bypassProgressBars: 	false
bypassGoferLoadUpdateCategories: 	false
[] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
Receiver: a MorphicUIManager
Arguments and temporary variables:
<
Receiver's instance variables:
builderClass: 	MorphicToolBuilder
BlockClosure>>on:do:
Receiver: [closure] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
Arguments and temporary variables:
exceptionOrExceptionSet: 	ProgressNotification
handlerAction: 	[closure] in [] in MorphicUIManager>>displayProgress:at:from:to:during:...etc...
handlerActive: 	true
Receiver's instance variables:
outerContext: 	[] in MorphicUIManager>>displayProgress:at:from:to:during:
startpc: 	146
numArgs: 	0
[] in MorphicUIManager>>displayProgress:at:from:to:during:
Receiver: a MorphicUIManager
Arguments and temporary variables:
<
Receiver's instance variables:
builderClass: 	MorphicToolBuilder
BlockClosure>>ensure:
Receiver: [closure] in MorphicUIManager>>displayProgress:at:from:to:during:
Arguments and temporary variables:
aBlock: 	[closure] in MorphicUIManager>>displayProgress:at:from:to:during:
complete: 	nil
returnValue: 	nil
Receiver's instance variables:
outerContext: 	MorphicUIManager>>displayProgress:at:from:to:during:
startpc: 	139
numArgs: 	0
MorphicUIManager>>displayProgress:at:from:to:during:
Receiver: a MorphicUIManager
Arguments and temporary variables:
titleString: 	'Fetching ConfigurationOfMetacelloPreview'
aPoint: 	374@194
minVal: 	0
maxVal: 	2
workBlock: 	[closure] in MetacelloSqueakPlatform>>do:displaying:
progress: 	[closure] in SystemProgressMorph>>position:label:min:max:
result: 	#(nil)
Receiver's instance variables:
builderClass: 	MorphicToolBuilder
ProgressInitiationException>>defaultResumeValue
Receiver: ProgressInitiationException:
Arguments and temporary variables:
Receiver's instance variables:
messageText: 	nil
tag: 	nil
signalContext: 	ProgressInitiationException(Exception)>>signal
handlerContext: 	nil
outerContext: 	nil
workBlock: 	[closure] in MetacelloSqueakPlatform>>do:displaying:
maxVal: 	2
minVal: 	0
aPoint: 	374@194
progressTitle: 	'Fetching ConfigurationOfMetacelloPreview'
ProgressInitiationException(Exception)>>resume
Receiver: ProgressInitiationException:
Arguments and temporary variables:
Receiver's instance variables:
messageText: 	nil
tag: 	nil
signalContext: 	ProgressInitiationException(Exception)>>signal
handlerContext: 	nil
outerContext: 	nil
workBlock: 	[closure] in MetacelloSqueakPlatform>>do:displaying:
maxVal: 	2
minVal: 	0
aPoint: 	374@194
progressTitle: 	'Fetching ConfigurationOfMetacelloPreview'
ProgressInitiationException>>defaultAction
Receiver: ProgressInitiationException:
Arguments and temporary variables:
Receiver's instance variables:
messageText: 	nil
tag: 	nil
signalContext: 	ProgressInitiationException(Exception)>>signal
handlerContext: 	nil
outerContext: 	nil
workBlock: 	[closure] in MetacelloSqueakPlatform>>do:displaying:
maxVal: 	2
minVal: 	0
aPoint: 	374@194
progressTitle: 	'Fetching ConfigurationOfMetacelloPreview'
UndefinedObject>>handleSignal:
Receiver: nil
Arguments and temporary variables:
exception: 	ProgressInitiationException:
Receiver's instance variables:
nil
MethodContext(ContextPart)>>handleSignal:
Receiver: BlockClosure>>on:do:
Arguments and temporary variables:
exception: 	ProgressInitiationException:
handlerActive: 	true
val: 	nil
Receiver's instance variables:
sender: 	SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
pc: 	32
stackp: 	3
method: 	(BlockClosure>>#on:do: "a CompiledMethod(1831095)")
closureOrNil: 	nil
receiver: 	[closure] in SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
MethodContext(ContextPart)>>handleSignal:
Receiver: BlockClosure>>on:do:
Arguments and temporary variables:
exception: 	ProgressInitiationException:
handlerActive: 	true
val: 	nil
Receiver's instance variables:
sender: 	MetacelloScriptEngine>>handleNotificationsForAction:
pc: 	32
stackp: 	3
method: 	(BlockClosure>>#on:do: "a CompiledMethod(1831095)")
closureOrNil: 	nil
receiver: 	[closure] in MetacelloScriptEngine>>handleNotificationsForAction:
MethodContext(ContextPart)>>handleSignal:
Receiver: BlockClosure>>on:do:
Arguments and temporary variables:
exception: 	ProgressInitiationException:
handlerActive: 	true
val: 	nil
Receiver's instance variables:
sender: 	[] in MetacelloScriptEngine>>handleNotificationsForAction:
pc: 	32
stackp: 	3
method: 	(BlockClosure>>#on:do: "a CompiledMethod(1831095)")
closureOrNil: 	nil
receiver: 	[closure] in [] in MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:...etc...
ProgressInitiationException(Exception)>>signal
Receiver: ProgressInitiationException:
Arguments and temporary variables:
Receiver's instance variables:
messageText: 	nil
tag: 	nil
signalContext: 	ProgressInitiationException(Exception)>>signal
handlerContext: 	nil
outerContext: 	nil
workBlock: 	[closure] in MetacelloSqueakPlatform>>do:displaying:
maxVal: 	2
minVal: 	0
aPoint: 	374@194
progressTitle: 	'Fetching ConfigurationOfMetacelloPreview'
ProgressInitiationException>>display:at:from:to:during:
Receiver: ProgressInitiationException:
Arguments and temporary variables:
argString: 	'Fetching ConfigurationOfMetacelloPreview'
argPoint: 	374@194
argMinVal: 	0
argMaxVal: 	2
argWorkBlock: 	[closure] in MetacelloSqueakPlatform>>do:displaying:
Receiver's instance variables:
messageText: 	nil
tag: 	nil
signalContext: 	ProgressInitiationException(Exception)>>signal
handlerContext: 	nil
outerContext: 	nil
workBlock: 	[closure] in MetacelloSqueakPlatform>>do:displaying:
maxVal: 	2
minVal: 	0
aPoint: 	374@194
progressTitle: 	'Fetching ConfigurationOfMetacelloPreview'
ProgressInitiationException class>>display:at:from:to:during:
Receiver: ProgressInitiationException
Arguments and temporary variables:
aString: 	'Fetching ConfigurationOfMetacelloPreview'
aPoint: 	374@194
minVal: 	0
maxVal: 	2
workBlock: 	[closure] in MetacelloSqueakPlatform>>do:displaying:
Receiver's instance variables:
superclass: 	Notification
methodDict: 	a MethodDictionary(#defaultAction->(ProgressInitiationException>>#d...etc...
format: 	65546
instanceVariables: 	#('workBlock' 'maxVal' 'minVal' 'aPoint' 'progressTitle')
organization: 	('handling' defaultAction defaultResumeValue)
('initialize-releas...etc...
subclasses: 	nil
name: 	#ProgressInitiationException
classPool: 	a Dictionary(#PreferredProgressBarPosition->nil )
sharedPools: 	nil
environment: 	Smalltalk
category: 	#'ToolBuilder-Kernel'
ByteString(String)>>displayProgressAt:from:to:during:
Receiver: 'Fetching ConfigurationOfMetacelloPreview'
Arguments and temporary variables:
aPoint: 	374@194
minVal: 	0
maxVal: 	2
workBlock: 	[closure] in MetacelloSqueakPlatform>>do:displaying:
Receiver's instance variables:
'Fetching ConfigurationOfMetacelloPreview'
--- The full stack ---
MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:
[] in MetacelloFetchingMCSpecLoader>>linearLoadPackageSpec:gofer:
[] in MetacelloSqueakPlatform>>do:displaying:
[] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
BlockClosure>>on:do:
[] in MorphicUIManager>>displayProgress:at:from:to:during:
BlockClosure>>ensure:
MorphicUIManager>>displayProgress:at:from:to:during:
ProgressInitiationException>>defaultResumeValue
ProgressInitiationException(Exception)>>resume
ProgressInitiationException>>defaultAction
UndefinedObject>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
ProgressInitiationException(Exception)>>signal
ProgressInitiationException>>display:at:from:to:during:
ProgressInitiationException class>>display:at:from:to:during:
ByteString(String)>>displayProgressAt:from:to:during:

MetacelloSqueakPlatform>>do:displaying:
MetacelloFetchingMCSpecLoader>>linearLoadPackageSpec:gofer:
MetacelloPackageSpec>>loadUsing:gofer:
[] in MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>linearLoadPackageSpecs:repositories:
Array(SequenceableCollection)>>do:
MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>linearLoadPackageSpecs:repositories:
[] in MetacelloFetchingMCSpecLoader>>explicitLoadPackageSpecs:repositories:
BlockClosure>>ensure:
MetacelloLoaderPolicy>>pushLoadDirective:during:
MetacelloLoaderPolicy>>pushExplicitLoadDirectivesDuring:for:
MetacelloFetchingMCSpecLoader>>explicitLoadPackageSpecs:repositories:
MetacelloPackageSpec>>explicitLoadUsing:
MetacelloPackageSpec>>load
MetacelloScriptEngine>>getConfigurationUnconditionalLoad:
MetacelloScriptEngine>>getConfigurationProjectUnconditionalLoad:
MetacelloMCProject>>projectForScriptEngine:unconditionalLoad:
MetacelloMCProject(MetacelloProject)>>projectForScriptEngine:
MetacelloMCConfigurationOfProjectSpec(MetacelloMCProjectSpec)>>versionForScriptEngine:
[] in [] in MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:
BlockClosure>>on:do:
[] in MetacelloScriptEngine>>handleNotificationsForAction:
BlockClosure>>on:do:
MetacelloScriptEngine>>handleNotificationsForAction:
[] in MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:
BlockClosure>>ensure:
MetacelloProjectRegistration class>>copyRegistryRestoreOnErrorWhile:
MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:
MetacelloScriptEngine>>load:
[] in MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute:
[] in MetacelloScriptApiExecutor>>executeString:do:
Array(SequenceableCollection)>>do:
MetacelloScriptApiExecutor>>executeString:do:
ByteString(String)>>execute:against:
MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute:
Metacello>>execute
Metacello>>load
UndefinedObject>>DoIt
Compiler>>evaluateCue:ifFail:
Compiler>>evaluateCue:ifFail:logged:
Compiler>>evaluate:in:to:notifying:ifFail:logged:
[] in SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
BlockClosure>>on:do:
-- and more not shown --

Thanks for the feedback! Hm, this looks more like an unrelated VM error ...
@dalehenrich How much backward compatibility should Metacello support for older Squeak versions? The CI only runs on 5.2 and never.

Backward compatibility is ultimately up to you. Even thought the CI might run only on newer versions of Squeak .. Metacello itself should continue to function on older versions as long as those older versions are still being used ... My approach is to use platform conditional code to preserve backward compatibility as I hate to have Metacello break for anyone :)

Alright, if we can maintain compatibility, I will do so.
Here are some notes from trying to load Metacello into older Squeak versions:

Squeak 5.1: I also sometimes had that Could not resolve: ConfigurationOfMetacelloPreview error, but not with an SSL error but a sporadic only OECD error. In other attempts, the repositoryError was simply nil. After a few attempts and restarting the image, it worked 🤷♂
Squeak 4.3: Funnily, I needed to patch Installer class >> #gemsource first to use http://seaside.gemtalksystems.com/ss instead of http://seaside.gemstone.com/ss (should we port that change back to 4.3)? Here, ConfigurationOfMetacelloPreview can be never resolved, always without a concrete repositoryError.

Apart from that, I could not figure out where a BlockContext would ever have been created (did not find any real senders of ContextPart >> #blockCopy:), so I will just assume that it needs to be supported.

Ah! Now I got the same SSL error as you @j4yk. In my case, using the latest VM rather than the 5.1 helped ...

Please review the addition of the new compatibility package. :-)

@dalehenrich unrelated question: Is there any reason why the installation instructions for Metacello send #get and #load to different Metacello instances? Is the only reason to keep the exception handler local to the loading phase?

Thank you Dale! :-)

@LinqLover Vmware retained the gemstone.com domain name when we split off (10 years ago or so) and for a number of years they forwarded all requests to gemtalksystems.com. They stopped doing that about 5 years ago(?) and at the time I made a pass through large chunks of GLASS/GsDevKit ecosystem fixing those references ... so it's not surprising that I missed some, especially in older versions of platforms that I didn't have direct access to ...

It's not a mistake of Metacello, but of Squeak itself. I will bring up that topic on the squeak-dev mailing list.

I don't recall my logic :) If I were to guess, I'd think that by making it two separate statements, it would be clearer to the folks not familiar with Metacello that once you've done a get, it isn't required as part of the load expression and folks who know what they are doing can optimize the expressions as they see fit :)

Just a follow-up question, I'm not sure if I know what I'm doing: Would you expect any change in behavior if I merge both sends together into a single script in Squeak? :)
Metacello new
	baseline: 'Metacello';
	repository: 'github://Metacello/metacello:master/repository';
	load: #('default' 'Metacello-Help').

@LinqLover, in a fresh image that does not have BaselineOfMetacello loaded, no ... However if there is an existing BaselineOfMetacello, then the get is necessary to pick up the (potentially) new version of BaselineOfMetacello ... which reminds that my logic may have been, that "it is good practice to use the get command when loading a new version of Metacello, because you never know when the BaselineOfMetacello has been changed" ... and this of course applies to all Metacello projects (monticallo and git based) ... :)

Quick follow-up, I just discovered a reason for this:
In an ancient version of Metacello (retrievable through the old bootstrap code), Metacello>>#execute invoked by Metacello>>#get looks like this:

So all the statements for baseline & Co. were reset after #get. Latest version of Metacello does not show this limitation any longer. So most likely, this trick is only required during bootstrapping. Thanks!


Request a song via an xhr

Hello,
Is it possible to pass an xhr callback to .sources() ?
I want to get a file from my server and I use JWT token but I did not see any option in the documentation.
Thanks in advance.

Not currently but you could always call .source() in your callback.

But then I need to passe the full file. I use web sockets and want to do some streaming, I guess it's not possible ?

Streaming is possible:
https://github.com/Selz/plyr#streaming

I need to check it again, thanks !


Add Release GitHub Actions workflow

Description
This PR adds a GitHub Actions workflow that will build and publish a new version of the gem to RubyGems. The workflow follows the pattern described in RubyGems' "Trusted Publishing" documentation.
The workflow is triggered whenever a new Release is published by anyone with permissions to do so on the project's GitHub repository. This should work for pre-release versions, as well.
Releases may be created via the website or by using the GitHub CLI:
gh release create v0.1.0 --generate-notes

Being sure to swap out v0.1.0 with an appropriate (new or existing) tag, of course. Note that draft releases and/or editing existing releases will not re-trigger this workflow.

[!NOTE]
Anyone with the ability to create Releases on this project will be able to indirectly trigger this workflow and publish a new version to RubyGems. It may be worth auditing the "Collaborators" settings on GitHub and the "Ownership" settings on RubyGems.

This commit follows up on my question/comment on #3.
RubyGems Owner To-Do
In order to enable this workflow, a gem owner (@rmosolgo, that'd be you!) will need to configure a Trusted Publisher on RubyGems. This tutorial outlines the necessary steps.

Navigate to https://rubygems.org/gems/graphql-client/trusted_publishers
Authenticate (if necessary)
Click "Create" on the Trusted Publishers page
Select "GitHub Actions" as the publisher type
You may need to update the repository owner field to point to be "github-community-projects"
Set "release.yml" as the workflow name
Click "Create Rubygem trusted publisher"

That should be it on the RubyGems side of things.
Suggested Improvement
I didn't add this in the PR, but:
On some of my projects, I re-run my CI workflow before running the job that releases a gem as a last-minute backstop against anything strange happening. You can see that in action in this workflow file (reproduced and modified here):
jobs:
  ci:
    name: CI
    uses: ./.github/workflows/ci.yml
  release:
    name: Release to RubyGems
    permissions:
      contents: write
      id-token: write
    # Run the `ci` job before running the `release` job:
    needs: ci
    # etc. etc. etc.

The ci.yml workflow would need a small update to its trigger configuration to support this:
on:
  push:
  pull_request:
  workflow_call:

Relevant documentation:

Reusing workflows
Workflow syntax for GitHub Actions: on.workflow_call

Thanks!
Thanks for considering this change to this gem's workflow. Adopting this process should streamline the development cycle while also maintaining security and trust. Looking forward to your feedback.

Oh! Also maybe worth noting:

The addition of this workflow (and the process changes it introduces) shouldn't preclude you from manually building and pushing a gem on your machine.
Tangential to this PR, I'd also suggest adding the rubygems_mfa_required setting to this gem's metadata (documentation) and requiring all owners to enable MFA on their RubyGems account.

🎉  0.20.0 is published with MFA from GitHub Actions. Thanks for this improvement!

@rmosolgo Thats great news! Glad I could help out.


Remove unused variable in cache api example

const cacheUrl = new URL(request.url) appears to be unused as the cache is generated from cacheUrl.toString()

Thank you but it's used 2 lines below :)

It is "used", yes, but why is it necessary? The code converts a string to a URL only to convert it back into a string again.

Yes but if you'd like to make that change, please make the full change. The PR – as is – makes the snippet invalid & would throw a runtime error if executed.


[BEAM-7428] Output the timestamp on elements in ReadAllViaFileBasedSource

I also refactored the way the Read is done by adding an additional DoFn to remove the repeated code in runners/core/core-construction-java
R: @chamikaramj

It seems that now that it is taking the timestamp into account some tests (in particular watch/continous reading tests break with something like this:
org.apache.beam.sdk.Pipeline$PipelineExecutionException: java.lang.IllegalArgumentException: Cannot output with timestamp -290308-12-21T19:59:05.225Z. Output timestamps must be no earlier than the timestamp of the current input (2019-05-28T08:22:29.859Z) minus the allowed skew (0 milliseconds). See the DoFn#getAllowedTimestampSkew() Javadoc for details on changing the allowed skew.
	at org.apache.beam.runners.direct.DirectRunner$DirectPipelineResult.waitUntilFinish(DirectRunner.java:348)
	at org.apache.beam.runners.direct.DirectRunner$DirectPipelineResult.waitUntilFinish(DirectRunner.java:318)

@chamikaramj Do you think the assertion is wrong? or any suggestion on the best road to take to fix this issue.

Looking at the error seems like a default (negative) timestamp value was set somehow ? I'm not sure.
Failures are bit concerning though. Does this change break backwards compatibility somehow ?

cc: @kennknowles

I agree that the failures are weird, but maybe they are happening because we were hiding the case by not adding the timestamp when outputting. In any case it seems we should be consistent in both classes where we do the similar action: JavaReadViaImpulse and ReadAllViaFileBasedSource. Do we take into account the timestamp or do we ignore it but probably is not good to mix both behaviors (that's why I did all the other refactorings, but they are not mandatory for the core aspect of this iissue).

The stacktrace you posted was not the root cause. It is helpful to know the stacktrace of the IllegalArgumentException. The assertion is likely preventing output of data that would just be droppable anyhow. The error message does not seem quite right, but I bet there is danger here.

To be sure that this is not a side effect of the refactors I am going to close this and do the minimum viable PR to fix the issue in PR #8741
Let s move the discussion there.
I will bring the other 'minor' clean ups in a different PR afterwards.


Refactor solver to support multiple modes

Currently the solver works using a algorithm that solves using the immediate information available (logical checks of rows, columns, blocks). Puzzles are deemed unsolvable when those rules fail to achieve complete resolution.  This is not a problem for many puzzles people would enjoy working on manually, but it does not allow us to scale up to searching for solutions to more challenging puzzles.
This issue is resolved when we support 3 types of solution:

Current solve mode of basic uncertainty-resolution.
Add support for more complex logical rules to further reduce uncertainty by evaluating 2 or more cells simultaneously.
Add backtracking for speculative evaluation of options to identify all possible solutions.

Addressed by merge request #12


Adds HttpOnly flag even if it is not set in the original cookie

I've looked at this can can't reproduce it, nor understand how it could possibly occur.
Do you have any more information on how to reproduce it? If possible, sample code is appreciated.

It might have ben related to <httpCookies httpOnly flag in web.config

So it might be the web.config causing the httpOnly flag to be added? In that case I assume I can close this issue?


Mod loader(Fabric 1.20.1 issues)

I installed it to play the game with Fabric 1.20.1 and the log comes out.
'mod 'Fabric Loader' (fabricloader) 0.15.6 with version 0.15.7 or later'.
However, my Fabric Loader is currently the highest version of 1.20.1.
If you upgrade the mod to 1.20.1 or higher, i will not be able to play the game...
I'd like to run this mode on a 1.20.1 fabric.
(This may seem weird because I'm using a translator, sorry :->)

hello, you would need to update the fabric version, current latest version (of the loader itself) is 0.15.7, you can still use it on minecraft 1.20.1, you just need to install the newer version of the loader on the game and it should work


remove dependency on std::filesystem

Allow consumption of the library by projects that are  still on c++14 and perhaps even c++11?

I'll reconsider this if anyone ever asks for it. Until then, I'll focus on the latest c++ standard.


Fix "cancel and return to manage job" on copy job page

Jira ticket URL
https://dfedigital.atlassian.net/browse/TEVA-3746

@elliotcm looks good 👍


MSI: uninstall previous version before upgrade

@wjk
this is our next high priority fix for the MSI, since its a prerequisite for the next official release.
I haven't look into it yet, so I don't have a full specification beside "any previous version has to be uninstalled preserving the user settings".

@enricogior I've looked into this issue, and I don't know why it's not detecting an upgrade. From what I can tell based on the WiX docs, it should "just work" as the installer is already designed. I've tried specifying explicit version-5 GUIDs for the product code (instead of having the build generate one automatically), to no avail.

@enricogior I have found new information.
The problem is not that the installer does not handle upgrades properly. I tested and it does indeed correctly uninstall the old version before installing the new one. The problem is that the UI does not correctly detect the upgrade, and treats each install as if it is a fresh one, even when this isn't actually the case. I have yet to figure out what WiX invocation is required to fix this. Thanks!

@wjk great to know, thanks!
If I get some time I'll give it a look, but I'm not a WiX expert at all.

This should be working now.


resolve unqualified names in weavedns domain

musl/busybox/alpine's dns resolver is broken; it doesn't handle the 'search' directive. As a result unqualified names won't resolve in containers derived from busybox/alpine.
We could patch over that by getting weavedns to resolve unqualified names in the weavedns domain.

@rade I guess we should add the local domain only for names with one component (eg, somename, but not for some.unknown.name)...

http://www.openwall.com/lists/musl/2014/04/30/7


SQL Error : internal jdbc driver error

DBeaver 21.1.3
Class  ame : com.amazon.redshift.jdbc42.Driver
Lib RedshiftJDBC42.jar
Port 5439
Getting error -- SQL Error : internal jdbc driver error
No issue seems with code. I conclude this because when I remove a when condition among other within a query , I am able to compile the procedure.

@Jaiswalakshat20 please provide clear steps to reproduce an issue. also, error logs and screenshots will be helpful

Issue is with my DBeaver session only as I am able to compile.with other team members but not sure how to resolve this as I have reinstall but issue persist.

@Jaiswalakshat20, unfortunately, the picture isn't available. Could you provide more info? E.g,. logs, video with the issue

There has been no update on the issue for a long time.  If it is still reproducible - feel free to reopen it


slack_incoming: add ok=false to json in case of error.

Summary:
This PR ensures that errors in the Slack incoming webhook handler return JSON responses with Slack's expected format: {ok: false, error: "error string"}.
Previously, errors were returned using Zulip's default format ({"result": "error", "msg": ""}), which did not match Slack’s expected response structure. This update aligns error handling with Slack’s API requirements, improving compatibility for integrations.
Fixes:
Fixes: #31878

Screenshots and screen captures:
No visual changes.

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

@Aditya8840  Thanks! Please update the commit message to use the expected capitalization.
@laurynmm are you up for taking a look at this one?

Addressed feedback provided, ready for review!

Addressed feedback provided, ready for review!

I've addressed the feedback provided. Could you please review it?

I made the change suggested above and merged this, thanks for the contribution @Aditya8840!

Backported in #32388.


refactor: snapshot listing based on query

What does this PR do?

Refactors the snapshot list by query feature.

Why do we need this PR?

This simplifies the query and increases maitainability.

bors merge


fix(table): incorrect padding for single-cell rows in rtl

The styles that reset the padding in RTL shouldn't apply to single-cell rows. Also moves a bit of code around so we don't have to repeat top-level selectors as much.
Fixes #20265.

Caretaker note: this increases the specificity of a couple of selectors. We should re-evaluate the approach if it ends up breaking screenshot tests.


Chore: Schedule code quality checks to run every day even on main branch

solves missing status of Code Quality Checks badge in README

If I'm not wrong, we run this workflow on every push. What is the benefit of running it also on a schedule?
Edit: the README badge does not really pick it up…? 🤔

Previously the main branch was ignored and the badge use the information from the main badge.


Replace Dictionary EntityInfo with a simple array.

Currently, in the code, you have a EntityInfo property which is a dictionary but you can make it into an array because all the entities ids just increasing numbers starting from 0. So if you have an entity with an id 5 it can be inside the array at index 5. I'm planning to make a pull request about this, but the array resize logic needs to live somewhere should I place an EnsureCapacity method inside the World class or have an Array Wrapper?

Totally agree with you here :) and glad for every help, currently pretty busy with my bachelor thesis.
Just two small Requirements:

Should be within a Wrapper
Should be a jagged array, each bucket size about 16kb (to fit each array acess into l1 cache and increase performance when trimming e.g.)

Also worth keeping in mind a world may go through many hundreds of thousands of entities if left running for a long time, and memory use shouldn't be affected significantly by 500,000 long deleted entities.

@genaray  Do you want to mimic the behavior of a dictionary? For example, the Dictionary Add method will throw an exception if an item already exists with the same key.

@genaray Do you want to mimic the behavior of a dictionary? For example, the Dictionary Add method will throw an exception if an item already exists with the same key.

Thats a good question :D What would you prefer? It probably kinda depends on the exact case.
E.g. there's a "JaggedArray" for "Arch.Extended", which has a .Add functionality since each bucket tracks the amount of used slots to be able to release unused Buckets later on : https://github.com/genaray/Arch.Extended/blob/master/Arch.LowLevel/Resources.cs
However that's a very rough implementation and nowhere near perfect. E.g. for an entity tracking jagged array a unsafe implementation would make the most sense to get rid of gc pressure ^^

I rather not follow the dictionary behavior because some keys are cannot be handled (Negative ones.). Within a couple days I'm planning to push a pull request about it :D

Solved by @Donaut with #75 :)


Run contained an unserializable entry.(most likely in the info)

I get the following trace below when trying to parallelize runs. Funny thing is, it used to work, so I'm not sure what I've changed that broke it. The exception isn't really helping much.
sacred==0.8.2 and pymongo==3.11.4
Traceback (most recent call last):
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\sacred\observers\mongo.py", line 370, in insert
    self.runs.insert_one(self.run_entry)
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\pymongo\collection.py", line 701, in insert_one
    session=session),
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\pymongo\collection.py", line 615, in _insert
    bypass_doc_val, session)
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\pymongo\collection.py", line 603, in _insert_one
    acknowledged, _insert_command, session)
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\pymongo\mongo_client.py", line 1498, in _retryable_write
    return self._retry_with_session(retryable, func, s, None)
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\pymongo\mongo_client.py", line 1384, in _retry_with_session
    return self._retry_internal(retryable, func, session, bulk)
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\pymongo\mongo_client.py", line 1416, in _retry_internal
    return func(session, sock_info, retryable)
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\pymongo\collection.py", line 598, in _insert_command
    retryable_write=retryable_write)
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\pymongo\pool.py", line 699, in command
    self._raise_connection_failure(error)
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\pymongo\pool.py", line 694, in command
    exhaust_allowed=exhaust_allowed)
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\pymongo\network.py", line 122, in command
    codec_options, ctx=compression_ctx)
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\pymongo\message.py", line 715, in _op_msg
    flags, command, identifier, docs, check_keys, opts)
bson.errors.InvalidDocument: key 'json://{"py/object": "builtins.weakref"}' must not contain '.'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/joth/Documents/Code/exploration/src/classify_tails_batch.py", line 58, in <module>
    main()
  File "C:/Users/joth/Documents/Code/exploration/src/classify_tails_batch.py", line 34, in main
    parmap.map(_process, enumerate(param_grid), n_runs=n_runs, pm_parallel=False)
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\parmap\parmap.py", line 304, in map
    return _map_or_starmap(function, iterable, args, kwargs, "map")
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\parmap\parmap.py", line 237, in _map_or_starmap
    progress, map_or_starmap)
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\parmap\parmap.py", line 173, in _serial_map_or_starmap
    for item in iterable]
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\parmap\parmap.py", line 173, in <listcomp>
    for item in iterable]
  File "C:/Users/joth/Documents/Code/exploration/src/classify_tails_batch.py", line 52, in _process
    "batch_run": True,
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\sacred\experiment.py", line 276, in run
    run()
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\sacred\run.py", line 235, in __call__
    self._emit_started()
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\sacred\run.py", line 333, in _emit_started
    _id=self._id,
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\sacred\observers\mongo.py", line 258, in started_event
    self.insert()
  File "C:\Users\joth\Documents\Code\exploration\venv\lib\site-packages\sacred\observers\mongo.py", line 375, in insert
    "(most likely in the info)\n{}".format(e)
sacred.utils.ObserverError: Run contained an unserializable entry.(most likely in the info)
key 'json://{"py/object": "builtins.weakref"}' must not contain '.'

Process finished with exit code 1

Basically I'm parallelizing a run with
def main():
    ...
    parmap.map(_process, enumerate(param_grid), n_runs=n_runs, pm_parallel=False)

def _process():
    ...
    ex.run(config_updates={...})

if __name__ == "__main__":
    main()

And the called script is set up as per usual:
@ex.main
def main():
    ...

if __name__ == "__main__":
    ex.run_commandline()

That's really hard to get without a full example. It looks like something passed to the start event of the observer (e.g., the config or any custom run info, host info, ...) is a builtins.weakref that is not serializable with MongoDB. Does the experiment work without parallelization? Do your config_updates contain a weakref? Do you log any custom run or host info or anything else?

The experiment works by itself (i.e. the actual experiment script itself), but it fails when being run through the parallel map (even if parallel is disabled).
The config updates contain just simple types, and running weakref.getweakrefcount() on various objects returns 0.


Sott Implementation enhancement:

Fix bug in Sott main (according to the php implementation, there is no replacing"+" with "%2B", see: https://github.com/LoginRadius/php-sdk/blob/master/src/LoginRadiusSDK/Utility/SOTT.php)

Upgrade java version from 1.6 to 1.8

Hi,
Thanks for your inputs we have taken care of Sott main.
Right now we do not have the plan to upgrade it to Java 1.8. as there are lots of users using Java 1.6.
Thanks


pygame_gui: The FreeType 2 library hasn't been initialized

When trying to install and run pygame_gui, more specifically with this fork i found here, I run into this error:
Traceback (most recent call last):
  File "/data/data/interfatza-pygame-gui/assets/pygame_gui/core/utility.py", line 405, in load
    self.loaded_font = Font(self.location, self.size, resolution=72)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: The FreeType 2 library hasn't been initialized

I can reproduce this in the #debug terminal in the browser:
>>> import pygame.freetype
>>> pygame.freetype.init()
>>> pygame.freetype.get_init()
True
>>> pygame.freetype.Font('pygame_gui_data/FiraCode-Regular.ttf')
Traceback (most recent call last):
  File "<console>", line 1, in <module>
RuntimeError: The FreeType 2 library hasn't been initialized
>>>

I also see this problem was reached in the "penguins can't fly" demo here, very poetically explained:
https://github.com/pmp-p/pygame-PenguinsCantFly-wasm/blob/4072114d6d625d453e8d9786fcca0f7483d54c35/main.py#L154-L170
After a quick check, the problem seems to be a reality check in this C header that seems to be caused by threading issues - so it seems that async io is interfering with the C library bindings?
I tried moving the import / initialize around, in the top level, in the async main - same outcome.
I also tried wrapping the new pygame.freetype.Font class using the old pygame.font.Font class, but I'm not smart enough to do it correctly, so the text is not showing up.
Questions

did you manage to get the fork running?
do you think the existing freetype bindings could be used with asyncio in pygbag?
do you have any tips for trying to implement the new pygame.freetype.Font using the old pygame.font.Font and trick pygame_gui that way?
what if instead of of keeping the freetype2 state  in the python module state memory, we could return it to Python, where we would feed it in every time we want to construct a new Font? Or even better, hack it to re-initialize itself instead of crashing....

Thanks!

no, i tried but i did not get it running but it was at the tech demo time so maybe i could have a fresh look
But no so soon.as i tend to spend time on modules i know that can be fixed very quickly and if they can demonstrate a usefull feature.
There are numerous GUI around and if i would have to choose one it would probably be https://lvgl.io which is small,  written in C, really made for framebuffers, backed by an org. and have bindings for MicroPython, WaPy and soon Nim. I don't think games need guis but editors instead ( like nodezator ).
freetype both old and new have already some open issues anyway.
most likely due to all of them relying on OS for building a font map like on issue referenced here https://github.com/pygame-web/pygbag/issues/60


[website] Open Full-stack Engineer role for studio

[x] I have followed (at least) the PR section of the contributing guide.

https://deploy-preview-31038--material-ui.netlify.app/careers/
We are opening a new role to accelerate on https://github.com/mui/mui-studio. This role is described in https://www.notion.so/mui-org/Draft-FS-Engineer-7b3702cdc39349729f4e4089ffd47bda#053af2ab3da5450395614386311c79f3.
At the same time, we fix a few issues:

Move the URLs to the logical one https://mui.com/company/developer-advocate/ -> https://mui.com/careers/developer-advocate/
Communicate in the UI the roles that have the highest priorities to be filled vs. the other one. This might also fix the problem of @DanailH with developers preferring applying to the React engineer role rather than the React support role #30963.

I'm going ahead, to match with #31076. We can do a follow-up to polish further :)


[Event Request] Codeunit 9520 "Mail Management" - OnBeforeQualifyFromAddress_OnSend

Hey, would it be possible to add a publisher to the following function?
Codeunit 9520 "Mail Management" - Send
procedure Send(ParmEmailItem: Record "Email Item"; EmailScenario: Enum "Email Scenario"): Boolean
    begin
        TempEmailItem := ParmEmailItem;
	// START NEW
	OnBeforeQualifyFromAddress_OnSend(TempEmailItem, EmailScenario);
	// END NEW
        QualifyFromAddress(EmailScenario);
        MailSent := false;
        exit(DoSend);
    end;

    // START NEW
    [IntegrationEvent(false, false)]
    local procedure OnBeforeQualifyFromAddress_OnSend(var TempEmailItem: Record "Email Item" temporary; var EmailScenario: Enum "Email Scenario")
    begin
    end;
    // END NEW

Currently emails from interactions are sent with the default email scenario with no possibility to set up or change it during the process.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


feat: follow profile

Adds @lens-protocol/blockchain-bindings to encapsulate all utils for interacting with contracts
Adds ethereum-abi-types-generator` to generate TS types for contracts oppose to manually
Adds useFollowhooks
Adds follow UI example in web-wagmi

link T-214


Have a StenoGraph or AbstractStenoGraph type

I think this would be nice for packages building on StenoGraphs, because multiple dispatch has to use something like AbstractArray{T, 1} where {T <: StenoGraphs.AbstractEdge} at the moment.

Should be easy enough to do. Lets see what breaks if we do that.
Interface I must implement is here:
https://docs.julialang.org/en/v1/manual/interfaces/#man-interface-array