Modified setAttributes()

Added condition in if statement. Now it does not update the unchanged attributes, so they don't become 'dirty'.

unchanged attributes aren't marked as dirty anyway, why did you add this?

@pBazsi please provide a case where current code fails.

I can't easily provide exact code sample, because this needs AR to work, but see the following.
If you create a new instance of an AR class, all attributes are set to null.
Assume, class Test has an attribute named city. If I set anywhere the city attribute to the same null value, I don't want it to get dirty.
@cebe unchanged attributes aren't marked as dirty, if you load an existing record of the database, and it has old attributes, but they do get dirty, when you create an empty new model and set some attributes to null
$model = new Test(); // AR class, has attribute `city`
var_dump($model->city); // This dumps `null`
var_dump($model->getDirtyAttributes()); // This dumps `[]`
$model->city = null; // Setting to the same value
var_dump($model->getDirtyAttributes()); // This dumps `array(1) ['city'=>null]`

My other idea is to fix BaseActiveRecord::getDirtyAttributes(), because it's mainly an AR problem, and my fix was in Model::setAttributes().
In getDirtyAttributes(), from line 552 it does not check the null value.
if ($this->_oldAttributes === null) {
    foreach ($this->_attributes as $name => $value) {
        if (isset($names[$name])) {
            $attributes[$name] = $value;
        }
    }
}

I would change to the following:
if ($this->_oldAttributes === null) {
    foreach ($this->_attributes as $name => $value) {
        if (isset($names[$name]) && $value != null) {
            $attributes[$name] = $value;
        }
    }
}

Making attribute dirty when setting it to null is expected. Null is a valid value.

I don't understand why, because null is a valid value, but thinking of a new, empty model, replacing null with null why should make it dirty? On an old record, replacing an attribute with same value does not make it dirty.
@cebe wrote that 'unchanged attributes aren't marked as dirty anyway', why not on new, empty models?

If the getter will be overridden, the result is unpredictable.

Perhaps this lack may fix elsewhere.

If $safeOnly is true and the value has not changed, is called onUnsafeAttribute.

This pull request adds an error in the code. I have previously described how. Why is this pull request is still open?

Right. Closing it because it doesn't work in all cases and there are now typecasting capabilities in the core.


CrewPortraits-1.1 override ksp min=1.0.2 max=1.0.4

Would you mind throwing in the CrewPortraits' homepage?
"resources": {
        "homepage": "http://forum.kerbalspaceprogram.com/threads/110172"
    },

Done


Automated cherry pick of #9360: fix(region): sync servers

Cherry pick of #9360 on release/3.4.
#9360: fix(region): sync servers

Codecov Report

Merging #9372 (44603e6) into release/3.4 (fc16c37) will decrease coverage by 2.61%.
The diff coverage is 0.93%.

@@              Coverage Diff               @@
##           release/3.4   #9372      +/-   ##
==============================================
- Coverage         6.19%   3.57%   -2.62%
==============================================
  Files              761     304     -457
  Lines           118405   62778   -55627
==============================================
- Hits              7330    2244    -5086
+ Misses          110412   60379   -50033
+ Partials           663     155     -508

Flag
Coverage Δ

aFlag
3.57% <0.93%> (-2.62%)
:arrow_down:

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

Impacted Files
Coverage Δ

pkg/cloudcommon/notifyclient/notify.go
1.78% <0.00%> (-0.03%)
:arrow_down:

pkg/compute/models/cloudaccounts.go
0.47% <0.00%> (-0.02%)
:arrow_down:

pkg/compute/models/domainquota.go
23.80% <0.00%> (ø)

pkg/compute/models/elasticips.go
1.08% <0.00%> (-0.01%)
:arrow_down:

pkg/compute/models/guest_actions.go
0.00% <0.00%> (ø)

pkg/compute/models/guest_template.go
2.04% <0.00%> (-0.01%)
:arrow_down:

pkg/compute/models/guestnetworks.go
0.00% <0.00%> (ø)

pkg/compute/models/guests.go
0.50% <0.00%> (-0.01%)
:arrow_down:

pkg/compute/models/host_recycle.go
0.00% <0.00%> (ø)

pkg/compute/models/hosts.go
0.27% <0.00%> (-0.01%)
:arrow_down:

... and 455 more

Continue to review full report at Codecov.

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


Add a parameter to install command, so that if it is already installed it won't reinstall

Running the sls dynamodb install command downloads and installs the dynamodb-local every time even if it is already installed.
It would be nice to have a parameter ( --no-reinstall ?)  , in which case the install command would first check if dynamodb-local is installed, and if it is return straight away.
This would help usage of serverless-dynamodb-local in different automation scenarios.

@tgjorgoski What if  sls dynamodb install internally checks whether its already downloaded and proceed(If already available)?
We have  sls dynamodb remove to remove and install again if someone needs a fresh install

It's weird, I actually tried it again, and it says:
Dynamodb is already installed on path!
I could have sworn it was going on with the download and installation even I got it installed once.
I will close for now, and reopen if I encounter the issue again.

Hi, You are right, it downloads and install all the time. Sorry, may be my
previous comment is misleading. I wanted to ask you whether, if 'install'
command intelligently download only once(without parameters), will it solve
your problem?
On Jan 9, 2017 4:59 PM, "tgjorgoski"<EMAIL_ADDRESS>wrote:

Closed #59 https://github.com/99xt/serverless-dynamodb-local/issues/59.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/99xt/serverless-dynamodb-local/issues/59#event-915792940,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAmVw-HTK5oc14iOrETV1PyjKNjvCBbaks5rQhoigaJpZM4LeE3G
.

@AshanFernando , now that I'm trying it, it seems that it actually doesn't download and install all the time -   It downloads and installs the first time, and after that it says "Dynamodb is already installed on path".
I'm not sure why it was happening that it would reinstall multiple times when I tried it in the past. Maybe it downloads/reinstalls if it is started from different folders?


feature request, can we have a v-for fallback?

each time we have to repeating writing v-else statement, which is annoying.
If we can have default fallback component, which would be perfact
<element v-for="item in items" loading="loadingComponent" default="noItemComponent" >
{{item.name}}
</element>

I think this feature request should go to core repository, not to the documentation one 😅
Could you please create it on https://github.com/vuejs/vue ?


Security Check around spelladding

Hi,
when adding spells you directly call:
spellList.SpellsByLevel[2].m_Spells.Add(FuryOftheSunAbility.ToReference<BlueprintAbilityReference>());
with no security check, this method makes no check if the spell is already in the list and will actually create duplicates.
This is a problem for spontaneous casters because while the spell is still added, it breaks the ability to select it on levelup if it is in the list multiple times.
If you check the following condition first and only add the spell if it is not fullfilled:
private static Boolean listContainsSpell(BlueprintSpellList list, BlueprintAbility spell) {
            foreach (var level in list.SpellsByLevel) {
                foreach (var comparespell in level.Spells) {
                    if (spell.AssetGuid.m_Guid.ToString("N").Equals(comparespell.AssetGuid.m_Guid.ToString("N"))) {
                        return true;
                    }
                }
            }
            return false;
        }

You will prevent such duplicates.
I noticed this because I wrote my own little addon to also add the TomeOfTheFirebird spells to the class and decided to be clever and just merge every major spellbook as a rebuild after all the other mods are loaded in(since this class has them all anyway) only to have the ExpandedContent spells dissapear on me.
PS. if someone else did the work for you, would you be open to switching the project over to using TabletopTweaks-Core for its utility  classes rather than your own and automatically publishing to the wrath folder?

ps. don't trust the check list.SpellsByLevel[level].Spells.Contains(spell) in the spelltools of the tabletoptweaks-core, that one will still break if one spell was referenced from the cleric and the other from the wizard list even if both are the same spell and have the same GUI Id

It was the most simple and direct way to add the spells I had thought of at the time. I hadn't really thought about adding a check. But I think this is a good thing to add to help with any future people who want to work on this mod.

speaking of other people working on this mod, what about my first ps question?
It is not my main language either but overall I would say it looks no better or worse than the code of any other mod I have seen. A missed security check can happen to anyone and at least yours was not the kind that breaks the game if an update changes something the slightest bit.

I don't mind, most of the modding framework was based on TabletopTweaks-Core anyway and refactoring should be a minor issue. I can add you as a contributor if you're interested.

Then I would like to offer to do it for you.

Ok, change created as a new branch TTTCmerge and ready to be commited and reviewed once I am added.
Now, for my next projects I would volunter to add my already existing spelllist merge logic to the Postfix method, that should ensure we grab any spell as long as it is added to at least one base class spellbook and not initialized only after all the normal patching is already done...
After that I would take a stab at some Archetypes like Bloodline Hero, Isekaid Oracle, and Isekaid Tactician.
Assuming there are not already versions of them being worked on.

go for it! I'm a bit pre-occupied with other issues at the moment so I won't be on this repo as frequently


Simulation won't stop - The problem with Bill.

This is Bill.

