martin: 0.8.1 -> 0.8.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/maplibre/martin/releases.
meta.description for martin is: Blazing fast and lightweight PostGIS vector tiles server
meta.homepage for martin is: https://martin.maplibre.org/
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.8.2 with grep in /nix/store/2y09vcm9p0li5s0sb2dqkrqywqg2f2x1-martin-0.8.2
found 0.8.2 in filename of file in /nix/store/2y09vcm9p0li5s0sb2dqkrqywqg2f2x1-martin-0.8.2

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
martin

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/2y09vcm9p0li5s0sb2dqkrqywqg2f2x1-martin-0.8.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A martin https://github.com/r-ryantm/nixpkgs/archive/a978f93e1fc25520470d2884eeca2b1d0de949d2.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/2y09vcm9p0li5s0sb2dqkrqywqg2f2x1-martin-0.8.2
ls -la /nix/store/2y09vcm9p0li5s0sb2dqkrqywqg2f2x1-martin-0.8.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

martin

Maintainer pings
cc @sikmir for testing.

Result of nixpkgs-review pr 231571 run on x86_64-darwin 1

1 package built:

martin


Added variables for leapp_resume task

leapp_resume_retries: 360
leapp_resume_delay: 10

This looks reasonable to me. Please add...

brief description file under changelogs/fragments/
add to documented variables in roles/upgrade/README.md


How to update text content every frame?

Hello,
I currently have the following code.
I first set up my UI:
screen = new ThreeMeshUI.Block({
    width: 0.5,
    height: 0.5,
});
text = new ThreeMeshUI.Text({
    content: "null",
    fontSize: 0.05,
});
screen.add(text);
screen.name = 'screen';
scene.add(screen);

My render loop then sets new content for UI at every frame:
function render() {
    const value = ...
    text.set({ content: JSON.stringify(value) });
    ThreeMeshUI.update();
}

Unfortunately, the text doesn't seem to update every frame. How can I force ThreeMeshUI to update the text content every frame? I have tried using screen.update( updateParsing, updateLayout, updateInner ) with all of the booleans set to true but that doesn't do anything either.
If I change the background opacity every frame though, it does change each frame. But the text content doesn't.
Note please ignore any optimization concerns - just developing a quick prototype that needs text to render every frame.

It's working here. Ensure the text is really a string btw.


where to find crssl.lib after building google's webrtc code

Hi guys,
As per your answer for another question here
https://github.com/sarandogou/webrtc-everywhere/issues/13,
we got the googles webrtc code and build it successfully. But we couldn't find the crssl.lib anywhere in build structure. Can you help with instructions to find those libs ?

Fixed in fb712acd23440c55ab3bed4d6fbaa9e221ef8340


Why is the disk-journal split over two files?

The DiskJournal writes to two parts configured using bitronix.tm.journal.disk.logPart1Filename and bitronix.tm.journal.disk.logPart2Filename.
Why is this?
Should you configure these parts to reside on different physical disks?
Should these disks be local disks and not network mounts?
I can't seem to find any recommendations about this in the documentation.
Maybe I missed something?

The DiskJournal is loosely based on Mike Spille's proposal, see http://jroller.com/pyrasun/entry/xa_exposed_part_iii_the under 'The TM Transaction Log' paragraph for reference.
In a nutshell, the DiskJournal is a simple append-only journal. It writes transaction logs to one of the two files (the one elected as the 'active' when the journal is opened) then when that file is full, it copies the logs of the unterminated transactions to the second file (i.e.: a simple way of compacting) and resume logging on to the latter. This simple two preallocated files strategy prevents a lot of problems like having to handle disk full conditions for instance.
Only one file is used at a time, but both files form the journal and should be backed up together. They can be put on different disks but that doesn't help performance so I would recommend to keep them colocated. I would not recommend network mounts as BTM would grind to a halt if the journal was to become unwritable, and since every single transaction commit ends up sync'ing the write to the physical disk, performance could suffer.
You're not missing much, I chose that mechanism for its simplicity and total lack of maintenance requirement and complex partitioning, hence also eliminating the need for a long documentation. Just put your files on a fast local disk and back them up along your DB and you should be good.

