feat: Keep track updatedAt as part of the SWR state

Seeding work to keep track of the updatedAt time.  #1703
At the top of my head I can think of a few things to do:

[x] Are tests exhaustive enough?
[ ] Updates to other parts of the SWR API (?)
[ ] Documentation

Thank you @icyJoseph — the implementation looks great! One more thing I think we should include in the test is reflecting the updatedAt state change in other hooks, that are using the same key.
And also, I'd like to hear your idea about the name "updatedAt" here. Should we call it "fetchedAt"? Simply because I've been thinking about this "updatedAt" name for a while and it feels that the mutate() calls should be counted as "updates" too. But in some cases their updates are not that easy to track.

Thank you @icyJoseph — the implementation looks great! One more thing I think we should include in the test is reflecting the updatedAt state change in other hooks, that are using the same key.

Right, if we have two or more hooks looking at the same key, updatedAt ought to be the same in those. I'll write a test for it.

And also, I'd like to hear your idea about the name "updatedAt" here. Should we call it "fetchedAt"? Simply because I've been thinking about this "updatedAt" name for a while and it feels that the mutate() calls should be counted as "updates" too. But in some cases their updates are not that easy to track.

I see, mutate calls can take many shapes, from a simple call to fetch fresh data, to a controlled call where we are in total control of the new data.
I do agree that fetchedAt would be more appropriate if the intention is to tell the user when was the last time the fetcher was called, rather than the last time the data was mutated.
Here, broadcastState is called twice, src/utils/mutate.ts wouldn't it be enough to get Date.now() before calling broadcast state in these cases?

Here, broadcastState is called twice, src/utils/mutate.ts wouldn't it be enough to get Date.now() before calling broadcast state in these cases?

It's a bit tricky, since the updatedAt state only exists locally in the hook, not in the cache. So when a useSWR hook mounts, it can't know what's the last time the data gets updated.
After some research, I think we should change the structure of the cache into "key → { data, error, isValidating, ... }". Currently it is "data_key → data", "error_key → error", ... which is not very extendable.

I agree with your last point there.
Just as an update, over the holidays I wrote a test to check that other hooks consuming key should update their updatedAt key to the latest.
For better or worse, the test failed, so I've been making some changes to turn it green.
While I am at, I've come to believe that eitherlastFetchedAt or fetchedAt make much more sense.

Now I am back from my break. I see I've been making an error on my tests. Mostly the call to mutate, and expecting that calls to it should reflect similar updatedAt in the rest of hooks.

One more thing I think we should include in the test is reflecting the updatedAt state change in other hooks, that are using the same key.