There is nothing in the simulation except him and the HTC_VIVE model.
Once the simulation is running in VR, it cannot be stopped. (Sometimes it runs okay for a run or two, but then it gets stuck. Other times the simulation won't run at all).
-I click the stop button, but simulation never ends. the console shows:
[sandboxScript:info]   Simulation started.
[sandboxScript:info]   simulation stopping...

Bill isn't positioned in the center of the scene.
If I translate bill to the center, or if I rotate him to stand straight, The problem goes away.
I don't know why Bill is being like that. but It sure took me a long time to figure out what was the offending model, so I could make a clean file with nothing but the issue!
CoppeliaSim edu V 4.1.0 rev.1 64bit
no debug.log file is being created in the VR interface folder,
CoppeliaSim VR Toolbox 2.2
bill wont stop.zip

Sorry. I'm currently renovating my house. So I haven't set up my computer. I can't look at this problem for some time.


:wrench: Improve the Control Panel Tool Releases page

User Story
As a control panel admin
I want to see clear and useful information about tool releases
So that releasing and managing tools is easier
Value / Purpose
Currently the tool releases page is difficult to read, and there is a lack of information about which tool is more recent and how many users are using it. This makes it difficult for us to delete old releases, and create new ones.
Useful Contacts
No response
User Types
No response
Hypothesis
No response
Proposal
Improve the Tool Releases page and the manage release pages
List page

Sort tool releases by release date and display release date in the table
Show number of users using a particular tool
Review table headers and improve to make it clearer what each refers to e.g. "Version" -> "Chart version"
Consider tooltips for better descriptions of each column

Manage tool

Review fieldnames and helptext and update as necessary
Add "Copy release" button to copy over existing config/setup to a new tool release form (nice to have)

Additional Information
https://github.com/ministryofjustice/data-platform/issues/3131 may feed into these changes
Definition of Done

[x] UI updated
[ ] Deployed to dev for testing
[x] Released to prod

🐛 I've noted that when you try to update a release with a list of users, and one of the users does not exist in the control panel. The Control Panel will report that it has successfully updated the release, but will add none of the users.
🐛 If you try and add an existing user with their capitalised username this will report a successful add but they are not added.

PR that contributes to this work open https://github.com/ministryofjustice/analytics-platform-control-panel/pull/1369

PR to add filtering and improved ordering merged. We may choose to revisit the page and do further work in the future


ProcessBeanAttributesNotFiredForBuiltinBean should only be checking for beans with @Default

org.jboss.cdi.tck.tests.extensions.lifecycle.processBeanAttributes.builtin.ProcessBeanAttributesNotFiredForBuiltinBean is a test that verifies following parts of the spec(1):

A Jakarta EE or embeddable EJB container must provide the following built-in beans, all of which have qualifier @Default:
...
a bean with bean type jakarta.servlet.http.HttpServletRequest, allowing injection of a reference to the HttpServletRequest

In combination with(2):

No [PBA] event is fired for any:

beans added programmatically using AfterBeanDiscovery.addBean(), or,
for any built-in beans.

However, the test has an extension that simply observers any PBA, regardless of bean attributes, and as soon as it detects PBA for any bean of that given type, it fails. I believe the extension in question should also inspect bean attributes and only fail if the bean has @Default qualifier as you can theoretically define any number of the beans with that given type that are not built-in hence should have PBA fired for them.
This was originally reported by @arjantijms in https://github.com/eclipse-ee4j/glassfish/issues/24049

That makes sense to me. We can't really detect whether the bean is built-in or not, but checking for the @Default qualifier is a reasonable approximation.


What about a text file starts with 'MZ'?

I think you'd better add more check on the buffer, includes but not limited to:

The buffer length should be at least 0x80 bytes, which is the minimum DOS stub of a modern PE file.
Use DataView.getUint32(0x3C) to get a point say P, and use DataView.getUint32(P) to get the PE signature, and check whether it is 0x50450000.

Agreed. Would be happy to accept a PR over at https://github.com/sindresorhus/file-type/blob/c4025ba2f47c188bdbacbc761254d3f11d2ff049/index.js#L294-L299, and we can mirror it over here afterwards.


Update datafeeds-reference.md

A customer reached out to say that although the documentation says mmvar1-3 instances don't have post columns, we do have post columns for them in the UI. However, client care confirmed that these are not reportable columns, meaning we never send any data to them. It would be good to make that clear in the docs, so it doesn't confuse customers when they see the post columns in the data feeds UI.

I've added this content. Thank you!


Support oblique perspective projection in ClipPlanesEvaluator

You should mention that this is in NDC space and not pixels.

done


Race condition when running multiple instances of conductor server

Hi,
I have a common redis (single instance) and a common ES for conductor. I am running conductor server behind a load balancer. When I run m ore than one servers , multiple workers pick up the same job at the same time (duplicate execution starts).
Is there something I need to do to avoid this. This is stopping me from running an HA conductor instance.
I see that
public synchronized List<Message> pop(int messageCount, int wait, TimeUnit unit)
in RedisQueue.java. This (synchronization) would not work across multiple JVMs.

@akashbhunchal : Thanks for raising this. Were you able to do a work around for this ?

Nope, We just removed one box from the loadbalancer. We now have just one instance running.

Any new development towards a solution for the issue in question?

Please use the WorkflowTaskCoordinator which provides a framework and automates the polling of tasks and managing the execution threads of tasks within workers. The WorkflowTaskCoordinator ensures that when multiple workers are polling for the same task, only one worker will actually process a given task. This is ensured using the ack mechanism. Only if the ack is successful will the worker actually be given the task to execute.


Change references to "jade" to "pug"

Per https://github.com/expressjs/express/issues/2952, need to update http://expressjs.com/en/guide/using-template-engines.html (and search for any other instances of "jade").

I'm doing a few updates to express guides, i can handle this, but it will be several days or so, do you wish to take care of this, or shall i get to it?

@lordKnighton Please do!  I've been meaning to get to this, but just haven't had a chance.

no worries

@lordKnighton Are you going to take another crack at this?  If not, then I'll try to do it.  No worries either way, just let me know.

go for it, i got swapped. I can do it next week, if you prefer me to do it.

OK, PR updates the English docs, and I opened #618 to track task to update translated docs.  Also added #617 for when the generator is updated.
@lordKnighton (or anyone) pls take a quick look at the PR ^

👍

Thanks!
We'll address non-en docs as time permits, and generator docs when the generator is updated.

+1

Hey guys.  I am a firs-timer here on this repo. I would like to contribute by replacing references to Jade with Pug in the "Express Application Generator" page http://expressjs.com/en/starter/generator.html  I recently got confused when followed this guide to bootstrap a project and then tried to find Jade documentation. Is it OK to go ahead and fork, edit and create a pull request?

Hi @martinjoiner thanks for offering to contribute.
This seems reasonable, and IIRC, the only reason we haven't made this change was because Pug was still in beta.  Although npm still says version if 2.0.0-beta11, it's replaced Jade now for quite a while, so I'm not sure if this is still an issue.
Even though the generator still supports Jade, I agree we should start nudging people toward Pug, since it's being maintained instead of Jade now (due to the naming issue).
However, I'll defer to @dougwilson on this.... Doug, should we wait for Pug non-beta release to make this sort of change?

I don't see any reason any longer not to just update that generator page to use --view=pug if that reduces confusion 😄

I have forked, edited and created a pull request (https://github.com/expressjs/expressjs.com/pull/785). My initial motivation for making this change was to save confusion for English-speaking new adopters. However, as I worked on the different language versions I realise how the real win here is for the non-English-speaking users who might find it harder than I did to learn about the forced renaming.

Landed #785.  Thanks @martinjoiner !


Folder download button no longer available

Please ensure:

[X] The bug is caused by Refined GitHub. It doesn't happen if I disable the extension.
[X] The bug happens after clearing extension cache. The "Clear cache" button can be found at the bottom of the options page.

Example URLs
https://github.com/dotnet/runtime/tree/09ff1acdad2e7789908b5db9bb89896144c13042/src/libraries/Microsoft.VisualBasic.Core
Extension version
22.1.18
Browser(s) used
Chrome 97
Description
The Download button for a directory is no longer available. There no longer appears to be any way to download an entire directory.

Include in this issue:

[X] Screenshots/video/gif demonstrating the bug, if it’s visual
[ ] Console errors, if any

It's here if you go back to the default branch:


Sentence Parsing Differences Between 3.0b7 and 3.0b8

Describe the bug
(See attachment for inputs/outputs)
Sentence parsing on simple document with headers seems to be slightly off between 3.0b7 and 3.0b8. The issues in 3.0b8 seems to be affecting the ability to identify headers/sections. The failure seems to happen at the early part of the document, but then has a lasting effect on section parsing.
To Reproduce
Run the full pipeline for the sample Source Doc in both 3.0b7 and 3.0b8, then compare results.
Expected behavior
Sentence and section parsing should be consistent between 3.0b7 and 3.0b8.
Terminal Output
None
Environment

OS: Ubuntu 18.04
Version 3.0b8
Python Version 3.69
Java Version OpenJDK 11.0.10+9

Additional context
The test scenario and results are in the attached sheet.
20210218-SentencesIssue.xlsx

I made a bad assumption about pytorch serialization and the beta 8 model is missing a significant component. I'm starting the process of rolling back and will release a new version today.
We have an evaluation test set for sentences, but it's not fully automated and the data is PHI / not part of the developer environment. I wrongly thought that the changes made in beta 8 didn't warrant re-evaluation. I'll add some non-PHI smoke tests for sentences moving forward.

Thanks, Ben!


ETIMEDOUT <IP_ADDRESS>:443

_currentUrl: 'https://user-domain.blum.codes/api/v1/auth/provider/PROVIDER_TELEGRAM_MINI_APP'
cause: Error: connect ETIMEDOUT <IP_ADDRESS>:443
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1602:16) {
errno: -4039,
code: 'ETIMEDOUT',
syscall: 'connect',
address: '<IP_ADDRESS>',
port: 443
}

did you use nekoray as your connection tunnel?
if you are using nekoray for make connection, you have set "Tun Mode" !
proxy won't work for this
and be sure you put the right QUERY_ID

Thanks bor but It does not work error: message: 'rpc error: code = InvalidArgument desc = signature is invalid'

it relates to the QUERY_ID
it should be like this : QUERY_ID=query_id=ABCD5-ILAA....


scheduler(ticdc): fix span loss bug when split regions

What problem does this PR solve?

Issue Number: close #11675
What is changed and how it works?
Some regions may not append to spans because of incorrect condition judgment of restSpans.
Make sure all regions are added to the spans before returning.
Check List
Tests

Unit test
Integration test

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
`None`.

/retest


Improve coverage for config and app

Improves coverage for functions

app.SetCPU
config.validDirective
config.makeStorages
config.makeOnces

Thanks Paulo! This is great, adding tests to a package that didn't have any and to some new functions in config that are pretty important.


Modal: Add flow docs for props

Summary
Add documentation for every prop in Modal.

Pros

See documentation in your IDE
Quicker navigation to a specific section of the docs from within IDE

Cons

Duplicate types: we now inline these types so we have better documentation while coding. See Next steps to show how we can mitigate this downside.

Next steps after this PR

Use React Docgen: parse the flow docs out & use those in our documentation
Remove PropTypes: we should be able to do this as soon as we have SSR integration tests & monitor the console

Going to land as is and start working on these follow ups

Hm…ok. I'd really like to sort out the imported types issue before we implement this more widely. I don't like the idea of duplicating types  — that sounds like a recipe for bugs.


Bug from PR #41

The logic for PR #41 causes a bug in stomp when trying to perform a sub-query search. When tsA and tsB are not the same length, numpy automatically returns a boolean and the ".all()" method fails. Using np.array_equal(tsA, tsB) resolves the issue.

Closing as PR #44 fixes this bug.


update metadata for 0.5.0 upcoming release

What this PR does / why we need it:
This PR is to update metadata.yaml for the 0.5.0 upcoming release with Kubernetes v1.26.6 support

/lgtm
Suggestion: We can squash the commits


[feature] Extend Get-VSTeamReleaseDefinition to expand Task Groups

Hi @DarqueWarrior
When executing a Get-VSTeamReleaseDefinition I can expand the returned object down to tasks. But if the task is a task group (definitionType   : metaTask), I cannot expand it any further.
The API appears to be there on the API documentation page.
It would be very handy to be able to expand the task groups out into their component tasks.
Many thanks.

Are you interested in giving this a shot and issuing a PR for the API? There should be patterns you can follow from other APIs others have wrapped already.
I would also look at the Invoke-VSTeamRequest function. You can use that to call any API in AzD even if we have not wrapped it yet.

Thanks for the idea @Rincey . This module is merely a wrapper for the API. Adding higher abstraction to add value to the module is not the scope of this module. But we have plans to make use of this. I am adding an extra label to not lose this idea!


Updated Factory.php

Added SQLite option.

I am having an issue with sqlite and this commit. I am getting an sql error with General error: 1 near "SET" and it is coming from the post_query query at https://github.com/paragonie/easydb/pull/41/commits/75f29d46b493c01926e034f12c9c330870915173#diff-8157a0d28a58887c0293ce14b4b0281fR50
Removing that new case fixes the issue. I added \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8" to my PDO/EasyDB construct options and that seems to be working fine.
From what I can tell from the sqlite site, the default charset is utf8 anyway. The only other supported option seems to be utf16, although I am not super familiar with the workings of sqlite so I could be wrong.


Truncated text is not identified by patrol

Steps to reproduce
I've got a text as title for y ListTile. This text has overflow set to ellipsis. In my integration test I'm testing this text with expect($('My very long text is displayed here'), findsOneWidget); and it fails to identify the widget.
I'm running my test on my Android device. On the device, because of the screen size, this text is truncated and displayed as 'My very long test is dis...'.
How to test this text?
Actual results
I'm running my test on my Android device. On the device, because of the screen size, this text is truncated and displayed as 'My very long test is dis...'.
The test fails saying 'Expected: exactly one matching candidate
Actual: _TextWidgetFinder:<Found 0 widgets with text "My very long text is displayed here": []>
Which: means none were found but one was expected'
Logs

Logs
<!-- Replace this line with your logs. Do not remove the backticks! -->

Patrol version
^3.9.0
Patrol Doctor output

Patrol Doctor output
Patrol doctor:
Patrol CLI version: 2.8.1
Flutter command: flutter
  Flutter 3.22.2 • channel stable
Android:
• Program adb found in C:\Users\{username}\AppData\Local\Android\Sdk\platform-tools\adb.exe
• Env var $ANDROID_HOME set to C:\Users\{username}n\AppData\Local\Android\Sdk

Flutter Doctor output

Flutter Doctor output
[√] Flutter (Channel stable, 3.22.2, on Microsoft Windows [Version 10.0.22631.3737], locale en-GB)
    • Flutter version 3.22.2 on channel stable at C:\Users\Public\Flutter\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 761747bfc5 (5 weeks ago), 2024-06-05 22:15:13 +0200
    • Engine revision edd8546116
    • Dart version 3.4.3
    • DevTools version 2.34.3

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at C:\Users\{username}\AppData\Local\Android\Sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = C:\Users\{username}\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.9+0--11185874)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Professional 2022 17.10.2)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Professional
    • Visual Studio Professional 2022 version 17.10.35004.147
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.9+0--11185874)

