Is async supported?

It looks like async response handling is supported, but it doesn't seem to work, or I'm misunderstanding how it is supposed to work.
Looking at these lines https://github.com/dekellum/fishwife/blob/8bc897c71e047b48415bf64ea617e5173ba87e93/lib/fishwife/rack_servlet.rb#L291-L296 I don't see how it could work – the response is closed the first time the async callback is called, no matter what, so subsequent calls will get an EOF.
Is it supposed to work? Am I missing something? Would you like help making it work?

That used to be a flush, but then Jetty 9 wants a close of each response, so its entirely possible I broke it for Jetty 9 support. Before that, and as commented in #7, the only test for this failed intermediately, apparently due to some thread timing issue.
To resurrect this, I think I saw that Jetty later added more "standard" support for async?  Servlets specified?  Does rack now define a more standard interface for ruby as well?
I'm receptive to pull requests re-working the feature with above considered and reliable tests.  Easier to merge if its clear in the code that changes don't effect the common case, non-async path.

If I've understood things correctly Servlet API 3.0 added support for async request handling, which Jetty 8 implemented. Jetty has of course had its own async processing API since a long time.
I tried finding documentation on how async.callback was supposed to work, but it seems like it's an effort that has been abandoned. The replacement is rack.hijack, which is more low level (see "Hijacking" in the Rack spec). Instead of providing a callback that can take a response at a later time you signal that you want to take control over the response IO completely. You get an IO-like object that you can do whatever you want with. The benefit over async.callback is that it's in the spec, but the downside is that it's not portable, by design (don't you love it when a spec says "There is a deliberate lack of full specification around rack.hijack_io, as semantics will change from server to server").
I think that maybe scrapping the async.callback support completely and instead trying to implement support for rack.hijack would be the way to go for Fishwife. Maybe async.callback can be implemented on top of rack.hijack if you feel it's important to be backwards compatible. I can try to make a stab at it.
I don't know if there is much benefit in using the Servlet API variant of async handling over Jetty's own, but if you think it would be better I can do that too.

Looking a bit more at the rack.hijack spec I'm not sure if it would be possible to implement the "request" part of the spec (where the server hands off the socket to the application without even sending headers), I don't know if Jetty allows that. The "response" part might be possible though.

Looks like servlets 3.1 further extends the async support. But the older Jetty continuations interface looks like it continues to be supported, so it might just be a question of what is easier to work with.
There is plenty of jetty release notes referencing async. in 9.3.x and 9.4.x and its also again time for updates to rjack-jetty.  I will prioritize those if you start working on this.
Regarding rack, I agree with your analysis. The rack.hijack pseudo-spec seems permissive enough, with the "response"  pattern decoupled from "request."  I wonder if there are some useful tests that could be reused, from either rack itself, or maybe Puma?

I made a first spike to see how things worked: https://github.com/dekellum/fishwife/compare/fishwife-dev...iconara:hijack-support?expand=1
It's tricky to write a proper test that won't take a couple of seconds to run. I've just written a basic test that ensures that the request gets a proper response (and since the request handling happens in a separate thread it kind of proves that it works, but it's by far a great test) – I will have a look at how Puma tests it.
Using Servlet API's async handling was very easy, even easier than Jetty continuations. I don't think there will be any need for the async IO from Servlet 3.1.
I'll try to do some more research on whether or not it's possible to hijack Jetty's output stream before it sends the headers.

I opened a PR so that your review comments don't get lost.


can't Insert or Update for mssql datatype of time(0)

i use dapper is ok,but use Dapper.FastCRUD can't Insert or Update for mssql datatype of time(0)

Could you post a sample?

i use this model
[Table("TTRIPowerStatic")]
public class TTRIPowerStatic
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
    public DateTime StaticDay { get; set; }

    public TimeSpan STDataTime { get; set; }

    public TimeSpan EDDataTime { get; set; }
    public double Degree { get; set; }
}

insert
TTRIPowerStatic = new TTRIPowerStatic();
TTRIPowerStatic.StaticDay = DateTime.Now;
TTRIPowerStatic.STDataTime = DateTime.Now.TimeOfDay;
                            TTRIPowerStatic.EDDataTime = DateTime.Now.TimeOfDay;
                            _connectionDB.Insert(TTRIPowerStatic);

I had similar problem, but with reading - the property was not filled, and I could not use it in WHERE query. It seems that FastCRUD does not recognize TimeSpan type. When I added my own convention which where I overloaded IsSimpleSqlType method, it started working.

Hear, hear... this doesn't work.


Feature request: Click and Drag to a specified point, rather than some distance horizontally or vertically

Hi,
I feel it would be helpful to add functionality to click and drag from a specified point to another specified point. It should look something like:
Mouse.DragTo(MouseButton.Left, window.FindFirstDescendant(x => x.ByName("Drag Me")).GetClickablePoint, window.FindFirstDescendant(x => x.ByName("Put It Here")).GetClickablePoint);

After 5 minutes of research, I've determined I can use Mouse.Down, Mouse.MoveTo, and Mouse.Up.

There is acutally a DragHorizontally, DragVertically and Drag method in the Mouse class.


From private repo

@PRMerger6 : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Replace datepicker with true Ember component

instead of wrapping pickadate. It doesn't look like the other Ember material libraries have true datepickers yet either, so building or pulling in a pure Ember component could be valuable for all of us.
Will take a stab at a PR if I get a chance—just wanted to put the thought out there. If anyone can point to  a good existing Emberified datepicker to extend, that would be great as well!

:+1:

I'd love to see this added to the library.
A good model to follow: http://simeonc.github.io/md-date-time/

Thanks @truenorth. Will investigate this weekend :D

After looking around for existing solutions, I haven't seen any truly clean Ember datepickers yet that aren't bound to an input field (I'm thinking momentJS and no pikadate/pikaday). I think I'll try rolling one and loop back to this repo if it works out.


Scan ignoring struct field when using sql:"-"

I have something like this
type Type struct {
	Paid bool `sql:"-" json:"paid"`
}

And then I have query something like this:
SELECT
  CASE WHEN condition IS NOT NULL THEN true
       ELSE false
  END as paid
FROM type ....

With this setup Paid field is ignored (gorm is not filling in value from query into this field). If I remove sql:"-" then it works, but I don't want to add this field to my table.

Once it is ignored, it won't be scanned.
If you just want to skip the paid column when save the record, you could use the Omit function, but not ignore the struct with sql tag

Hi @ivpusic
Just FYI, the latest gorm will try to scan into ignored fields if there is no ambiguity


Android Basics: tip-calculator

URL of codelab
https://developer.android.com/codelabs/basic-android-kotlin-training-tip-calculator?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-kotlin-unit-2-pathway-1%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-training-tip-calculator#2
In which task and step of the codelab can this issue be found?
Enable view binding
Describe the problem
It does not work and produce an error in the MainActivity.kt
Steps to reproduce?
If you put in this code, is does not work:
buildFeatures {
viewBinding = true
}
Instead of this I tried this and it worked fine then:
buildFeatures {
{ viewBinding = true}
}
Versions
Android Studio version: built from May 2022
API version of the emulator:
Additional information
Include screenshots if they would be useful in clarifying the problem.

@StevieLark
Thank you for reaching out to us and sharing your concern.
Both variants are possible so it's good that you found your own.
Happy coding!


Documentation for using ProGuard with sugar

Hi,
I've run into a few issues with using ProGuard and sugar. The table name/column names end up becoming obfusacated letters (e.g. I, L, M). This makes it difficult to run SQL statements on the table at a later stage and causes a variety of other problems including crashes on Android 4.4. There's an easy fix to this by ensuring ProGuard keeps the domain classes un-obfuscated.
Adding this to ProGuard keeps domain classes un-obfuscated.
-keep class com.yourpackage.yourapp.domainclasspackage.** { *; }
However there's nothing that makes this obvious in the documentation. Please make this obvious to other developers using the library!

@enyciaa would you mind sending a PR for this?
Add this info to README and to docs, thanks

I've sent a pull request for the README
I'm not sure how to add it to the docs however?

thanks, you should use the gh-pages branch

fixed with https://github.com/satyan/sugar/commit/fafe384bcf4cb47236fd561ba3a810e3c32a7327 by @enyciaa


Missing Git information in RPM spec file in "papyrus" branch

Issue and tracking information
Developer's time Estimated effort to fix (hours):
Developer's Actual time spent on fix (hours)
Issue reporter to provide a detailed description of the issue in the space below
When the new spec file was generated for cx-axcioma 2.0.0 based on Papyrus, it looks like the Git information was missed when brought over.
For example,
https://github.com/ZeligsoftDev/CX4CBDDS/blob/master/releng/com.zeligsoft.dds4ccm.update.axcioma/rpm_build/zeligsoftCX_axcioma.spec#L13-L23
does not exist in the papyrus spec version.

Let me know if you'd prefer me not to add the "project" to issues we log. I just wanted to reiterate that it was a Papyrus-only bug and did not affect the RSA version of CX.

Please do add new issues to the Papyrus project if they are affecting Papyrus only.
Thanks.
Regards,
Young-Soo Roh
Sr. Software Developer
Zeligsoft (2009) Ltd.
From: Michael Steppe<EMAIL_ADDRESS>Sent: Monday, March 16, 2020 9:43 AM
To: ZeligsoftDev/CX4CBDDS
Cc: Subscribed
Subject: Re: [ZeligsoftDev/CX4CBDDS] Missing Git information in RPM spec file in "papyrus" branch (#90)
Let me know if you'd prefer me not to add the "project" to issues we log. I just wanted to reiterate that it was a Papyrus-only bug and did not affect the RSA version of CX.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/ZeligsoftDev/CX4CBDDS/issues/90#issuecomment-599543056 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AAG2353FXYHKLKXFV5PIU33RHYUF5ANCNFSM4LMHOR5Q .  https://github.com/notifications/beacon/AAG2355H5T52SMOOIXE2RFLRHYUF5A5CNFSM4LMHOR52YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEO6E2EA.gif
--
This email has been checked for viruses by AVG.
https://www.avg.com

@elder4p I tested this fix on our packaging infrastructure and saw RPMs named as expected (with githash in name). I'll leave this bug open until you all have a chance to test with Travis CI.

Verified your Travis CI also added the git hash to RPM name. Closing this ticket.


Replace x != undefined with x != null

~Bonus: replace undefined == null and null != null with !0 and !1, respectively.~
Tests included.

I'm wondering if we can do this, isn't it unsafe? null and undefined are not equal.

@xtuc null and undefined  are double-equals equal, not triple-equals equal.

Can you add some tests for this ?

@boopathi Are you assuming in babili that people won’t do void someFunctionWithSideEffects()?

@boopathi Tests restored.

@boopathi Are you assuming in babili that people won’t do void someFunctionWithSideEffects()?

Constant-folding plugin should take care of folding constants. void foo() should be a deopt anyway here. It should check only for void x where pathOfX.isPure() is true.

@boopathi This is ready for review.

Just a few thoughts on this -

Should it go into comparison-operators?
Since this is an unsafe transformation, it's better to put this entire transformation behind an option - undefinedToNull or voidToNull or anything else relevant.
Update tests to use thePlugin
t.isIdentifier("undefined") check should also check for bindings in the scope path.scope.getBinding("undefined") there is a defined undefined.

@boopathi

👍
I don’t think it’s unsafe. Why do you think it’s unsafe?
👍
👍

it's safe since https://github.com/babel/minify/pull/572#issuecomment-307738921 (see Equality_comparisons_and_sameness)

@boopathi

It’s already in comparison-operators.
❓
✅
✅

My question is whether it should go into comparison operators, or should it go into simplify. IMO, Comparison operators simplifies the operator used without changing the operands.

It's not immediately obvious that this goes into comparison-operators plugin. This question still applies -

My question is whether it should go into comparison operators, or should it go into simplify. IMO, Comparison operators simplifies the operator used without changing the operands

@boopathi If you’d like me to move it to simplify, I’ll gladly do so. Should I?

Sorry for the delay on this @boopathi 😢
I’ve moved the changes to babel-plugin-minify-simplify.

Looks like the Travis failure is unrelated. Closing and reopening to restart the build.

Ping @boopathi and @vigneshshanmugam for 👀

@j-f1 Hi, Thanks for the PR. Right now let's concentrate on fixing the existing bugs, babel-7, improving the speed of transformations and fixing the memory issue to get it to 1.0. New set of features may delay that. I'll leave it open and postpone it to sometime later.


Update to latest SDK

Please update the plugin to the latest SDK (SDK 3.7.1 or above). Thanks a lot in advance (-:

Thanks for using this plugin.
0.2.3 version has been released with Unity Ads SDK 3.7.5
Also 0.2.2 version uses Unity Ads SDK 3.7.2


Explicit ResFileDecoder initialization in the decodeResources

AXmlResourceParser always set initialized ResAttrDecoder.
Add constructors ResAttrDecoder, AXmlResourceParser(ResTable resTable) and AndroidManifestResourceParser(ResTable resTable) for direct initialization resTable.

With manual ApkInfo serialization we may move mApkFile in the ApkInfo and consolidate all check methods in the ApkInfo class (hasResource, hasManifest and other)

AXmlResourceParser always used and initialized ResAttrDecoder which always initialized with resource table


Fix ArgumentOutOfRangeException for stream with >int.MaxValue length

Fix #24

Codecov Report
Patch coverage is 100.00% of modified lines.

Files Changed
Coverage

src/Sep/SepReader.cs
100.00%

:loudspeaker: Thoughts on this report? Let us know!.

Definitely a dumb bug I should have foreseen hopefully it is fixed now and it should be indexed on nuget soon https://www.nuget.org/packages/Sep/0.2.4 Thanks again for reporting. :)


Fails on a multi-output feedstock (modin)

Didn't look in detail, but the error is here: https://github.com/AnacondaRecipes/modin-feedstock/pull/7#issuecomment-1402765428

Thanks for the quick attention!


How to configure

This page says "When SQL Server is configured to use the Windows application log..."
Is this an optional setting? If so, how do you configure it? I'm not finding any other info in nearby docs.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: af7f84da-929e-fc76-cdec-4a08578612e2
Version Independent ID: 12985b4a-3673-a0be-2257-b73b5d699a06
Content: View the Windows application log (Windows) - SQL Server
Content Source: docs/relational-databases/performance/view-the-windows-application-log-windows-10.md
Product: sql
Technology: performance
GitHub Login: @julieMSFT
Microsoft Alias: jrasnick

@dcbrown16 Hello and thank you for contacting Microsoft. SQL Serve by default sends events to the Windows application log. If you would like to log SQL Server Agent jobs to the Windows application log see https://docs.microsoft.com/en-us/sql/ssms/agent/write-the-job-status-to-the-windows-application-log?view=sql-server-ver15. Please let me know if you have further questions.

@dcbrown16 Hello, I will proceed with closing this issue. If further communication is needed, the @notification mechanism continues to work even after an item is closed. Thank you for your contribution to Microsoft docs! We hope to hear from you again.

#please-close


Diff editor getLineChanges() always return NULL

monaco-editor npm version: 0.7.0
When I call the getLinChanges() it always return NULL
Just change the following example to my code and see.
a bug or am I doing something wrong?
https://microsoft.github.io/monaco-editor/playground.html#creating-the-diffeditor-hello-diff-world

var originalModel = monaco.editor.createModel("heLLo world!", "text/plain");
var modifiedModel = monaco.editor.createModel("hello orlando!", "text/plain");

var diffEditor = monaco.editor.createDiffEditor(document.getElementById("container"));
diffEditor.setModel({
	original: originalModel,
	modified: modifiedModel
});

var linesChanged = diffEditor.getLineChanges();
alert(linesChanged);

I think this might be because of the asynchronous nature of calculating a diff from when the model gets set.
Trying the following seems to produce the correct results.
var originalModel = monaco.editor.createModel("heLLo world!", "text/plain");
var modifiedModel = monaco.editor.createModel("hello orlando!", "text/plain");

var diffEditor = monaco.editor.createDiffEditor(document.getElementById("container"));
diffEditor.setModel({
	original: originalModel,
	modified: modifiedModel
});
diffEditor.onDidUpdateDiff(() => {
    var linesChanged = diffEditor.getLineChanges();
    alert(JSON.stringify(linesChanged));
});

Thanks got it working now


Starting state machine within running state machine

Is there a way to call another XML file from the state machine that is currently executing?
I want to start another State Machine based on a state of the current machine. So far I have used "" with both the absolute directory path and the URL of the XML file hosted on an apache server. Neither has worked.
I had an idea to add a listener to the current state machine and spawn another interpreter if a certain state was achieved, but this seems to have barriers to the approach.
Any help would be appreciated!

Note: I am using SCXML.

You are doing this correctly, but SCION does not currently support <invoke>. The next version of SCION will support <invoke>, so please stand by. Thanks.

Great! Any idea on when this is going to be released?

Maybe next week

Hi,
Any idea when the invoke tag will be implemented in the code base?

Pretty soon. I am getting it ready for release.

@jasonpfi Hi. The the latest version of scion released today (4.3.1) supports <invoke>. I would appreciate if you could please give it a try, and report any bugs. Thanks.

Great, will definitely give it a try on Monday.

Thanks Jacob! I will test invoke later this week

Great, I look forward to your feedback. Thanks

The invoke is basically working, but is there a way to make the parent context accessible?
for example, in the parent script, I can send a websocket message: ws.send(s) but that does not work in the child script
Parent scxml extract
`

    <invoke src="echoChild.xml" type="scxml">
        <finalize/>
    </invoke>

    <transition event="done.invoke.state2.*" target="fstate">
        <log label="Received event done.invoke.state2.*"/>
    </transition>

    <transition event="error.invoke.state2.*" target="fstate">
        <log label="Received event error.invoke.state2.*"/>
    </transition>
</state>

`
echoChild.xml:
`

<datamodel>
    <data id="msg" expr="[7,8,9]"/>
</datamodel>

<state id="idle">
    <onentry>
        <log label="Echo Child - idle state"/>

        <script>
            const json = {
                "type": "MSG_ECHO",
                "value": { "msg": msg  }};
            const s = JSON.stringify(json);
            console.log('In state1 ' + s);
            ws.send(s);
        </script>

        <transition event="MSG_ECHO" target="fstate">
            <log label="Received MSG_ECHO"/>
        </transition>
    </onentry>
</state>

<final id="fstate">
    <onentry>
        <log label="Echo Child - final state"/>
    </onentry>
</final>

`

SCXML supports data sharing between parent and child invoked instances through the use of the  element. This lets you initialize data in the child session to data from the parent session. You can find an example of this in test226 of the scxml IRP test suite.
https://github.com/jbeard4/scxml-test-framework/blob/master/test/w3c-ecma/test226.txml.scxml
https://github.com/jbeard4/scxml-test-framework/blob/master/test/w3c-ecma/test226sub1.scxml

Thanks!
I was able to share the ws websocket from the parent
       <invoke src="echoChild.xml" type="http://www.w3.org/TR/scxml/">             <param name="ws" expr="ws"/>             <finalize/>         </invoke>
to the child state machine
    <datamodel>         <data id="ws"/>     </datamodel>
would you have any pointer showing how the child state machine can receive the events:

Can the parent state machine forward events to a child state machine?
Can a child state machine register for event notifications to receive all the parent's events?

In general, I recommend reviewing the spec for <invoke> and <send>:
https://www.w3.org/TR/scxml/#invoke
https://www.w3.org/TR/scxml/#send

Can the parent state machine forward events to a child state machine?

There are two ways to achieve this:

If you want to automatically forward all events received by the parent to the child, then use invoke/@autoforward.
If you only want to send specific events to received by the parent to the child (i.e., filter the events that are sent), then you can use the <send> action inside of a targetless transition with @target=#_invokeid.

Can a child state machine register for event notifications to receive all the parent's events?

Just use regular transitions in the child state machine to handle the events sent by the parent.
If this support is helpful, please consider backing the project on OpenCollective. It really helps to sustain the project. Thank you!

Thank you!
As far as I can tell, Invoke feature works as expected

Thank you for trying it out and providing feedback.


Progress Bar

See documentation here
This should implement something like this

f.Progress(modelName: "percentDone",
    min: 0,
    max: 100,
    style = new model.Style(){ width: 200, foregroundColor: Avalonia.Controls.Media.Colors.Blue});

[ ] You should be able to make it show in different colors
[ ] Needs to accept a model name, that would be used to incriment the progress

Added this feature with this:
https://github.com/NathanielACollier/dotnetLib_nac.Forms/commit/68a2649fe30d5adf7f2edbdc633abd88033b959a
See this for how it works:
https://github.com/NathanielACollier/dotnetLib_nac.Forms/blob/master/TestApp/lib/TestFunctionGroups/AGroup.cs

Look at ProgressBar_SimpleButtonThatIncriments10


Add track icon

Adds track icon in reference to https://github.com/exercism/xclojure/issues/119

Thanks! :tada:


Basic Example for querying firestore collections duplicate variable

The example here under Basic Example imports "query" but also declares a const query in the function body causing this example not to work.

It also gives an error:
Uncaught ReferenceError: Cannot access 'query' before initialization
If I move the query before the function it works, but then I am not able to give it where variables.


Rock paper Scissor[New game]:

🎮 Game Request
In this game a person need to select one option out of rock ,Paper And scissor and then computer select Randomly a option out of these three .so if a person win he will get +1 point and if he loss then he will get -1 point and if match draws then he will get 0 points .
Point down the features
Game points:
winning ->+1points
Loosing->-1Points
draw->0points
Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @lakhan06 !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

assign

assign

Hey @lakhan06 ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇

ok sir .
thankyou
i will continue my contributions in game zone and will like to do more things together in future


Set UID for ES_DEFAULT_USER to 1100, avoid conflicts with debian host…

When you mount a volume from your host system on a Debian host, you can face conflicts with systemd users (uid 100,101..).

This change has now been pushed to Hub.


Error: ENOENT: no such file or directory, open '/workspaces/.gitlab-ci-local/output/build4testsOgx86.log'

I'm running gitlab-ci-local within a docker container and executing the CI jobs locally there. It worked previously, but not anymore.
Minimal .gitlab-ci.yml illustrating the issue
---
build4tests:x86:
  script:
    - scripts/ci-build4tests.sh
  artifacts:
    name: "$CI_JOB_NAME"
    paths:
      - output/       # for ctest, to prevent total re-build

scripts/ci-build4tests.sh
changed_files_commit=$(git diff --name-only HEAD^..HEAD)
printf "changed files in last commit:\n%s\n\n" "$changed_files_commit"

cmake -DBUILD_TEST=1  build_all

make -j 8 install

exit 0

Expected behavior
I was expecting the job to finish without error, however it get the following error:
build4tests:x86 > Skipping repository .gitlab-ci-local/builds/.docker
Error: ENOENT: no such file or directory, open '/workspaces/.gitlab-ci-local/output/build4testsOgx86.log'
    at Object.openSync (node:fs:599:3)
    at Object.openSync (pkg/prelude/bootstrap.js:793:32)
    at Object.writeFileSync (node:fs:2221:35)
    at Object.appendFileSync (node:fs:2283:6)
    at outFunc (/snapshot/firecow-gitlab-ci-local/src/job.ts:823:16)
    at Transform.<anonymous> (/snapshot/firecow-gitlab-ci-local/src/job.ts:830:69)
    at Transform.emit (node:events:537:28)
    at addChunk (node:internal/streams/readable:324:12)
    at readableAddChunk (node:internal/streams/readable:297:9)
    at Transform.Readable.push (node:internal/streams/readable:234:10)

The folder is recreated during the execution of the gitlab-ci-local command, so I don't know how to proceed.
Host information
Laptop with Ubuntu 24.04
Docker, where gitlab-ci-local is running: bookworm
gitlab-ci-local 4.52.1 (tried it also with 4.51.0)

This is not a minimal example.
Please include a stripped down version of the .sh script, so we can reproduce.

I was working on a branch where I already commited a change in a submodule. Going back to main branch actually help to get the local CI running again. I also stumbled over https://github.com/firecow/gitlab-ci-local/issues/633, so perhaps it's because I had a commit related to the submodule and gitlab-ci-local couldn't handle it.

So what should we do about this issue?


Fix for handling incomplete file

What changes are proposed in this pull request?

Change the verbose warn log for incomplete file to debug level.
Remove wait for complete file from getattr.
Reduce wait time for open

@maobaolong When do you typically see this incomplete file warning? Could you explain the use case a bit? From my understanding, if a batch job getStatus before the write is finished, the job can probably be improved to do getStatus later. But seems from your case you are using FUSE, right?

@jiacheliu3 Yeah, we use FUSE to access Alluxio with ufs Ozone, the workload is fio test.

@maobaolong can you help fix the merge conflicts

@LuQQiu Please take another look, thank you.

Integration tests also failed
Error: 1.451 [ERROR] Failures:
Error: 1.452 [ERROR] alluxio.client.fuse.JNIFuseIntegrationTest.ls
Error: 1.454 [ERROR]   Run 1: JNIFuseIntegrationTest>AbstractFuseIntegrationTest.ls:249 expected:<[40K]> but was:<[0]>
Error: 1.456 [ERROR]   Run 2: JNIFuseIntegrationTest>AbstractFuseIntegrationTest.ls:249 expected:<[40K]> but was:<[0]>
15:38:11.457 [INFO]
Error: 1.457 [ERROR] alluxio.client.fuse.JNRFuseIntegrationTest.ls
Error: 1.457 [ERROR]   Run 1: JNRFuseIntegrationTest>AbstractFuseIntegrationTest.ls:249 expected:<[40K]> but was:<[0]>
Error: 1.457 [ERROR]   Run 2: JNRFuseIntegrationTest>AbstractFuseIntegrationTest.ls:249 expected:<[40K]> but was:<[0]>

@LuQQiu Revert all changes except the log warn

alluxio-bot, merge this please


Values for different characters

Hello,
I wanted to train a different character (like you did with the Atlas robot) and I am trying to figure out what changes I need to implement. I am currently using the PyBullet implementation, but in terms of parameters I don't think that makes any difference.
I figured (please correct me if I am wrong) that what I need to change is the values of kd and kp, so I was wondering how you obtained/calculated the values for the controllers in here. For example, how did you obtain the values for the Atlas robot?
In addition, I was wondering if you could help me understand how you calculated the bounds and offset for the actions here.
For example
def build_action_bound_min(self, agent_id):
    #see cCtCtrlUtil::BuildBoundsPDSpherical
    out_scale = [-1] * self.get_action_size(agent_id)
    out_scale = [
        -4.79999999999, -1.00000000000, -1.00000000000, -1.00000000000, -4.00000000000,
        -1.00000000000, -1.00000000000, -1.00000000000, -7.77999999999, -1.00000000000,
        -1.000000000, -1.000000000, -7.850000000, -6.280000000, -1.000000000, -1.000000000,
        -1.000000000, -12.56000000, -1.000000000, -1.000000000, -1.000000000, -4.710000000,
        -7.779999999, -1.000000000, -1.000000000, -1.000000000, -7.850000000, -6.280000000,
        -1.000000000, -1.000000000, -1.000000000, -8.460000000, -1.000000000, -1.000000000,
        -1.000000000, -4.710000000
    ]

    return out_scale

How do you calculate these values? Would they be any different for a different character (e.g., Atlas robot)?
Many thanks in advance!

So I figured how to calculate the offset and scale for the actions, but I still don't know where the bounds values are coming from. @xbpeng could you please explain how you obtained those values?

So I figured how to calculate the offset and scale for the actions, but I still don't know where the bounds values are coming from. @xbpeng could you please explain how you obtained those values?

the kp and kd values are manually tuned. I suspect you can use similar values as the humanoid, but might need to bump them up a bit, since the atlas is a lot heavier. In general, you want kp to be large enough so that the robot can exert enough force to do what you want it to do, but not too high, that the robot ends up being very stiff. kd is usually just set to about 0.1kp.
For the action bounds, they are proportional to the range of motion of each joint. So for a revolute joint like the knees, the range of motion is something like [-pi, 0]. The action bound are then usually set to be a bit larger than that, maybe [-1.5, 0.5]. Either way tho, the exact values of the bounds are not too important. You can take a look at this code to see how the bounds are calculated
https://github.com/xbpeng/DeepMimic/blob/50bcc866b924fb425da7b492965c2d871fa82a8c/DeepMimicCore/sim/CtCtrlUtil.cpp#L89

the kp and kd values are manually tuned. I suspect you can use similar values as the humanoid, but might need to bump them up a bit, since the atlas is a lot heavier. In general, you want kp to be large enough so that the robot can exert enough force to do what you want it to do, but not too high, that the robot ends up being very stiff. kd is usually just set to about 0.1kp.
For the action bounds, they are proportional to the range of motion of each joint. So for a revolute joint like the knees, the range of motion is something like [-pi, 0]. The action bound are then usually set to be a bit larger than that, maybe [-1.5, 0.5]. Either way tho, the exact values of the bounds are not too important. You can take a look at this code to see how the bounds are calculated
https://github.com/xbpeng/DeepMimic/blob/50bcc866b924fb425da7b492965c2d871fa82a8c/DeepMimicCore/sim/CtCtrlUtil.cpp#L89

So given that the humanoid characters and the Atlas robot have similar
joints, would the action bounds be the same? Also I would expect the
maximum/minimum values for the joints to be around [-2pi, 2pi], but some of
the values are larger. Shouldn't 360° be the maximum value for a spherical
joint?
Il Mar 26 Gen 2021, 18:25 xbpeng<EMAIL_ADDRESS>ha scritto:

the kp and kd values are manually tuned. I suspect you can use similar
values as the humanoid, but might need to bump them up a bit, since the
atlas is a lot heavier. In general, you want kp to be large enough so that
the robot can exert enough force to do what you want it to do, but not too
high, that the robot ends up being very stiff. kd is usually just set to
about 0.1kp.
For the action bounds, they are proportional to the range of motion of
each joint. So for a revolute joint like the knees, the range of motion is
something like [-pi, 0]. The action bound are then usually set to be a bit
larger than that, maybe [-1.5, 0.5]. Either way tho, the exact values of
the bounds are not too important. You can take a look at this code to see
how the bounds are calculated
https://github.com/xbpeng/DeepMimic/blob/50bcc866b924fb425da7b492965c2d871fa82a8c/DeepMimicCore/sim/CtCtrlUtil.cpp#L89
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/xbpeng/DeepMimic/issues/140#issuecomment-767698844,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADU47BS3A2SLPCTDKS6OYBDS333G5ANCNFSM4WR7T67A
.

So given that the humanoid characters and the Atlas robot have similar
joints, would the action bounds be the same? Also I would expect the
maximum/minimum values for the joints to be around [-2pi, 2pi], but some of
the values are larger. Shouldn't 360° be the maximum value for a spherical
joint?
Il Mar 26 Gen 2021, 18:25 xbpeng<EMAIL_ADDRESS>ha scritto:

the kp and kd values are manually tuned. I suspect you can use similar
values as the humanoid, but might need to bump them up a bit, since the
atlas is a lot heavier. In general, you want kp to be large enough so that
the robot can exert enough force to do what you want it to do, but not too
high, that the robot ends up being very stiff. kd is usually just set to
about 0.1kp.
For the action bounds, they are proportional to the range of motion of
each joint. So for a revolute joint like the knees, the range of motion is
something like [-pi, 0]. The action bound are then usually set to be a bit
larger than that, maybe [-1.5, 0.5]. Either way tho, the exact values of
the bounds are not too important. You can take a look at this code to see
how the bounds are calculated
https://github.com/xbpeng/DeepMimic/blob/50bcc866b924fb425da7b492965c2d871fa82a8c/DeepMimicCore/sim/CtCtrlUtil.cpp#L89
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/xbpeng/DeepMimic/issues/140#issuecomment-767698844,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADU47BS3A2SLPCTDKS6OYBDS333G5ANCNFSM4WR7T67A
.

yes, the actions bounds can probably be similar for the atlas. The limits for the actions are usually slightly larger than the pose limits for each joint. Take a look at the code i pointed to, to see how that is calculated. The intuition for why the range for the actions is larger, is that if the action limits are the same as the joint limits, then when the joint hits its limit, the pd controller will no longer be able to exert a force anymore. By making the action limits a bit larger, this allows the pd controllers to keep exert a force even when the joint limits are hit.

yes, the actions bounds can probably be similar for the atlas. The limits for the actions are usually slightly larger than the pose limits for each joint. Take a look at the code i pointed to, to see how that is calculated. The intuition for why the range for the actions is larger, is that if the action limits are the same as the joint limits, then when the joint hits its limit, the pd controller will no longer be able to exert a force anymore. By making the action limits a bit larger, this allows the pd controllers to keep exert a force even when the joint limits are hit.

I took a look at the code that you suggested and I figured out how to calculate those values, but it seems that in order to do so I need to use joint_mat. i suppose the values in joint_mat are the ones in data/characters/humanoid_3d.txt. Thank you very much for your help!
One last question: where did you get the values of TorqueLim and DiffWeight that are in the file data/characters/humanoid_3d.txt?

I took a look at the code that you suggested and I figured out how to calculate those values, but it seems that in order to do so I need to use joint_mat. i suppose the values in joint_mat are the ones in data/characters/humanoid_3d.txt. Thank you very much for your help!
One last question: where did you get the values of TorqueLim and DiffWeight that are in the file data/characters/humanoid_3d.txt?

The torque limits are roughly based on those of a human, though the character is on the strong end. Diff weights are also just manually specified.

The torque limits are roughly based on those of a human, though the character is on the strong end. Diff weights are also just manually specified.

So I figured how to calculate the offset and scale for the actions, but I still don't know where the bounds values are coming from. @xbpeng could you please explain how you obtained those values?

@tfederico can you elaborate on how to calculate these values?
Warm Regards,
Rohit

@rohit-kumar-j it's slightly different depending of the joint type, but if you take a look here

you can see how they are calculated for the revolute joint

@tfederico  I have replicated an initial simulation for the robot in pybullet. See #2:RJAX. I will be re-making this with torque limits, joint limits, etc. Back here for a recap😄


[FEATURE REQUEST] Upload assets to an existing GitHub release

Description
In the github action there should be an append parameter, which instead of creating a new release will upload files to existing one with the same tag. This can be done by uploading it to "$endpoint/repos/$owner/$repo/releases/tags/$tag" url (instead of default "$endpoint/repos/$owner/$repo/releases").
Motivation
Multi-loader and multi-version projects may run gradle independently for each subproject, isolating each release action. On Modrinth and Curseforge files can be filtered by game version or the loader, so isolation doesn't matter, but on Github it makes sense to group releases by mod version.
Research
For example, Breadmoirai's gradle plugin supports uploading to existing releases. Using it, files can be appended by enabling allowUploadToExisting parameter. Due to an issue with the plugin draft parameter has to be set to true for all releases after the first one.
In the current plugin org.kohsuke.github is used, which is quite restrictive, hardcoding the final upload url and not providing custom options. I haven't found a workaround for it without making manual requests yet.

Specifically, GHRelease instance is created in the following way:

Since builder is private there's no way to create an instance with /tags/$tag added to the url.
On library's side it would be a good alternative to provide a method with an url parameter, but unfortunately its not available.

createRequest() in GitHub is also private, which makes creating a custom request more problematic.

Hi, great idea this isnt a use case I thought of! Definitely something I would like to support. Might be a little bit tricky to make sure that one project can create the release and the other uploads.

org.kohsuke.github is used, which is quite restrictive
Yes, I had a plan to move away from this an just make an api following the same pattern to CF and MR.

A work around for now would be to upload the other files as additional files from one project.

A work around for now would be to upload the other files as additional files from one project.

Well, that's exactly what is not possible in the setup I described. For example, I have a mod building for 1.19.4 and 1.20 with a multi-version setup. To publish, it first builds 1.19.4 versions and uploads it, then does so for 1.20. 1.20's build script is unaware of 1.19.4's files and vice versa.
An alternative approach is to build and gather all assets and publish them together, which is less clean.

From testing I did, the second publish action failed to fetch the tag from gh api, although only in some cases. Fetching it and printing in debug worked fine, but getting the release failed.

A work around for now would be to upload the other files as additional files from one project.

Well, that's exactly what is not possible in the setup I described. For example, I have a mod building for 1.19.4 and 1.20 with a multi-version setup. To publish, it first builds 1.19.4 versions and uploads it, then does so for 1.20. 1.20's build script is unaware of 1.19.4's files and vice versa. An alternative approach is to build and gather all assets and publish them together, which is less clean.

Something like additionalFiles.from(project(":1.20.1").tasks.remapJar.archiveFile) in theory should work. I used something similar to this here: https://github.com/TechReborn/TechReborn/blob/1.20/build.gradle#L374
I still agree that a proper soltuion is needed 👍

I'm running into this with my own multiversion project now, would love to see this implemented!


this addon foces different indent in editor

Hi,
I am having an indent width of 2 configured; As soon as I enable this plugin, the indention width seems to be 4, no matter what I have configured in the core configuration. There seems to be also no way to force my configured indention. No configuration window seems to be appearent for the language-cpp14 plugin either.

Hey,
The default tab width for language-cpp14 is 4. However, this can be changed in the plugin settings. To do this, go to Atom's Settings page and select Packages in the left menu. Then scroll down to find the language-cpp14 plugin and click on the Settings button underneath it. If you scroll down on this page you will see "Tab Length" which you will be able to change to 2.
For more info see the Atom docs.
Thanks!

I believe this issue should be re-opened, as it is much better, more convenient, and less confusing if the package just respected global settings instead of having its own exact duplicate in its own settings menu. This way users won't be confused because they expect the global settings to apply, when they are being overridden by the packages' own copy of the exact same settings.


Lock and unlock data policies in Pod

As a POD admin, I want to be able to lock down and unlock a POD according to the security settings defined by the most secure dataset policy of the selected datasets. I need this so that I can verify that my technology can work under the applied dataset policies.

As an epic it have been turned into a milestone.