Thanks for the insights Ludovic!
 :-)
As always, much appreciated!


Change the shortened constant name to the original name

Codecov Report

Merging #6 (b27d0c0) into master (4cfcd92) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master       #6   +/-   ##
=======================================
  Coverage   86.59%   86.59%
=======================================
  Files           7        7
  Lines        1052     1052
=======================================
  Hits          911      911
  Misses        141      141

Flag
Coverage Δ

unittests
86.59% <100.00%> (ø)

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

Impacted Files
Coverage Δ

src/libpq.c
96.12% <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 4cfcd92...b27d0c0. Read the comment docs.


VnV Plan Table 2: Rephrasing

"Alphabet not allowed" should be something like "Numeric values only" or "Non-numeric values not allowed". "Alphabet" is not a character/input type.

That's great. Done.


schema mil2525d

i have one question regarding the schema i get the symbol

but i want this symbol

there is some key that i have to change to get it? the code is the same

Not sure what version you are using, but a config setting was added to this at 2.4 on the Pro Dictionary Symbology Tab (Layer | Symbology)

Not sure what version you are using, but a config setting was added to this at 2.4 on the Pro Dictionary Symbology Tab (Layer | Symbology)

ohh, havent seen that
perfect man, thanks.


Some countries are missing

I was trying to use the getPhoneCode method for Bulgaria (country code 'BU') and the library have failed with an error breaking the page.
 error      TypeError: Cannot read property '0' of undefined
    at get_phone_code (eval at <anonymous> (), <anonymous>:31:25)
    at getPhoneCodeCustom (eval at <anonymous> (), <anonymous>:107:101)
    at Object.getPhoneCode [as a] (eval at <anonymous> (), <anonymous>:102:9)

I have noticed that the https://github.com/halt-hammerzeit/libphonenumber-js/blob/master/metadata.min.json does not include BU as a country.
I could go and regenerate the metadata file to get that country code from the Google library, but I think it would be nicer to have some kind of handling country codes that are not supported in a better way. Some examples are :

Make the function return undefined
Make the function throw an error with a message "BU is not a supported country"

Although your proposal is good and is likely to be implemented, the code you're using is wrong:

    <!-- Bulgaria -->
    <territory id="BG" countryCode="359" internationalPrefix="00"
               nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG"
               mobileNumberPortableRegion="true">

The code I am using is exactly this :
import { getPhoneCode } from 'libphonenumber-js';

getPhoneCode('US');

Can you let me know how am I using this wrong?
The version of the library I am using is 0.4.9

It is BG for Bulgaria


Tweak welcome messages

Before:

After:

Could you please drop before and after screenshots? ❤

done


Fbbt:Delete edge issue

Hey ontobot, apply:

delete edge FBbt:00004751 BFO:000050 FBbt:00006051

This works too!


Refactor setup entry logic and extract ImageCompressor

This PR introduces several improvements and general housekeeping to the Playnite Web MQTT integration.
Summary by Sourcery
Refactor the Playnite Web MQTT integration by extracting image compression logic into a new ImageCompressor class and enhancing the setup entry logic for better code organization. Add error handling for potential KeyErrors in game state data access.
New Features:

Introduce an ImageCompressor utility class for asynchronous image compression.

Bug Fixes:

Add error handling for KeyError when accessing game state data.

Enhancements:

Refactor the setup entry logic in the Playnite Web MQTT integration to improve code organization and readability.
Extract image compression logic into a separate ImageCompressor class to modularize the code.

@sourcery-ai review

@sourcery-ai review

@sourcery-ai review

@sourcery-ai review

@sourcery-ai review

@sourcery-ai review

@sourcery-ai review


PersonListPanelTest: increase LIST_CREATION_TIMEOUT value

LIST_CREATION_TIMEOUT has a value of 5500ms, which causes
PersonListPanelTest#performanceTest() to fail if the list creation takes
longer than the set amount of time.