In this case, we are talking purely about calls to revalidate, for instance, when a hook mounts with `revalidateOnMount, or when the window is refocused, right?
I'll rewrite the two tests that use mutate. I think we are nearly there with this feature.

@shuding how do you feel about the PR now? I think we just need to decide a name for the prop:

It would be helpful to introduce a new state updatedAt, which is a timestamp representing the last time we get the data from the fetcher or mutator.

updatedAt: As you said before, this implies the mutator changes, and those, at the moment, are hard to catch. I did give it a go at some point, and the code got out of control. I believe a global map/table would be necessary to achieve this.
lastFetchedAt: In the current implementation, whenever the re-validate function actually starts a new request, we call Date.now() right after the await statement, update this hook, and broadcast this property to other hooks.

Other names could be fetchedAt, revalidatedAt (though the name doesn't imply fetch that happens on mount).

@shuding Alright, then should we wait on your PR first, and then adapt this branch to that?

What happened to this PR? I was thinking of writing some similar functionality myself.

sad that it hasn't been implemented.


CRA over external interface dev build

Hey,
I am trying to build the CRA over a dev instance. I am using an external interface.
So for example my Django is bound to port <IP_ADDRESS>:443 and my cra is bound to port <IP_ADDRESS> 3000
But I am accessing the website with:  example.test.com externally. But the scripts for cra are not loading in dev from example.test.com:3000. As I am running in DEBUG instance. How can I make a non localhost setup work?
Sorry this is a bit confusing but happy to provide more context and any questions you have.

Is example.test.com pointing to an external IP? Internal IP? It sounds like it might be a firewall issue if CRA is indeed listening on <IP_ADDRESS>:3000. Are you sure port 3000 is open and pointed at your machine?
I'm not sure how this is related to this library at all, as development assumes everything is hosted locally. If you're trying to access a site for testing on other devices, try creating an A-record subdomain to a local IP address (e.g. "192.168.x.x") and then turning off your dev machine's firewall for intranet connections. Devices on your same network will be able to access your site without exposing everything to the wider internet. That's how I do it, anyway...


CRT Secure Visual Studio warnings for stb_image_write.h

If I compile stb_image_write.h in Visual Studio 2017 (likely previous versions as well) I get the following sort of errors, "This function or variable may be unsafe", for functions such as fopen, sprintf, etc. Is there any anticipation for fixing these? I understand they used to be warnings (they're errors now), but it would be nice to avoid having to turn off CRT deprecation errors just for this header.
I can probably whip up a solution if need-be. I can't believe I haven't see anything here about this yet.

Wrong place!


feat: support lazy loading inside artist and my collection sticky tab pages [WIP]

This PR resolves CX-3706
Description
Over the past few weeks we have noticed that diffusion is breaking quite often due to increased traffic, a lot of this traffic can be avoided if lazy load tabs that are using diffusion but are barely opened. This PR will give us some time to improve diffusion to handle more traffic and we can potentially no longer lazy load any of this tabs.
This PR does not change any of the exiting logic, I mainly refactored the tabs to be separate query renderers and fixed tests that broke.
It's tricky to get the skeleton right on some of the tabs because we don't know if the user has data or not and what to draw there. I am open to suggestions there
https://github.com/artsy/eigen/assets/11945712/aa108a34-0fe6-4b8c-9575-5a1a5e106f3d

PR Checklist

[x] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

lazy load my collection and artist screens - mounir

Need help with something? Have a look at our docs, or get in touch with us.

Thanks for taking this @MounirDhahri 🚀

Just address your review comments @dimatretyak and fixed broken tests. I moved the filter test to ArtistArtworks since I believe it belongs there

I'm not sure if this issue can be addressed in this particular pull request or if it should be handled separately, but it seems that auctionResultsByFollowedArtists is causing a heavy load on Diffusion's database.
The query used in this component triggers a count operation for most of the provided artist IDs. While I'm not deeply familiar with the design of the component that utilizes this query, ideally, we should find a way to avoid using the totalCount altogether.
Convos here and here.

Thanks for raising this @egdbear - we are aware of its performance issues. We will work on addressing it in a separate PR though the next sprint.

this is great work! I just want to raise that MoPlat is currently working on replacing the stickyTabs with the simpler implementation from Energy, I don't think this should be a problem but if CX is planning more work on the tabs soon we should probably coordinate! cc @damassi @gkartalis

The query used in this component triggers a count operation for most of the provided artist IDs. While I'm not deeply familiar with the design of the component that utilizes this query, ideally, we should find a way to avoid using the totalCount altogether.

@egdbear @MounirDhahri found a solution to avoid totalCount: https://github.com/artsy/eigen/pull/8721

Closing this PR since I cherry picked most of the changes into different other PRs. this was a nice one 💟  thanks all for reviewing


Flux Dashboard

Adding the step by step to Customers use and create the Flux Dashboard.

@hellenavilarosa are you still planning to work on this? or should make the issue open to grabs?


Fix DRM related processing of eglstream.

Description
I fixed the following remaining issues.
https://github.com/sony/flutter-embedded-linux/pull/52#discussion_r611349352
=> I removed CreateFb() function because it is unnecessary.
https://github.com/sony/flutter-embedded-linux/pull/52#discussion_r611688681
=> I added error handling.
Related issues
https://github.com/sony/flutter-embedded-linux/issues/71

@HidenoriMatsubayashi Can I request you to review?


J isn't protected

J won't try to make sure everything is balanced.

Closing for lack of interest.


feat: add test for manually triggering pipelinerun

Description
covers the scenario to manually trigger pipelinerun for advance build.
Issue ticket number and link
https://issues.redhat.com/browse/STONEBLD-1856
Type of change

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

How Has This Been Tested?
locally using ginkgo --label-filter="pac-build" --v ./cmd
Checklist:

[ ] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added meaningful description with JIRA/GitHub issue key(if applicable), for example HASSuiteDescribe("STONE-123456789 devfile source")
[ ] I have updated labels (if needed)

/test redhat-appstudio-e2e

@tisutisu is this one blocked by something? I can't really tell if the test failure is intermittent or not

yes its blocked currently due to the bug https://issues.redhat.com/browse/RHTAPBUGS-979
it would be good to keep it in hold state
/hold


Some code snippets are still in-line

When we migrated from ReadTheDocs, the automated migration turned all our linked source files to inline code listings. These should be turned back into links to the sample source code.
I've generally been fixing these as I've touched each file.
The old includes were using line numbers, so I've been converting them over to #regions while I go.
For example, after migration the md looks like this:
<!-- [!code-csharp[Main](samples/core/Querying/Querying/Basics/Sample.cs)] -->
````csharp
using (var context = new BloggingContext())
{
    var blogs = context.Blogs.ToList();
}

These need to be changed to:
[!code-csharp[Main](../../../samples/core/Querying/Querying/Basics/Sample.cs#RegionToInclude)]

@tdykstra  we should add a list here of the tutorials that need this. We can split up the work.

@Rick-Anderson - I was working on this recently. Having list of files to check would be useful but not necessary for me to work.

@smitpatel  -  Tom and I can do this. We'll  ping you if we need coding help.


Route handler perceived as error handler

APIRoutes.post('/register', validate({
  body: Schema.Request.Register
}), function(req, res, next) {
  var newUser = new User({
    email: req.body.email,
    password: req.body.password,
    name: req.body.name,
    telephone: req.body.telephone
  });

  // Save the new User to DB
  newUser
    .save()
    .then(() => {
      res.status(201).json(RouteHelper.BasicResponse(true, 'Register successful', {
        user: newUser
      }));
    })
    .catch((error) => {
      next(error);
    });
});

the above route handler is perceived as an error handler even though it is not. When an error is passed from the validate() middleware using next(new Error(args)), the router doesn't skip other route handlers, as is said so in manual.
From debugging I came to the conclusion that Express thinks my actual route handler (req, res, next) is an error handler.
Repository here: https://github.com/JouzaLoL/servicio/tree/dev

Hi @JouzaLoL I'm happy to take a look, but the app is fairly large. Can you provide the following information to help out?

The version of Node.js you're using
Complete instructions on how to run your code to reproduce the issue

Thank you!

Hi @JouzaLoL
I think that's a very specific case. These ~15 lines of code show that express works just fine:
const express = require('express')
const app = express()

function validate (req, res, next) {
  next(new Error('Validation error'))
}

function route (req, res, next) {
  console.log('This route should not be called')
}

function errorHandler (err, req, res, next) {
  console.log('Error handler', err)
}

app.post('/test', validate, route)
app.use(errorHandler)
app.listen(1337)

The result of POST /test is
Error handler Error: Validation error
    at validate (/Users/leestex/Projects/express-test-err/index.js:6:8)
    at Layer.handle [as handle_request] (/Users/leestex/Projects/express-test-err/node_modules/express/lib/router/layer.js:95:5)
    at next (/Users/leestex/Projects/express-test-err/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/Users/leestex/Projects/express-test-err/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/Users/leestex/Projects/express-test-err/node_modules/express/lib/router/layer.js:95:5)
    at /Users/leestex/Projects/express-test-err/node_modules/express/lib/router/index.js:281:22
    at Function.process_params (/Users/leestex/Projects/express-test-err/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/leestex/Projects/express-test-err/node_modules/express/lib/router/index.js:275:10)
    at expressInit (/Users/leestex/Projects/express-test-err/node_modules/express/lib/middleware/init.js:40:5)
    at Layer.handle [as handle_request] (/Users/leestex/Projects/express-test-err/node_modules/express/lib/router/layer.js:95:5)

I cloned your repo, and cannot reproduce the problem there as well.
POST localhost:3000/api/register
{
  "body": [
    {
      "keyword": "required",
      "dataPath": "",
      "schemaPath": "#/required",
      "params": {
        "missingProperty": "email"
      },
      "message": "should have required property 'email'"
    },
    {
      "keyword": "required",
      "dataPath": "",
      "schemaPath": "#/required",
      "params": {
        "missingProperty": "password"
      },
      "message": "should have required property 'password'"
    }
  ]
}

So the route handler was skipped and your errorHandler catched the error.
Tested on:

Node.js 7.7.4
express.js 4.15.2

So this was apparently a bug in VS Code debugging, please close and thank you for you willingness to help.

@dougwilson this issue can be closed as I can see.


Pull request updater for azure client

Feature
Added support for updating pull requests for azure client (AzureDevOps). For updating pull requests (i.e pushing new file changes) implemented the following logic -

Check if the PR & PR source branch exists. If no, return nil else continue
Push the new file changes onto the PR source branch.

Caveat - Currently the AzureDevOps PR files diff UI shows the diff in commits instead of the actual diff in the file content. Hence, there is a temporary workaround to push file changes to the source branch to ensure the reviewer sees the exact files changes. The workaround is as follows -

Create a new temp branch from the PR target branch and push the new file changes in that branch.
Update the PR source branch head commit to this newly created branch head commit(hence preserving the commit history and pushing the new file changes)
Delete the temp branch

Testing
Added unit tests for the pull request updater implementation for azure client as well as the additional methods added in the azure client class.

Thanks for adding tests 👍 added a few minor comments, otherwise looks good to me.

Cool Thanks for reviewing it so promptly. Will make the suggested changes

Hi, can we complete this PR? I actually want to use this code further in our service. Let me know if i need to add anything else.

Cool Thanks!


Add support for Criterion/benchmarking

I love how you can do
%timeit test()
100000 loops, best of 3: 3.91 us per loop

in IHaskell. I wonder if we could bake in support for Criterion to enable something similar. I know things are a bit different with Haskell, and it might not work for all functions etc. But even being able to quickly compare say a function using String and Text, without setting up the source file in a special way, etc, and getting nice graphs inline in IH, would be amazing.
(Would love to have some kind of memory profiling too).

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/9022543-add-support-for-criterion-benchmarking?utm_campaign=plugin&utm_content=tracker%2F332399&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F332399&utm_medium=issues&utm_source=github).

I like the idea of making this simple. However, why does this need to be baked into IHaskell?
Specifically, why use the timeit package or add a few features to it?
Alternatively, create a quickbench package with the following signatures (or something similar):
type Repeats = Int
type MillisPerRepeat = Double

-- Benchmark a computation by running it many times and reporting the average runtime
benchEval :: NFData a => a -> Repeats -> IO MillisPerRepeat
benchIO :: IO a -> Repeats -> IO MillisPerRepeat

-- Benchmark a computation with a parameter
data ParamBench b = ParamBench (Map b MillisPerRepeat)
benchEvalDep :: NFData a => (b -> a) -> [b] -> Repeats -> IO (ParamBench b)
benchIODep ::  (b -> IO a) -> [b] -> Repeats -> IO (ParamBench b)

Then define an ihaskell-quickbench package to display ParamBench a as a graph, dependent on ihaskell-chart or something like that.
This would be a great library and display instance to have, but I wonder whether IHaskell really needs any sort of builtin support for it?

Probably doesn't need to be part of core - the only thing would be to
create a display instance for it. Which technically would be a separate
package, but I just thought this would be a space for all kinds of
discussions about features we'd like to see in IH, whether as part of core,
or not. If you want to restrict this to discussions about the core package,
where should those larger discussions go?
On Fri, Feb 27, 2015 at 4:36 PM, Andrew Gibiansky<EMAIL_ADDRESS>wrote:

I like the idea of making this simple. However, why does this need to be
baked into IHaskell?
Specifically, why use the timeit
https://hackage.haskell.org/package/timeit-<IP_ADDRESS>/docs/System-TimeIt.html
package or add a few features to it?
Alternatively, create a quickbench package with the following signatures
(or something similar):
type Repeats = Inttype MillisPerRepeat = Double
-- Benchmark a computation by running it many times and reporting the average runtimebenchEval :: NFData a => a -> Repeats -> IO MillisPerRepeatbenchIO :: IO a -> Repeats -> IO MillisPerRepeat
-- Benchmark a computation with a parameterdata ParamBench b = ParamBench (Map b MillisPerRepeat)benchEvalDep :: NFData a => (b -> a) -> [b] -> Repeats -> IO (ParamBench b)benchIODep ::  (b -> IO a) -> [b] -> Repeats -> IO (ParamBench b)
Then define an ihaskell-quickbench package to display ParamBench a as a
graph, dependent on ihaskell-chart or something like that.
This would be a great library and display instance to have, but I wonder
whether IHaskell really needs any sort of builtin support for it?
—
Reply to this email directly or view it on GitHub
https://github.com/gibiansky/IHaskell/issues/385#issuecomment-76476319.

--
http://reganmian.net/blog -- Random Stuff that Matters

Nope, no reason to restrict it to discussions of just core. I misunderstood :)
Probably just try to explicitly mention display packages or widgets in the issue title / content, that's all.

The built-in support might be a more convenient way to say "the code for this function should be compiled with -O2/-O1" than to define that function a module cell (seems to be done in #39 but I haven't tried it out yet). But I think it would be pretty difficult to define a compiledWithFlags :: String -> a -> a because that a might include things only in-scope in the interpreter. So a session like:
n <- randomRIO (0,1.0)
let f x = x**n --or whatever
let g = compiledWithFlags "-O2" f

generates a module
module F where
fOpt n x = x**n

and compiledWithFlags "-O2" f is replaced with fOpt n. Or if n has a Show (or Binary) instance, that generated module could be
module F where
n = 0.23412
fOpt x = x**n

and then compiledWithFlags "-O2" f is replaced by fOpt
Name shadowing complicates things for the first approach:
n <- randomRIO (0,1.0)
let f x = x**n --or whatever
let g x = compiledWithFlags "-O2" f x
n <- randomRIO (0,1.0)
-- hopefully g uses the old n and not the new n here

I'm sorry for hijacking this thread, but could someone please help me with a working example of using Criterion from within IHaskell? My understanding was that this should be possible now, right? I did run
stack install criterion

from inside the container, and it worked. I was able to run
stack exec -- ghci

and type there defaultMain [ bench "exp" $ whnf exp (2 :: Double) ], which directly run the appropriate benchmark. Unfortunately, when I paste the following in the notebook cell:
import Criterion.Main
defaultMain [ bench "exp" $ whnf exp (2 :: Double) ]

all I get is "ExitFailure 1". Any hints?

Also, I've noticed that when I run the cell, here is what I get in the console:
Usage: ihaskell ([-I|--ci CI] [-G|--no-gc] [-L|--time-limit SECS]
                [--resamples COUNT] [--regress RESP:PRED..] [--raw FILE]
                [-o|--output FILE] [--csv FILE] [--junit FILE]
                [-v|--verbosity LEVEL] [-t|--template FILE] [-m|--match MATCH]
                [NAME...] | [-n|--only-run ITERS] [-m|--match MATCH] [NAME...] |
                [-l|--list] | [--version])


Fix ASAN issue in DiscoverAmdgpuDevices

I ran a test that exercised this code in dev mode and ASAN found a memory access issue due to the iterator returned by lower_bound being dereferenced unconditionally.  I believe the right fix is to check if the iterator is within the map and if not go to the else branch

Merged as of<PHONE_NUMBER>7bf6fb250b0351087035b876d5559d


sm2 interaction between golang libs

encrypt/decrypt file.
sign/verify
etc...

What does the file here mean?

What does the file here mean?

I suppose we don't need pass data via file.
just
sm2 key
sm2 key encrypt origin data with tj-gm for sample
sm2 key decrypt with ccs-gm for sample
assert decrypted same with origin data

Each key object in different libs can have different object structure and method. instead of file I would rather say the data exchange media is byte array.


explain the easiest solution for validation on windows

jshintrb is not compatible with JScript, the JS runtime that ships with windows.
Installing node standalone is easier than any of the other supported runtimes due to their compilation toolchains.
cc @zendesk/vegemite

currently, zat validate on windows prints a very sad backtrace

👍


Infinite recursion encountered when using Stylix

I've been trying to update my flake setup to use the latest version of stylix, but I keep hitting an infinite recursion:
error: infinite recursion encountered

       at /nix/store/f6jk9gi6i92ngcbkcz8z2d7gvkksciw1-source/lib/modules.nix:728:9:

          727|     in warnDeprecation opt //
          728|       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          729|         inherit (res.defsFinal') highestPrio;
(use '--show-trace' to show detailed location information)

Using --show-trace doesn't help much in finding the reason unfortunately.
This is the latest revision of stylix that works for me: d7536947a7fc3f9b60ba3c8f19c2530ca00110a9. I'm using digga to structure my configuration (you can find it here) I define the theme in this file which I then import in the definition of the user
The Stylix maintainers did some investigations: https://github.com/danth/stylix/issues/43#issuecomment-1449062856 I'm not sure whether this is something that should be fixed in stylix or in digga though.

My hypothesis is that the lib argument you use in the module system comes from the pkgs argument that is created from the nixpkgs.pkgs and nixpkgs.overlays options. As such, setting nixpkgs.overlays under a mkIf that is taken from lib will always result in an infinite recursion. I think it would be better if lib wasn't included in this fixpoint, but if it isn't that would means that overlays can't extend it.


fix: Quit with CTRL-C when in search

Type of Change

[ ] New feature
[x] Bug fix
[ ] Documentation update
[ ] Refactoring
[ ] Hotfix
[ ] Security patch
[x] UI/UX improvement

Description

Allow exiting linutil with CTRL C when in search mode.

Testing

No issues

Additional Information

This PR conflicts with idealogy of #768

Checklist

[x] My code adheres to the coding and style guidelines of the project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[ ] I have made corresponding changes to the documentation.
[x] My changes generate no errors/warnings/merge conflicts.

a duplicate of #768

It'd be very incosistand and poor UX to have Ctrl C exit in one situation, abort the command in other, etc.

dupe of #768

Not a dupe both have different functionalities

It'd be very incosistand and poor UX to have Ctrl C exit in one situation, abort the command in other, etc.

Both are used to quit major process like force stopping a running cmd or exiting the application

It'd be very incosistand and poor UX to have Ctrl C exit in one situation, abort the command in other, etc.

Used to quit major process like force stopping a running cmd or exiting the application

I myself hate when it's inconsistant like this and I know a lot of people feel the same frustration when as a new user I KNOW aborting the command by Ctrl C didn't quit the app and I want to abort my search. I try Ctrl C and linutil disintegrates.

I don't think it's to be reasonably expected by the user for  to exit the entire program while focused on the searchbar. I oppose this change. The proposed code is also an unmaintainable mess.


Add Scoap3 to the projects

Add Scoap3 to the projects

[ ] Check what are the data we use for each project (api base, additional, methods, etc)
[ ] Make sure to check the api response, and present to the Search card info that you prefer
[ ] Make sure that the search of a specific article is possible with the current setup

Added to the app


load errors: metaphor_qa

 File "/usr2/home/pliu3/.cache/expressai/modules/datasets_modules/datalab/metaphor_qa/e0dee7497cfdcd93b6dcb44793c895ef2c136dab08d45bb32082757e993a47d7/metaphor_qa.py", line 166, in _generate_examples     option_index = int(data[3]) ValueError: invalid literal for int() with base 10: 'The girl was very stable.'

Sorry, there was an error in the dataset format that I was resolving with Emmy, but it's done now. Could you clear your cache and try again?

Should be fixed.


payu run shouldn’t force changed to be tracked in git

Hi,
I’m trying to run many climate models as part of a pipeline, and compile the results. These models all need to be run from temporary directories, which are either not in a repository or are in a gitignored directory.
This gives me the warning
The following paths are ignored by one of your .gitignore files: temp_folder hint: Use -f if you really want to add them. hint: Turn this message off by running hint: "git config advice.addIgnoredFile false"
Which then crashes payu due to non zero exit code from git.
I couldn’t figure out a way to disable this behaviour with config or with some flag. Is there something I’m missing?
Thanks, Tali

You want
runlog: False

which should be documented, but isn't.
So thanks for pointing that out, and sorry if that has been a PITA.

Hi Tali,
Setting runlog: false in your config.yaml should fix this.
Also, if you are running en ensemble of climate models you might find this approach useful, which clones each of the perturbations into a separate repo and branch https://github.com/aekiss/ensemble

snap!

Thanks all! That seems to have resolved that error.


fix: Bump objc2 to 0.5.0; bring icrate 0.1.0

Replaces #200

[x] https://github.com/madsmtm/objc2/issues/537,

[x] https://github.com/rust-windowing/winit/pull/3256

Update to latest objc2,

Introduce icrate as a dependency,

Remove handmade AppKit types in favor of auto-generated ones provided by icrate,

Use type aliases from icrate as much as possible

The compile time of accesskit_macos increases a bit due to icrate. This shouldn't be a big issue for Rust users who will probably have it in their dependency chain already. Bindings generation will be slightly slower, but I don't think this should be a concern.

icrate 0.1.0 has been released, although the path towards reducing the number of features isn't clear at the moment. I currently don't have access to my Mac, I'll come back to this next year anyway.

I think we use some methods that might not need to be marked unsafe:

NSView::convertRect_toView,
NSView::isFlipped,
NsWindow::convertPointFromScreen,
``NSWindow::convertRectToScreen

Otherwise this PR is ready for review.

The safe alternative to Id::cast in this context is Id::into_super, but then we have to call it multiple times to go up the inheritance chain.
I think the only place where we have both an NSObject and an AnyObject is in PlatformNode::parent. Since we get an AnyObject from NSView::accessibilityParent, and since I don't think it is possible to transform it into an NSObject, I don't think we have much choice here.

I'd rather call Id::into_super multiple times to reduce use of unsafe.

I think we use some methods that might not need to be marked unsafe:

I think I'm considering a way to automatically mark simple things like this as safe, but it's a difficult trade-off between usability and soundness.
I've opened https://github.com/madsmtm/objc2/pull/549 for the specific ones you listed, at least.

Id::into_super, but then we have to call it multiple times to go up the inheritance chain.

Tracking the more generic way in https://github.com/madsmtm/objc2/issues/518.
I agree with calling into_super multiple times for now, even though it's quite verbose.

when to use NSObject versus AnyObject.

NSObject is the root class of almost all classes, but in theory a user could use a subclass of NSProxy, or they could define their own root class. So in those cases, where we don't know anything about the object, we use AnyObject.
If you can use NSObject, then you should. But if a protocol you're implementing takes &AnyObject, or something returns Id<AnyObject>, then you must use that (and you'll have to live with the limited functionality).

@DataTriny I'd like to replace Id::cast with Id::into_super (making multiple calls as necessary). This PR also needs to be brought up to date with the role description support we just merged. Once those fixes are done, I'm ready to merge this, and we can release everything we have pending, including the Python bindings.

Yup! Will do this tomorrow though.

@DataTriny Would you mind if I do these fixes and then merge this PR? That's one advantage of us both working in the upstream repo.

Of course, go ahead!


Swift 4.1

Coverage decreased (-2.8%) to 96.126% when pulling 8ecb4d2c554ed763a3c4965bc6a42d270b83e50b on swift-4-1 into 67a94d58d242daff31faa2fd73969a9183762ec0 on master.


Too many requests

When using the bot, I am no longer able to pull youtube videos as it has been sending too many requests to youtube, so it's required to complete a captcha (which of course it can't do) so it fails to download the videos. Maybe implementing a spam filter or something may help stop this issue from occuring.

Out of scope of youtube-dl.
As for captcha, you can pass cookies from your browser after solving it.

How can I do this in conjunction with something such as SinusBot?

Ask SinusBot support.


updateSettings clobbers reservoir increment logic

It appears that updateSettings causes reservoir logic to break, this appears to be true whether or not anything is updated, whether it is run before anything is scheduled or not.  The only updates that take place are ones that set reservoir, which are happily consumed (but never refreshed).
bug.js
// updateSettings breaks reservoirIncrease logic (reservoir value is updated)
const Bottleneck = require('bottleneck');

async function foo() {
  const limiter = new Bottleneck({
    reservoir: 5,
    reservoirIncreaseInterval: 1000,
    reservoirIncreaseAmount: 1,
    minTime: 100
  });
  // Takes 5s to log 1->10
  const items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
  await Promise.all(
    items.map((x) => limiter.schedule(() => console.log(`hi ${x}`)))
  );
  limiter.updateSettings({ reservoir: 5 });
  // Takes .5s to hang/die on 5
  await Promise.all(
    items.map((x) => limiter.schedule(() => console.log(`hi ${x}`)))
  );
}

foo();

Running:
node bottleneckBug.js
hi 1
hi 2
hi 3
hi 4
hi 5
hi 6
hi 7
hi 8
hi 9
hi 10
hi 1
hi 2
hi 3
hi 4
hi 5

Hello @SGrondin , do you have any more information on this? Thank you

We're also seeing this issue.

Facing this issue as well.

I spent like 5 hours trying to debug the code and ended up here facing this very same issue.

Facing same issue.
Error seems related to heartbeat handling in lib/LocalDatastore.js:
_startHeartbeat() creates a heartbeat closure when a Bottleneck is created. This closure is handling reservoir refresh.

When updateSettings, a new Bottleneck is generated, but somehow the old heartbeat callback is still running, and reading the old storeOptions instead of reading the updated one.
Removing this.heartbeat==null in the if statement to create a new closure fixes my case, altho not sure if this is the correct way. Not a JS expert, would love to see this fixed.

Nice debugging! I wonder if there is a binding fix


Cannot read property 'hideKeyboardAccessoryBar' of undefined in Ripple Emulator

Hi. I get the following error when trying to run the ionic app with this plugin in the Ripple emulator. Other plugins do not cause such error.
missing exec:Keyboard.hideKeyboardAccessoryBar ripple.js:34331
Array[1]
 ripple.js:34332
TypeError
message: "Cannot read property 'hideKeyboardAccessoryBar' of undefined"
stack: (...)
get stack: function () { [native code] }
set stack: function () { [native code] }
__proto__: Error
 ripple.js:34333
TypeError: Cannot read property 'hideKeyboardAccessoryBar' of undefined
    at module.exports.exec (http://localhost:4400/ripple/assets/ripple.js:34328:30)
    at Function.Keyboard.hideKeyboardAccessoryBar (http://localhost:4400/plugins/com.ionic.keyboard/www/keyboard.js:10:5)
    at http://localhost:4400/js/app.js:14:42
    at Array.<anonymous> (http://localhost:4400/vendor/ionic/js/ionic.bundle.js:36865:19)
    at onPlatformReady (http://localhost:4400/vendor/ionic/js/ionic.bundle.js:2329:24)
    at Channel.fire (http://localhost:4400/cordova.js:760:23)
    at http://localhost:4400/cordova.js:223:49 ripple.js:34334
Keyboard ripple.js:50497
hideKeyboardAccessoryBar ripple.js:50498

I use autogenerated code on app run
.run(function ($ionicPlatform) {
        $ionicPlatform.ready(function () {
            // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
            // for form inputs)
            if (window.cordova && window.cordova.plugins.Keyboard) {
                cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
            }
            if (window.StatusBar) {
                // org.apache.cordova.statusbar required
                StatusBar.styleDefault();
            }
        });
    })

@tlancina Thank you so much,

I know it's an old post but here's my solution to hide ripple's popup entirely:
var dialogBody = parent.document.getElementById("exec-dialog");
var overlay = parent.document.querySelector(".ui-widget-overlay");
var ngDialog = angular.element(dialogBody.parentElement);
var ngOverlay = angular.element(overlay);
var hideRules = { "height": "0px", "width": "0px", "display": "none" };
ngDialog.css(hideRules); // hide annoying popup
ngOverlay.css(hideRules); // hide annoying popup's backdrop

PS: I ommited the if checks for the sake of demostration.

Hi,
where exactly does this code go? I've tried the start of
$ionicPlatform.ready(function() {
in app.js but still the popup.. :(
and where were the if checks omitted?
thanks in advance

Hi @nsw2206.To address you questions:

where were the if checks ommited ?

after getting the reference to ripple's dialog's DOM nodes I didn't checkto see if they were actually not undefined (and they will be undefined in a real device or device emulator) such as adding if (!dialogBody) return; to the code above.
what I actualy end up using is a function to check if the code is running in a ripple simulated environment so I don't actually have to manually check if each dialog node I'm referencing actually exists

where exactly does this code go?

I put it in the callback of $ionicPlatform.ready just like yourself. I didi one thing different though: executed the code inside a $timeout with 0ms of interval ('trick' to schedule the function's execution in the event bus)

In the end I have something like this:

// I define this as a global function since I use it in other places
function isRunningInRipple(){
   // in device all url's in the webview are 'file:// ... '
   return document.URL.indexOf('http://') >= 0 || document.URL.indexOf('https://') >= 0;
}

var app =  angular.module('myApp', [ ' ...dependencies...' ]);
app.run(['$ionicPlatform', '...other services...', function($ionicPlatform, ...other services...){

  function disableRipplePopup() {
    var dialogBody = parent.document.getElementById("exec-dialog");
    var overlay = parent.document.querySelector(".ui-widget-overlay");
    var ngDialog = angular.element(dialogBody.parentElement);
    var ngOverlay = angular.element(overlay);
    var hideRules = { "height": "0px", "width": "0px", "display": "none" };
    ngDialog.css(hideRules); // hide annoying popup
    ngOverlay.css(hideRules); // hide annoying popup's backdrop
  }

  $ionicPlatform.ready(function(){
    if(isRippleEmulator()) $timeout(disableRipplePopup);
  });

}])

thanks rodrigo. a thousand noobs will appreciate this :)
I know I do...  :+1:

two changes - add $timeout to the app.run line to avoid $timeout undefined and isRunningInRipple, not isRippleEmulator
app.run(function($ionicPlatform,$timeout) {
and
if(isRunningInRipple()) $timeout(disableRipplePopup);

I would remove display attribute, because it affects on your browser. Side effect is that you cannot for instance refresh page by pressing F5 in your browser or Ctrl+F5...
Before
var hideRules = { "height": "0px", "width": "0px", "display": "none" };
New
var hideRules = { "height": "0px", "width": "0px" };


Getting this to work in alacritty terminal under archlinux...

Have got TPM installed and it runs, added line to run catppuccin from .tmux.conf but I only get a white bar with coloured blocks. Am assuming I need to load a nerd font.
Would very much like a dark theme as I have seen this in screenshots and it looks beautiful.
My .tmux.conf is as follows
``
unbind r
bind r source-file /home/mrgreen/.tmux.conf
set -g prefix C-s
set -g mouse on
set-option -g status-position top
set -g @plugin 'catppuccin/tmux'
set -g @plugin 'tmux-plugins/tpm'
run '~/.tmux/plugins/tpm/tpm'
``

Yes you need a nerd font, with the config provided it should look something like this

Yes please ;-)...... beautiful

Does it work with nerd fonts? If not can you provide a screenshot?

It kind of does but does not look like yours at all, know I have awesome fonts loaded [for i3blocks]

Right so I have a path issue, reloading config tmux is looking in .tmux.conf rather than ~/.config/tmux/tmux.conf...

Ok so I have now got paths correct and working, oading plugins works...do need to figure font package and configuration but I now have this...

That is 100% correct (my screenshot still had some @catppuccin_ options set)

Was following this:
https://www.youtube.com/watch?v=jaI3Hcw-ZaA
Thank you for your help, off to configure alacritty now ;-)


Updated copyright to 2016

Superseeded by #12092.

Closing in favor of #12092 (already merged).
Thanks anyway!


A couple bugs

s!price btc usd 1000 - should say 1000 btc is {value} usd, but instead it basically says that 1 btc is the price of 1000 btc

If you do =pay 200 @someone, and then gamble away so you have less than 200, then click yes to proceed with the pay, skyra prints a terrible failure. (they dont receive the extra money though, so not really a big bug)

Fixed in 39de6c1 and 69ca2f3


MacOS: dylib not found

It's a standalone dart project, so no flutter sdk involved.
Host: MacOSX 10.15.6 (19G2021)
dart: Dart SDK version: 2.10.4
Error:
  Invalid argument(s): Failed to load dynamic library (dlopen(lib/src/blobs/libargon2-darwin.dylib, 1): no suitable image found.  Did find:
        file system relative paths not allowed in hardened programs)
  dart:ffi                                                       new DynamicLibrary.open
  package:dargon2/src/native/loaders/dart_lib_loader.dart 20:27  DartLibLoader.loadLib
  package:dargon2/src/native/local_binder.dart 156:33            new LocalBinder
  package:dargon2/src/native/local_binder.dart 145:26            LocalBinder.instance
  package:dargon2/src/argon2.dart 86:37                          DArgon2.hashPasswordBytes
  package:dargon2/src/argon2.dart 52:12                          DArgon2.hashPasswordString

Tried:

unsign dart executable - no luck
unsign signed macos dylib library - luck with a similar Error:

  Invalid argument(s): Failed to load dynamic library (dlopen(lib/src/blobs/libargon2-darwin.dylib, 1): no suitable image found.
  dart:ffi                                                       new DynamicLibrary.open
  package:dargon2/src/native/loaders/dart_lib_loader.dart 20:27  DartLibLoader.loadLib
  package:dargon2/src/native/local_binder.dart 156:33            new LocalBinder
  package:dargon2/src/native/local_binder.dart 145:26            LocalBinder.instance
  package:dargon2/src/argon2.dart 86:37                          DArgon2.hashPasswordBytes
  package:dargon2/src/argon2.dart 52:12                          DArgon2.hashPasswordString

Hey, I'm unable to replicate the error on mac, would you be able to let me know what you did if anything else than setup?

Hey, on that same note, i looked into the same error for a while, but only got the second load error, never the first one where it saw the package. I did manage to get that fixed, so if you try depending on dargon2: ^1.0.3, I think your error should be gone

@tmthecoder Thank you for that fast response!
I will check it out later && I'll give you some feedback if it works!

@jayjah No problem! Thanks for pointing the issue out!

@tmthecoder Your fix 1.0.3 works just as intended! Thank you for that fast fix!


Docs for remote developent with PyCharm

The idea here is that we should figure out how to use PyCharm on your laptop connecting to a remote Zulip development server, with a PyCharm plugin (or something) handling the automatic synchronization of your zulip.git repository.  (If this is even possible -- this issue is primarily about reading the PyCharm documentation).
It should go as a new section in docs/development/remote.md.
If not possible, we should determine that and then close this issue.

@zulipbot claim

@zulipbot  claim

@zulipbot claim

@synicalsyntax Is this issue a useful document to have? If yes I could start working on it right away.

I'm not sure; @rishig what are your thoughts?

I think it'd be a useful sub-section of our "remote development" docs.  Ideally, we'd have as little novel content as possible (possibly just linking to a good third-party tutorial).

@timabbott  should we have to write a documentation for remote development with pycharm??

@zulipbot claim

Is thre any file which have this issue related thing??

Just remembered that I'd committed to working on this (sorry for the slip-up!). I'll set up PyCharm.
@zulipbot claim

@timabbott it'd be great if you could go through this JetBrains tutorial and decide if it fits your criteria of a good tutorial as mentioned in https://github.com/zulip/zulip/issues/4891#issuecomment-375489026.
If not, I'd be happy to write some new content.

@kanishk98 I don't use pycharm and don't have time to do that sort of setup.  In general https://blog.jetbrains.com/pycharm/2018/04/running-flask-with-an-ssh-remote-python-interpreter/ looks great, and possibly we should just link it and call it a day; but probably better would be for you to go through that tutorial and just see if you run into any issues; if you do, we should probably include notes on resolving them (othewise, we can say that tutorial works great).

@timabbott after a day of wondering why I couldn't get the linked tutorial to work on my machine, I realised that this capability is limited only to PyCharm Professional Edition (the paid version of PyCharm). I can purchase that with a student account if you think it's required, but I'd like to confirm if I should look for a free way to do this instead.
(Not sure if that exists - I couldn't find the rmate plugin, and JetBrains docs on the subject seem to be mostly outdated).

I think you can get it for free if you're using it to work on an open source project?
Otherwise I think we can just link to the tutorial, say you need PyCharm professional, and that we haven't tried it but if you do let us know and we'll update this doc.
Thanks for the investigation!

Yeah. Also isn't PyCharm free for students?
https://www.jetbrains.com/student/

Yeah, I was just asking if it was the best idea to include a generally paid option on our docs.
I'm downloading the Pro edition right now, will check the flow on my end once and update you.
Thanks for the help!

I tihnk it's not ideal, but also not a big deal in this case. We can mention that it's free fro students and if you're using it to work on FOSS.

Alright, great.
So I tried out the steps in the post I linked above, and turns out that most of that stuff is unnecessary. We don't have to configure a remote interpreter at all, just add a remote host through Tools > Deployment > Configure.
And then we can simply edit and save files directly on the remote machine. We can also start a remote SSH session through the deployment menu to get a terminal to that machine.
I think this is a much cleaner approach, and avoids messing up the interpreter on the remote machine (something that happened to me when testing). I'll write down this flow on our remote dev page, but let me know if you think this deserves another page of its own.

Great! Once we have the text it'll be easy to move it around, so I'd just put it on this page for now.

Sent in PR #12534.

Hi, if this issue is still open then would it be possible for me to work on it?

Hello, I want to work on this issue, Could you assign me the task

@b-thebest You can claim the issue by commenting
@zulipbot claim

@zulipbot claim

@timabbott This issue is still marked as Open, even though there is a pending pull request. As a newbie contributor, it is confusing to know if there is still work remaining on this issue. I spend the last couple hours looking through good-first-issue tags, and  all of them look like they are already being worked on.  It is intimidating and confusing for someone new find an issue that is really open and still needs work. Any help/guidance is much appreciated

@rekhajay sorry to hear that.  One thing you can do with a situation like this is help get the PR merged, so that the issue actually gets resolved.
For https://github.com/zulip/zulip/pull/12534, the main reason it isn't merged is that we don't have confirmation of anyone new to the project trying the instructions and posting feedback on them -- would you be up for doing so?  That sort of work is super important (often more so than writing new PRs).
I'll also mention that recent issues that may not have been labeled specifically as a "good first issue" are often better targets than several-year-old issues with the "good first issue" tag -- often anything super old hasn't been fixed for a reason :(.

I was looking to get started as a contributor, and I had a seamless experience following the Contributing Guide's recommended setup, up until the point I opened the project in PyCharm (my favorite IDE). I noticed a lot of errors when I started opening some of the backend python files, and I realized that this was because I did not set the python interpreter for the project.
At first I wasn't sure if I needed to set up my own virtualenv that mirrored the one on my local vagrant vm, but after some searching I found out about the ability to configure a remote python interpreter for PyCharm Professional. After a bit of trial and error I was able to set the remote interpreter to /srv/zulip-py3-venv/bin/python3 which made the errors go away! I also was able to utilize PyCharm's code completion and have an idea of what packages were available to use, which really improves the coding experience for me.
I thought that this would be useful to share for other new contributors who like PyCharm Professional, so I brought this up on Zulip's community server. I was then referred to this ticket given that this deals with remote development with PyCharm.
It doesn't seem like the ask for this issue perfectly aligns with my suggestion, as it does not address the automatic synchronization of the repository, but since both issues deal with PyCharm I'm hoping it's okay to add on to this issue. If not, I am happy to create a separate one. Thanks!


[Storage] Set live test timeout to 20 minutes

This change was already validated in another PR we are using to test fixes.  Here's a build showing the 20-minute timeout in action.  So I'm not planning to trigger another run of storage live tests for this PR.
https://dev.azure.com/azure-sdk/internal/_build/results?buildId=208734&view=ms.vss-test-web.build-test-results-tab

Is it possible to apply this at the class level and have it inherit? If so, we might be able to just put this on StorageTestBase (or even ClientTestBase if we want this for all Track 2 tests).

I know this attribute can be applied at the assembly, class, or method level.  I'm not sure if inheritance is handled correctly but I will try it.  I would put it on ClientTestBase since we do want this for all Track 2 tests.  If any test happens to need longer than 20 minutes they can override this attribute with a larger value.

@tg-msft: Unfortunately the attribute is not inherited:
https://github.com/nunit/nunit/blob/edb0abc185af3e780e835bbb76318154e0b13091/src/NUnitFramework/framework/Attributes/TimeoutAttribute.cs#L36
If we wanted to apply this to all test assemblies, we could create a common AssemblyInfo.cs that all test assemblies compile.

This does seem like a good thing to make common for all our test projects.

This does seem like a good thing to make common for all our test projects.

Unfortunately NUnit has a pretty bad bug where TimeoutAttribute breaks Assert.Inconclusive() (and Assert.Pass() though I doubt we use this in our tests):
https://github.com/nunit/nunit/issues/3282
For now, we're only going to enable this for Storage to avoid issues in other test projects which might use Assert.Inconclusive().


Use export default in binaryajax-fetch.js

Fixing Uncaught TypeError: Cannot assign to read only property 'exports' of object '[object Object]' in Angular 10

I was facing the same issue while using shpjs in Typescript. It would be great if the author could merge this pull request.

this library uses commonjs modules everywhere, note the require on the line above your change, I don't understand what you are trying to do here

from the other thing you just need to do import * as shapefile from 'shpjs';


Add a way to dismiss the on-screen keyboard when the sheet is dragged

This feature is similar to the keyboardDismissBehavior of SingleChildScrollView.

Close this as completed in #9

Close this as completed in #9


Add additional badges to README (#402)

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Cody Soyland seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Does anyone have a working PlatformIO project for the CYD

I'm stuggling trying to make a first working project using eez-flow to make a simple page one/two load with buttons as a starter.
All forms of errors coming up, including src/ui.h:4:10: fatal error: vgl.h: No such file or directory
Does anyone have a simple starter project working example for the CYD2USB
Thanks a million.
PS. This is not an issue - ( but there's no discussion section , so I had to write here )

it should be lvgl.h not vgl.h

@jcuypers - ThankYou !!  that vgl reference was due to my mistake in opening the nth attempt ( and enditing the LVGL include path in Settings/Build in EEZ Studio.
You gave me some hope to continue. Thanks.

No worries we have all been there.

Can you share your project on github so I can try to build it?

@mvladic - Martin, thanks for offering to have a look.
Github was complaining at all the files to upload, so I zipped the
a) Platform IO folder - I removed the  .pio and .vscode, otherwise its too big.
b) the EEZ Studio project using the FLOW method of connecting the pages.
https://github.com/PacciK/EEZ_STUDIO_CYD_01

The only useful info I was finding with CYD and EEZ Studio is this helpful chap's channel

https://www.youtube.com/watch?v=MJV5cYd6pyM
Where he has two or three videos woking with Arduino ( not PlatformIO)

I have had the simple - no FLOW version working, very similarly to the video above.
But then one has to connect the buttons manually in code, to be able to give fuctions to buttons ?
So I tried using Flow, and when it comes to trying to automatically link the buttons to page turn by Flow, I've had no luck.
I've uploaded the files to my github.

If you have LVGL only working from code generated with EEZ Studio then  you can enable flow for platformio by:

adding the eez-framework library to lib_deps in platformio.ini (you don't need to copy file in manually platformio will handle this for you):

lib_deps =   https://github.com/eez-open/eez-framework.git

adding a call to  ui_init() at the end of setup(). This will be called 1 time.
adding a call to ui_tick() in the loop() function. This needs to be called frequently (just like the lv_* functions in there)
changing the project in EEZ-Studio (or create a new one) with flow support.

I did not test this, but I think this should do it.

@fietser28 - thank you so much for your comment. Its working.
Here's what I did:
I went back to a working LVGL Benchmark demo,
Added the 4 points that you mentioned, and now I have a starting working platform.
Thank you soooooo Much.
Its been a day of trying to get it to work.

@mvladic  Martin - ThankYou so much for this amazing work.
I will now get down to start building something nice.
Please close the issue.

Welcome to the world of EEZ-Flow….
For more questions you can join the Discord community.


is this project still alive?

quite a promising idea, but is anybody still making code for this?

💀

this project is an amazing idea, why is it dead?

this project is an amazing idea, why is it dead?

quite a promising idea, but is anybody still making code for this?

Theres a few reasons for this. I hope you dont mind if i get a bit technical, but simply put:

There is no built in support for Python in Java. You would need to either rely on the heavily outdated Jython library, or make your own Python > Java transpiler, which while not impossible, is probably not a good idea.

This project currently uses the transpiling method, it just writes a bunch of Java to a file and adds in data as needed using F-strings.
I checked just now, apparently Jython is in the process of updating to Python 3, but they're currently stuck on Python 2.7.13, and have been stuck on for nearly a decade!

Theres no demand for it, as there are many alternatives out there. Take KubeJS, JS Macros, and MCreator for example.

JS Macros has a Python extension, but its very limited and cant do what mods can do. The mod is primarily made for making your own macros and AFK scripts after all.

Writing in Java/Kotlin/Scala, and having deeper access into Minecraft's and the JVM codebase is far preferred over a wrapper around a modding framework.

KubeJS gets around this by adding tons of hooks that allow you to access these parts, but only specified parts thats the KubeJS team allow you to access. You can always write an extension, but that requires knowing Java, so back to step one.
I havnt even mentioned Mixins yet, those need to be written in Java to work properly due to how the Mixin library works. If you can somehow compile Python into JVM Bytecode, then i guess mixins are possible, but back to square one with the Python > Java conversion again!

Not to mention that this project compiles mods for i believe 1.18 (1.18 and 1.19 code look similar enough its hard to distinguish), a version that is around 2 years old. Updating this to 1.21 would be a lot of work, as the changes in the engine of the game were so large they caused big name mods like Litematica to stop officially updating past 1.20.4, and was the nail in the coffin for me to stop modding too.

This does not mean that newer projects will have the same issues. The problems come in when updating the NBT format to the new Components format, and there has been little to no progress on a conversion tool as far as im aware. (If im wrong about this someone please correct me!) This is why Sodium, a mod that barely touches the NBT format, updated basically Immediately, while Litematica, a mod that is focused around the NBT format and uses it in it's schematics, hit EOL recently.

If you really want to make a mod, learn either Java or Kotlin and watch Kaupenjoe's modding tutorials. They're really good and its what pushed me to start modding, and eventually start making my own game. If you dont want to go that route, MCreator is also a good option, and if you know JavaScript, KubeJS is an option for simple things too.
As for learning Java, W3 Schools and GeeksForGeeks are good places to start. Also, the Fabric community is pretty welcoming, and is actually what this project uses internally, feel free to join their Discord if you have any questions.

@GirlInPurple  Thanks for the explanation. I understood most of the things you said before commenting, but your comment was still informative. Also I guess author abandoned his git hub account, so we most likely will not get any updates any day soon.


LPFG 1198 Topic Id

Adds a topic id to course.

Added topicId to Course.java
Added topicId to CourseDto.java
Set topicId in CourseDtoFactory.java

Replaced by https://github.com/Civil-Service-Human-Resources/lpg-learning-catalogue/pull/91


Add support for using PostgreSQL as an alternative backend

this commit adds support for non-workflow related models only

*** BUILD #642 ***
Test Name: Encryption Instance Methods createHash should generate correct hash data
Error Details: expected '$1$WeJknBPk$Bjnh76GiuzCAoq4Gp6y.V0' to equal '$1$WeJknBPk$t3LdooA1UatyI0C7pGX5F/'
Stack Trace: AssertionError: expected '$1$WeJknBPk$Bjnh76GiuzCAoq4Gp6y.V0' to equal '$1$WeJknBPk$t3LdooA1UatyI0C7pGX5F/'
    at Context.<anonymous> (spec/lib/common/encryption-spec.js:93:29)

jenkins: test this please

:+1:

jenkins: test this please

*** BUILD #655 ***
Test Name: redfish_emc_compose_test
Error Details: Failure running Graph.Emc.Compose.System
-------------------- >> begin captured logging << --------------------
tests.api.v1_1.workflows_tests: INFO: Starting AMQP listener for node 5763f9a2c1cde194085a0471
amqp: DEBUG: Start from server, version: 0.9, properties: {u'information': u'Licensed under the MPL.  See http://www.rabbitmq.com/', u'product': u'RabbitMQ', u'copyright': u'Copyright (C) 2007-2013 GoPivotal, Inc.', u'capabilities': {u'exchange_exchange_bindings': True, u'connection.blocked': True, u'authentication_failure_close': True, u'basic.nack': True, u'consumer_priorities': True, u'consumer_cancel_notify': True, u'publisher_confirms': True}, u'platform': u'Erlang/OTP', u'version': u'3.2.4'}, mechanisms: [u'AMQPLAIN', u'PLAIN'], locales: [u'en_US']
amqp: DEBUG: Open OK!
urllib3.connectionpool: WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'ProtocolError('Connection aborted.', BadStatusLine("''",))': /api/1.1/nodes/5763f9a2c1cde194085a0471/workflows/active
urllib3.connectionpool: INFO: Starting new HTTP connection (24): localhost
kombu: INFO: Starting AMQP worker <unbound Queue graph.finished -> <unbound Exchange on.events(topic)> -> graph.finished.*>
amqp: DEBUG: Start from server, version: 0.9, properties: {u'information': u'Licensed under the MPL.  See http://www.rabbitmq.com/', u'product': u'RabbitMQ', u'copyright': u'Copyright (C) 2007-2013 GoPivotal, Inc.', u'capabilities': {u'exchange_exchange_bindings': True, u'connection.blocked': True, u'authentication_failure_close': True, u'basic.nack': True, u'consumer_priorities': True, u'consumer_cancel_notify': True, u'publisher_confirms': True}, u'platform': u'Erlang/OTP', u'version': u'3.2.4'}, mechanisms: [u'AMQPLAIN', u'PLAIN'], locales: [u'en_US']
amqp: DEBUG: Open OK!
kombu.mixins: INFO: Connected to amqp://guest:**@<IP_ADDRESS>:9091//
amqp: DEBUG: using channel_id: 1
amqp: DEBUG: Channel open
kombu: INFO: Stopping AMQP worker <unbound Queue graph.finished -> <unbound Exchange on.events(topic)> -> graph.finished.*>
tests.api.v1_1.workflows_tests: ERROR: {
    "active_task": {
        "bf92e5fd-3b3d-44ca-baaf-8f716b03cd52": {
            "error": "Error: EndPoint Resource(s) Already Allocated: ComputeElement0,StorageElement3
    at Promise.resolve.then.then.then.then.then.id (/home/vagrant/src/on-taskgraph/node_modules/on-tasks/lib/jobs/emc-compose-system.js:238:23)
    at tryCatcher (/home/vagrant/src/on-taskgraph/node_modules/on-core/node_modules/bluebird/js/main/util.js:26:23)
    at Promise._settlePromiseFromHandler (/home/vagrant/src/on-taskgraph/node_modules/on-core/node_modules/bluebird/js/main/promise.js:507:31)
    at Promise._settlePromiseAt (/home/vagrant/src/on-taskgraph/node_modules/on-core/node_modules/bluebird/js/main/promise.js:581:18)
    at Async._drainQueue (/home/vagrant/src/on-taskgraph/node_modules/on-core/node_modules/bluebird/js/main/async.js:128:12)
    at Async._drainQueues (/home/vagrant/src/on-taskgraph/node_modules/on-core/node_modules/bluebird/js/main/async.js:133:10)
    at Async.drainQueues (/home/vagrant/src/on-taskgraph/node_modules/on-core/node_modules/bluebird/js/main/async.js:15:14)
    at process._tickDomainCallback (node.js:459:13)",
            "friendlyName": "EMC Compose System",
            "ignoreFailure": false,
            "implementsTask": "Task.Base.Emc.Compose.System",
            "injectableName": "Task.Emc.Compose.System",
            "instanceId": "bf92e5fd-3b3d-44ca-baaf-8f716b03cd52",
            "label": "emc-compose-system",
            "name": "Task.Emc.Compose.System",
            "options": {
                "action": "compose",
                "endpoints": [
                    "ComputeElement0",
                    "StorageElement1",
                    "StorageElement3"
                ],
                "name": "newSystem"
            },
            "properties": {},
            "runJob": "Job.Emc.Compose.System",
            "state": "failed",
            "terminalOnStates": [
                "succeeded",
                "timeout",
                "cancelled",
                "failed"
            ],
            "waitingOn": {}
        }
    },
    "graph_name": "Graph.Emc.Compose.System",
    "route_id": "1dd0cfda-8769-4c5c-a0b8-7cf8c6b35ba4",
    "status": "failed",
    "target": "5763f9a2c1cde194085a0471"
}
amqp: DEBUG: Closed channel #1
modules.worker: INFO: stopping subtask for 5763f9a2c1cde194085a0471
--------------------- >> end captured logging << ---------------------
Stack Trace:   File "/usr/lib/python2.7/unittest/case.py", line 331, in run
    testMethod()
  File "/usr/lib/python2.7/unittest/case.py", line 1043, in runTest
    self._testFunc()
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 296, in testng_method_mistake_capture_func
    compatability.capture_type_error(s_func)
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/compatability/exceptions_2_6.py", line 27, in capture_type_error
    func()
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 350, in func
    func(test_case.state.get_state())
  File "/home/jenkins/workspace/on-core/RackHD/test/tests/api/v1_1/redfish_endpoint_tests.py", line 204, in redfish_emc_compose_test
    self.__post_node_workflow([id], 'Graph.Emc.Compose.System', body)
  File "/home/jenkins/workspace/on-core/RackHD/test/tests/api/v1_1/redfish_endpoint_tests.py", line 55, in __post_node_workflow
    workflow.post_workflows(graph_name, nodes=nodes, tasks=tasks, data=body, callback=callback)
  File "/home/jenkins/workspace/on-core/RackHD/test/tests/api/v1_1/workflows_tests.py", line 174, in post_workflows
    self.run_workflow_tasks(self.__tasks, timeout_sec)
  File "/home/jenkins/workspace/on-core/RackHD/test/tests/api/v1_1/workflows_tests.py", line 205, in run_workflow_tasks
    fail('Failure running {0}'.format(self.__graph_name))
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/asserts.py", line 220, in fail
    raise ASSERTION_ERROR(message)
'Failure running Graph.Emc.Compose.System\n-------------------- >> begin captured logging << --------------------\ntests.api.v1_1.workflows_tests: INFO: Starting AMQP listener for node 5763f9a2c1cde194085a0471\namqp: DEBUG: Start from server, version: 0.9, properties: {u\'information\': u\'Licensed under the MPL.  See http://www.rabbitmq.com/\', u\'product\': u\'RabbitMQ\', u\'copyright\': u\'Copyright (C) 2007-2013 GoPivotal, Inc.\', u\'capabilities\': {u\'exchange_exchange_bindings\': True, u\'connection.blocked\': True, u\'authentication_failure_close\': True, u\'basic.nack\': True, u\'consumer_priorities\': True, u\'consumer_cancel_notify\': True, u\'publisher_confirms\': True}, u\'platform\': u\'Erlang/OTP\', u\'version\': u\'3.2.4\'}, mechanisms: [u\'AMQPLAIN\', u\'PLAIN\'], locales: [u\'en_US\']\namqp: DEBUG: Open OK!\nurllib3.connectionpool: WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by \'ProtocolError(\'Connection aborted.\', BadStatusLine("\'\'",))\': /api/1.1/nodes/5763f9a2c1cde194085a0471/workflows/active\nurllib3.connectionpool: INFO: Starting new HTTP connection (24): localhost\nkombu: INFO: Starting AMQP worker <unbound Queue graph.finished -> <unbound Exchange on.events(topic)> -> graph.finished.*>\namqp: DEBUG: Start from server, version: 0.9, properties: {u\'information\': u\'Licensed under the MPL.  See http://www.rabbitmq.com/\', u\'product\': u\'RabbitMQ\', u\'copyright\': u\'Copyright (C) 2007-2013 GoPivotal, Inc.\', u\'capabilities\': {u\'exchange_exchange_bindings\': True, u\'connection.blocked\': True, u\'authentication_failure_close\': True, u\'basic.nack\': True, u\'consumer_priorities\': True, u\'consumer_cancel_notify\': True, u\'publisher_confirms\': True}, u\'platform\': u\'Erlang/OTP\', u\'version\': u\'3.2.4\'}, mechanisms: [u\'AMQPLAIN\', u\'PLAIN\'], locales: [u\'en_US\']\namqp: DEBUG: Open OK!\nkombu.mixins: INFO: Connected to amqp://guest:**@<IP_ADDRESS>:9091//\namqp: DEBUG: using channel_id: 1\namqp: DEBUG: Channel open\nkombu: INFO: Stopping AMQP worker <unbound Queue graph.finished -> <unbound Exchange on.events(topic)> -> graph.finished.*>\ntests.api.v1_1.workflows_tests: ERROR: {\n    "active_task": {\n        "bf92e5fd-3b3d-44ca-baaf-8f716b03cd52": {\n            "error": "Error: EndPoint Resource(s) Already Allocated: ComputeElement0,StorageElement3\n    at Promise.resolve.then.then.then.then.then.id (/home/vagrant/src/on-taskgraph/node_modules/on-tasks/lib/jobs/emc-compose-system.js:238:23)\n    at tryCatcher (/home/vagrant/src/on-taskgraph/node_modules/on-core/node_modules/bluebird/js/main/util.js:26:23)\n    at Promise._settlePromiseFromHandler (/home/vagrant/src/on-taskgraph/node_modules/on-core/node_modules/bluebird/js/main/promise.js:507:31)\n    at Promise._settlePromiseAt (/home/vagrant/src/on-taskgraph/node_modules/on-core/node_modules/bluebird/js/main/promise.js:581:18)\n    at Async._drainQueue (/home/vagrant/src/on-taskgraph/node_modules/on-core/node_modules/bluebird/js/main/async.js:128:12)\n    at Async._drainQueues (/home/vagrant/src/on-taskgraph/node_modules/on-core/node_modules/bluebird/js/main/async.js:133:10)\n    at Async.drainQueues (/home/vagrant/src/on-taskgraph/node_modules/on-core/node_modules/bluebird/js/main/async.js:15:14)\n    at process._tickDomainCallback (node.js:459:13)",\n            "friendlyName": "EMC Compose System",\n            "ignoreFailure": false,\n            "implementsTask": "Task.Base.Emc.Compose.System",\n            "injectableName": "Task.Emc.Compose.System",\n            "instanceId": "bf92e5fd-3b3d-44ca-baaf-8f716b03cd52",\n            "label": "emc-compose-system",\n            "name": "Task.Emc.Compose.System",\n            "options": {\n                "action": "compose",\n                "endpoints": [\n                    "ComputeElement0",\n                    "StorageElement1",\n                    "StorageElement3"\n                ],\n                "name": "newSystem"\n            },\n            "properties": {},\n            "runJob": "Job.Emc.Compose.System",\n            "state": "failed",\n            "terminalOnStates": [\n                "succeeded",\n                "timeout",\n                "cancelled",\n                "failed"\n            ],\n            "waitingOn": {}\n        }\n    },\n    "graph_name": "Graph.Emc.Compose.System",\n    "route_id": "1dd0cfda-8769-4c5c-a0b8-7cf8c6b35ba4",\n    "status": "failed",\n    "target": "5763f9a2c1cde194085a0471"\n}\namqp: DEBUG: Closed channel #1\nmodules.worker: INFO: stopping subtask for 5763f9a2c1cde194085a0471\n--------------------- >> end captured logging << ---------------------'

Test Name: test_node_catalogs
Error Details: Node catalog is empty!
Stack Trace: Traceback (most recent call last):
  File "/usr/lib/python2.7/unittest/case.py", line 331, in run
    testMethod()
  File "/usr/lib/python2.7/unittest/case.py", line 1043, in runTest
    self._testFunc()
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 296, in testng_method_mistake_capture_func
    compatability.capture_type_error(s_func)
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/compatability/exceptions_2_6.py", line 27, in capture_type_error
    func()
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 350, in func
    func(test_case.state.get_state())
  File "/home/jenkins/workspace/on-core/RackHD/test/tests/api/v2_0/nodes_tests.py", line 274, in test_node_catalogs
    assert_not_equal(0, len(resp), message='Node catalog is empty!')
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/asserts.py", line 151, in assert_not_equal
    raise ASSERTION_ERROR(message)
AssertionError: Node catalog is empty!

Test Name: test_tag_create
Error Details: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Content-Length': '64', 'X-Powered-By': 'Express', 'Connection': 'keep-alive', 'ETag': 'W/"40-Q38QbScBlBP5OU44I43q4w"', 'Date': 'Fri, 17 Jun 2016 13:22:57 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=utf-8'})
HTTP response body: {"message":"NotFoundError: No Catalogs Found for Source (dmi)."}

-------------------- >> begin captured logging << --------------------
tests.api.v2_0.tags_tests: INFO: {'rules': [{'path': 'dmi.System Information.Manufacturer', 'equals': u'Quanta Computer Inc'}], 'name': u'5763f86b0506f79508e5f631'}
tests.api.v2_0.tags_tests: INFO: {'rules': [{'path': 'dmi.System Information.Manufacturer', 'equals': u'EMC'}], 'name': u'5763f8710506f79508e5f638'}
tests.api.v2_0.tags_tests: INFO: {'rules': [{'path': 'dmi.System Information.Manufacturer', 'equals': u'EMC'}], 'name': u'5763f8760506f79508e5f63f'}
--------------------- >> end captured logging << ---------------------
Stack Trace:   File "/usr/lib/python2.7/unittest/case.py", line 331, in run
    testMethod()
  File "/usr/lib/python2.7/unittest/case.py", line 1043, in runTest
    self._testFunc()
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 296, in testng_method_mistake_capture_func
    compatability.capture_type_error(s_func)
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/compatability/exceptions_2_6.py", line 27, in capture_type_error
    func()
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 350, in func
    func(test_case.state.get_state())
  File "/home/jenkins/workspace/on-core/RackHD/test/tests/api/v2_0/tags_tests.py", line 45, in test_tag_create
    tagsWithRules = self.__create_tag_rule(n.get('id'))
  File "/home/jenkins/workspace/on-core/RackHD/test/tests/api/v2_0/tags_tests.py", line 26, in __create_tag_rule
    Api().nodes_get_catalog_source_by_id(identifier=id,source='dmi')
  File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_api2_0/apis/api_api.py", line 2087, in nodes_get_catalog_source_by_id
    callback=params.get('callback'))
  File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_api2_0/api_client.py", line 322, in call_api
    response_type, auth_settings, callback)
  File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_api2_0/api_client.py", line 149, in __call_api
    post_params=post_params, body=body)
  File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_api2_0/api_client.py", line 342, in request
    headers=headers)
  File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_api2_0/rest.py", line 184, in GET
    query_params=query_params)
  File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_api2_0/rest.py", line 177, in request
    raise ApiException(http_resp=r)
'(404)\nReason: Not Found\nHTTP response headers: HTTPHeaderDict({\'Content-Length\': \'64\', \'X-Powered-By\': \'Express\', \'Connection\': \'keep-alive\', \'ETag\': \'W/"40-Q38QbScBlBP5OU44I43q4w"\', \'Date\': \'Fri, 17 Jun 2016 13:22:57 GMT\', \'Access-Control-Allow-Origin\': \'*\', \'Content-Type\': \'application/json; charset=utf-8\'})\nHTTP response body: {"message":"NotFoundError: No Catalogs Found for Source (dmi)."}\n\n-------------------- >> begin captured logging << --------------------\ntests.api.v2_0.tags_tests: INFO: {\'rules\': [{\'path\': \'dmi.System Information.Manufacturer\', \'equals\': u\'Quanta Computer Inc\'}], \'name\': u\'5763f86b0506f79508e5f631\'}\ntests.api.v2_0.tags_tests: INFO: {\'rules\': [{\'path\': \'dmi.System Information.Manufacturer\', \'equals\': u\'EMC\'}], \'name\': u\'5763f8710506f79508e5f638\'}\ntests.api.v2_0.tags_tests: INFO: {\'rules\': [{\'path\': \'dmi.System Information.Manufacturer\', \'equals\': u\'EMC\'}], \'name\': u\'5763f8760506f79508e5f63f\'}\n--------------------- >> end captured logging << ---------------------'

Test Name: get_sku_nodes
Error Details: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Content-Length': '64', 'X-Powered-By': 'Express', 'Connection': 'keep-alive', 'ETag': 'W/"40-Q38QbScBlBP5OU44I43q4w"', 'Date': 'Fri, 17 Jun 2016 13:22:58 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=utf-8'})
HTTP response body: {"message":"NotFoundError: No Catalogs Found for Source (dmi)."}

Stack Trace: Traceback (most recent call last):
  File "/usr/lib/python2.7/unittest/case.py", line 331, in run
    testMethod()
  File "/usr/lib/python2.7/unittest/case.py", line 1043, in runTest
    self._testFunc()
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 296, in testng_method_mistake_capture_func
    compatability.capture_type_error(s_func)
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/compatability/exceptions_2_6.py", line 27, in capture_type_error
    func()
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 350, in func
    func(test_case.state.get_state())
  File "/home/jenkins/workspace/on-core/RackHD/test/tests/api/v2_0/skupack_tests.py", line 151, in get_sku_nodes
    Api().nodes_get_catalog_source_by_id(identifier=node_id,source='dmi')
  File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_api2_0/apis/api_api.py", line 2087, in nodes_get_catalog_source_by_id
    callback=params.get('callback'))
  File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_api2_0/api_client.py", line 322, in call_api
    response_type, auth_settings, callback)
  File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_api2_0/api_client.py", line 149, in __call_api
    post_params=post_params, body=body)
  File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_api2_0/api_client.py", line 342, in request
    headers=headers)
  File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_api2_0/rest.py", line 184, in GET
    query_params=query_params)
  File "/tmp/.venv/local/lib/python2.7/site-packages/on_http_api2_0/rest.py", line 177, in request
    raise ApiException(http_resp=r)
ApiException: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Content-Length': '64', 'X-Powered-By': 'Express', 'Connection': 'keep-alive', 'ETag': 'W/"40-Q38QbScBlBP5OU44I43q4w"', 'Date': 'Fri, 17 Jun 2016 13:22:58 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=utf-8'})
HTTP response body: {"message":"NotFoundError: No Catalogs Found for Source (dmi)."}

looks like the setup() method for redfish compose tests didn't delete the composed systems from the previous test run.  Not sure why, no error in setup().. I manually deleted them.  jenkins, test this please.

*** BUILD #657 ***

test this please


Make some style adjustments so audio controls are somewhat independently usable

Right now rendering audio elements on their own without the supporting AudioControlBar makes them a bit unsightly/unusable.

The main issues to fix are:

ProgressBar should have a required style.height prop (and maybe style.width) so it doesn't end up rendering collapsed.
Play button background on paused state isn't the best (#119)
Buttons should only take up needed space even without a flex parent (div shouldn't take up entire width of parent).

This is fixed well enough even though the vertical alignment of standalone controls looks kind of funny without some extra styling.


WWW-Authenticate: Basic authentication requires a realm

I'm using Caddy to provide a service with the 'basicauth' option, and trying to consume it through libavformat's HTTP client. The latter client expects 'WWW-Authenticate: Basic' be followed by a space, containing a realm - Caddy currently only sends the string 'Basic', without any trailing parameter.
As RFC 7617 says:
   The Basic authentication scheme utilizes the Authentication Framework
   as follows.

   In challenges:

   o  The scheme name is "Basic".

   o  The authentication parameter 'realm' is REQUIRED ([RFC7235],
      Section 2.2).

it seems to be Caddy not adhering to the specification, and libavformat not handling 'broken' (according to the RFC) web servers properly.

Right, thanks for pointing this out. Let's get this fixed. How should realm be defined in a way that is both useful and user-friendly (configuration-friendly)? Can we just use the base path argument or should it be something else?
FWIW I think the basicauth middleware could use an upgrade all-around to make it easier to add multiple users or multiple paths per user, and even to load users/passwords from a file (NOT htpasswd) rather than listing it right in the Caddyfile would be cool. But that's another topic for another day.

Perhaps a sane default with configurable parameter in Advanced Settings?
(Not a Caddy user, just followed a link)

How should realm be defined in a way that is both useful and user-friendly (configuration-friendly)? Can we just use the base path argument or should it be something else?

RFC 7235 states the realm is meant as a sub-namespace of the scheme and authority components (i.e. 'components up to the path'), so I'd assume the base path is a sufficient parameter for this purpose - outside, of course, of vanity/potential-rare-legacy purposes of specifying a custom realm (which could be done in a parameter in to the basicauth option in the configuration).

The realm indicates to the browser whether it can use a previously entered password for a particular area (realm) of the site. Should you have only one realm string, but you define multiple sets of resources with different sets of credentials, the browser would try to use previously entered credentials for parts of the site that could not be authorized by those credentials, which would just mean an extra 'Unauthorized' roundtrip.
Therefore, if we use the base path of the request, the browser would not attempt a re-use of entered credentials as soon as the base path changes. To use the path of the resource(s) as defined in the Caddyfile also does not make sense, since we can have multiple resources per rule.
The only straightforward option is to say that we only support a single realm per Caddy server and assume the client will know when to provide which set of credentials. This realm could have a fixed/default string such as 'Protected' or 'Restricted area' as I've seen done before. The alternative would be to change the way Basic Auth is configured in the Caddyfile.

IMHO this belongs in a plugin of its own.
I understand that some users must due to legacy software, but nobody should deploy this scheme these days anymore.

The string "default" is as good as any, make it overridable in the Caddyfile.

Is this going to get resolved whatsoever? I'm kind of hesitant making a simple pull request that provides a default string just in order to please client implementations like libavformat for fear of rejection because of it 'not being properly fleshed out', and I'm not a Go developer so wouldn't know how to implement configurability...

@ntauthority It's okay to be new. A PR will undergo some scrutiny before it gets merged, so you needn't worry about doing some of it wrong. Ideally it should be tested with browsers and libavformat both to make sure things still work. If relevant, try adding a test in the basicauth_test.go file, that will help ensure it is working. :smile:

We will do our best to provide you hints and examples how to improve your PR should it need work. If you need anything don't hesitate to ask, annotate accordingly, and/or provide a link to the code in question.

Can we make this bug a priority? It seems to be causing this apache HTTP client issue which breaks many Android applications that use it. I'm going to recompile Caddy setting the realm to some value just as a workaround, but it would be nice if this could be fixed.

Thanks for making a push on this, @skorokithakis! We'll get this taken care of much more quickly with your help. :)

Thanks for being so responsive, @mholt! I'll try the PR now and see if I can get it to build.


pixi environment using the nightly builds?

not sure if it is possible as I see in the testing.yml the nightly builds are installed with pip but @glemaitre do you think we could have a pixi environment for those?

Indeed, we should be able to do it because skops did it: https://github.com/skops-dev/skops/pull/451/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711R228-R238
However, we need to check the complexity since some of the package can have an upper-bound.


Responsd to Discord role mentions

Would help workaround the wonky discord UI problems we've seen

Suggestions from discord bot devs:
you can also use the role mention as a prefix
you could just hanle the role the same way you handle the user mention
Yes, I have my bot look for 3 mention techniques: nickname, user id, role id.
How do I know which role is the "right" one?  ie I'd imagine it's not just "whatever role the bot is a member of" because the bot can have multiple roles?
Just string matching or something?

role objects have a bot id field
or application id
check the docs

actually looking through djs docs I don't think it supports role tags yet yikes
oh actually it does on master

So once discord.js releases a new version I should be able to fix this pretty easily.


Fix example for the 'profile' media type parameter

Per RFC 7231 Section 5.3.2, Accept is not an ordered list. Relative preferences are expressed with explicit quality values.

Thanks for PR @vfaronov, we've just merged a number of refinements to extensions and profiles. We ended up removing lots of profile related language and some of the examples, including this one. Would you mind re-reading the spec and making sure we've gotten our content negotiation rules examples correctly (since you've shown interest/expertise in these things)?

@gabesullice Upon a quick skim, I couldn’t find examples for multi-entry Accept in the current version, just a note that this is possible, which seems OK, but I submitted #1504 to improve it a bit.

Thank you! 🙏


nfs issues when processing umui job

resolution_fixed   |    by<EMAIL_ADDRESS>
Every now and again I've been getting errors from the nfs mounts on the new accessdev. e.g.
rm: cannot remove `vaabf/.nfs000000000101616f00000021': Device or resource busy
This occurs when processing umui jobs. I find that to fix this I have to log into the old accessdev and then delete the file (but I am not logged into the old accessdev otherwise).
Has anyone else seen similar issues?
Is this an indication that we shouldn't be mounting the same filesytem on separate mounts? Is this also likely to be an issue when we go to the new cinder filesystem?

