CLI Error

After installing the mirrord CLI, It didn't turn available through my terminal.
# Installed the CLI
$ npm install -g mirrord
...

# Checked where it have been installed
$ which mirrord
/home/tom/.nvm/versions/node/v17.6.0/bin/mirrord

# Attempted to use it
$ mirrord -v
/usr/bin/env: ‘npx ts-node’: No such file or directory
/usr/bin/env: use -[v]S to pass options in shebang lines

# Checked for ts-node
$ which ts-node
/home/tom/.nvm/versions/node/v17.6.0/bin/ts-node

# Confirmed that is available
$ npx ts-node
>

If further information is required for your investigation, don't hesitate to ask me for it.

Could you please share what OS you're running on?

$  cat /etc/os-release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
LOGO=archlinux-logo

$  uname -a
Linux cosmos 5.15.24-2-lts #1 SMP Mon, 21 Feb 2022 06:30:12 +0000 x86_64 GNU/Linux


cmd/go: change go test to FAIL if -run is specified but no tests match

Proposal Details
If -run is provided but there is no test matching the pattern, go test currently considers the test run PASS and exits with 0.
$ go test -run=Test_sum/1_+_1
testing: warning: no tests to run
PASS
ok      example/test    0.133s

Even though there is a warning like "testing: warning: no tests to run", this is easy to miss or dropped when the test binary runs by other runners (ide plugins, dlv, ..). I think when users set -run and if there is no matching test, that's likely not what users wanted, and treating it like misuse of command is more appropriate.