[√] VS Code (version 1.91.0)
    • VS Code at C:\Users\{username}\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.86.0

[√] Connected device (4 available)
    • SM G973F (mobile) • R58N600PB4N • android-arm64  • Android 12 (API 31)
    • Windows (desktop) • windows     • windows-x64    • Microsoft Windows [Version 10.0.22631.3737]
    • Chrome (web)      • chrome      • web-javascript • Google Chrome 126.0.6478.127
    • Edge (web)        • edge        • web-javascript • Microsoft Edge 126.0.2592.87

[√] Network resources
    • All expected network resources are available.

• No issues found!

Hi @karthiga812
In my opinion th best way would be to add a Key to the widget and try to find the element by it in the test. If that is not possible (let's say your ListTile is generated from dynamic list of elements) then you could assign the text of the tile to the Key. This way you work around truncated text.
Also, I'd say with such questions you will get the best answers if you ask them on Patrol Discrord channel. . That way the whole community will see it and will get a chance to share how they solved similar issues.


App is crashing on Friends and Family.

@antuz123  , Can u please add the steps to reproduce it?

@cakesoft-swati , Please verify if this is happening


purchaseUpdateListener showing consumed items and requestPurchase succeeding without user interaction.

Version of react-native-iap
4.6.3
Version of react-native
0.61
Platforms you faced the error (IOS or Android or both?)
IOS
Expected behavior
Purchase update listener should not show transactions once they have been consumed and requestPurchase should always show a confirmation dialog.
Actual behavior
Purchase update listener shows all my transactions(all previous with timestamps more than 3 months ago) every time it is registered. And when I click the requestPurchase button the pop up for confirmation does not comes up and transaction succeeds automatically.
Tested environment (Emulator? Real Device?)
IOS real device IOS 14
Steps to reproduce the behavior

This is a purchase I just did. It did not ask for the purchase confirmation and succeeded and as can be seen the transaction date comes out to Friday, 22 May 2020. Why would this occur? why would an old purchase let me go through. Testing this on ios 14.

I am having same issue, any help would be appreciated

same and critical issue.

@codeapp17 and @hakkikonu  are you guys experiencing this on production or only sandbox?

happened in sandbox and build rejected for for production.
could someone help with how to handle purchaseUpdateListener, for older transactions? couldn’t figure what values to use to verify.
Thanks

@HamzaIkram2727 I am getting this error on sandbox, not checked on production yet

Im getting this issue too, get rejected from TestFlight due to the transaction subscribe automatically without user interaction

any news on if there is a fix coming ? I am encountering the same issue in sandbox.

So you have called finishTransaction with the successful purchases? I am currently not using mac right now so I might have to wait for new MacBook releases to test this out.

any updates @hyochan ?

same issue.

Same Issue

Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? This issue may be closed if no further activity occurs. You may also label this issue as "For Discussion" or "Good first issue" and I will leave it open. Thank you for your contributions.

For me this issue still exists and it's very frustrating that it's not resolved yet...


Wrong precision visible for numeric datatype (result grid) with Postgres

System information:

Operating system Win 10
DBeaver version 5.3.3
Java version

Description
When using the grid view for results, numeric datatypes are truncated for display. When double clicking into the result cell, it shows the correct precision.
Text result view also shows the correct precision.
This can lead to user confusion ;) Not sure if locale settings also play a role here.
Steps to reproduce:
SELECT 123.4::numeric(9,6);

Sorry, seems like you'll have to reopen this. I'm on v<IP_ADDRESS>910061950 on Windows (running PostgreSQL on Debian).
Even with activated Use data type scale for fraction digits, SELECT 1/3::NUMERIC(10,9) AS test; gets clipped to three digits in grid view.

The database correctly return
test                  |
----------------------|
0.33333333333333333333|

We've added new parameter for numbers formatting:

DBeaver will respect database column data type scale and precision is this option is enabled.
It is disabled by default as for many databases it doesn't make sense, e.g. scale for all numbers = 255 by default or other crazy things.

@serge-rider I know, but it doesn't seem to work here.

@tobwen query expressions don't have explicit scale in PostgreSQL. This will work only for real table columns or constant expressions with explicit type. Or jdbc driver doesn't support it - I'm not sure.
For example SELECT 123.000000::numeric(9,3) works ok.
What result do you expect for query SELECT 1/3::numeric?

SELECT 123.000000::numeric(9,3) of course only returns 3 decimals, SELECT 123.000000::numeric(9,4) gives me 4. But SELECT 1/3::numeric(9,4) only gives 3.
JDBC driver seems to return the correct result: When you double click it, it shows all the missing digits:

Expected is the same precision as psql:
=# SELECT 1/3::numeric;
┌────────────────────────┐
│        ?column?        │
├────────────────────────┤
│ 0.33333333333333333333 │
└────────────────────────┘
(1 row)

JDBC correctly transmits this value to DBeaver, but the GUI seems to clip the value.

@tobwen I can't reproduce this. Please make sure that your connection-specific settings for numbers formatting don't set "Maximum fraction digits" to 3:

@serge-rider As you can see in my screenshot, it hasn't been fixed.
Interesting, you're closing this issue although the error still exists... Nevermind.

@tobwen reopening an issue is just one click - standard part of the process.
Please write a bit more info:

Did you check it in the Early Access version?
Are you sure your connection-specific preferences are correct?

@serge-rider I dicovered this ticket as the problem is still persistent. Therefore please reopen the ticket.
As can be seen in the screenshot the fraction-digits of the preference doesnt affect the GUI-view. This view is instead always limited to 3 fraction digits max and half-rounding is applied. Nonethless of the preferences in data formats.
Honestly, I cannot understand what @tobwen or myself need to provide more info. You can easily recreate this issue by storing an example value in an example DB (for example 0.3434545) and look at it with DBeaver. It will nonethless of any pref. always be rounded to 3 fraction digits.
The wanted behavior is a possibility to see the actual value stored in the DB with the fraction-digits configured in some preferences in the GUI-overview of the table without clicking in each cell to see the actual value.

I have the latest version and  got same issue, please reopen this issue.

@jianzhaofeng latest version is 21.3.3
you could download it and check if issue is still actual https://dbeaver.io/download/

Hello @Diabolarius
Your Table DDL will be beneficial.

@jianzhaofeng latest version is 21.3.3 you could download it and check if issue is still actual https://dbeaver.io/download/

Thanks a lot, It has been fix at  Version 21.3.3

Mac version, go to [Preferences] > [Editors] > [Data Editor] > [Data Formats], check [Disable numeric formatting] in [Settings] will display right digits precision.


OpenSearch
Copyright 2021 OpenSearch Contributors
This product includes software developed by Elasticsearch (http://www.elastic.co).
Copyright 2009-2018 Elasticsearch
This product includes software developed by The Apache Software Foundation (http://www.apache.org/)
This product includes software developed by Joda.org (http://www.joda.org/).

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

@matznermatzner what is this? Can I please ask you stop opening these?


Test 1 of "new" bookplates added since 8/28/2023

[x] Deploy latest libsys-airflow code to dev
[x] Unpause the fetch_digital_bookplates and digital_bookplate_instances DAGs
[x] Trigger the fetch_digital_bookplates DAG (when it completes it will trigger the digital_bookplate_instances DAG)
[x] Write up any bug tickets
[ ] Clear out the digital_bookplates table (for the next dpeloy/test/write tickets cycle) (see Clearing Digital Bookplate Metadata from README

Bugs related to this first test:
https://github.com/sul-dlss/libsys-airflow/issues/1271
https://github.com/sul-dlss/libsys-airflow/issues/1259

Once https://github.com/sul-dlss/libsys-airflow/pull/1275 is merged, it should be deployed to dev and clear out one of the tasks in the dag runs https://sul-libsys-airflow-dev.stanford.edu/dags/fetch_digital_bookplates/grid to restart and see that the bug is fixed.

I'm going to close this ticket w/out clearing out the digitial_bookplates table in case it is needed for debugging while bug tickets are being worked on.


AssertJ 3.22.0

Failing due to: https://github.com/assertj/assertj-core/issues/2357
The workarounds aren't very nice, so it might be best to stay on 3.20.2 for now.

KT-17765 should be fixed in Kotlin 1.6.20, so when that is released it should be possible to rebase and merge.

Though KT-17765 seems fixed in Kotlin 1.6.20-M1 it requires using experimental language version 1.7, e.g.:
tasks.compileTestKotlin {
    kotlinOptions.languageVersion = "1.7"
}

We could enable this for test tasks only, but as it's considered experimental, I think it's better to hold back on this until the fix goes stable in Kotlin 1.7. Using the older AssertJ version doesn't block anything.


[Suggestion] Fade effect

A fade effect like in the bedrock edition could be nice as another animation type or even something on top of animations.

Genius idea like the mod fade in chunks

Genius idea like. Like the mod fade in chunks right?

Yes

this is definitely going to be added, after i implement sodium support


RSS Feed

We should generate an RSS feed
Can we take advantage of the work we're already doing for the search index?

Hey @colbyfayock , I was checking this one. Here is an idea of approach:
1.- Change getAllPosts at util.js to retrieve more info, to fill both searchIndex and the feed.
2.- Add new method generateFeed() at util.js using rss
3.- At search-index-compiler add a new outPutDirectory/outPutName for the feed ('./.next/static/feed.xml')
4.- Use generateFeed at search-index-compiler.
4.- Use rewrites feature at next.config.js:

source: "/feed.xml",
destination: "/_next/static/feed.xml",

What do you think?

what do you think about making this a separate plugin? i like the idea of abstracting these kinds of things because it leaves room for the potential future of pulling them out into separate packages if that's something we could make work. that way, if someone only wants to install search for instance, they could do that easily
id like to hear more about the rewrites feature, is that something we could / should be using with the wp-search.json file as well?
im totally cool with you giving that a shot!

Absolutely, I've ended up thinking of it as separate plugins. At the same time I was thinking in your first message here, and I realized that the three potential plugins (including sitemap) could share same class compiler because the structure is the same:
1.- Retrieve data
2.- Generate file
3.- Write file
I'll make a PR to show you the approach. Open to any change you may see aproppiate
About rewrites feature, I was researching about and I didn't find an important reason to use it instead of public folder. It think it only complicates the scenario for no valuable reason.

now we need to add a link somewhere on the page :) i'll open a ticket for that one


fix: cannot start without specify initial cluster

Codecov Report

Merging #656 (4b848b5) into pipeline (84fc70a) will decrease coverage by 0.02%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           pipeline     #656      +/-   ##
============================================
- Coverage     78.84%   78.81%   -0.03%
============================================
  Files            93       93
  Lines         10039    10039
============================================
- Hits           7915     7912       -3
- Misses         1656     1658       +2
- Partials        468      469       +1

Impacted Files
Coverage Δ

pkg/cluster/cluster.go
59.57% <0.00%> (-0.53%)
:arrow_down:

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 84fc70a...4b848b5. Read the comment docs.


Fix broken link in docs

Link was missing /js in the url

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla - and if you have received this in error or have any questions, please drop us a line at<EMAIL_ADDRESS>Thanks!

By analyzing the blame information on this pull request, we identified @hramos and @JoelMarcey to be potential reviewers.

@facebook-github-bot shipit

Thanks for importing. If you are an FB employee go to Phabricator to review.

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Facebook open source project. Thanks!


Added UnsupportedOSVersionAlert to Utility

Project URL

https://github.com/caloon/UnsupportedOSVersionAlert
Description

Alerts users with a popup if they use an app with an unsupported version of iOS (e.g. iOS betas). Closed old, incorrect pull request and opened new one. Hope it's correct this time.
Checklist

[x] Only one project is in this pull request
[x] Addition in chronological order (bottom of category)
[x] Travis CI pass
[x] Supports iOS 7 or later
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

Forked the wrong file beforehand. Closed the old pull request and opened this new one. Hope it fits.

Hey @caloon, I really liked your lib. Opened a few issues there too.
For me to approve it into AwesomeiOS, I'm gonna need you to finish issue 4 so your project can have a clear README.md.
Thanks for contributing 😄

Thanks for your feedback. I'll look into the issues later today and report back as soon as I'm done.

3 of the 4 issues are corrected (including issue #4).

Awesome. Thanks @caloon 😄


$fetch has no result on some browsers

Environment

Operating System: Darwin
Node Version:     v18.15.0
Nuxt Version:     3.8.0
CLI Version:      3.9.1
Nitro Version:    2.7.1
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      devtools
Runtime Modules:  -
Build Modules:    -

Reproduction
https://github.com/xjccc/useAsyncData-example
Describe the bug
on QQ Browser and UC Browser has no result
on safari chrome quark firefox works fine
to add this QQ and UC works fine
"pnpm": {   "overrides": {     "ofetch": "1.2.1"   } }
Additional context
https://github.com/unjs/ofetch/issues/294
i update my<EMAIL_ADDRESS>it's not work fine too
Logs
No response

@pi0 What is your thinking on this? I would have thought it sounds like a browser support issue for something we're doing in ofetch, rather than an issue in Nuxt, but I guess you have another idea?
@xjccc Would you see if you can replicate with pure ofetch in those browsers, perhaps using https://stackblitz.com/github/nuxt-contrib/vue3-ssr-starter to get going? 🙏

@pi0 What is your thinking on this? I would have thought it sounds like a browser support issue for something we're doing in ofetch, rather than an issue in Nuxt, but I guess you have another idea?
@xjccc Would you see if you can replicate with pure ofetch in those browsers, perhaps using https://stackblitz.com/github/nuxt-contrib/vue3-ssr-starter to get going? 🙏

emm..
i download the project to dev in these browsers.
project
<EMAIL_ADDRESS>is works fine.
<EMAIL_ADDRESS>at QQ\UC\SouGou Browsers works wrong
its has no result

Okay, so that sounds like this isn't an issue in Nuxt but directly a matter of browser support.

I have the same problem
<EMAIL_ADDRESS>is normal
<EMAIL_ADDRESS>no result in useFetch


fix #65 Very Long Screenshots

🛠 Fixes #65

Related Issue/Addition to code

Entire page screenshots and not detailed

👨💻 What's being changed:

More detailed docs screenshots for app apresentation

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

Great work @DarioCostaAlves rocket
The new changes look good! But I have a few suggestions:

I think adding screenshots for the before sign up and logged sections are unnecessary.
The Check only My Posts section should be renamed to User Profile and its screenshot should be a full-page screenshot showing the posts of user too.
And for the Dark mode section I think the screenshot should cover the entire screen.

Your other changes are awesome, just make these couple changes so we can merge this💪🏻

Completed


Constraints canvas size via object size

This PR (delete as applicable)

Fixes a bug

Describe the changes below:
Constraints canvas size if using fixedWidth, fixedHeight style.

👍


SPARK-6698: where RandomForest input specifies a storage level, honor it internally

Currently RandomForest re-persists input data unconditionally with StorageLevel.MEMORY_AND_DISK.  This makes it difficult to tune GC with different StorageLevels.  Instead, if the input has already been persisted at a different level, use that same level.

Can one of the admins verify this patch?

ok to test

That seems kind of reasonable but up to @jkbradley who knows this better

Test build #29681 has started for   PR 5351 at commit 9338181.

Let me make sure I understand.  If baggedInput is persisted serialized, then I agree it would take less memory/disk space.  However, wouldn't it get deserialized on every iteration, creating lots of new objects on each iteration?  If you're seeing GC problems, are you sure it's from baggedInput?
Stepping back, the issue of persisting is tough in MLlib since it's hard to know what the user would want.  I'd be on board with providing parameters which allow experts to set persistence levels for algorithm internals.  An explicit parameter with a reasonable default might be better than making users persist RDDs as a way of specifying the parameter.

Mind tagging this with MLLIB?

Test build #29681 has finished for   PR 5351 at commit 9338181.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.
This patch does not change any dependencies.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/29681/
Test PASSed.

The behavior I was seeing was that RandomTree training tasks were spending ~90% of their time doing GC, and when I turned on verbose GC I would see that most of the time was spent (fruitlessly) on older generation objects.  I assumed the baggedInput RDD was the culprit because there were no other RDDs in my code (other than the original input), and this patch did help things somewhat.  Under these circumstances I don't have a problem spending time deserializing objects or creating objects in the younger generation.

An explicit parameter with a reasonable default might be better than making users persist RDDs as a way of specifying the parameter

This sounds fine to me but I don't know the Spark codebase well enough to contribute this.

What kind of problem size and algorithm parameters were you testing?  I'm wondering if I can reproduce the issue on my end.
Also, were you using the "useNodeIdCache" parameter?  That would create additional RDDs for tracking training instances' locations in the tree.  If you were using that, it would likely be important to use checkpointing as well.

It is a very large dataset: I was training on 30M instances x 500 features at tree max depth 17.  I had to adjust strategy.maxMemoryInMB, --executor-memory, and -Xmn upwards in order to get decent throughput.
In the commit you'll see that I converted NodeIdCache.scala away from MEMORY_ONLY.

That is pretty big, but I have tested on problems of that size successfully (though I used minInstancesPerNode and/or minInfoGain to keep the tree from being a full tree) and not seen such bad GC issues.  Were you using checkpointing, and does adjusting checkpointing improve performance?

I have not tried checkpointing.

@bien Did it help?  I'm not sure if it will, but I could imagine it helping depending on whether the RDDs are getting materialized multiple times.  Adjusting executor memory does sound good, regardless; I tend to use between 2 and 20 GB per executor for my ML tests on clusters.

Should we close this PR? I'm not clear from the discussion that this change is the way to go.

Hi, I think we can close it.  I took another look at my job and I found that AWS/EMR had set up spark to use the CMS garbage collector.  By simply removing the flag and going back to the default GC I got much better throughput improvement than I got from this proposed patch.


Mod security doesn’t prevent some XSS if Errordocument 404 is activated.

Hi there,
I’ve a strange behavior with mod security and XSS prevention.
I use ModSecurity for Apache/2.9.0; OWASP_CRS/3.0.2 and apache 2.4.12.
I’m testing XSS injection with Firefox 59.0.2.
When I get this URL :  https://www.XXXXX.com/index.php?a=a">
Mod security detects it (with rule id 941100) and apply the appropriate answer, (here, a redirect to google for the test) and the client navigator is effectively redirected.
Message: Access denied with redirection to http://www.google.com/ using status 302 (phase 2). detected XSS using libinjection. [file "/etc/modsecurity/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf"] [line "66"] [id "941100"] [rev "2"] [msg "XSS Attack Detected via libinjection"] [data "Matched Data:  found within ARGS:a: a\x22>"] [severity "CRITICAL"] [ver "OWASP_CRS/3.0.0"] [maturity "1"] [accuracy "9"] [tag "Host: www.XXXXX.com"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-xss"] [tag "OWASP_CRS/WEB_ATTACK/XSS"] [tag "WASCTC/WASC-8"] [tag "WASCTC/WASC-22"] [tag "OWASP_TOP_10/A3"] [tag "OWASP_AppSensor/IE1"] [tag "CAPEC-242"]
Action: Intercepted (phase 2)
Apache-Handler: application/x-httpd-php
Stopwatch:<PHONE_NUMBER>027828 913 (- - -)
Stopwatch2:<PHONE_NUMBER>027828 913; combined=344, p1=247, p2=57, p3=0, p4=0, p5=39, sr=40, sw=1, l=0, gc=0
Response-Body-Transformed: Dechunked
Producer: ModSecurity for Apache/2.9.0 (http://www.modsecurity.org/); OWASP_CRS/3.0.2.
Server: Apache/2.4.12 (Ubuntu)
Engine-Mode: "ENABLED"
However I now test another quite similar URL (removing the ?a=a part) :  https://www.XXXXX.com/index.php">
This time, mod security still detect a XSS injection (with a different rule : 941110) and tell that the redirection is applied but the navigator get the script injection as a result instead of the redirection.
Message: Access denied with redirection to http://www.google.com/ using status 302 (phase 2). Pattern match "(?i)([<\xef\xbc\x9c]script[^>\xef\xbc\x9e][>\xef\xbc\x9e][\s\S]?)" at REQUEST_HEADERS:Referer. [file "/etc/modsecurity/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf"] [line "101"] [id "941110"] [rev "2"] [msg "XSS Filter - Category 1: Script Tag Vector"] [data "Matched Data: "] [severity "CRITICAL"] [ver "OWASP_CRS/3.0.0"] [maturity "4"] [accuracy "9"] [tag "Host: www.XXXXX.com"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-xss"] [tag "OWASP_CRS/WEB_ATTACK/XSS"] [tag "WASCTC/WASC-8"] [tag "WASCTC/WASC-22"] [tag "OWASP_TOP_10/A3"] [tag "OWASP_AppSensor/IE1"] [tag "CAPEC-242"]
Action: Intercepted (phase 2)
Stopwatch:<PHONE_NUMBER>256574 1350 (- - -)
Stopwatch2:<PHONE_NUMBER>256574 1350; combined=522, p1=344, p2=132, p3=0, p4=0, p5=46, sr=70, sw=0, l=0, gc=0
Response-Body-Transformed: Dechunked
Producer: ModSecurity for Apache/2.9.0 (http://www.modsecurity.org/); OWASP_CRS/3.0.2.
Server: Apache/2.4.12 (Ubuntu)
Engine-Mode: "ENABLED"
Note that this behavior seems to be correlated with the ErrorDocument directive redirection :
-If there is a directive : ErrorDocument 404 /404.php  Then I’m sensible to the XSS injection
-If there is no ErrorDocument declared, I got a 404 error : The requested URL /index.php"> was not found on this server.
-If there is a directive : ErrorDocument 404 https://www.XXXXX.com/404.php Then I’m redirected to the 404.php page loosing the full URL path.
It seems like in case of a 404 error, the error document take precedence before mod security even if mod security tells it has Intercepted the request.
I’d like to keep the URL full URL info in case of a 404 document.
Any idea ?

Hi @	jmbonnefond,
ModSecurity works integrated with other(s) Apache modules that you may have configured. The modules works given a priority list and the request phase. ModSecurity is catching your request in a given phase and another Apache module is manipulating the request after that, leading you to this particular problem. I would recommend a different status code or configuration schema to make sure that the request is really terminated.


Fix example code to match the documentation narrative

Set processing time in examples so that example behavior matches the narrative.
Make example code more consistent across bi-temporal chaining and audit-only chaining.

PR has been updated with the requested changes.


alacritty failing to open by itself

Which operating system does the issue occur on? Linux
If on linux, are you using X11 or Wayland? X11
Since a few days ago, whenever opening alacritty by itself, for example by typing alacritty in another terminal emulator, alacritty fails to open, giving me the error message " [2019-05-09 13:51] [ERROR] Failed to spawn command: No such file or directory (os error 2).
However, I'm often in tmux so my keybind in AwesomeWM is to open alacritty -e tmux, which works perfectly fine, no errors. Same goes for typing alacritty -e tmux in another terminal emulator.
So, is there any idea as to whats causing this issue?

Please make sure that tmux is in your path, otherwise this will not work.

I'm confused -- It works fine when called with tmux as an argument with -e. The issue is when I try to open alacritty by itself. What would tmux being in my path or not change>

As a side note, uninstalling and reinstalling did nothing.

Oh, I think I misunderstood. You're saying that just alacritty does not work without tmux involved at all?
Did you modify the configuration file?

Yes, I did, and I think someone figured out the issue -- I had un-commented
# shell:
#   program: /bin/bash --login

while I was testing different shells. Re-commenting it fixed the issue. I don't remember if I added the --login part or not, but that could've been what was causing the issue.


conceptualize user story for the landing page video

First draft that uses the problem of finding a route from earth to Saturn with the use of gravity assists. Problem inspired by this.

goal
user story: Reach Saturn
visualisation

introduce user and problem
Oskar is a rocket scientist, and he wants to send a sattelite to Saturn. He can't approach Saturn directly because currently no spacecraft exists with sufficient thrust for such a long way. Instead, he uses gravity assist maneuvers: The rocket will fly by other planets, exploiting their gravitational pull to accelerate.
drawings of Oskar, rockets, planets, trajectories

why is the problem an optimisation problem
Oskar can decide which planets he uses for gravity assists, and the constellation between them through his choice of an advantageous start time. These variables influence the travel time, fuel consumption and inaccuracy of the trajectory, and he wants to minimize all thee of them.
separate video canvas into frames, show different trajectories and performance side-by-side; visualise performance as bar graphs?

what is an optimiser
Oskar knows a formula that calculates and weights all these attributes, but he still needs another algorithm that finds an optimal configuration. This is the first case where he uses Mantella: Mantella includes a diverse set of optimisers that perform well on common problem landscapes.
plots of algorithm iterations, like in the documentation

algorithm selection
Next, Oskar needs to decide which optimiser to use, and here Mantella helps him again: If instructed to do so, it will try all optimisers on a problem and store their performance in a database. After it has benchmarked a few problem instances, it uses machine learning to detect correlations between problems with similar properties and optimisers that perform well on them. This allows Mantella to predict an optimiser that is likely to find a good solution, and improve these predictions over the time span of Oskars project.
???

Mantella can be applied to other use cases too
// previous sections should introduce basic terminology, especially focus on the term problem. Then, enumerate other user stories by giving one-sentence examples of their problems.

draft 2, with reduced problem details.
A big part of the text still focuses on Oskars specific problem, instead of Mantella. Should I try to shorten the introduction further, or add more details on the 2nd half?

goal
user story: Reach Saturn (draft 2)
visualisation

introduce user and problem
Oskar is a space mailman. Today he needs to fly from Earth via Jupiter to Saturn to deliver a letter. Delivery is expected anytime between 08:00-18:00 o'clock.

why is the problem an optimisation problem
Oskar can influence his trajectory by accelerating at certain points of his trip, but he has to consider that his waypoints change their relative position as they orbit the Sun. He wants to determine the speed for each travel segment that minimises his fuel consumption and still arrives as scheduled.
draw Earth-Jupiter-Saturn route as dotted line; mark and label acceleration points; show side-by-side comparisons of 2-4 trajectories

terminology
We call scenarios like this, that map multiple parameters (acceleration at points d_1, d_2, ...) to an objective value (fuel), a problem. Algorithms that approximate an optimal solution for a problem are called optimisers.
represent optimisers as tools (wrench, hammer, tape measure, paint brush, dice?), and problems as materials (screws, nails, canvas+paint bucket)

algorithm selection
Fortunately, Oskar doesn't have to implement one by himself, because Mantella already includes a diverse set of optimisers that perform well on common problem landscapes. He can either use his personal favorite for his problem; Or if he's not sure which one to pick, Mantella can even analyse the structure of Oskars problem and automatically select an appropriate optimiser.
show a box with the Mantella logo that contains all optimisers (tools); Oskar places his problem in the box, solution falls out

generality of Mantella
Of course, Mantella helps with other problems too. It has helped Jens with improving the accuracy of his manufacturing robots, XX with the design of CPU chips, and YY with reducing energy consumption of his automated production lines.

I really like the revised user story and share your concern on the stories focus. We could go into more detail how Mantella selects an algorithm/learn about its performance, like you did in the first draft.

replacement for draft 2, "algorithm selection"

goal
user story: Reach Saturn (draft 2.2)

terminology
...

optimisers
Over time, mathematicians have invented a multitude of these algorithms, and for good reason: Each optimiser performs excellent on problems with a certain structure, but might deliver subpar results on others.

algorithm selection
Therefore, knowledge about common optimisers and their applicability to his problem are vital for Oskar to select the right algorithm and achieve good runtime performance. Fortunately, Mantella can help him twice. First, it already ships with a diverse set of optimisers. And second, it is able to analyse the mathematical structure of Oskars problem and suggest an optimiser for him. Since the analysis uses machine learning under the hood, Mantellas predictions will improve over time; and because it happens at runtime, it can even differentiate characteristics within a single problem family.

generality of Mantella
...

I needed 1m40s to read this draft aloud.

draft 3
This is Oskar the space mailman. Today he needs to deliver a parcel to Saturn sometime between 08:00-18:00 o'clock. As an environmentally conscious pilot, he wants minimise his fuel consumption. He can influence his trajectory by accelerating at certain waypoints, but he has to consider that they change their relative position as they orbit the Sun.
This dependency can be expressed as a mathematical function. Mantella calls these function problems, and algorithms that approximate an optimal solution optimisers.
Over time, mathematicians have invented a multitude of these algorithms, and for good reason: Each optimiser performs excellent on problems with a certain structure, but might deliver subpar results on others.
And this is where Mantella comes into play: First, it already ships with a diverse set of optimisers. And second, it is able to predict their performance by analysing the mathematical structure of Oskars problem, and suggest the favorite.
This means Oskar can solve his optimisation problems right now – and not only him! Do you have a problem that can be phrased as such a function? Then check out our 10min installation guide.
Took me ~1min to read aloud.


Cached inference of all definitions in an unpacking

Summary
This PR adds a new salsa query and an ingredient to resolve all the variables involved in an unpacking assignment like (a, b) = (1, 2) at once. Previously, we'd recursively try to match the correct type for each definition individually which will result in creating duplicate diagnostics.
This PR still doesn't solve the duplicate diagnostics issue because that requires a different solution like using salsa accumulator or de-duplicating the diagnostics manually.
Related: #13773
Test Plan
Make sure that all unpack assignment test cases pass, there are no panics in the corpus tests.
Todo

[ ] Look at the performance regression

I'm not exactly sure what's causing the performance regression. It might very well be the fact that this PR creates additional ingredients and goes through a new salsa query which adds the overhead. This is because the tomllib contains multiple assignment statements where unpacking is required:
1red_knot_python_semantic::types::unpack::Unpack                             55           55           55

Is it only that there are 55 new unpackings, or are there other ingredients with a different count?

Actually, I think it's because I'm creating the ingredient multiple times. I think I need to create it once in the semantic index and store it.

(I've put this in draft to fix the regression.)


Add initial script

This adds the initial version of the parsing script. Tested on k8s mixin rules and dashboard files present in this repo.
Usage is documented in README.md

Thanks so much @mem and @rfratto!!


From 1.0.0-next.211 errors and pages reloads

Describe the bug
From 1.0.0-next.211 on each navigation click there are errors in the console and automatic reload of the page and then that page works and the same happens for subsequent pages.
System Info
System:
    OS: Windows 10 10.0.19044
  Binaries:
    Node: 16.13.1 - C:\Program Files\nodejs\node.EXE
    npm: 8.3.0 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Spartan (44.19041.1266.0), Chromium (96.0.1054.62)
    Internet Explorer: 11.0.19041.1202

Severity
blocking all usage of SvelteKit

I know I was getting "New Dependencies Found" and then I get a reload while on 'Dev' but after visiting the various locations on the website this goes away. After a build and npm run preview, I don't get those messages. I don't consider those errors so, what error messages are you getting?

@HeritagePalms if I restart the dev server it's all the same again.

@HeritagePalms if I restart the dev server it's all the same again.

Is it only in dev? How about preview after a build?

Dev only.

Dev only. Or better, I don' event tried to publish or build. I reverted to 210.

211 patch notes state: "Use Vite's filewatcher in dev mode instead of creating a new one". What errors were you getting though?

Same here. The initial page load doesn't work at all, it shows as an error 500 for me. When I native to another link and back to that first page, it all works.. until I reload the page.

Please provide a reproduction.

Please provide a reproduction.


Build, Preview, and Deployment are not functioning on Windows

This is what I get when I run : yarn run preview  or npm run preview
package.json
{
  "name": "my-next-app",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint",
    "deploy": "cloudflare && wrangler deploy",
    "preview": "cloudflare && wrangler dev",
    "cf-typegen": "wrangler types --env-interface CloudflareEnv env.d.ts",
    "dev:worker": "wrangler dev --port 3000"
  },
  "dependencies": {
    "next": "14.2.5",
    "react": "^18",
    "react-dom": "^18"
  },
  "devDependencies": {
    "@cloudflare/workers-types": "^4.20240925.0",
    "@opennextjs/cloudflare": "^0.0.0-59a1d9e",
    "@types/node": "^20",
    "@types/react": "^18",
    "@types/react-dom": "^18",
    "eslint": "^8",
    "eslint-config-next": "14.2.5",
    "postcss": "^8",
    "tailwindcss": "^3.4.1",
    "typescript": "^5",
    "wrangler": "^3.79.0"
  }
}

Error Log
yarn run preview
yarn run v1.22.21
$ cloudflare && wrangler dev
Building the Next.js app in the current folder (E:\testing\next-cloudflare-KV\KVApp)
$ E:\testing\next-cloudflare-KV\KVApp\node_modules\.bin\next build
 ⚠ Invalid next.config.mjs options detected:
 ⚠     Unrecognized key(s) in object: 'skipTrailingSlashRedirects'
 ⚠ See more info here: https://nextjs.org/docs/messages/invalid-next-config
  ▲ Next.js 14.2.5

   Creating an optimized production build ...
 ✓ Compiled successfully
 ✓ Linting and checking validity of types
 ✓ Collecting page data
 ✓ Generating static pages (6/6)
 ✓ Collecting build traces
 ✓ Finalizing page optimization

Route (app)                              Size     First Load JS
┌ ○ /                                    5.25 kB        92.3 kB
├ ○ /_not-found                          871 B          87.9 kB
├ ƒ /api/cache                           0 B                0 B
└ ƒ /dynamic                             136 B          87.2 kB
+ First Load JS shared by all            87 kB
  ├ chunks/23-7b0d78b6b8bdf59e.js        31.5 kB
  ├ chunks/fd9d1056-2821b0f0cabcd8bd.js  53.6 kB
  └ other shared chunks (total)          1.86 kB

○  (Static)   prerendered as static content
ƒ  (Dynamic)  server-rendered on demand

⚙ Copying files...

# copyPackageTemplateFiles
⚙ Bundling the worker file...

# patchWranglerDeps
# updateWebpackChunksFile
 - chunk 349.js
 - chunk 621.js
 - chunk 682.js
 - chunk 948.js
# patchRequire
# patchReadFile
# inlineNextRequire
# patchFindDir
# inlineEvalManifest
# patchCached
Worker saved in `E:\testing\next-cloudflare-KV\KVApp\.worker-next\index.mjs` 🚀

 ⛅ wrangler 3.80.0
-------------------

Your worker has access to the following bindings:
- KV Namespaces:
  - NEXT_CACHE_WORKERS_KV: de27e0b7d3c44bd48308b4e42df1ccd0
[wrangler:inf] Ready on http://<IP_ADDRESS>:8787
╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
│  [b] open a browser, [d] open devtools, [l] turn off local mode, [c] clear console, [x] to exit  │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
✘ [ERROR] Could not resolve "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverpages_app.js"

    .worker-next/index.mjs:25029:27:
      25029 │ ...n require("E:\testing\next-cloudflare-KV\KVApp\.worker-next\...
            ╵              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  You can mark the path "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverpages_app.js" as external to exclude it from the bundle, which will remove this error. You can also surround this "require" call with a try/catch block to handle this failure at run-time instead of bundle-time.

✘ [ERROR] Could not resolve "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverpages_error.js"

    .worker-next/index.mjs:25034:27:
      25034 │ ...n require("E:\testing\next-cloudflare-KV\KVApp\.worker-next\...
            ╵              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  You can mark the path "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverpages_error.js" as external to exclude it from the bundle, which will remove this error. You can also surround this "require" call with a try/catch block to handle this failure at run-time instead of bundle-time.

✘ [ERROR] Could not resolve "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverpages_document.js"

    .worker-next/index.mjs:25039:27:
      25039 │ ...n require("E:\testing\next-cloudflare-KV\KVApp\.worker-next\...
            ╵              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  You can mark the path "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverpages_document.js" as external to exclude it from the bundle, which will remove this error. You can also surround this "require" call with a try/catch block to handle this failure at run-time instead of bundle-time.

✘ [ERROR] Could not resolve "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverapp_not-foundpage.js"

    .worker-next/index.mjs:25044:27:
      25044 │ ...n require("E:\testing\next-cloudflare-KV\KVApp\.worker-next\...
            ╵              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  You can mark the path "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverapp_not-foundpage.js" as external to exclude it from the bundle, which will remove this error. You can also surround this "require" call with a try/catch block to handle this failure at run-time instead of bundle-time.

✘ [ERROR] Could not resolve "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverapp\favicon.ico\route.js"

    .worker-next/index.mjs:25049:27:
      25049 │ ...n require("E:\testing\next-cloudflare-KV\KVApp\.worker-next\...
            ╵              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  You can mark the path "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverapp\favicon.ico\route.js" as external to exclude it from the bundle, which will remove this error. You can also surround this "require" call with a try/catch block to handle this failure at run-time instead of bundle-time.

✘ [ERROR] Could not resolve "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverapppage.js"

    .worker-next/index.mjs:25054:27:
      25054 │ ...n require("E:\testing\next-cloudflare-KV\KVApp\.worker-next\...
            ╵              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  You can mark the path "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverapppage.js" as external to exclude it from the bundle, which will remove this error. You can also surround this "require" call with a try/catch block to handle this failure at run-time instead of bundle-time.

✘ [ERROR] Could not resolve "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverappdynamicpage.js"

    .worker-next/index.mjs:25059:27:
      25059 │ ...n require("E:\testing\next-cloudflare-KV\KVApp\.worker-next\...
            ╵              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  You can mark the path "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverappdynamicpage.js" as external to exclude it from the bundle, which will remove this error. You can also surround this "require" call with a try/catch block to handle this failure at run-time instead of bundle-time.

✘ [ERROR] Could not resolve "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverappapicache\route.js"

    .worker-next/index.mjs:25064:27:
      25064 │ ...n require("E:\testing\next-cloudflare-KV\KVApp\.worker-next\...
            ╵              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  You can mark the path "E:\testing\next-cloudflare-KVKVApp.worker-next.nextstandalone.nextserverappapicache\route.js" as external to exclude it from the bundle, which will remove this error. You can also surround this "require" call with a try/catch block to handle this failure at run-time instead of bundle-time.

✘ [ERROR] Could not resolve<EMAIL_ADDRESS>
    .worker-next/index.mjs:30495:29:
      30495 │ ...it import('E:\testing\next-cloudflare-KV\KVApp\.worker-next\...
            ╵              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  You can mark the path<EMAIL_ADDRESS>as external to exclude it from the bundle, which will remo

✘ [ERROR] Failed to build

╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
│  [b] open a browser, [d] open devtools, [l] turn off local mode, [c] clear console, [x] to exit  │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
√ Would you like to report this error to Cloudflare? ... yes
🪵  Logs were written to "C:\Users\parvesh\AppData\Roaming\xdg.config\.wrangler\logs\wrangler-2024-10-04_12-27-27_208.log"
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

I've run into this issue too. I believe it is an issue with the path that is being generated.

Seems the building stuff not understanding windows paths


Request: add Bamboo table by default

Hiya! not sure if this is an oversight, but every type of vanilla wood currently has an associated tetra table, except for bamboo wood added in 1.20.
it'd be great if this could be natively supported like the other woods!!

yes it was kinda of an oversight at first...
but then, when workshop (another mod of mine) added automatic support for all wood types and included support for tetra tables along with its own blocks, not only do you have a workaround but the very idea of going beyond it is questionable.
is there someone who wants bamboo tetra table but doesn't want a selection of pretty bamboo toolracks that match that table? and if there is, what is wrong with them?

Yeees there is, and I'm one of them
I want the tetra table variants without all the bloat from workshop, and I already have variant wood crafting tables from my own kubejs recipes.
Reasons I'm not installing workshop:
· Keeping the mod count down (not everyone has a great computer, someof my friends use silly windows office laptops, & every little helps - this is the main reason for using kubejs for a lot of recipes in the first place)
· Redundancies - most of the things that workshop adds I already have through other mods, and I find duplicates annoying
· I don't need infinite wood types because I only have the vanilla ones in the first place
If you really don't want to add bamboo tables for whatever  reason, maybe you could try using Dynamic Asset Generator instead! I believe this is what Excavated Variants uses and it doesn't add any unrelated content.

i'll add bamboo tables.
whether i'm right about this workaround and whether you're right about not liking it - doesn't matter. this is a standalone mod and omission of bamboo table is something that i should fix. i'll upload a new version; you'll get a notification when i close this issue.

Great! Thanks so much 💜

asd

That's great thanks
unfortunately the project fails to build when I try to compile it, this is the error I get
> Task :compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Could not resolve all files for configuration ':compileClasspath'.
   > Could not find blank:workshop_for_handsome_adventurer--mc1.20.1-:1.14.7_mapped_official_1.20.1.
     Searched in the following locations:
       - file:/home/dae/.gradle/caches/forge_gradle/bundled_deobf_repo/blank/workshop_for_handsome_adventurer--mc1.20.1-/1.14.7_mapped_official_1.20.1/workshop_for_handsome_adventurer--mc1.20.1--1.14.7_mapped_official_1.20.1.pom
       - file:/home/dae/.gradle/caches/forge_gradle/bundled_deobf_repo/blank/workshop_for_handsome_adventurer--mc1.20.1-/1.14.7_mapped_official_1.20.1/workshop_for_handsome_adventurer--mc1.20.1--1.14.7_mapped_official_1.20.1.jar
     Required by:
         project :
   > Could not find curse.maven:tetra-289712:4857842_mapped_official_1.20.1.
     Searched in the following locations:
       - file:/home/dae/.gradle/caches/forge_gradle/bundled_deobf_repo/curse/maven/tetra-289712/4857842_mapped_official_1.20.1/tetra-289712-4857842_mapped_official_1.20.1.pom
       - file:/home/dae/.gradle/caches/forge_gradle/bundled_deobf_repo/curse/maven/tetra-289712/4857842_mapped_official_1.20.1/tetra-289712-4857842_mapped_official_1.20.1.jar
     Required by:
         project :

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

if it works for you though, would you be able to update the modrinth release?

you could have gone to discord for this, people sometimes miss things in closed issues.
and i would not want to not help a fellow developer in need.
try these
runtimeOnly fg.deobf("curse.maven:tetra-tables-looking-neat-954341:5225383")
runtimeOnly fg.deobf("curse.maven:workshop-for-handsome-adventurer-875843:5043031")
in dependencies, and
        url "https://cursemaven.com"
        content {
            includeGroup "curse.maven"
        }
    }```
in repositories.


support Kubernetes as a task queue

Kubernetes is a powerful and full-features task queue system for containers. It can easily be run locally, on a local cluster, or in the cloud. It supports GPUs, resource selectors, and error handling. Task queuing is directly supported via jobs, or can be implemented via pods.
It would be great if Kubernetes could be used directly as a task queue system from SoS and if SoS understood Kubernetes jobs, resources, volumes, and container registries.

I tried to learn kubernetes but was scared away with all the new concepts, commands etc. I knew that things will get easier once I spend more time but I never found the time needed. Support for k8s and other cloud/distributed systems is in the radar but I will need some serious help (e.g. from a grant or other individuals/groups) to work on them.
Anyway, currently SoS' task system has the following parts

SoS workflow system that creates tasks (physical files), monitor their status, and retrieve results.
Host agents that work with local or remote hosts and execute commands.
Task engines that submits tasks to the actual computational environment.

Properties of the host agents and task engines are stored in a configuration file ~/.sos/hosts. Because sos tasks monitor their own status (a pulse thread will update the status of tasks), the task engines do not have to monitor the status of submitted jobs, which greatly simplifies the writing of task engines.
Now, with close to zero knowledge on k8s, I think

A separate host agent would be needed to interact with k8s. SoS currently only supports localhost and ssh/rsync/rcp based remote host so a separate plugin system to abstract host agent will be needed.

A task engine module similar to sos-pbs, which will basically execute a shell script with a sos execute command in it.

@tmbdev What is your motivation to get sos working with k8s? Will you be able to help even contribute a k8s module to SoS?

K8s has a lot of functionality for a  lot of different applications. But as far as SoS is concerned, it would simply function like any other job queueing system. You write a job spec in YAML or JSON. A job spec consists of a job name, container name, a command line, and resource requirements. From the command line:
$ kubectl apply -f myjob.yaml # submit job
$ kubectl delete job/myjob # kill job
$ kubectl logs job/myjob # retrieve stdout/stderr
$ kubectl get jobs # list jobs and their status
$ kubectl exec ... # execute additional commands inside an existing job

There are Python libraries that encapsulate the above command lines, so a interface could be written either in terms of kubectl or in terms of the library.
You don't need to worry about hosts, authentication, multiple clusters, or agents at all; K8s already takes care of that.  From the point of view of SoS, K8s just looks like a local job queuing system; an interface should be easy to write.
What's the motivation? Kubernetes is a highly scalable container-based job queuing system with tons of additional functionality, support for persistent services, integration with many different kinds of storage architectures, native GPU support, and excellent resource management. It's easy to use, and it works the same on a desktop machine, a local cluster, and in the cloud.
Yes, I can help with K8s integration, but I can't write one from scratch since I don't really understand how TaskEngine is supposed to work. There doesn't seem to be an abstract base class for task engines that describes what methods need to be provided or what they should do. I can't even find the source code for the TaskSpooler interface, which might be closest to what we need for K8s support.

Ok, let me start by creating a sos-kubernetes module and picking up my k8s kindle book...

@tmbdev I apologize for all the delay. A lot has happened in the past few years (change of job, pandemic) and I only have access to a production k8s cluster recently and am able to learn how to use it.
I really like the concept of k8s cluster and can use it for my work now. I am working on the sos-kubernetes module but there are some practical issues. More specifically, currently, sos copies task files to a remote system (e.g. cluster) with sos installed, then it calls sos execute to execute the task.

It is not easy to copy task files to k8s cluster since there is no "destination" per se. To solve this, we will have to copy the task file into the container, right?

Suppose we can build the container locally (since we need to COPY files over), we will need some way that allows users to specify dependencies (e.g. python and R packages). The easiest way may be allowing users to supply a Docker file.

Then sos can create yaml files for pod or deployment, and apply them to the cluster. The sos syntax should translate mem=2G to resource in yaml file. However, I have not figured out a way to push local containers to the cluster without going through a docker hub service.

Once we get these problems resolved, I will design an interface and write the k8s task engine.

It is not easy to copy task files to k8s cluster since there is no "destination" per se. To solve this, we will have to copy the task file into the container, right?

For configuration data, scripts, etc., you can use a ConfigMap. You can create that with a k8s YAML spec and mount it as a files system; that works everywhere.
(By the way, you should not do anything that requires volume plugins or mountable file systems, since that tends to fail in a lot of environments.)

Suppose we can build the container locally (since we need to COPY files over), we will need some way that allows users to specify dependencies (e.g. python and R packages). The easiest way may be allowing users to supply a Docker file.

No, the user should supply a container, not a Docker file. People increasingly use other tools than docker for building their containers. Furthermore, building containers under programmatic control is difficult.
If you want to ensure that certain packages or files are present, you can install them during the initialization of the container.

Then sos can create yaml files for pod or deployment, and apply them to the cluster. The sos syntax should translate mem=2G to resource in yaml file. However, I have not figured out a way to push local containers to the cluster without going through a docker hub service.

That's one reason why you should avoid building containers programmatically from within SoS: where and how containers get built needs to be under user control.
So, here is my suggestion:

users specify a docker container for running their scripts; users are responsible for ensuring that all the necessary packages are installed inside that container
use a ConfigMap to make configuration files and scripts available to all containers
use a startup script to install anything that SoS needs that may not be in the user's container before running the SoS client scripts (it's probably a good idea to "pip install --upgrade sos" in the startup script to make sure it's present and it's a consistent version)

For more complex needs, you can always run additional pods on the K8s server. For example, you can run etcd or redis for coordination, and/or you can run Minio or AIStore for large scale object storage and/or data transfers.

For configuration data, scripts, etc., you can use a ConfigMap. You can create that with a k8s YAML spec and mount it as a files system; that works everywhere.

This sounds like the example in the documentation. The problem is that sos tasks files contain both parameters (and scripts ...) and results (after tasks are completed) so we do need some way to retrieve the task files after tasks are completed.

(By the way, you should not do anything that requires volume plugins or mountable file systems, since that tends to fail in a lot of environments.)

I agree but users can specify a template YAML file that contains PV, PVC, Volume etc. This is hard to avoid because users most likely need to specify their own volumes to process data.

No, the user should supply a container, not a Docker file.

Agreed. SoS would have to build containers if it includes the tasks inside the containers, which is certainly a bad idea.

So, here is my suggestion:

Sounds reasonable but I have to learn more about the use of startup scripts.

For example, you can run etcd or redis for coordination,

It was probably a bad design but SoS avoided using separate instances for coordination. This made running sos scripts relatively easy but made a lot of things more complicated than they should (e.g. tasks status could be checked much more efficiently with a redis server).

It was probably a bad design but SoS avoided using separate instances for
coordination. This made running sos scripts relatively easy but made a lot
of things more complicated than they should (e.g. tasks status could be
checked much more efficiently with a redis server).

I think that's a perfectly reasonable decision in many environments, where
you simply can't start up persistent services.
However, in Kubernetes, it's easy to start up servers. So, I would take
advantage of that for the SoS Kubernetes integration. That is, I would
write a Kubernetes-specific backend for SoS that uses Redis (or some other
server like that) for exchanging data.
On Sun, May 1, 2022 at 7:49 AM Bo @.***> wrote:

For configuration data, scripts, etc., you can use a ConfigMap. You can
create that with a k8s YAML spec and mount it as a files system; that works
everywhere.
This sounds like the example in the documentation
https://kubernetes.io/docs/concepts/configuration/configmap/. The
problem is that sos tasks files contain both parameters (and scripts ...)
and results (after tasks are completed) so we do need some way to retrieve
the task files after tasks are completed.
(By the way, you should not do anything that requires volume plugins or
mountable file systems, since that tends to fail in a lot of environments.)
I agree but users can specify a template YAML file that contains PV, PVC,
Volume etc. This is hard to avoid because users most likely need to specify
their own volumes to process data.
No, the user should supply a container, not a Docker file.
Agreed. SoS would have to build containers if it includes the tasks inside
the containers, which is certainly a bad idea.
So, here is my suggestion:
Sounds reasonable but I have to learn more about the use of startup
scripts.
For example, you can run etcd or redis for coordination,
It was probably a bad design but SoS avoided using separate instances for
coordination. This made running sos scripts relatively easy but made a lot
of things more complicated than they should (e.g. tasks status could be
checked much more efficiently with a redis server).
—
Reply to this email directly, view it on GitHub
https://github.com/vatlab/sos/issues/1260#issuecomment-1114256612, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AACRQP7BTCWGWFTCHYN2NNLVH2KXXANCNFSM4HJUADBQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

However, in Kubernetes, it's easy to start up servers. So, I would take
advantage of that for the SoS Kubernetes integration. That is, I would
write a Kubernetes-specific backend for SoS that uses Redis (or some other
server like that) for exchanging data.

This is great advice. It would be much easier to pass tasks and their status around if we start a separate redis server inside k8s. Actually, we do not have to implement k8s as a "task executor". Instead, we can implement k8s as a "workflow executor" that has a coordinator and multiple workers.


[go_router] programatically update routing table

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Use case
When coverting Devtool to use go_router, some of the route is dynamically loaded, e.g. extensions.
go_router should provide a way to dynamically updates the routing table.
Proposal
An API to update routing table after GoRouter is created.

This is great and I was looking for this. When can we expect this to land ?


Native include directory pulled in via Boost_INCLUDE

I'm unable to compile on Ubuntu due to pulling in standard library headers like unistd.h and wchar.h from the host system.  The host versions of these headers pull in OS- and architecture-specific system headers that are incompatible with the VM.
The reason these headers are included is that I've installed Boost with apt-get.  This system Boost package installs in /usr/include.  So for me, Boost_INCLUDE_DIR is /usr/include, which makes the host system headers available to the Wasm cross-compiler.
We need to either require the user to point to a standalone Boost install in the top-level CMake, or vendor Boost as part of the CDT.

This is fixed


HDDS-8495. Fix permissions and path handling for ozone sh token get command

What changes were proposed in this pull request?
The CLI command: ozone sh token get does a few things wrong:

Writes to /tmp/ozone.token and the permissions allow another user to read it.
A second user cannot run the command as the /tmp folder does not allow another user to delete the file.

We will require a fix that would:

Require the user to enter the path to which the token will be written.
Set the permission for the file to be readable by only the user who owns the file.

What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-8495
How was this patch tested?
The patch has been tested over a cluster with the basic Ozone services running.

@kerneltime could you please take a look? Thanks

Writes to /tmp/ozone.token and the permissions allow another user to read it.

This makes sense to me. The permissions should be set for the user.

A second user cannot run the command as the /tmp folder does not allow another user to delete the file.

Isn't this an incompatible change? Changing CLI behaviour, the commands which used to work before won't work post upgrade having this patch.
Anyway -t can be used to specify a location, the default is "/tmp/ozone.token", if two individuals run it with same path with -t they would have land up in the same situation even now, right?
The problem is that the default is common under /tmp
May be the default value itself should have been initially like /tmp/<user>-ozone.token
Putting token in /tmp is not the right thing. The knowledge of token generation is not right. A user can put the token in a common folder but the CLI should not default to it.

hmm, not blocking and all points makes sense to me as well. I am not sure how Ozone takes up on the CLI compat rules. In general changing CLI command behaviour is an incompatible change in the Hadoop world.
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/Compatibility.html#Command_Line_Interface_.28CLI.29
Go ahead, don't hold for me. thnx for the clarification!!!


116 [BE] ended many-to-many relationship

improving tests and resource schema

Resuelto en el #134