Issue migrated from trac:50 at 2024-01-31 17:13:00 +1100

<EMAIL_ADDRESS>changed status from new to assigned

<EMAIL_ADDRESS>removed milestone (was accessdev v1.0)

<EMAIL_ADDRESS>commented

Milestone accessdev v1.0 deleted

<EMAIL_ADDRESS>changed status from assigned to closed

<EMAIL_ADDRESS>changed owner from `` to cma900

<EMAIL_ADDRESS>changed resolution from `` to fixed


Create and use BOM for mhus dependencies

A separate BOM for dependencies.

Example: https://github.com/steinarb/jackson-bom

Will not work proper. Reorg of pom files was done.


Angular CLI Use ngModule Configuration when I use ng new ProjectName ?

Please provide us with the following information:

OS?  Windows 7, 8 or 10. Linux (which distribution). Mac OSX (Yosemite? El Capitan?)

Versions. Please run ng --version. If there's nothing outputted, please run
in a Terminal: node --version and paste the result here:

Repro steps. Was this an app that wasn't created using the CLI? What change did you
do on your code? etc.

The log given by the failure. Normally this include a stack trace and some
more information.

Mention any other details that might be useful.

Thanks! We'll be in touch soon.

@suresh191 what version of the CLI are you using? be sure to answer the questions given in the issue template so all the information is provided. the latest version of the webpack build uses NgModule