This value is too small and this test executed on Travis CI sometimes
fails. [1]

Let's increase the value of LIST_CREATION_TIMEOUT by 4000ms so that
this test becomes very unlikely to fail.

[1]: https://travis-ci.org/se-edu/addressbook-level4/builds/358246241

Thanks for your prompt reviews @eugenepeh and @yamidark :D

LIST_CREATION_TIMEOUT seems to be tested before CARD_CREATION_AND_DELETION_TIMEOUT. Wouldn't it have a similar chance of failing as well if LIST_CREATION_TIMEOUT can fail? Thus shouldn't CARD_CREATION_AND_DELETION_TIMEOUT receive an equivalent increase in ratio?

From the failing Travis builds that I've inspected, the tests are only failing because of LIST_CREATION_TIMEOUT being exceeded. These are the only 2 cases that I've observed:

LIST_CREATION_TIMEOUT and CARD_CREATION_AND_DELETION_TIMEOUT aren't being exceeded -> test passes.
LIST_CREATION_TIMEOUT exceeded -> test fails.

I have not observed that LIST_CREATION_TIMEOUT not exceeded while CARD_CREATION_AND_DELETION_TIMEOUT exceeded (I've rebuilt my PR about 4 times without any test failure), so it seems like this particular case doesn't happen. :)

I have not observed that LIST_CREATION_TIMEOUT not exceeded while CARD_CREATION_AND_DELETION_TIMEOUT exceeded (I've rebuilt my PR about 4 times without any test failure), so it seems like this particular case doesn't happen. :)

Hmm? LIST_CREATION_TIMEOUT runs before CARD_CREATION_AND_DELETION_TIMEOUT. If it already fails in LIST_CREATION_TIMEOUT, why would it run CARD_CREATION_AND_DELETION_TIMEOUT? :P

Hmm? LIST_CREATION_TIMEOUT runs before CARD_CREATION_AND_DELETION_TIMEOUT. If it has already failed in LIST_CREATION_TIMEOUT, why would it run CARD_CREATION_AND_DELETION_TIMEOUT? :P

Yup, I get what you're saying. I'm saying that CARD_CREATION_AND_DELETION_TIMEOUT seems to be sufficient because:

I've not observed that LIST_CREATION_TIMEOUT doesn't fail, but CARD_CREATION_AND_DELETION_TIMEOUT fails before this PR.
In this PR, after increasing LIST_CREATION_TIMEOUT, I've not observed CARD_CREATION_AND_DELETION_TIMEOUT failing; the test always pass.

I get what you're saying that if LIST_CREATION_TIMEOUT fails, we can't be sure whether CARD_CREATION_AND_DELETION_TIMEOUT fails or not. You're right to point out that, but for the reasons mentioned above, it seems that CARD_CREATION_AND_DELETION_TIMEOUT is within a safe value.

In this PR, after increasing LIST_CREATION_TIMEOUT, I've not observed CARD_CREATION_AND_DELETION_TIMEOUT failing; the test always pass.

I see, how often has LIST_CREATION_TIMEOUT been failing since 4ec524489670b3a424c1b15aa3776bda84badacb though?

@eugenepeh you can see the PRs with red crosses, generally Travis build fails about a third of the time.
I do think that it's safer to increase the timing of the timeout, but it isn't broken now (I ran the build about 8 times) , so I'm not sure whether we should fix it or not ><

I do think that it's safer to increase the timing of the timeout, but it isn't broken now (I ran the build about 8 times) , so I'm not sure whether we should increase it or not ><

I do agree that it might be safer to increase the timing of the timeout. But at the same time, it would be nice to know when or why it occurs too, e.g. Travis downtime / maintenance etc https://mobile.twitter.com/traviscistatus. If the frequency and timing of the PR failures coincide with the Travis downtime, I don't think the increase would help >_<
How about we log the output of the performance test timing as well for now to see if its caused by boundary increase?