CC @bcmills, @matloob.
Slightly related, but in the opposite direction: go test and go vet currently print a warning and also exit with a fatal error when an import path pattern matches 0 packages (#31271, #52287), which can create overhead for a CI system wishing to permit modules that are empty or have packages for a subset of Go's ports, since they have no choice but need to convert such false-positive failures to successes on their own.

See also #48851.

For the reference: I'm using go test -run ø -bench . to only run benchmarks without running tests. If -run ø is changed to result in FAIL, please add another way to only run the benchmarks. Thanks.

@navytux That's a good point. In the original proposal here, there was only the -run flag specified, without -bench, so it likely shouldn't apply if something else, like benchmarks, does match and run.
As a side note, there is a possibility of that invocation matching some tests if they happen to have that character in their name. Since -run flag accepts a regular expression, consider doing go test -run=^$ -bench=. to ensure only benchmarks are run. The "^$" value is fairly explicit about the intention to match no tests/examples/fuzz tests.

@dmitshur, thanks for feedback. And I agree that ^$ is generally more strict and correct in limiting the set of allowed tests to run to be empty.

Will add to proposal minutes next week, but I don't see how to do this in a defensible way.

It seems very strange to me that go test -run=XXX should fail but go test -run=XXX -bench=. should succeed.
It also seems strange to say that go test -run=XXX should fail but go test -run=^$ should succeed.
And what if I do go test -run=Foo -skip=Foo? Should that fail too?
And right now go test notests succeeds if notests has no tests (and compiles and passes vet). Should it start failing? If not, what if I use go test notests -run=.*? Should that start failing?

All these strange contradictions go away if go test -run=XXX continues to succeed as it does today but also continues to print a message about not having any tests to run.
The original design of this warning in #15211 explicitly left the exit code unchanged to avoid all these problems. I think we should continue to leave it unchanged.

This proposal has been added to the active column of the proposals project
and will now be reviewed at the weekly proposal review meetings.
— rsc for the proposal review group

Based on the discussion above, this proposal seems like a likely decline.

No change in consensus, so declined.


Add Python 3.x support

Uses six (and add it to install_requires) to cover moved/renamed modules

Fixes ipfs/python-ipfs-api#9
I also have doctests for ipfsApi.utils, those will be a separate PR

Thanks so much!  There were some conflicts so I had to manually merge.

OK. Next time I'd be happy to rebase my branch, and preserve the commit messages that explained the changes

Sorry!  Is there any way I can fix that?  I am not too experienced with managing git projects and I didn't know you could do that.

No problem, I'm still making git howlers from time to time. It's public now, so leave it be.
There are ways to fix it (e.g. rebase to remove the commits from the history, then force push), but they're messy and risk causing data loss. They shouldn't be applied to a public repo that other people are using - particularly the master branch of a repository that's being tracked by multiple forks tracking it.

Ok you're probably right.  I'm just bummed you didn't get credit for the commits.


⚠ Bofrost.be has degraded performance

In da1578d, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1008 ms

Resolved: Bofrost.be performance has improved in 901d41d.


RejectedExecutionException when applying settings.

I got a crash report from one of my app users. This happens after applying settings. This is the first time in a couple of months this has happend
Here is my code:
new Fetch.Settings(getApplicationContext())                     .setAllowedNetwork(Fetch.NETWORK_ALL)                     .enableLogging(true)                     .setConcurrentDownloadsLimit(1)                     .apply();
Here is the stack trace:
  at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution (ThreadPoolExecutor.java:2049)   at java.util.concurrent.ThreadPoolExecutor.reject (ThreadPoolExecutor.java:814)   at java.util.concurrent.ThreadPoolExecutor.execute (ThreadPoolExecutor.java:1355)   at java.util.concurrent.Executors$DelegatedExecutorService.execute (Executors.java:591)   at com.tonyodev.fetch.FetchService.processAction (FetchService.java:229)   at com.tonyodev.fetch.FetchService.runAction (FetchService.java:206)   at com.tonyodev.fetch.FetchService.sendToService (FetchService.java:133)   at com.tonyodev.fetch.Fetch$Settings.apply (Fetch.java:1175)

@joelphilippage This issue has been fixed in version 1.1.5.


Discrepancies in semantics of Plutus Core error term.

Figure 8 of the PLC spec says that (error A) propagates outwards, changing its type as it goes.  The CK machine description suggests (perhaps somewhat unclearly) that the machine should stop immediately, returning (error A) without changing the type.  We should make these consistent.
Depending on what we do, this may also require some modification of the CK/CEK machine implementations.

There are implicitly two versions of the CEK machine. A typed one, which makes sure to do all type substitutions and would need to do things like ensure it returned a correctly-typed error, and an untyped one, which just ignores types in terms. The untyped one is effectively evaluating the erased version of PLC.
I believe our current CEK machine is really implementing the untyped strategy - it doesn't maintain any type information.
Possibly we would benefit from making this clearer. I think it would be good to include something about erasure in the spec generally.

There was some stuff in the spec about erasure, but it appears to have been, er, erased at some point.  I guess Rebecca started on that at some point and commented it out because it was incomplete.

My understanding on what we need to do here is:

Replace the reduction rules for typed PLC in the spec with rules that do type substitutions. @kwxm is going to do this.
Work out a justification for why the current behaviour of the abstract machine is okay (it's not quite just "erase as you go"). @jmchapman is going to do this.

I think we still need to fix this.  If #1524 happens then we'll have plenty more to worry about along the same lines.

I am reexamining this. Currently, in the Agda formalisation an error term is any term that contains an error in it. The spec has exactly one error term (error) and has a catchall reduction rule that reduces any term to error when one of its subterms reduces to error. I am going to try the spec approach as it has the advantage that a term can either be error exclusive or it can reduce. In the currently formalisation these a term can be an error term and reduce.


Superfluous calls on login/logout

I've put some console.log on login and logout and I always get a sequence of 1# get, 2# destroy, #3 set, e.g. for logout
<-- POST /api/User/logout?
getting sid SESSION:7sAWNTc02BKJE7iviPkNL7PhaqfacSDE, value: {"passport":{"user":{"_id":"5739d53fda88d2287e1f8631","username":"1234","password":null,"__v":0,"type":"User"}}}
destroying sid SESSION:7sAWNTc02BKJE7iviPkNL7PhaqfacSDE
setting sid SESSION:n-4yQqUH_q_OX9kZEhFcTlvZrmRnLDe3, value: {"passport":{}}
--> POST /api/User/logout? 200 419ms 4b

or for login:
<-- POST /api/User/login?include=user
getting sid SESSION:n-4yQqUH_q_OX9kZEhFcTlvZrmRnLDe3, value: {"passport":{}}
cb from login
destroying sid SESSION:n-4yQqUH_q_OX9kZEhFcTlvZrmRnLDe3
setting sid SESSION:n-4yQqUH_q_OX9kZEhFcTlvZrmRnLDe3, value: {"passport":{"user":{"_id":"5739d53fda88d2287e1f8631","username":"1234","password":null,"__v":0,"type":"User"}}}
--> POST /api/User/login?include=user 200 679ms 242b

Probably the logout does not need to set anything after having destroyed it, or the login does not need to destroy the session for after setting it anyway.
I think this line of code is aiming at tacking this issue, but session is not undefined, it's just the object inside the passport key, which is empty.

@Krisa Yes, that is different way with passport. I think it's better to add an option to set the session key by custom, and I will check the empty object session too.
Do you have a better way to resolve it?

I appear to be getting some similar logs with my session (connected to a Memcached store)
<-- GET /
Getting something from memcached session: Y02mgvruKOkIVqdjdYVLgmPAtl289iQb
{ userViews: 12 }
Injecting (MobX) state into current request/response context
Setting counter random value and getting a random user profile
Rendering React with state
Destroying something in memcached session: Y02mgvruKOkIVqdjdYVLgmPAtl289iQb
Setting something in memcached session: OjYnB8cFQcOVOFsKcQImAaMGN9vnohfF : {"userViews":13}
callback called
  --> GET / 200 887ms 3.35kb

Every single request to my site seems to get > destroy > set something in the session. But the session as a whole maintains it's state for whatever keys are set. Just seems a little strange.

@lostpebble It seems you will update userViews on every single request and set it in the session. If you want update the session without destroy,  maybe you can use the destroy method as a callback. That means the method is not real destroy your session store, it will be called before the session update or real destroy, so you can choose that destroy the old key and create a new key or just update in the method.

Okay, cool I'll try that thanks. So I see the default behaviour is to destroy the state completely if anything in the session changes, and create a new session. Is that normal session behaviour? I'm just curious, I don't know much about session management really.

Okay, cool I'll try that thanks. So I see the default behaviour is to destroy the state completely if anything in the session changes, and create a new session. Is that normal session behaviour? I'm just curious, I don't know much about session management really.

I think it may depend on the session storage. If the session records are stored in temporary files, then perhaps it's easier to insert some information into an existing file. Probably the same with SQL-like databases, with their constant set of columns. But in case of in-memory or document-based databases, where objects are stored more like JSON strings, it may be more efficient to just rewrite the whole object, rather than searching the place to insert the changed value, then maybe shifting the right-side part of the object and inserting the new value inside... Not mentioning that we need enough free memory directly to the right of the object. It's easier to just destroy the record and put another one into any free place.


Incorrect types for resource strings downloads and uploads

Hi! I think I found a bug in the @transifex/api package for Node.js.
I'm using the @transifex/api in version 2.1.0. I'm trying to create a source file download action:
const {transifexApi} = require('@transifex/api');

transifexApi.setup(/* token */);

const resourceStringAsyncDownload = await transifexApi.ResourceStringAsyncDownload.create({
    attributes: /* attributes */,
    relationships: /* relationships */,
    type: 'resource_strings_async_downloads'
});

but I'm receiving the following error:
Error: Received type 'resource_strings_async_downloads', expected 'resource_string_async_downloads'

When I change the type to the suggested one resource_string_async_downloads, I have another error:
JsonApiException: <JsonApiError: 404 - URL `/ resource_string_async_downloads` does not refer to an existing endpoint

I think there is a typo here: https://github.com/transifex/transifex-javascript/blob/6dcede2ab419bbf95126ed61f58c838e7cae1daa/packages/api/src/transifexApi.js#L43
The resource type should be resource_strings_async_downloads (string → strings).
There is another incorrect type in the same file a few lines below: https://github.com/transifex/transifex-javascript/blob/6dcede2ab419bbf95126ed61f58c838e7cae1daa/packages/api/src/transifexApi.js#L48
The type for uploading a new source file for a resource should be resource_strings_async_uploads.

@psmyrek Thanks for spotting this. We released 2.1.1 version of the package with a fix in the endpoint. Can you please verify it works on your side?

Thanks for quick update. Downloading resource strings in 2.1.1 works great.
But it looks like there is still a typo for async upload:
https://github.com/transifex/transifex-javascript/blob/9426d2f27fd11826bfe63843f7b6f34b558aa03a/packages/api/src/transifexApi.js#L48
Shouldn't it be resource_strings_async_uploads?

Oups, 2.1.2 to the rescue 😅

Great, thanks 👍🏻


Avoid using unconditional PUT

Great library, thanks for developing this! Small remark: It seems to do an unconditional PUT in https://github.com/Otto-AA/solid-acl-utils/blob/master/src/AclApi.ts#L61 which is not best practice. To avoid overwriting updates from other clients, you could either use an If-Match header (so if two concurrent requests happen, one of them will be cancelled) or a PATCH verb (so if two concurrent requests happen, both will succeed, although that may be hard to reason about).

Thanks for your comment. I've never used the If-Match header, but I will read a bit about it and then use it.
If I understood it correctly, this is for the scenario that I read the acl file, another app modifies it, and then I want to update it. Is this what you mean?

I've added an If-Match check to the saveDoc method. Could you take a look at the PR (#2 ) and tell me if this is what you meant?
It's not easy to test, because NSS support for etags and if-match is currently not available (weak etags -> if-match gets ignored; etags not provided on GET requests; if-match maybe completely ignored by NSS), so feedback from you would be very welcome :)


Add legends to plots when labels are provided; minor bug fixes for diagnostic_type='all' plots

Allow automatic plot legends when passing labels param; can be turned off with show_legend=False
Show all diagnostic plots when diagnostic_type='all' (was missing neighborhood plot)
Fix layout when plotting diagnostic_type='all'. Before, it showed an empty subplot at the top.

Hello @greg-campbell! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file umap/plot.py:

Line 269:67: E251 unexpected spaces around keyword / parameter equals
Line 269:69: E251 unexpected spaces around keyword / parameter equals
Line 273:67: E251 unexpected spaces around keyword / parameter equals
Line 273:69: E251 unexpected spaces around keyword / parameter equals
Line 273:80: E501 line too long (98 > 79 characters)
Line 359:67: E251 unexpected spaces around keyword / parameter equals
Line 359:69: E251 unexpected spaces around keyword / parameter equals
Line 359:80: E501 line too long (86 > 79 characters)
Line 365:67: E251 unexpected spaces around keyword / parameter equals
Line 365:69: E251 unexpected spaces around keyword / parameter equals
Line 375:67: E251 unexpected spaces around keyword / parameter equals
Line 375:69: E251 unexpected spaces around keyword / parameter equals
Line 1071:80: E501 line too long (86 > 79 characters)

Hi, this looks great. There are some errors, but I think they are all upstream of this. You may want to run the latest version of black over the code however to get the formatting right.

Thanks -- it looks like all the issues are now upstream, so I'll merge this. Thanks again for your work on this, and please feel free to submit more PRs like this anytime!


Web Apps - Update Connection Strings

Hi,
We are having issues with updating our connection strings using within a Windows Web App
Service: App Service
API Version: 2022-03-01
"https://learn.microsoft.com/en-us/rest/api/appservice/web-apps/update-connection-strings#connstringvaluetypepair"
The relevant details are filled in and the body is specified with:
{
"properties": {
"DefaultConnection": {
"value": "my_connection_string",
"type": "SQLServer"
}
}
}
However, the response code is 400.
In the JSON body, the error is displayed as:
{
"Code": "BadRequest",
"Message": "The parameter properties has an invalid value.",
"Target": null,
"Details": [
{
"Message": "The parameter properties has an invalid value."
},
{
"Code": "BadRequest"
},
{
"ErrorEntity": {
"ExtendedCode": "51008",
"MessageTemplate": "The parameter {0} has an invalid value.",
"Parameters": [
"properties"
],
"Code": "BadRequest",
"Message": "The parameter properties has an invalid value."
}
}
],
"Innererror": null
}
We have the Azure Landing Zone policy enabled "AppService append enable https only setting to enforce https setting" see https://www.azadvertizer.net/azpolicyadvertizer/Append-AppService-httpsonly.html
This policy is preventing the connection string from creating connection string via API, I can add the connection manually via portal without any issues.
Please could you advise, why the API is rejecting this with BadRequest even though the https only is set to true?
Thanks

@anwarnk Thanks for the feedback! We will review and get back to you on this.

@anwarnk Thanks for reaching out to us and reporting this issue. I tried to invoke the same above REST API with the below request Body and it worked fine.
{"properties": {"SqlServer1": {"value":
"Server=tcp:sqldemo.database.windows.net,1433;Initial Catalog=sqldemo;Persist Security Info=False;User
ID=sqldba;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection
Timeout=30;", "type": "SQLServer"}}}

Could you please try with the above body and check if that helps ? Awaiting your reply.

@anwarnk Thanks for getting back. I have created an Azure Policy using the above Policy Definition and also assigned it. After a few hours I tested with above request Body and it worked again.

Apologies, the policy is not "AppService append enable https only setting to enforce https setting"
It is:
"AppService append sites with minimum TLS version to enforce"
https://www.azadvertizer.net/azpolicyadvertizer/Append-AppService-latestTLS.html.
It looks like the enterprise scale has labelled them incorrectly.

@anwarnk Thanks for providing the right policy. I will check this further and get back to you.

@anwarnk Apologies for the late reply. Since the policy is to enforce the AppService append sites with minimum TLS version with default (1.2), You can try to update the policy rule as below:
"policyRule": {
      "if": {
        "allOf": [
          {
            "field": "Microsoft.Web/sites/config/minTlsVersion",
            "exists": "true"
          },
          {
            "field": "Microsoft.Web/sites/config/minTlsVersion",
            "notEquals": "[parameters('minTlsVersion')]"
          }
        ]
      },
      "then": {
        "effect": "[parameters('effect')]",
        "details": [
          {
            "field": "Microsoft.Web/sites/config/minTlsVersion",
            "value": "[parameters('minTlsVersion')]"
          }
        ]
      }
    }

With this policy in place I was able to invoke the above REST API.

Many thanks, that has fixed our issue. :-)


feat(ui): Add Quality, Language, Playback, Captions buttons to control panel

The present pull request aims to provide a solution to #2676 (Add overflowMenuButtons to the UI bar) by making the Quality, Language, Playback and Captions buttons available in the UI control panel.
Preview

Configuration
Initialize the client with a config that includes captions, language, captions and quality on controlPanelElements, as follows.
const config = {
    'controlPanelElements': [... 'playback_rate', 'language', 'captions', 'quality', ...],
};
ui.configure(config);

Changelog

docs/tutorials/ui-customization.md
The new buttons were added to the `controlPanelElements` list in the documentation.

test/ui/ui_unit.js
Additional unit tests were provided to check the submenus functionality.

ui/audio_language_selection.js
Exposes the language button as a control panel option.

ui/controls.js
A click event listener is present to hide settings menus when clicking in the control panel, now that new buttons that open said menus are present in the control panel, this measure must be prevented to avoid an "instant open-close" behavior.
An additional event listener was added to close other submenus when opening one.

ui/enums.js
New `CLOSE` and `CLOSED_CAPTIONS_OFF` icons were added, to be used in `ui/settings_menu.js` and `ui/text_selection.js` respectively.

ui/overflow_menu.less
Previously, the captions button reflected the toggle status with a color change between black and grey. Now that the button is available on the control panel, this styles were removed as the change is signalized with an icon change to maintain the white color present in the other buttons of the panel.
Another possible option would be changing between the "Material Icons Outlined" and "Material Icons Round" fonts which would require importing the former as new font.

ui/overflow_menu.js
Buttons that open submenus are initially built with a "Close" option. When present in the overflow menu, that option is replaced with a "Back" option to return to the main menu.

ui/playback_rate.js
Exposes the `playback_rate` button as a control panel option.

ui/resolution_selection.js
Exposes the `quality` button as a control panel option.

ui/settings_menu.js
Two CSS classes were added,`shaka-overflow-menu-only` (pre-existing) that hides the text label when present in the control panel, and `shaka-overflow-button` (new) which denies the "open-close" behavior described in `ui/controls.js`.
Settings menu are now also built with a close button by default, which is then replaced with a back button, in ui/overflow_menu.js, exclusively if they are part of the overflow menu.

ui/text_selecion.js
Exposes the captions button as a control panel option, and replaces the previously existing color change on-toggle.

Thank you Shaka Bot, I incorrectly solved conflicts on my last upstream merge - Fixed it on my last commit!


Issue/#50

@rultor merge

@rultor merge

@kerelape OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@kerelape Done! FYI, the full log is here (took me 2min)


ViewNode - Rendering problem for the second time

val viewNode = ViewNode(
            engine = sceneView.engine,
            modelLoader = sceneView.modelLoader,
            viewAttachmentManager = viewAttachmentManager,
        ).apply {
            disable()
            scale = Scale(-5f, 5f, 1f)
        }

        viewNode
            .loadView(
                context = this@ARActivity,
                layoutResId = R.layout.tracker_ar_view,
                onLoaded = { _, view ->

                    anchorNode.addChildNode(viewNode)

                    // Remove duplicates
                    val index = sceneView.childNodes.indexOfFirst { it.name == DESTINATION_NODE_NAME }
                    if (index != -1) sceneView.removeChildNode(sceneView.childNodes[index])

                    sceneView.addChildNode(anchorNode)
                    destinationNode = anchorNode
                },
                onError = {

                }
            )

I have this code for rendering XML view, when I enter this screen for the first time everything works ok, however after the 2nd time I enter the screen I get an error.

hi, I tried to reproduce your error, created an application using ARSceneView, restarted the scene many times, but apart from the Filament double free error, I got nothing else. Can I ask you to provide me with more data to reproduce the error?

Yeah sure, the problem is when navigating back to a Fragment/Activity where you previously loaded an XML view using ViewNode.
Here is Initial App Activity, when we pressed the button we are redirected to MainActivity. After the ViewNode is loaded in MainActivity, you need to navigate back (in the example you should use the system navigation) and then navigate to MainActivity again, this causes an error
`
class SecondActivity : AppCompatActivity() {
private lateinit var binding: ActivitySecondBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    enableEdgeToEdge()
    binding = ActivitySecondBinding.inflate(layoutInflater)
    setContentView(binding.root)

    binding.apply {
        button.setOnClickListener {
            val intent = Intent(this@SecondActivity, MainActivity::class.java)
            startActivity(intent)
        }
    }
}

}
`
Here is MainActivity
`
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private lateinit var viewAttachmentManager: ViewAttachmentManager

private var trackerViewBinding: TrackerViewBinding? = null

private var destinationNode: AnchorNode? = null
private var directionArrow: AnchorNode? = null

private var trackerLat: Double = 0.0 // REPLACE WITH YOUR COORDINATES
private var trackerLng: Double = 0.0 // // REPLACE WITH YOUR COORDINATES
private val distanceState = MutableStateFlow<Double>(0.0)
private var lastDestinationRotation: Rotation? = null

override fun onResume() {
    super.onResume()
    viewAttachmentManager.onResume()
}

override fun onPause() {
    super.onPause()
    viewAttachmentManager.onPause()
}

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    enableEdgeToEdge()
    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)

    setupView()
}

private fun setupView() {
    binding.apply {
        sceneView.apply {
            lifecycle =<EMAIL_ADDRESS>            planeRenderer.isEnabled = true
            this.mainLightNode
            // Set rendering distance to 200m
            cameraNode.far = 200f
            configureSession { session, config ->
                config.focusMode = Config.FocusMode.AUTO
                config.lightEstimationMode = Config.LightEstimationMode.DISABLED
                config.depthMode = Config.DepthMode.DISABLED
                config.planeFindingMode = Config.PlaneFindingMode.DISABLED
                config.updateMode = Config.UpdateMode.LATEST_CAMERA_IMAGE
                if (session.isGeospatialModeSupported(Config.GeospatialMode.ENABLED)) {
                    config.geospatialMode = Config.GeospatialMode.ENABLED
                } else {
                    showErrorMessage("Geospital mode not supported on this device")
                }
            }
            onSessionUpdated = { session, frame ->
                updateStatusText(session)

                drawDestinationTracker(session)
                drawDirectionArrow(session, frame)
            }
            onTrackingFailureChanged = { reason ->
                updateInstructions(reason)
            }
            viewAttachmentManager = ViewAttachmentManager(this@MainActivity, this)
        }
    }
}

private fun drawDestinationTracker(session: Session) {
    val sceneView = binding.sceneView

    if (destinationNode != null) {
        // Rotate node to camera
        val cameraNode = sceneView.cameraNode
        if (distanceState.value < 1 && lastDestinationRotation != null) {
            destinationNode!!.rotation = lastDestinationRotation!!
        } else {
            destinationNode!!.lookAt(cameraNode)
        }
        lastDestinationRotation = destinationNode!!.rotation
        return
    }

    val anchor = createEarthAnchor(session) ?: return
    val anchorNode = AnchorNode(sceneView.engine, anchor)
    // Set the node identifier
    anchorNode.name = Constants.DESTINATION_NODE_NAME
    ViewRenderable.builder()
        .setView(sceneView.context, R.layout.tracker_view)
        .build(sceneView.engine)
        .thenAccept { renderable ->
            trackerViewBinding = TrackerViewBinding.bind(renderable.view)

            val viewNode = ViewNode(
                engine = sceneView.engine,
                modelLoader = sceneView.modelLoader,
                viewAttachmentManager = viewAttachmentManager
            ).apply {
                setRenderable(renderable)
                disable()
                scale = Scale(-10f, 10f, 1f)
            }

            anchorNode.addChildNode(viewNode)

            // Remove duplicates
            val index = sceneView.childNodes.indexOfFirst { it.name == Constants.DESTINATION_NODE_NAME }
            if (index != -1) sceneView.removeChildNode(sceneView.childNodes[index])

            sceneView.addChildNode(anchorNode)
            destinationNode = anchorNode
        }
}

private fun createEarthAnchor(session: Session): Anchor? {
    val earth = session.earth ?: return null
    if (earth.trackingState != TrackingState.TRACKING) return null

    val altitude = earth.cameraGeospatialPose.altitude - 1

    return earth.createAnchor(
        trackerLat,
        trackerLng,
        altitude,
        0f, 0f, 0f, 1f,
    )
}

private fun drawDirectionArrow(session: Session, frame: Frame) {
    if (destinationNode == null) return
    if (frame.camera.trackingState == TrackingState.TRACKING) {
        val pose = frame.camera.pose
            .compose(Pose.makeTranslation(0.3f, 0f, -1f))
            .extractTranslation()
        val anchor = session.createAnchor(pose)

        if (directionArrow != null) {
            directionArrow!!.anchor = anchor
            // Rotate node to destination
            directionArrow!!.lookAt(destinationNode!!)
            return
        }

        val sceneView = binding.sceneView
        val anchorNode = AnchorNode(sceneView.engine, anchor)
        // Set the node identifier
        anchorNode.name = Constants.DIRECTION_ARROW_NODE_NAME
        lifecycleScope.launch {
            val modelInstance =
                sceneView.modelLoader.loadModelInstance(Constants.DIRECTION_ARROW_FILE)
            if (modelInstance != null) {
                val modelNode = ModelNode(
                    modelInstance = modelInstance,
                    scaleToUnits = 0.3f,
                    centerOrigin = Position(y = -0.5f),
                )
                modelNode.disable()
                anchorNode.addChildNode(modelNode)

                // Remove duplicates
                val index = sceneView.childNodes.indexOfFirst { it.name == Constants.DIRECTION_ARROW_NODE_NAME }
                if (index != -1) sceneView.removeChildNode(sceneView.childNodes[index])

                sceneView.addChildNode(anchorNode)
                anchorNode.lookAt(destinationNode!!)
                directionArrow = anchorNode
            } else {
                showErrorMessage("Unable to load model")
            }
        }
    }
}

private fun updateStatusText(session: Session) {
    val earth = session.earth
    if (earth?.trackingState == TrackingState.TRACKING) {
        val cameraGeospatialPose = earth.cameraGeospatialPose
        val geospitalPose = getString(
            R.string.geospatial_pose,
            cameraGeospatialPose.latitude,
            cameraGeospatialPose.longitude,
            cameraGeospatialPose.horizontalAccuracy,
            cameraGeospatialPose.altitude,
            cameraGeospatialPose.verticalAccuracy,
            cameraGeospatialPose.heading,
            cameraGeospatialPose.headingAccuracy,
        )
        binding.statusText.text = resources.getString(
            R.string.earth_state,
            earth.earthState.toString(),
            earth.trackingState.toString(),
            geospitalPose,
        )

//            val distanceToTracker = DistanceCalculator.calculateDistance(
//                cameraGeospatialPose.latitude,
//                cameraGeospatialPose.longitude,
//                trackerLat,
//                trackerLng,
//            )
//            distanceState.value = distanceToTracker
//
//            binding.accuracyText.text = "Accuracy: ${cameraGeospatialPose.getAccuracy()}"
//            trackerViewBinding?.trackerDistance?.text = "${String.format("%.1f", distanceToTracker)} m"
}
}
private fun updateInstructions(reason: TrackingFailureReason?) {
    binding.instructionText.text = reason?.getDescription(this) ?: ""
}

private fun showErrorMessage(error: String) {
    Toast.makeText(this, error, Toast.LENGTH_SHORT).show()
}

}
`

Sorry for late answer, did you try full debug step by step drawDestinationTracker in ViewRenderable builder part?

No i didn't, but I am sure there is some issue with ViewRenderable, because when i replace it and load 3D model everything works fine

I have the same issue, and also my friend Manuel Mengoni was not able to solve the problem.
Any news?

no new information so far

@rawello are you able to tell if it can be fixed?

@rawello are you able to tell if it can be fixed?

Hi man, I have deadlines at work, last time when I tested this code, I was unable to reproduce the error, a little later I will try to solve your problem if this will still relevant, I really want to help and do PR but so much work

@rawello are you able to tell if it can be fixed?

Hello man, I downloaded the sources, installed them in my project, there was an error before that when swiping back in “Compose” ARScene you could get a crash, I looked through the code and came to strange solutions, maybe I missed the point somewhere, but, to begin with updated all libraries except "Filament" and in some cases in ARScene change LocalLifecycleOwner to androidx.lifecycle.compose.LocalLifecycleOwner . Actually, I uncommented one line, wrapped part of the code in “Try-catch” and added a couple of lines to “ARScene”. So
in ARScene.kt am added
onRelease = { sceneView ->
                try {
                    Log.d("ARScene", "Releasing ARSceneView")
                    sceneView.arCore.destroy()
                    sceneView.session?.close()
                    sceneView.scene.removeEntities(sceneView.scene.entities)
                    sceneView.destroy()
                }
                catch (e:Exception){
                    e.message?.let { Log.e("error arscene", it) }
                }
            }

And in SceneView.kt im uncommented  runCatching { ResourceManager.getInstance().destroyAllResources() }
ps, sorry for my leg in video xd)
https://github.com/user-attachments/assets/8a0d8a6b-4f89-4fcc-b897-8b0c8e33e4bd

@rawello Where did u add onRelease? Because I don't have such a method

@konrad-thoc
oh I'm using compose, try adding similar code to onDestroy() with the order of destroy as I presented

@rawello yeah it seems to be working with onDestroy method. Thanks!!
    private fun destroySceneView() {
        try {
            val sceneView = binding.arSceneView
            sceneView.arCore.destroy()
            sceneView.session?.close()
            sceneView.scene.removeEntities(sceneView.scene.entities)
            sceneView.destroy()
        } catch (e: Exception) {
            Timber.d("$this - cannot destroy SceneView")
        }
    }

@konrad-thoc if its will work, notify me, i will to PR

problem solved, thanks

hi @rawello , I use compose and happen error when navigate popBack, for onRelease callback, should I download source and modify?

hi @rawello , I use compose and happen error when navigate popBack, for onRelease callback, should I download source and modify?

hi, yeap, you should download source, add it to your project as module and implement local copy with fix to your main project(via build.gradle and android studio UI - project structure you can add module)
sorry i havent enough time for PR that(


IFileService.watchFileChanges is not watching files not existing

IFileService.watchFileChanges is not watching files not existing. It should trigger an event when file is added just like when the file is modified or removed.
I am moving away from node based listener for user configuration file to file service based. This is needed for this.

Not convinced that should be done by the watcher automagically. I find it better to ask clients to explicitly watch on the parent folder, but I can see how what you ask is more convenient for you, but it will not happen until we revisit the file watcher implementation.

If it is only for this case, I can also live by creating the settings file if not exists and then start watching.

@sandy081 is this for global settings or workspace settings?

Global settings


Add ObservedGeneration handling to Bastions

How to categorize this PR?

/area ops-productivity
/kind enhancement
What this PR does / why we need it:
Previously, the bastion reconciler in the gardenlet reconciled more than it needed, because originally GEP-15 did not include an observedGeneration field in the Bastion status. This proved suboptimal, so this PR adds the observedGeneration.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

NONE

/milestone v1.25


3.0.0 has no dist folder deployed

Sorry, should add the ci finally for this. Let's merge #25 and I'll publish a new version

fixed in 3.0.1


fix Abilities not working after changing gamemode

This looks like a really awful hack. Is there no other way to fix this that doesn't involve time.AfterFunc? How do other projects approach this?

looks like other projects send the abilities next tick

we could send the abilities in the background task every x ticks, this what pm does here though PM has a system to mark attributes that need updating


Private Key JWT Client Authentication for OIDC sample doc does not explain how to get the Authorization code

Private Key JWT Client Authentication for OIDC sample doc [1] does not explain how to get the Authorization code which should be given in the curl command.
From where should I get it? Is it from the playground app? If so please provide steps on how to access playground app and get the token in the doc.
[1] https://docs.wso2.com/display/IS550/Private+Key+JWT+Client+Authentication+for+OIDC
curl -v POST -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" -k -d "grant_type=authorization_code&code=f2d0f7dd-df6d-34ac-9d61-851f4f0cab9f&scope=openid&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=<jwt_assertion>&redirect_uri=http://localhost:8080/playground2/oauth2client" https://localhost:9443/oauth2/token

Added a note in [1] on where to get the Authorization code from:
[1] https://docs.wso2.com/display/IS550/Private+Key+JWT+Client+Authentication+for+OIDC


Audio samples inaccessible

Hello,
I noticed that the audio samples link given in README.md is not accessible. I guess you have migrated the repository from "github.com/mindslab-ai" to "github.com/maum-ai". Changing the link manually worked.

Thanks for the issue!
Due to the company's recent name change, there was an issue. I've updated it to the current name.


Test amplify enhanced action - no doc changes

This pull request is automatically being deployed by Amplify Hosting (learn more).
Access this pull request here: https://pr-115.d2s1mlfs281q1m.amplifyapp.com/

This pull request is automatically being deployed by Amplify Hosting (learn more).
Access this pull request here: https://pr-115.d2s1mlfs281q1m.amplifyapp.com/

This pull request is automatically being deployed by Amplify Hosting (learn more).
Access this pull request here: https://pr-115.d2s1mlfs281q1m.amplifyapp.com/


Automatically generate changelog for release

See #510
Changelog can be generated based on the commit tags (e.g. chore:, feat:, etc). It's pretty simple, Spoon has a nodejs script for it, but it's hard-coded for Spoon.
We could adapt that or roll our own in Python (I have a similar script lying around).

As I see this issue and I'm always scared about the currently used infrastructur, have you thought about using jreleaser for releases and changelogs https://jreleaser.org/guide/early-access/configuration/release/changelog.html ? The tool is getting more popularity for the tedious task of releasing.


Create a workflow to Withdraw Items by Barcode

Given a list of item barcodes, make the following changes:
Item
Status = withdrawn
Loan type = withdrawn
Item suppress = True
Corresponding Holdings
Suppress Holdings
Change Holdings location = Evans withdrawn
Add note: The language of the note should be provided by a variable
Corresponding Instance
Suppress Instance if there is no longer an attached unsuppressed holdings
This workflow should end by generating an email to notify a recipient, provided by a variable of the success of the workflow. No specific information about the workflow needs to be included in the email, other than that the workflow has completed.

At Item level: The temporary location should be set to withdrawn.


mlflow cluster

---
apiVersion: "kubedirector.hpe.com/v1beta1"
kind: "KubeDirectorCluster"
metadata:
  name: ""
  namespace: "hpecp-tenant-4-sc2tv"
  labels:
    description: ""
spec:
  app: "mlflow"
  appCatalog: "local"
  connections: {}
  roles:
    -
      id: "controller"
      members: 1
      resources:
        requests:
          cpu: "2"
          memory: "4Gi"
          nvidia.com/gpu: "0"
        limits:
          cpu: "2"
          memory: "4Gi"
          nvidia.com/gpu: "0"
      #Note: "if the application is based on hadoop3 e.g. using StreamCapabilities interface, then change the below dtap label to 'hadoop3', otherwise for most applications use the default 'hadoop2'"
      podLabels:
        hpecp.hpe.com/dtap: "hadoop2"

done


Implement logic for Update Item Endpoint

Description
Items should only be updated by users with the proper permissions.
Possible Implementation
Update authorize function in ItemUpdateRequest.php to verify a User's permissions.

Hey team! Please add your planning poker estimate with ZenHub @IanjhPhillips @JasonGadoury @pascwhale @RobertoNittolo

Something i forgot to mention about this task is that it should return Inertia::render(...) instead of view(...), might want to ask front end what the component will look like


One document, multiple downloads

I am having the following problem. When I open the first document in pdf.js viewer and click the download button, that document is downloaded. But when I open a second document, and click download, that document is downloaded two times. And if I open a third document, click download, the document is downloaded three times. And so on. The problem here is, I think, that the event to download is being binded to the download button multiple times. Do you have any ideia how I can resolve this issue?

Also having this issue as well.  My app users are reporting that after viewing a few different PDF documents within the app, a download of a document will happen multiple times.  In one case, 95 (!) copies of the PDF found their way into his downloads folder


Support custom registries

Required for docs.rs with custom index location as stated in this comment.
UPD: Tested with docs-builder example for a private registry crate and it worked fine with<EMAIL_ADDRESS>url. Still doesn't work with ssh though.

Oh, thanks for noticing missed that commit at local rebase. Fortunately git remembers it

Thank you so much for this PR!


CPU load goes high

Hi,
I am using this nice module to enable dynamic upstream resolver with keepalive.
Here is my upstream configuration:
resolver <IP_ADDRESS>:8600 ipv6=off valid=1s;
upstream active.vault.service.consul {
    server active.vault.service.consul:8200 resolve max_fails=1 fail_timeout=10s;
    keepalive 512;
    keepalive_requests  1024;
    keepalive_timeout 240s;
}

upstream vault.service.consul {
    server vault.service.consul:8200 resolve max_fails=1 fail_timeout=10s;
    keepalive 512;
    keepalive_requests  1024;
    keepalive_timeout 240s;
}

My Nginx is running in front of Consul which is acting as a dns resolver. The system works fine until I see the following error:
[error] 84#84: upstream-dynamic-servers: 'active.vault.service.consul' could not be resolved (3: Host not found)
Though everything was up during that time, I see the above error and the system cpu goes high to 100% and stuck on that.
Is there anything I am missing in the configuration?
Thanks.

nginx plus can use  or nginx-upstream-dynamic-servers
nginx plus：https://www.nginx.com/products/nginx/load-balancing/
nginx-upstream-dynamic-servers：https://github.com/GUI/nginx-upstream-dynamic-servers
not free nginx


Add support for Session Cookies

Addresses #202
Todo

[x] Add functionality to create a session cookie
[ ] Add functionality to verify a session cookie
[ ] Write tests
[ ] Write documentation

:octocat:

Postponed to after 5.0


CUDA 12.6 build failure

MAGMA 2.8.0 building with CUDA 12.6 fails. At the same time building with CUDA 12.5 succeded.
I attached build error log: log.txt

This should be resolved as of e8064dc

Did you test this against CUDA 12.6?  I applied this change and it does not fix things.

for context, i fixed all the min/max problems i saw because of these macros and the change set was huge:
1874 files changed, 13180 insertions(+), 13174 deletions(-)

Here are my patch files.  Do not use them because they contain global search and replace, including in comments and non-source files, but this is the changeset required for me to build with CUDA 12.6.
I recommend that you use C convention and name your macros MIN and MAX, and then use those globally.  I used std::min/max, which isn't ideal since I had to then replace cases to std::fmin/fmax where appropriate.
0001-fix-fetch-macro-with-MIN.patch
0002-change-all-the-min-max-stuff.patch

Yes, we tested it and it seems to work fine.

Thank you Jeff!
We will probably work on a rename like magma_min or MAGMA_MIN for a better fix to this problem.
Thanks,
Ahmad

On Dec 10, 2024, at 6:09 AM, Jeff Hammond @.***> wrote:
Here are my patch files. Do not use them because they contain global search and replace, including in comments and non-source files, but this is the changeset required for me to build with CUDA 12.6.
I recommend that you use C convention and name your macros MIN and MAX, and then use those globally. I used std::min/max, which isn't ideal since I had to then replace cases to std::fmin/fmax where appropriate.
0001-fix-fetch-macro-with-MIN.patch https://github.com/user-attachments/files/18078291/0001-fix-fetch-macro-with-MIN.patch
0002-change-all-the-min-max-stuff.patch https://github.com/user-attachments/files/18078292/0002-change-all-the-min-max-stuff.patch
—
Reply to this email directly, view it on GitHub https://github.com/icl-utk-edu/magma/issues/7#issuecomment-2531262451, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIYDCWSMYVRGATWOWMZWMFT2E3DV5AVCNFSM6AAAAABMUCAVWCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMZRGI3DENBVGE.
You are receiving this because you modified the open/close state.


[Google Chrome] asks for full disk access, even though I have already set the permissions.

Extension
https://www.raycast.com/Codely/google-chrome
Raycast Version
1.81.2
macOS Version
Sonoma 14.6.1
Description
when I use the Google Chrome extension, it asks for disk access again, even though I have already set the permissions. After restarting Raycast, it works, but sometimes later, it occurs again.

Steps To Reproduce
as description part describe~
Current Behaviour
No response
Expected Behaviour
No response

@a-laughlin anyone can help me 😳

Not sure why you're having that issue. Raycast doesn't have full disk access for me. The extension works fine. I never see that message. I don't think the issue you're experiencing is this extension.


When run rcnn_demo, MATLAB gives: Error using caffe Expected 3 arguments, got 2

Hello everyone,
I used the up-to-date CAFFE and got the R-CNN source code by cloning the repository: git clone https://github.com/rbgirshick/rcnn.git. I successfully finished the RCNN startup, rcnn_build() and got the key -2 after running key = caffe(‘get_init_key’). But when I run the rcnn_demo, I got the ERROR in MATLAB:
Welcome to the PASCAL demo
Running in GPU mode
(To run in CPU mode, call rcnn_demo(demo_choice, 0) instead)
Press any key to continue
Initializing R-CNN model (this might take a little while)
Error using caffe
Expected 3 arguments, got 2

Error in rcnn_load_model (line 27)
rcnn_model.cnn.init_key = ...

Error in rcnn_demo (line 59)
rcnn_model = rcnn_load_model(rcnn_model_file, use_gpu);

Need your help. THANKS！

Best,
siqin

the new version of CAFFE, to initialize caffe you need 3 parameters: prototext def, model name and a string to indicate"test" or "train".
best

I find rcnn_model.cnn.init_key = ...
caffe('train', rcnn_model.cnn.definition_file, rcnn_model.cnn.binary_file);  in rcnn_load_model function. Do I change the the parameters there ?  Could you tell me more specifically ? Thanks you very much!

I  add another parameter 'train' or 'test' to rcnn_model.cnn.init_key = ...
caffe('train', rcnn_model.cnn.definition_file, rcnn_model.cnn.binary_file).
I  met the ERROR:
Error using caffe
Unknown command 'set_phase_test'
Error in rcnn_load_model (line 34)
caffe('set_phase_test');
So I commet the 'caffe('set_phase_test')' and I succeeded. And is that right ? Thank you very much!

caffe("init", prototext def filename, model filename, "test") for forward pass

Solved my probem~

how solved?

It's solved because either you should use the Caffe 0.99 that's been provided and Matlab 2012 or you modify the file rcnn_load_model to change the caffe call to caffe("init", prototext def filename, model filename, "test") and comment out the set phase test portion.

@xksteven  "caffe("init", prototext def filename, model filename, "test") and comment out the set phase test portion" using caffe master (0.9999 version) and Matlab 2014a?

I still get the message

Undefined function 'caffe' for input arguments of type 'char'.
Error in rcnn_load_model (line 27)
rcnn_model.cnn.init_key = caffe('init', rcnn_model.cnn.definition_file,
rcnn_model.cnn.binary_file,'test');

@lolongcovas hello... can you indicate to me the path to find the caffe_ in order to realize how to set the arguments?

Error using caffe_
Usage: caffe_(api_command, arg1, arg2, ...)

The only solution is to follow the instructions and implement the method using Caffe-0.999 and Matlab R2012b

Where caffe.cpp is located in caffe-0.999?

replace caffe("init", prototext def filename, model filename) with  caffe.Net(rcnn_model.cnn.definition_file, rcnn_model.cnn.binary_file, 'test');

@neouyghur
It doesnt work either:
Undefined variable "caffe" or class "caffe.Net".
Hi guys, I dont have Matlab 2012b. My lab only have 2014a. Is there any solution to this?
I dont know if this would work, but would someone willing to share the file caffe.mexa64 built for 2012b.
My Linux(64bit) gcc/g++ version is (Ubuntu/Linaro 4.7.3-12ubuntu1) 4.7.3
Thank you in advance.

Hi,
Here is the caffe.mexa64 for caffe-0.999. If you need the one for newer
versions of caffe, let me know.  But i could find this file so you can have it.
On Sat, Jul 2, 2016 at 12:59 PM, rimphyd<EMAIL_ADDRESS>wrote:

@neouyghur https://github.com/neouyghur
It doesnt work either:
Undefined variable "caffe" or class "caffe.Net".
Hi guys, I dont have Matlab 2012b. My lab only have 2014a. Is there any
solution to this?
I dont know if this would work, but would someone willing to share the
file caffe.mexa64 built for 2012b.
My Linux(64bit) gcc/g++ version is (Ubuntu/Linaro 4.7.3-12ubuntu1) 4.7.3
Thank you in advance.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/rbgirshick/rcnn/issues/36#issuecomment-230088862, or mute
the thread
https://github.com/notifications/unsubscribe/AJu0mphwjp41oYLa8aj6-nT2sStam0IYks5qRhNmgaJpZM4DwACl
.

Aky97567, I'm sorry do you have that file ?


Design panel with mousebites away from pins

Avoid v-scoring - depanelling will just lead to ripped pads at edge.

This was my current plan for panelling.

That looks pretty good but I think we might need additional mouse-bites. I'd rather err on the side of too many than too few for the first panels.

We should also look into standard panel sizes and make sure that we're not designing a panel that's awkward or wasteful for typical assembly machines. Might be worth asking the manufacturer to give a penalization recommendation.


[BUG] {OAK-D-PRO-W POE C++ Fatal Error on MSS CPU}

After the recent merge from develop branch to main, I am not able to connect to OAK-D-PRO-W POE in ROS. I am getting the following error
[19443010116AFC1200] [<IP_ADDRESS>] [86.609] [system] [critical] Fatal error. Please report to developers. Log: 'Fatal error on MSS CPU: trap: 09, address: 801F6FC8' '0'

Before the merge, everything was working fine. I am pretty sure develop branch introduced this bug because before the merge, I wanted to check develop branch and got the same error. Can someone please help me out?

Hi @samialperen
Thanks for the report. We'll check it out!
Do you mind running calibration_dump example (either C++ or Python variant) and posting the output?
Also, do you observe the error in any other scenario as well (eg some example in this repository)?

calibration.txt
Above is the output for calibration dump
I managed to use cam_test.py under depthai-python. I can also use rgb_stereo_node.launch or rgb_publisher.launch in ROS. Seems the error happens with stereo_inertial_node.launch

@samialperen
Do you mind testing with stability_test branch as an additional data point?
Otherwise will check this out tomorrow

here you go @themarpe
calibration-stable_test.txt

@samialperen
I meant against the ROS example or any other that is failing for you

@themarpe same error occurs again on depthai-core stability_test branch with ROS example stereo_inertial_node.launch
[19443010116AFC1200] [<IP_ADDRESS>] [1351.541] [system] [critical] Fatal error. Please report to developers. Log: 'Fatal error on MSS CPU: trap: 09, address: 801F6FAC' '0'

Thanks, I'll test this out tomorrow morning. Will get back to you as soon as I have findings

@samialperen
We've found some potentially relevant fix on this issue - we'll be doing an update in develop soon and a release afterwards.

develop branch updated with commit https://github.com/luxonis/depthai-core/commit/c877409:

Update FW:

fix for high system load crash, especially on PoE devices
fix for OV9282 as MonoCamera on RGB/CAM_A socket (issue was black image)

(develop on depthai-python also updated)

@alex-luxonis @themarpe Thank you very much guys! I will verify the fix today.

@themarpe @alex-luxonis OAK-D-W-PRO POE works fine with stereo_inertial_publisher.launch in ROS with high FPS now. Thanks a lot for the fix :+1: . I am closing the issue.


zwaad: remove dr4 from URL

Maybe it is worth to show expert the most recent DR we have. We could just remove /dr4 from our URLs to achieve it

I thought it's already like that...

https://github.com/snad-space/zwad/blob/789c3bd36125bc094dd8a081a55962ee4b408ec6/zwad/aad.py#L101


Fix missing titan histogram stats

What problem does this PR solve?
Fix missing titan histogram metrics.
What is changed and how it works?
The related code is removed by mistake when resolving conflicts in https://github.com/tikv/tikv/pull/6328, so add it back.
Related changes

Need to cherry-pick to the release branch

Check List

Manual test (add detailed scripts or steps below)

Release note

/release

/run-integration-br-test


Move trade interface to strata-basics

Add new interface FinanceTrade in strata-finance

Merged simple refactoring change.


Further customization

In here, we display currency like "10 000,20€" or "10000,20€" but not like "10,000.00€".
One should be able to customize the "thousand separator char" and the "decimal separator char".

Agree

Sorry for the very late response and thank you for your suggestion, I'll provide the requested options in the next release, later this week.

Hey! Thank you very much :)

From v2.1.0 you can customize group and decimal separators
var formats = {
  GROUP_SEP: ' ',
  DECIMAL_SEP: ','
};
expect(currency(10000.201, '€', 2, true, formats)).toEqual('10 000,20€');

var formats = {
  GROUP_SEP: '', // Passing an empty string will get rid of the group separator
  DECIMAL_SEP: ','
};
expect(currency(10000.201, '€', 2, true, formats)).toEqual('10000,20€');

Awesome


Providing PARDISO support while building R-INLA from source.

As a continuation of this, I need to be able to build R-INLA with PARDISO support from source, as the binaries fail on RHEL8 due to its binary build targeting libraries not on the system:
If I try to use the binary version of INLA_22.05.07 (upgraded from 21.05.02) under R-4.0.4, I get:
> inla.pardiso.check()
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /tmp/terjekv/tmp-installs/R-INLA-21.05.02-
foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/libcrypto.so.1.1: version `OPENSSL_1_1_1b' not found (required by /lib64/libk5crypto.so.3)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /tmp/terjekv/tmp-installs/R-INLA-21.05.02-
foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/libcrypto.so.1.1: version `OPENSSL_1_1_1b' not found (required by /lib64/libk5crypto.so.3)
character(0)
attr(,"status")
[1] 1
Warning message:
In system(paste(shQuote(inla.call.no.remote()), "-m pardiso"), intern = TRUE) :
  running command ''/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl.run' -m pardiso' had status 1

If I try upgrade to the testing version INLA_22.12.12-2 I get:
> inla.pardiso.check()
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/first/libRmath.so.1)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/first/libR.so)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/libgsl.so.23)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/first/libpardiso.so)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/libgfortran.so.5)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/libicuuc.so.66)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/libicui18n.so.66)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/libmvec.so.1)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/first/libRmath.so.1)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/first/libR.so)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/libgsl.so.23)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/first/libpardiso.so)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/libgfortran.so.5)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/libicuuc.so.66)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/libicui18n.so.66)
/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/libmvec.so.1)
character(0)
attr(,"status")
[1] 1
Warning message:
In system(paste(shQuote(inla.call.no.remote()), "-m pardiso"), intern = TRUE) :
  running command ''/tmp/terjekv/tmp-installs/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb/software/R-INLA/21.05.02-foss-2020b-R-4.0.4/INLA/bin/linux/64bit/inla.mkl.run' -m pardiso' had status 1