Thanks Deebloo for your reply. This is the version information I have in my local.
angular-cli: 1.0.0-beta.10
node: 6.4.0
os: win32 x64
I have created a new project with this version of CLI but I am not finding ngModule.

I'm having the same problem.
$ ng --version
angular-cli: 1.0.0-beta.10
node: 4.5.0
os: win32 x64

The latest webpack release is the only one that is being updated and will eventually be the default version. Try npm install -g angular-cli@webpack

I just uninstalled existing version, clear cache and re-installed cli@webpack. I now see ngModule configurations in the project. Thank you very much.

Glad you got it worked out!

I've tried it.
First had to install webpack globally, then hit this issue: #1930
workaround fixed, even though issue is for windows os and I'm on a ubuntu based distro.
Not so smooth transition to webpack :P

https://github.com/angular/angular-cli#webpack-update contains up to date instructions on how to update beta.14 projects now.


Amending stdlib ArgumentParser

Hi all,
Is there a possibility to amend arguments configuration previously set to standard lib ArgumentParser with functionality avaialble in GooeyParser, to keep code DRY?
ie I have previosly created command line app using Argument Parser. For argument named "directory" it used argparse.FileType('w'). Now I want to hook up this script to Gooey, but I want "directory" arg to use neat widget='FileChooser' from Gooey, but don't want to rewrite all cli vesion just because this one thing.
Looking at GooeyParser class I tried achieving the above by amending gooey_parser.parser with cli_parser instance created previously in cli_main (as this attribute is actually ArgumentParser() instance looking at the code - but this didn't work.
Any ideas?
cli_main.py:
import argparse
cli_parser = argparse.ArgumentParser()
cli_parser.add_argument('directory', help='path to search files in', type=argparse.FileType('w'))
cli_parser.add_argument('--subdirectories', help='search inside subdirectories', action='store_true')

gooey_main.py:
import gooey
import cli_main

@gooey.Gooey()
def main():
  gooey_parser = gooey.GooeyParser()
  gooey_parser.parser = cli_main.cli_parser
  gooey_parser.add_argument('directory', help="folder to search in", widget='DirChooser')
  args = gooey_parser.parse_args()

if __name__ == "__main__":
    sys.exit(main())

I usually do something like from gooey import GooeyParser as ArgumentParser

Hi, I don't quite understand. What I would like to achieve is in the end to change/override default widget attached to ArgumentParser (from stdlib) to gooey's DirChooser

I'm not quite sure of what you're trying to accomplish. Superficially, it looks like @eladeyal-intel's advice is what you want. GooeyParser is a drop-in replacement for Argparse. You don't need to have both ArgumentParser and GooeyParser instances.

Thanks for responses, looks like I have not described it good enough.
Let's say I have cli tool that I still need to maintain and it's using stdlib ArgumentParser. Now, parallely to that cli tool located in cli_module, I want to provide another way of interaction for it, in gui_module.
Gooey takes care of this quite well by taking my already created ArgumentParser, imported from my cli_module, and interpreting it to gui widgets after I apply @gooey.Gooey decorator. Except for one wigdet - I want to exchange/amend one argument to use different widget.
So for argument defined in cli_module:
parser.add_argument('directory', help='path to search files in', type=argparse.FileType('w'))
in gui_module I'd like Gooey to use widget="DirChooser" (by default Gooey applies "FileChooser" as stdlib argparse does not have "DirChooser" equivalent)
I wouldn't like to duplicate all code created in cli_module, just because I want one widget amended in gui_module. Can I somehow just amend that one argument in gui_module, and for rest rely on Gooye's interpretation of ArgumentParser?

@simplynail This isn't exactly what you want, but assuming you can edit the cli_module source, you could convert that ArgumentParser into a GooeyParser (and specify the extra gooey_options), and then just pass an --ignore-gooey as an (implicit) CLI arg by modifying sys.argv when you want to run it as CLI. To go one step further, and not have a dependency on Gooey for the cli_module, you can monkey patch the stdlib parser to ignore the gooey_options (I did something like that here)

all right, thanks for help @iamkroot , looks like I have actually approached the problem from the other way around and haven't stumbled upon --ignore-gooey which should do the trick. Thanks for sharing your monkey patching snippet, will try it out if --ignore-gooey won't be sufficient


.ini parser truncates last value when file has no ending newline

Test program:
#include "IniFile.h"
#include <stdio.h>

int main(int argc, char** argv) {
	INI_FILE testIni(L"test.ini");
	INI_VAR_STRING test;
	testIni.GetVariableInSection("test", "test1", &test);
	printf(test.Value);
}

test.ini
[test]
test1 =abc

If test.ini does not end with a newline, the test program outputs ab not abc
(I found this bug by trying the .ini in #617)

This is known bug, but currently we have a workaround in the installer for it (assuming the user wouldn't modify the file directly, but install or update it with installer).
If you have any idea how to fix it, please create a Pull Request. :wink:


Tests failing on clone (?)

Hi @mbdavid!
Great project!
I am struggeling with count/query in the beta on nuget so thought I should check out a build from codebase.
Did a clone, build is ok - but 6+ of the tests fail.
Is this expected in the current state of the code, or should it work?

Hi @botne, it´s possible current master branch are not running all tests. I made some changes and didn´t check yet. I will release next beta version soon.

Thanks for the prompt reply, @mbdavid.
Will look more at the code - hope to help with the project at some point.
Keep up the good work!

At last, all tests on master are green once again since a week.


Stop relying on the key primitive for the Instruction

Explored here:
https://github.com/digital-asset/daml-finance/tree/remove-key-primitive-for-instruction