I don't think that it's caused by Travis downtime because sometimes when you restart a build, it fails, then sometimes when you restart, it passes.
As such, when I ran the tests locally, I noticed that the test execution timings fluctuate quite a bit. I'm guessing that Travis Ci takes a longer time to execute the method that creates an xml file, and the fluctuation causes the test to sometimes pass and to sometimes fail.

We can log the timing, do you have any idea how to display it in the build log? ><

Hmm...
https://github.com/se-edu/addressbook-level4/blob/a4ef5229e29bb1da91d462a650ee82c243ab1b7c/build.gradle#L114-L126
https://stackoverflow.com/questions/3963708/gradle-how-to-display-test-results-in-the-console-in-real-time
Think modifying gradle helps but it might take some work to display PerformanceTest only >_<

Hmm ok I think there's a better solution. I'll try to be clear in my explanation:

If we upgrade our tests to JUnit 5, we have a simpler way of writing the code for this test. We no longer need @Timeout.
Without the need for @Timeout, we don't need to have a timeout for the .xml file, since the purpose of this test is not to test how long it takes to create an .xml file with 10000 persons. See the discussion and the threads that follow after.
Without having to time the creation of the .xml file, then we don't need to think of how to log the timing in Gradle. Yay.

@yamgent tagging you to take a look at this small PR since we discussed on it previously :)

@damithc appveyor is failing because Help Window tests sometimes stall. The tests are introduced in #850 but Appveyor didn't fail during then (which was why it was left undetected), and I've notified @yamidark to look into it. The test is flaky; sometimes passes sometimes fails.


⚠ ClamAV has degraded performance

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

HTTP code: 200
Response time: 53 ms

Resolved: ClamAV performance has improved in 230066e after 5 minutes.


error deploying MyToken contract

I tried adding MyToken contract from Ethereum as below and get

trying to obtain MyToken address ...
error deploying

** Did enter the paramaters in config/contracts.yml
development:
RupeeToken:
args:
-<PHONE_NUMBER>
- Rupee
- 2
- ₹
- 1.0.0
staging:
RupeeToken:
args:
-<PHONE_NUMBER>
- Rupee
- 2
- ₹
- 1.0.0
the Ethereum example [(https://www.ethereum.org/token)] contract is

contract tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData); }
contract MyToken {
/* Public variables of the token /
string public name;
string public symbol;
string public version;
uint8 public decimals;
uint256 public totalSupply;
/ This creates an array with all balances /
mapping (address => uint256) public balanceOf;
mapping (address => mapping (address => uint256)) public allowance;
mapping (address => mapping (address => uint256)) public spentAllowance;
/ This generates a public event on the blockchain that will notify clients /
event Transfer(address indexed from, address indexed to, uint256 value);
/ Initializes contract with initial supply tokens to the creator of the contract /
function MyToken(
uint256 initialSupply,
string tokenName,
uint8 decimalUnits,
string tokenSymbol,
string versionOfTheCode
) {
balanceOf[msg.sender] = initialSupply;              // Give the creator all initial tokens
totalSupply = initialSupply;                        // Update total supply
name = tokenName;                                   // Set the name for display purposes
symbol = tokenSymbol;                               // Set the symbol for display purposes
decimals = decimalUnits;                            // Amount of decimals for display purposes
version = versionOfTheCode;
}
/ Send coins /
function transfer(address _to, uint256 _value) {
if (balanceOf[msg.sender] < _value) throw;           // Check if the sender has enough
if (balanceOf[_to] + _value < balanceOf[_to]) throw; // Check for overflows
balanceOf[msg.sender] -= _value;                     // Subtract from the sender
balanceOf[_to] += _value;                            // Add the same to the recipient
Transfer(msg.sender, _to, _value);                   // Notify anyone listening that this transfer took place
}
/ Allow another contract to spend some tokens in your behalf /
function approveAndCall(address _spender, uint256 _value, bytes _extraData)
returns (bool success) {
allowance[msg.sender][_spender] = _value;
tokenRecipient spender = tokenRecipient(_spender);
spender.receiveApproval(msg.sender, _value, this, _extraData);
return true;
}
/ A contract attempts to get the coins /
function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
if (balanceOf[_from] < _value) throw;                 // Check if the sender has enough
if (balanceOf[_to] + _value < balanceOf[_to]) throw;  // Check for overflows
if (spentAllowance[_from][msg.sender] + _value > allowance[_from][msg.sender]) throw;   // Check allowance
balanceOf[_from] -= _value;                          // Subtract from the sender
balanceOf[_to] += _value;                            // Add the same to the recipient
spentAllowance[_from][msg.sender] += _value;
Transfer(_from, _to, _value);
return true;
}
/ This unnamed function is called whenever someone tries to send ether to it */
function () {
throw;     // Prevents accidental sending of ether
}
}