Would it be possible to provide instructions for adding PARDISO to the building of R-INLA from source?

Can you try with R-4.2 and the testing version of R-INLA?  After doing the install, then the following and chose 'Alternative 3'.
Let me know if that does not work, like with
inla(y~1, data=data.frame(y=0))

library(INLA)
inla.binary.install()

Looking for Version_22.12.12-2 and os=''
Available alternatives:
Alternative 1  is  ./CentOS Linux-6 (Core)/Version_22.12.12-2/64bit.tgz
Alternative 2  is  ./CentOS Linux-7 (Core)/Version_22.12.12-2/64bit.tgz
Alternative 3  is  ./CentOS Stream-8/Version_22.12.12-2/64bit.tgz
Alternative 4  is  ./Fedora Linux-37 (Workstation Edition)/Version_22.12.12-2/64bit.tgz
Alternative 5  is  ./Ubuntu-18.04.6 LTS (Bionic Beaver)/Version_22.12.12-2/64bit.tgz
Alternative 6  is  ./Ubuntu-20.04.5 LTS (Focal Fossa)/Version_22.12.12-2/64bit.tgz
Alternative 7  is  ./Ubuntu-22.04.1 LTS (Jammy Jellyfish)/Version_22.12.12-2/64bit.tgz
Chose alternative [1:7]
1:

That works, but that leaves us hanging for RHEL9 as well as for older versions of R that we do support. Without the ability to build support in a consistent fashion for our users it is hard to guarantee anything when it comes to compatibility with other packages or our standard software distribution. :(
Would it be possible to provide some documentation on how to proceed to build PARDISO support consistently during our default R install (which is based on EasyBuild)?

Currently, we only provide packages for R-4.2, as its a mess to build packages for different versions of R.
I see we need to make some changes internally to install the R-part of the package with
remotes:install_github("hrue/r-inla/rinla")
We soft-link the documentation internally and the R installer does not like that.
Anyway, this is possible. The easy way out then to use the precompiled binaries provided by 'inla.binary.install()' for R-4.2 and use them in the R-4.0, R-4.1 package, with
library(INLA)
inla.setOption(inla.call= "path...")
inla.setOption(fmesher.call = "path...")
where "path...", is like

inla.getOption('inla.call')
[1] "/home/hrue/R/x86_64-redhat-linux-gnu-library/4.2/INLA/bin/linux/64bit/inla.mkl.run"

if you rather want to compile those from the source yourself, then I can provide the build directory I have for CentOS8.

For us, the advantage of building from source means that we are certain that library compatibility works out across the different versions of R, other R modules, and their dependencies. I'm up for putting in some effort in bundling as an option to the EasyConfig if they have licenses and such in order. :)

Thanks! I'll poke it a bit! The file has been fetched, so if you wish to remove it, feel free. :)

You can install directly from the R-source, if one replaces the soft-links, like just rsyncing the r-inla/rinla directory to somewhere else with with '-L' option, and then using remotes::install_local()  to install it. The binaries can be placed elsewhere as discussed earlier.


Don't suggest replacing builtin.open() with Path.open() if the latter doesn't support all options

Summary Check that closefd and opener aren't being used with builtin.open() before suggesting Path.open() because pathlib doesn't support these arguments.
Closes #7620
Test Plan New cases in the fixture.

Nice, thanks. Does open support all the other kwargs?


PUT response doesn't match GET response for Virtual Interfaces

Issue type
[ ] Feature request
[X] Bug report
[ ] Documentation

Environment

Python version:  3.6
NetBox version:  2.2.8

Description
When I request virtual interfaces, the virtual_machine field is expanded to include the VM's details.
But when I PATCH a virtual interface, the virtual_machine field is simply the id of the VM.
GET http://netbox-frontend.ninevirt.docker/api/virtualization/interfaces/13/:
{
    "id": 13,
    "name": "eth0",
    "virtual_machine": {
        "id": 4,
        "url": "http://netbox-frontend.ninevirt.docker/api/virtualization/virtual-machines/4/",
        "name": "development-root-v3-xenial"
    },
    "enabled": true,
    "mac_address": "52:54:00:B5:BC:74",
    "mtu": null,
    "description": ""
}

PATCH http://netbox-frontend.ninevirt.docker/api/virtualization/interfaces/13/:
{
    "id": 13,
    "name": "eth0",
    "virtual_machine": 4,
    "enabled": true,
    "mac_address": "52:54:00:B5:BC:74",
    "mtu": null,
    "description": ""
}

This happens because we're using separate read and write serializers for most endpoints. (The write serializer allows for setting related fields using only a primary key, whereas the read serializer returns a nested representation of the related object.) I'd love to consolidate these functions into a single serializer for each object, but haven't found a practical way to do so yet.


[WIP] qt+afp: Create GUI for Avian Flight plans

This draft PR creates a experimental UI fronted for Avian Flight Plans.

Needs to be rebased against latest 4.2 branch to pass CI.


Changing unrefernced file cleanup stats based MergeStats metrics version to 2.11

Description
Changing unrefernced file cleanup stats based MergeStats metrics version to 2.11
This change should be merged after backport PR https://github.com/opensearch-project/OpenSearch/pull/10333 is merged to the 2.x branch
Related Issues
Resolves #[Issue number to be closed when this PR is merged]

Check List

[x] New functionality includes testing.

[x] All tests pass

[x] New functionality has been documented.

[x] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff
[x] Commit changes are listed out in CHANGELOG.md file (See: Changelog)
[x] GitHub issue/PR created in OpenSearch documentation repo for the required public documentation changes (#[Issue/PR number])

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Build failure is due to flaky test: https://github.com/opensearch-project/OpenSearch/issues/10006


Request for an official Docker image

It would be great if you could provide an official docker image (published on DockerHub) with speccy installed from NPM so that it could easily be referenced by different CI tools natively.
I found this, but it lacked any credibility and doesn't include the Dockerfile source.
It would be something as simple as this added to this repo:
FROM node:latest
RUN npm install --global speccy

I created a PR to get the conversation started:
https://github.com/wework/speccy/pull/156

@philsturgeon, thanks for merging that. Do you think you'd want to publish official images to Docker Hub?

Fixed in #169


Updated branding and licence

Don't see why that Travis CI build should have failed. Kicked it off again.


HTTP Post support for dependency declaration

(Could not find a way to send a direct message. Communicating through Pull request and some stub code instead)
AMD spec obviously does not allow for require a dependency using an HTTP Post. Well, you can do post internally, but no way to pass the post data.
I came upon realization that I if I could get my JSON-RPC requests through curl.js somehow, along (together) with text template to render it and the JS code to drive it all it would be a happy day on my street. I, obviously, can require template text and JS, but JSON-RPC requires that I post some data (and get an answer back).
This is what I have in mind:
require(
    ['js/pagecode', 'text!template.html', ['jsonrpc!/jsonrpchanlder.ashx', dataObjToGiveToPlugin] ]
    , function(Code, Template, Data){ /* bam! */ }
)

Passing array (could be Object, does not matter much) within the dependencies array is obviously not in AMD spec, but does not break the spec adherence.
I looked at Curl.js's code and was happy (again) to find it easy to bend and add non-string as supported dependency arg. The pull request is the very minor alteration I put in to make non-strings (arrays) args work without seemingly breaking the standard functionality.
I don't actually expect you to pull, I am rather perfectly happy keeping this change in my tree only. However, wanted to pitch something like this to you for future consideration.

Only 76da26c... is the one that contains POST-specific changes. The other commits relate to other things.

By the way here are the two reasons I (personally, subjectively) would like to have this "Post Data" functionality for:

We have same-domain JSON-RPC (the proper, spec v2  kind) calls hitting server for all internal control interfaces. Piling separate callback there for data is just ugly.
We have a number of cross-domain data pushes in transaction capture interfaces and pushing the ugly easyXDM invocation code into a Curl.js plugin would be sweet.

Hey Daniel!
This sounds like an excellent use case for a plugin like you suggest.  I'm hesitant to introduce the array-as-a-module-id feature, though.
There are, however, potentially many other ways to solve this.  Is the information in dataObjToGiveToPlugin static and known at design time?  Load time?  Or just at run time?
-- J

re: Is the information in dataObjToGiveToPlugin static and known at design time? Load time? Or just at run time?
Runtime. It's a result of user's interactions with the control interface / choices. Usually is a key-value object with "updated" values.

re: This sounds like an excellent use case for a plugin like you suggest. I'm hesitant to introduce the array-as-a-module-id feature, though.
Somehow, once the usefulness of this is realized by the crowd, i would suspect users to be picketing outside of AMD-Implementation "building", demanding "POST" functionality of this kind. I would feel an Object (opposed to Array) would be an easier sell.
I'm going to roll with "POST"-ability patches for our own use cause I think it will make our coding lives much easier.

Hey @dvdotsenko, the internals of curl.js changed significantly since you added support for POSTs and array dependencies.  Actually, all of the same functions are there, but they were moved onto a core object so they could be overridden by shim modules.  Take a look at the latest 0.6.1 codebase.
Regards,
-- John


Build e2e test cases for kube-mesos

When releasing, e2e test cases help on the confidence; it's better to re-use it as much as possible. Those e2e test cases will also up-merge to master for next release.

@deads2k , kubectl is used in e2e, any suggestion how to get one kubectl for e2e? k8s release package is too big :(.
And I think we need to copy e2e test cases from kube.

@deads2k , kubectl is used in e2e, any suggestion how to get one kubectl for e2e? k8s release package is too big :(.

How big is the release package?  You'd be able to pin it to a stable level and avoid re-downloads since kubectl is backwards compatible.

How big is the release package? You'd be able to pin it to a stable level and avoid re-downloads since kubectl is backwards compatible.

I'll download one and put it into docker for e2e test. That'll avoid re-download :).


Upgrade MUI to v6 and handle breaking changes

We'd need to handle breaking changes, migration steps, and deprecated APIs:

[ ] Identify and fix any breaking changes introduced in MUI v6
[ ] Handle deprecated props / components / features and replace them with the updated alternatives
[ ] Test the functionality to ensure it remains the same after the upgrade

Refs:

https://mui.com/material-ui/migration/upgrade-to-v6/
https://mui.com/material-ui/migration/migrating-from-deprecated-apis/

Using the official codemod(s) is fine, but let's make sure to run npm run lint afterwards.

To support some updates in #499, I've upgraded MUI to v6. So far, I haven't found any issues, but the tasks in the checklist should remain the same.

Nice job with ClassicLegend, @ellawang9! There's only one migration issue: getting the dropdowns to fill up the available space. I think this is related to finding Grid2's equivalent of the Grid's xs prop when set to true.

Thanks for pointing this out, Luis! Should be fixed now.


How to adopt the GREAT model for a program repair task?

I would like to evaluate the GREAT model for a program repair task. To start with, I am thinking to make a comparison with Hoppity. Hoppity is mostly compared where there is one AST node difference between the buggy code and the correct code.
I am thinking to use one pointer to the buggy node location and modifying the code so that it can also output the edit operation (i.e., add/remove/replace) and value as a stretch.
Is there a nice way to modify this model for such a task? I presume it would be a non-trivial change!

Hi! This definitely sounds like something that could be done, but before going down the rabbit hole of adapting the current toolkit for this task, I want to point out that this sounds like a perfect fit for the PLUR toolkit (paper, repo). That work was all about unifying many tasks into a single representation that has this intuitive graph-style encoder and sequence (with edit operation) decoder. We showed that the GREAT model works well for a host of tasks in that work.
One downside: the repo I linked before only includes the task representation part; I have been told that the modeling toolkit will be open-sourced at some point in the not too distant future. Let me know if this is a useful direction; if not, I can definitely share some pointers for expanding the current repo to address other tasks.

Hi Vincent, This was exactly my plan. After reading the PLUR paper, my impression was one major contribution of that paper is the open-sourced framework of PLUR that others can use.
I actually asked for the artefact here but have not heard back.
Github readme states:
The models and the training code from the PLUR paper are not yet part of the current release. We plan to release it in the near future.

But I am in limbo as I do not know when the artefact would be released.

That makes sense. I've been periodically pinging the people on that team about their open-sourcing efforts and am cautiously hopeful that there will be updates in the near future. My advice would definitely be to lean towards waiting on this a bit longer, rather than adapting this code to Hoppity. While we could incorporate a simplified version of the ToCoPo decoder in here, it would probably be quickly made obsolete by the other toolkit.
In fact, I see the PLUR effort as strictly superceding this repository when it is fully released; the modeling toolkit that powers the PLUR toolkit will be much more comprehensive. So maintenance on here will probably stop at that point.


feat(exoflex): simple tab component without lazy load

Will resolve #171.
For this PR there fill be no lazy load feature yet but it will be added on another PR.
TODO:

[x] Tab Bar
[x] Tab Bar Indicator
[x] Tab Bar Animation
[x] Custom Tab Bar styling
[x] Custom Tab Bar Indicator styling
[ ] ~Custom Tab Bar Animation~
[x] Tab Content (No Lazy Load)
[ ] ~Tab Content (Lazy Load)~
[x] Change Tab Content using Tab Bar
[x] Change Tab Content using Swipe
[x] Prop to toggle Tab swipe
[x] Prop to toggle Lazy Load
[x] Web Accessibility
[x] Native Accessibility
[x] Tests

Hey @kodefox/infra, what do you think of this approach? If you guys like it, we could continue to build lazy load support but if not, we could just close this and use react-native-tab-view instead.