fixed in 1.1.1


Added collision component linear and angular offset

Fixes https://github.com/playcanvas/engine/issues/698
Full credit to @LeXXik as this is based off their PR https://github.com/playcanvas/engine/pull/3772
I've just cleaned it up a bit and made it work with the latest engine code
Test project with this engine already in the project as a patch: https://playcanvas.com/project/1009973/overview/f-test-offset-physics-lexxik (press space to pause time)
Offsets on the spawned cubes

https://user-images.githubusercontent.com/16639049/202735734-98691c73-1086-40b4-ada4-dc847d2d63ff.mp4
Tested against:

static rigidbodies
dynamic rigidbodies
kinematic rigidbodies
triggers
compound shapes
https://playcanvas.com/project/618829/overview/physics-constraints without using offsets to check for changing existing behaviour

I confirm I have read the contributing guidelines and signed the Contributor License Agreement.

Checked against mesh collisions with the vehicle project

Updated from feedback. There are more changes due to the renaming of temp variables with _ prefixes.
I've also added public API to collision component based on feedback and it will be used with the Editor visualisation at later date
    /**
     * @description Returns the world position for the collision shape taking into account of any offsets.
     * @returns {Vec3} The world position for the collision shape.
     */
    getShapePosition() {

    /**
     * @description Returns the world rotation for the collision shape taking into account of any offsets.
     * @returns {Quat} The world rotation for the collision.
     */
    getShapeRotation() {
        const rot = this.entity.getRotation();

        if (this._hasOffset) {
            return _quat.copy(rot).mul(this.data.angularOffset);
        }

        return rot;
    }

@willeastcott As it adds new public API and you are most familiar with this, can you have give a quick review on the new API please?

Talk about good timing, this fixes a ton of mess with our code.  Just tested on our app and it works great so many thanks again everyone.
One curious thing I noted (I think I'm doing it right) is the option didn't seem to work when passed into the addComponent('collision', etc). it only worked when set on the component after creating it, could just be me but worth double checking...

Good shout. I will put together an engine example as part of this PR and investigate

@mvaligursky @MAG-AdrianMeredith Fixed bug where the offsets weren't being applied when passed as data at the point of component creation: https://github.com/playcanvas/engine/pull/4865/commits/b888f48c7178a336968771f56f14a9b049096197
@mvaligursky Also added example:
https://user-images.githubusercontent.com/16639049/205319422-870f0566-b5eb-4323-8c40-cf1c1e2149c3.mp4

Looks great, love the example!

Per @mvaligursky request: Made the collision a sphere and rendered it by drawing a wire sphere


fix(github): various unthemed elements

🔧 What does this fix? 🔧
Fixes various unthemed things.

Closes #202.
Closes #302.

🗒 Checklist 🗒

[x] I have read and followed Catppuccin's contributing guidelines.
[x] I have updated the version appropriately in the ==UserStyle== header of the catppuccin.user.css file.

Self-reminder to do the commits page as well:

I'm going to try to fix everything. All of these: https://github.com/catppuccin/userstyles/issues?q=is:issue+is:open+sort:updated-desc+label:github (hopefully)

I'm going to try to fix everything. All of these: https://github.com/catppuccin/userstyles/issues?q=is:issue+is:open+sort:updated-desc+label:github (hopefully)

i believe in you uncenter <3

Couldn't theme everything. :cry: