SequelizeUniqueConstraintError on child creation

This simple test throw a SequelizeUniqueConstraintError
beforeEach((done) => {
            models.sequelize.sync({force: true}).then(() => {
                this.Account = models.Account;
                done();
            });
});

it('shoud handle correctly hierarchy of account', () => {
            var parentAccount = {
                title  : "Parent Account",
                balance: 0
            };

            var childAccount = {
                title  : "Child Account",
                balance: 0
            };

            return this.Account.create(parentAccount)
                .then((parentAccountCreated) => {
                    childAccount.parentId = parentAccountCreated.id;
                    return this.Account.create(childAccount)
                })
                .then(
                    (childAccountCreated) => {
                        console.log(childAccountCreated.parentId);
                    },
                    (error) => {
                        console.log(error);
                    }
                )
        });

But, after exec it, in MySQL i dound those datas :
| id | title          | balance | deleted | deletion_date | creation_date       | modification_date   | hierarchyLevel | parentId |
+----+----------------+---------+---------+---------------+---------------------+---------------------+-------------+
|  1 | Parent Account |       0 |    NULL | NULL          | 2016-06-25 13:51:35 | 2016-06-25 13:51:35 |              1 |     NULL |
|  2 | Child Account  |       0 |    NULL | NULL          | 2016-06-25 13:51:35 | 2016-06-25 13:51:35 |              2 |        1 |
Like everything is ok.
So i don't understand where is my mistake...
Do you have any idea ?
Some additional infos :
The detailed error :
{ [SequelizeUniqueConstraintError: Validation error]
  name: 'SequelizeUniqueConstraintError',
  message: 'Validation error',
  errors:
   [ { message: 'PRIMARY must be unique',
       type: 'unique violation',
       path: 'PRIMARY',
       value: '2-1' } ],
  fields: { PRIMARY: '2-1' } }

The correspondig model :
var Account = db.define("Account", {
            title        : {
                type: Sequelize.STRING
            },
            balance      : {
                type: Sequelize.FLOAT
            },
            deleted      : {
                type: Sequelize.BOOLEAN,
            },
            deletion_date: {
                type: Sequelize.DATE
            }
        },
        {
            timestamps  : true,
            createdAt   : "creation_date",
            updatedAt   : "modification_date",
            hierarchy   : true
        });

    return Account;

Thanks for raising this.
When you set a hierarchy on a model, it also defines another model to track the descendents of all nodes. In your case this would be called AccountHierarchy.
It looks like the error is coming from trying to insert a duplicated row into AccountHierarchy table.
Two possibilities for why this is happening:

A bug in this module
AccountHierarchy table is not being cleared before the test run so row inserted in a previous test or previous run of this test are still present.

I suspect it's (2) as there are already tests for this which are passing fine.
To narrow this down, I'd suggest the following:

Before running that test, manually delete or empty the AccountHierarchy table from the database, and see if you still get the same error.
Ensure that models.sequelize.sync({force: true}) is syncing all models, including AccountHierarchy. From your code, I can't tell whether models.sequelize refers to the the db object that Account model is being defined on.

Please can you try this and let me know? If there's a bug, of course I want to fix it ASAP, but I suspect the fault is with your code somewhere.

What version of node and sequelize are you using?

Thanks for the quick answer !
So :
node v4.4.6
sequelize": "^3.23.4",
sequelize-hierarchy": "^0.7.0"
I've tried to comment all my tests, except of the one which bugs.
Schema in DB :
+---------------------------+
| Tables_in_account_manager |
+---------------------------+
| Accounts                  |
| Accountsancestors   |
+---------------------------+

Manually delete all datas;
mysql> SELECT * FROM Accounts;
Empty set (0.00 sec)

mysql> SELECT * FROM Accountsancestors;
Empty set (0.00 sec)

And the first time i run the tests after, it's ok.
So i think it's a problem with my code...
I've followed the example i've found here to organize my app : https://github.com/sequelize/express-example/
So my models file is :
//See http://docs.sequelizejs.com/en/1.7.0/articles/express/

var fs        = require("fs");
var path      = require("path");
var Sequelize = require("sequelize");
var config    = require("../config/config.json");

//Sequelize plugins
require('sequelize-hierarchy')(Sequelize);

var sequelize = new Sequelize(config.database, config.username, config.password, config);
var db        = {};

fs
    .readdirSync(__dirname)
    .filter((file) => {
        return (file.indexOf(".") !== 0) && (file !== "index.js");
    })
    .forEach((file) => {
        var model = sequelize.import(path.join(__dirname, file));
        db[model.name] = model;
    });

Object.keys(db).forEach((modelName) => {
    if ("associate" in db[modelName]) {
        db[modelName].associate(db);
    }
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

And so models.sequelize.sync({force:true}) shoud sync all my models. (If i understand how Sequelize works)
Thanks for the help !

I've put all the code you've posted into a little repo and run the tests but I'm unable to reproduce the fault.
You are not by any chance doing require('sequelize-hierarchy')(Sequelize) in another file as well?
require('sequelize-hierarchy')(Sequelize) adds hooks on sequelize's methods like model.create(). So if you initialize sequelize-hierarchy twice, it adds the hooks twice. So then it will try to add the same rows to Accountsancestors table twice, which causes a primary key unique error.
I added a 2nd require('sequelize-hierarchy')(Sequelize) to my test repo and got exactly the same error as you.
Please let me know if that solves it...

No, it's require only once...
I try to replace mysql with sqlite, but i have the same problem
I add nother beforeEach block, to be sure :
var chai   = require('chai').should();
var models = require("../../src/models");

describe("The Account model", function (){
    beforeEach(function(done){
        models.sequelize.sync({force: true}).then(() => {
            this.Account = models.Account;
            done();
        });
    });

    describe("The create method", function(){
        beforeEach(function(done){
            models.sequelize.query("SELECT * FROM Accountsancestors WHERE 1", {type: models.Sequelize.QueryTypes.SELECT})
                .then((result, metadata) => {
                    console.log(result);
                    done();
                });
        });

        it('shoud return the account created', function(done){
            var testAccount = {
                title  : "Test Account",
                balance: 0
            };

            return this.Account.create(testAccount).then((account) => {
                account.title.should.equal(testAccount.title);
                done();
            })
        });

        it('shoud add the account created to the database', function(done){
            var testAccount = {
                title  : "Test Account",
                balance: 0
            };

            return this.Account.create(testAccount).then((accountCreated) => {
                return this.Account.findById(accountCreated.id).then((accountFound) => {
                    accountFound.title.should.equal(testAccount.title);
                    done();
                })
            })
        });

        it('shoud handle correctly hierarchy of account', function(done){
            var parentAccount = {
                title  : "Parent Account",
                balance: 0
            };

            var childAccount = {
                title  : "Child Account",
                balance: 0
            };

            return this.Account.create(parentAccount)
                .then((parentAccountCreated) => {
                    childAccount.parentId = parentAccountCreated.id;
                    return this.Account.create(childAccount)
                })
                .then(
                    (childAccountCreated) => {
                        childAccountCreated.parentId.should.equal(1);
                        done();
                    },
                    (error) => {
                        console.log(error);
                        done();
                    }
                )
        });
    });
});

And the result : Works on first start, but failed after
The Account model
  The create method
[]
    ✓ shoud return the account created
[]
    ✓ shoud add the account created to the database
[]
    ✓ shoud handle correctly hierarchy of account

3 passing (251ms)

The Account model
  The create method
[]
    ✓ shoud return the account created
[]
    ✓ shoud add the account created to the database
[]
{ [SequelizeUniqueConstraintError: Validation error]
name: 'SequelizeUniqueConstraintError',
message: 'Validation error',
errors:
 [ { message: 'PRIMARY must be unique',
     type: 'unique violation',
     path: 'PRIMARY',
     value: '2-1' } ],
fields: { PRIMARY: '2-1' } }
    ✓ shoud handle correctly hierarchy of account

3 passing (156ms)

Once again, thanks for your time and your help.

OK, this is really mysterious. I can't replicate this.
So I'm sure I'm not missing anything, could you please put the whole app (well the relevant files anyway) in a Github repo? Obviously remove the db authentication credentials from config.json but please keep config.json in the repo so I can check there isn't something in there that's part of this problem.

By the way, if you remove the last then handler:
(error) => {
    console.log(error);
    done();
}

Then the error will be thrown back to mocha, will cause the test to fail, and it'll print the stack trace. Which could be useful in locating the problem.

Sure, i can share the code : https://github.com/Varkal/Temp
Thanks you so much it's so kind to spend so much time to help me.

Ok. I got to the bottom of it.
There is something weird going on with mocha when using the --watch option is used.
Add the following lines to src/models/index.js just before require('sequelize-hierarchy')(Sequelize):
console.log('Attaching sequelize-hierarchy');
if (Sequelize.HierarchyError) console.log('sequelize-hierarchy already attached!');

When you run the tests the first time, you'll just see Attaching sequelize-hierarchy. When you alter a file which triggers mocha to run again, you'll see in the output sequelize-hierarchy already attached!.
That's what's causing the problem - sequelize-hierarchy is being attached twice, which causes it to run its hooks twice, which means it tries to insert the same rows twice. And that's what causes the error.
I'd suggest not using mocha's --watch option. Or raise an issue with mocha.
Also, I noticed that your tests are implemented a bit oddly - you're returning promises and using callbacks simultaneously. If you return promises, you don't need the done callbacks, and in some cases doing so is causing errors to get swallowed. I've changed the test functions to all use just promises here: https://github.com/Varkal/Temp/pull/1/commits/bd3d61345e29693bd103dd879fd07661b73a484d
I conclude that there's no bug in sequelize-hierarchy, so closing this issue.

Thanks you so much !
I think it could be a useful to write somewhere that an user can check if sequelize-hierarchy is already loaded by check the presence of the Sequelize.HierarchyError.


Effects.asyncTask

I came across a case where I need to do two effects on startup. The first task launches an http request, and the second starts a timer to wait 5 seconds before advancing a slideshow.
type MyAction = HttpLoadSuccess String | HttpLoadFailure | AdvanceSlideshow

-- initialEffects to be used in StartApp.start { init = (..., initialEffects), ... }
initialEffects : Effects MyAction
initialEffects = Effects.batch [ httpEffect, advanceSlideshowEffect ]

advanceSlideshowEffect : Effects MyAction
advanceSlideshowEffect =
    Effects.task <| Task.sleep 1000 `Task.andThen` (\_ -> Task.succeed AdvanceSlideshow)

httpEffect : Effects MyAction
httpEffect =
    Http.getString myUrl
        |> Task.map (\data -> HttpLoadSuccess data)
        |> (flip Task.onError) (\_ -> Task.succeed HttpLoadFailure)
        |> Effects.task

The problem is that Effects.batch execute the effects in sequential order. This means that my timer will not start until after the http request has finished. I thought I had a solution using Task.spawn:
...
httpEffect : Effects MyAction
httpEffect =
    Http.getString myUrl
        |> Task.map (\data -> HttpLoadSuccess data)
        |> (flip Task.onError) (\_ -> Task.succeed HttpLoadFailure)
        |> Task.spawn
        |> Effects.task

This will make my httpEffect task return immediately (while the request proceeds async), but now my loaded data disappears, and my types don't match (httpEffect : Effects Task.ThreadID).
What I need is an Effects function which can spawn an async task, and still forward the task's final value to my update function:
Effects.asyncTask : Task x a -> Effects a

Or maybe we just need a version of Effects.batch which runs things in parallel? What if we had:
Effects.sequence : List (Effects a) -> Effects a
Effects.parallel : List (Effects a) -> Effects a

I checked the code, and it looks like it does run them in parallel using Task.spawn:
https://github.com/evancz/elm-effects/blob/master/src/Effects.elm#L190
I think we should update the documentation to make it clear that they are running parallel and the actions could come in a different order.

I believe we already have Task.sequence and I am expecting to have Task.interleave and Task.race in the next release of core. I agree about making it clearer that things run concurrently (not the same as parallel) but I'm not sure it makes sense to worry too much about this with the 0.17 things on the way.

I don't know how far away you think 0.17 is, but probably we should have a release of at least core and elm-effects before then.

Perhaps. I guess do a PR that changes the docs how you want them for this topic in the meantime and we can do a patch?


long break not working

After the work sessions before the long break are done, the break will not be a long one for some reason.
I'll investigate.

Fixed with 754006115f54377cbf50b3ae059a29d9c4c17c60


Implement EZW

Here's what we need to do:

[x] Implement the tree for Morton Scan
[ ] Implement the Dominant Pass
[ ] Implement the Subordinate Pass & encode
[ ] Reconstruction

Morton scan implemented in commit bc6ba81


3.4.0 regression: required collection installed but in wrong location

The current 3.4.0 detects required collections and installs them but in a location that is incorrect and thus the later executions of ansible-playbook fail to find them.
I suspect this is related to the use of -p when calling ansible-galaxy. I also seen something very weird, like the fact that the destination directory looks like ~/.cache/ansible-lint/...

Closing as 3.5.1 replaced the entire bootstrapping code and the issue mentioned here no longer reproduce.


Implement Clone for all pipeline types

Objective
Pipelines can be customized by wrapping an existing pipeline in a newtype and adding custom logic to its implementation of SpecializedMeshPipeline::specialize. To make that easier, the wrapped pipeline type needs to implement Clone.
For example, the current non-cloneable pipelines require wrapper pipelines to pull apart the wrapped pipeline like this:
impl FromWorld for Wireframe2dPipeline {
    fn from_world(world: &mut World) -> Self {
        let p = &world.resource::<Material2dPipeline<ColorMaterial>>();
        Self {
            mesh2d_pipeline: p.mesh2d_pipeline.clone(),
            material2d_layout: p.material2d_layout.clone(),
            vertex_shader: p.vertex_shader.clone(),
            fragment_shader: p.fragment_shader.clone(),
        }
    }
}

Solution
Derive or implement Clone on all built-in pipeline types. This is easy to do since they mostly just contain cheaply clonable reference-counted types.

Changelog
Implement Clone for all pipeline types.

Left a suggestion for a comment to clarify the pattern used, but it's non-blocking. I'll let the rendering folks (cc @superdump) merge this one though.

I believe my use case was
impl FromWorld for Wireframe2dPipeline {
    fn from_world(world: &mut World) -> Self {
        let p = &world.resource::<Material2dPipeline<ColorMaterial>>();
        Self {
            mesh2d_pipeline: p.mesh2d_pipeline.clone(),
            material2d_layout: p.material2d_layout.clone(),
            vertex_shader: p.vertex_shader.clone(),
            fragment_shader: p.fragment_shader.clone(),
        }
    }
}

If Material2dPipeline<ColorMaterial> implemented Clone I wouldn't have to pull it apart like that.

That makes sense, thank you! Maybe add this to the PR description :).

Done

bors r+


Training code for multi-view controlnet

Hi, awesome work! Are you planning to release the code for training the multi-view controlnet model?
Thanks!

Thanks a lot for your attention. We may release the training code in future, but do not sure the timeline.

For training images, did you use random grayscale background similar to original MVDream?

Yes, we render objects into png format and attach grayscale background


[Suggestion] - Provide support for compass deployments

Suggestion
Missing Product

Will the product https://www.atlassian.com/software/compass/features be deployed by this Kubernetes effort as well?
If so, is there a timeframe when the product is available?
The company I work for already has Jira and Confluence and we'd love to have Compass... Is there a way to get into the program as a collaborator, since the product is still in BETA?

thank you
Marcello
Product
Other
Code of Conduct

[X] I agree to follow this project's Code of Conduct

hi @marcellodesales I think https://jira.atlassian.com/browse/SCALE is a better place to raise such a feature request. So, far K8s compass deployment isn't on the roadmap (which can change of course).
As to collaboration, we'd definitely be excited to review a PR :)

@bianchi2 Sounds good... Just created the ticket at https://jira.atlassian.com/browse/SCALE-102 and added notes to the ticket in regards to justification: https://community.atlassian.com/t5/Data-Center-articles/Investing-in-Kubernetes-helm-charts-and-the-end-of-support-for/ba-p/2277819
❓ Extra Question

Do you happen to know if there are the Atlassian Compass docker images are available anywhere for current Atlassian customers?

Closing in favor of https://jira.atlassian.com/browse/SCALE-102. Sadly, Compass is a cloud only offering for now.


Add SidMenu React Native component

Thank you for your contribution @khanghoang :+1:

@dmfrancisco :beers:


Service catalog is not working properly for versioned API

Description:
For APIs created without a version, the service catalog works without any issue. However when we specify a version, the service catalog will fail during CAR deployment.

Once the car plugin is released we need to update the VSCode plugin as well.

vscode-car-plugin version 5.2.74 is released with the above fix. @ChinthakaJ98 please do the needful in MI VSCode extension

The latest release v1.1.3 has resolved this issue. Please reopen if the problem persists.


name validation for individual service

Summary by CodeRabbit

New Features

Introduced a new Name class for better representation and handling of individual names, including validation and serialization.

Bug Fixes

Updated validation error assertions in tests to expect a single error instead of two for certain scenarios, improving accuracy in error handling.

Refactor

Enhanced the IndividualMapper by centralizing name validation logic, improving code readability and maintainability.
Removed the @NotNull annotation from the name field in the Individual class, allowing for null values.

Chores

Updated import statements across various classes to reflect the new structure of the Name class.

changes are done in develop


Use new data status command

The code needs to be refactored and there is a bug in the decoration state that I need to write a test for (and then fix).
Need to fix package.json and how it references scmResourceState
~I also need to raise a bug in DVC because directories are not provided in the untracked property.~ -> Rollback to using git 😢.
Add a directory workflow works. ~Does not work for new unnecessarily nested directories~
And code climate is very upset.

@mattseddon, is it possible to know how much this improved/regressed the performance of the extension (from the command invocation to completely rendering in the filetree)?

@mattseddon, is it possible to know how much this improved/regressed the performance of the extension (from the command invocation to completely rendering in the filetree)?
We are tracking the VSCode's usecase in https://bench.dvc.org, but I'd love to see e2e results:
Name (time in s)                                          Min                Max               Mean            StdDev             Median               IQR            Outliers     OPS            Rounds  Iterations
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_data_status-data-changed[main-all_flags]        30.5379 (3.70)     30.5379 (3.70)     30.5379 (3.70)     0.0000 (1.0)      30.5379 (3.70)     0.0000 (1.0)           0;0  0.0327 (0.27)          1           1
test_data_status-data-changed-noop[main-all_flags]   31.1806 (3.76)     31.1806 (3.76)     31.1806 (3.76)     0.0000 (1.0)      31.1806 (3.76)     0.0000 (1.0)           0;0  0.0321 (0.27)          1           1
test_data_status-data-new[main-all_flags]            59.5360 (1.54)     59.5360 (1.54)     59.5360 (1.54)     0.0000 (1.0)      59.5360 (1.54)     0.0000 (1.0)           0;0  0.0168 (0.65)          1           1
test_data_status-data-noop[main-all_flags]           28.5594 (3.64)     28.5594 (3.64)     28.5594 (3.64)     0.0000 (1.0)      28.5594 (3.64)     0.0000 (1.0)           0;0  0.0350 (0.27)          1           1
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

These are rough numbers (and for a small repo) but the amount of time to first render the DVC Tracked tree on startup for example-get-started has gone from  ~4700ms => ~1600ms on my machine. There is some lag time in there for the rest of the extension to startup but it will be common across both observations. The performance improvement is noticeable under general usage 🙏🏻.

I don't know if it's necessarily related to this PR, but I'm able to consistently get the DVC repo in a state where dvc exp show itself thinks an experiment is running, but no experiment is and I must rm -rf .dvc to get experiments usable again (though there's probably a more specific file/folder in .dvc that is the problem, I tried each individual lockfile and didn't get results).

I don't know if it's necessarily related to this PR, but I'm able to consistently get the demo DVC repo in a state where dvc exp show itself thinks an experiment is running, but no experiment is and I must rm -rf .dvc to get experiments usable again. There's probably a more specific file/folder in .dvc that is the problem, but I tried each individual lockfile and didn't get results.
experiments-cancel-stuck-on-running-bug-demo.mp4

@rogermparent sounds like https://github.com/iterative/dvc/issues/8045. Try using main.

main did indeed solve my issue!


[New Feature]: Add an optional PVC to an SPS deployment

When deployment SPS, there should be an option to provision an optional PVC of desired size. This is needed to support large data processing like in the case of the CHIRP workflow, which requires processing of 16 days of data at one time.
The PVC should be backed up by EBS, and be mounted in all the containers of the Verdi pod: the Verdi container and the Docker-In-Docker container. Maybe use a mounting point as /stage or /cache.

Apparently mounting a PVC on every single node is not supported for a Kubernetes DaemonSet deployment, so we ended up mounting a common EFS partition on all worker nodes for the time being.


Simple cloning of a public repo fails due to authentication issues

Here's my code, copied directly from the documentation:
extern crate git2;

use git2::Repository;

fn main() {
    let url = "https://github.com/india-in-data/waterways.git";
    let repo = match Repository::clone(url, "waterways") {
        Ok(repo) => repo,
        Err(e) => panic!("failed to clone: {}", e),
    };
    println!("Done")
}

The repo is public.
and this code fails with this error:
➜  git_ops git:(master) ✗ cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.02s
     Running `target/debug/gitops`
thread 'main' panicked at 'failed to clone: authentication required but no callback set; class=Ssh (23)', src/main.rs:9:19
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

What am I doing wrong? This feels like I have something wrong with my setup.

Does the repository require authentication? e.g. a username and password or an SSH key? The underlying C-language libgit2 has an interface for this, but, as far as I can see, the Rust-language git2 crate does not implement that code at writing.

I received the same error (also on a public repo).
I realized that I've configured git to redirect https to ssh:
git config --list
url.git@github.com:.insteadof=https://github.com/

Rather than undo the git config, I followed the repo's example for Cloning using SSH and this worked for me.
Could this have been your issue too @shriphani ?

that was it. good catch. thank you very much.


Updated workbox demos to glitch (v5, new content)

What's changed, or what was fixed?

All demo URLs are changed to point to new glitch demos
workbox-window demo added
workbox-navigation-preload demo added

Target Live Date: Same date as Workbox v5 release, ideally

[x] This has been reviewed and approved by @jeffposnick
[x] I have run npm test locally and all tests pass
[x] I have added the appropriate type-something label
[x] I've staged the site and manually verified that my content displays correctly.

CC: @petele, @jeffposnick, @philipwalton

:tada: This has been pushed live to https://developers.google.com/web/


Connection admin shows connected services

Hopefully this doesn't make me start having to enable the admin explicitly

fixed in b2505


Inline JS as dependancy

Use case
Hello,
I'm trying to implement HTML5 boilerplate layout with Casset asset management.
In the html5 boilerplate template, jQuery framework is first atempted to be loaded from google api. Then there's a 1 line inline script that checks whether jQuery was successfully loaded and if not loads the local copy.
The best i could think of was:

Adding a js group in for jquery from googleapi named jquery
Adding a group  for jquery from local copy named jquery-fallback
Then including them via:

<?php echo Casset::render_js('jquery')?>
<script>window.jQuery || document.write('<?php echo trim(str_replace('</script>','<\\/script>',Casset::render_js('jquery_fallback')))?>')</script>

NOTE: I use:
Casset::render_js('jquery_fallback')

instead of:
Casset::get_filepath_js('jquery.1.7.1.js')

because there is no way to pass the file as array to Casset::get_filepath_js (i.e.  Casset::get_filepath_js(array('jquery.1.7.1.js', 'jquery.1.7.1.min.js')) which make the file one and the same for all environments.
The problem
I've made a separate issue for get_filepath_js() (#14) so the problem for this lies only in: Inability to add inline JS as a member of a group - currently every script in a group must be a file location.
Proposal
There should be file-specific options where the developer can pass something like array('script'=>true) to indicate the file is an inline script.
I can think of of two solutions where of course other can exist.
a) Support only runtime definition
This require fix for issue #14 (get_filepath_js)
Casset::js(
	sprintf('window.jQuery || document.write(\'<script src="%s"><\\/script>\')', Casset::get_filepath_js(array('lib/jquery-1.7.1.js', 'lib/jquery-1.7.1.min.js'))),
	array('script'=> true),
	'jquery'
);

b) Support for declarations in casset.php
The script indicator which currently can only be the file location to support array representation
Also additional option filter is required which accepts a format key which format the inline script with sprintf.
array(
	'window.jQuery || document.write(\'<script src="%s"><\\/script>\')',
	array('script'=> true,
		  'filter'=> array(
			  'format'=> array(
				  array('lib/jquery-1.7.1.js', 'lib/jquery-1.7.1.min.js')
			  )
		  )
	)
),

Righty, I've sent a while pondering over this, and I've come up with a few points:

get_filepath_* are for when you want to circumvent most of Casset's processing. This isn't your intention here, so I think that get_filepath_* is the wrong function for the job.
There's no real advantage (correct me if I'm wrong) to using get_filepath_js('jquery.1.7.1.js') over simply hard-coding the path. (Unless the capabilities of get_filepath_* were augmented, but that's another issue). In both cases you have to hard-code the jquery version, and the only advantage to using get_filepath_* is that Casset works out the correct path for you, which is unlikely to change anyway.
Therefore, either you don't really want any involvement from Casset (in which case you might as well hard-code the path), or you want to use Casset to centralise the definition of which jquery version to use, to handle minifying/combining, etc, in which case render_* is the right function to be using.
If you want to follow the latter route, my preferred resolution (building on #14) would be to allow you to tell render_* not to produce tags. This would allow you to do the following:

<?php echo Casset::render_js('jquery')?>
<script>window.jQuery || document.write('<script src="<?php echo Casset::render_js('jquery_local', array('gen_tags' => false)) ?>"></script>

When it comes to adding slightly obscure functionality to Casset, I'm very much in favour of giving the end-user the tools to work with, and letting them get the job done their way. In this way, we don't end up coding for a thousand slightly different but equally obscure use-cases. This can be seen in the way that parsing files (e.g. for SASS),and cache-busting, are both handled by callbacks, rather than by some more specialised system.
This makes me very much against option b). You can achieve exactly the same end-result, in less code and with more flexibility, by simply retrieving the asset URL from Casset's render_js, and constructing the <script> tag yourself.
What do you think?

<?php echo Casset::render_js('jquery_local', array('gen_tags' => false)) ?>
```
 can suffice.
However I was trying to expose the frontend developer to as little php as possible. I mean in practice what I'm trying to achieve is an optional javascript inlude.

The entire `window.jQuery || ....` thing is basically checking whether previous s include succeeded.
So in a way it is a dependancy resolver.

If Casset has the goal to solve asset dependancies then an option to provide fallback is a must.

At least I think so :) Tell me if this doesn't make sense.

Hmm, on the other hand, Casset runs under the assumption that all asset files are present (it will start throwing exceptions if they aren't).
So yes, while I see your point, I'm not entirely convinced that this is Casset's domain. Indeed, neither of your suggestions directly relate to dependency resolution -- rather to ways of customising the <script> tag which Casset spits out, in order to make javascript do its dependency resolution.
This is a separate problem, and one which can be solved in two ways: by providing the user with enough "raw" data that he can construct his own tags (the 'gen_tags' solution), or by providing a means for the user to attach a callback which is used in tag generation.
I'm not adverse to following the callback route (which I much prefer to forcing the user to provide some sprintf-able string at configure-time), although it's not nearly as useful as the other two callbacks (as the same result can be achieved by other means).
Does that make sense?

Yes :)
I'm not providing a solution as I don't have one :) I tried but I could only think of this or something in the lines of yepnope.js which will check a condition and if true insert another asset. - But hey this is ridiculous as in the case of not found asset the 404 will be evaluated by the client browser and not php.
My stupidity - Hence the issue report. :)
I will gladly use the 'gen_tags' solution.

Cool.
Of course, there's nothing to stop you writing a little helper function to shift the PHP away from the view, and out of reach of your frontend developer.
Creating a callback won't be hard, and I might well do it if I get bored. For now, though, if 'gen_tags' is good enough for you, I'll close this issue and fix #14.

I'm closing this, as #14 has been fixed, which was the agreed solution.


Multi page tours

What is the best way to handle multi page tours, where one of the next steps should go to another vue route. The problem i have is timing.. i already searched the issues but could find anything that would solve my problem.

@memic84 I'm also new to this plugin. But can't you define a custom template for the prev/next buttons and then use the callbacks or a custom action to redirect to the next page?

Please have a look at #12


Changed et.json

Warning texts too long for HA Android app- removed color text.
Best, JR

Something went wrong...

Hey, if text is too long on android app it should be resolved by changing styling of the card, if you think that's a problem, please create an issue so that can be resolved for all languages


Is the operand table valid?

Hi team,
I moved this from here: https://github.com/MicrosoftDocs/sql-docs.de-de/issues/85
the contributor suggests an adition to the original documentation
best
@Tornhoof commented 4 hours ago
In the table above, bigint is not listed in the right operands of bigint, the description does not exclude it though and something like this:
declare @rside as bigint
declare @lside as bigint
set @lside =<PHONE_NUMBER>85477580
set @rside =<PHONE_NUMBER>854775807
SELECT ( @lside & @rside)
GO

works in SQL Server 2017.
You might want to rework the table, either you properly list all valid combinations, then you have a NxM matrix or you just describe the exceptions.

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

ID: b730b2bb-57ee-aba8-247f-0fa63114c88b
Version Independent ID: 36fd9a35-e182-a272-a9f4-f2da1eec7d17
Content: Bitwise Operators (Transact-SQL) - SQL Server
Content Source: docs/t-sql/language-elements/bitwise-operators-transact-sql.md
Product: sql
Technology: t-sql
GitHub Login: @rothja
Microsoft Alias: jroth

@CeciAc -- closing as this issue has addressed in documentation PR #2299.
I notifed the originator (Tornhoof) in the source German issue.

Hi,
Isn't the table at the end of this article still a little bit misleading?
The only constraint for bitwise operations is not to use two binary string data type operands together, all other combinations are allowed. When there are different types of operands, one with the lower precedence is converted to a higher precedence type, and then a bitwise operation is performed.
So, in my opinion, the table just introduces confusion.


Add some JSON options as magic arguments to %%chart

For example, the geo chart has the very useful options for focusing on lower level maps, e.g. to map by US state:
{ region:'US', resolution: 'provinces'}
Where it makes sense we should add these as magic arguments so users don't have to write JSON options.

Won't fix.


Add Module::ComputeIdBound

When IDs change, something should use this utility method
and Module::SetIdBound before writing out the binary.
ForEachInst is more forgiving of cases where a basic block doesn't
have a label, and when a function doesn't have a defining instruction
or end instruction.

It seems the second paragraph in the commit message also need to be removed.

Removed the double "using" declaration.
Fixed the commit comment.
Rebased

Fixed std::max problem on Windows.  Needed to include

+2

Rebased


Enum POJO's are not being generated correctly with javaType

I'm having an issue with enums being generated as classes instead of enums. Take the simple example provided below.
If I run the following command, the enum is being generated as a class instead of an enum.
jsonschema2pojo -s bookshelf.schema.json -t tempout -a none -R

If i remove the javaType off the Genre schema, it will generate correctly as an enum. The issue is that if I don't provide the javaType, it will generate with an incorrect name (GenreSchema) or as a nested class inside the Book POJO.
Any help or insight would be greatly appreciated. Thanks!
Bookshelf
{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "id": "urn:jsonschema:Bookshelf",
    "javaType": "Bookshelf",
    "properties": {
        "books": {
            "type": "array",
            "items": {
                "$ref": "book.schema.json"
            }
        }
    }
}

Book
{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "id": "urn:jsonschema:Book",
    "javaType": "Book",
    "properties": {
        "name": {
            "type": "string"
        },
        "genre": {
            "$ref": "genre.schema.json"
        }
    }
}

Genre
{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "urn:jsonschema:Genre",
    "type": "string",
    "javaType": "Genre",
    "enum": [
        "FANTASY",
        "SCIFI",
        "HISTORY"
    ]
}

I think you are experiencing this:
https://github.com/joelittlejohn/jsonschema2pojo/issues/194
Can you try again but include a package name in "javaType": "Genre"?

@joelittlejohn
I also have the same problem but unfortunately changing schema files is not an option in my case as I am getting them from an official specification: https://www.openchargealliance.org/protocols/ocpp-201/
Appreciate if you could let me know a workaround at-least.

I have the same issue as @joelittlejohn  I am working on the same schemas and when I build the project it creates all the enums as classes and it pops up a compile error. Any help appriciate.

This is caused by two problems:

When no package name is provided in javaType, we should be adding a package name. This was not working, but will be fixed in the next version (1.1.0) because #1103 has been fixed.
There is a bug in CodeModel and when enums are generated into the default/root package they get created as classes instead of enums.

So you can work around this by adding a package name to the javaType value, or wait until 1.1.0 is release (which will likely be very soon).


ScalaMock using wrong property under Scala.js

ScalaMock Version 3.5.0
Scala Version 2.11.11 and 2.12.2
Runtime Scala.js
Works fine under JVM but fails on Scala.js
Please provide a description of what actually happens
[info]   java.lang.IllegalArgumentException: Property 'mock$createChannel$0$2' is not defined in 'suzaku.ui.UIManagerSpec$TestUIManager$$anon$1@18'. Available properties: protocol$1,id$1,globalId$1,parent$1,handler$1,context$1,handlerFunc$1,subChannels$1,channelIdx$1,router$1,bitmap$0$1,$$outer$f,mock$special$mockName$3,mock$createChannel$0$3,mock$send$0$3,mock$close$0$3,mock$receiveDrop$0$3,mock$receive$0$3,mock$closeChannel$0$3

Reproducible Test Case
https://github.com/suzaku-io/suzaku/blob/298e2a30754ebefe6a6ea27518ba7c0d5be827d5/core/shared/src/test/scala/suzaku/ui/UIManagerSpec.scala#L76-L88
in project https://github.com/suzaku-io/suzaku
Run coreJS/test to invoke the wrong behavior.
Quote from @sjrd

It looks like a binary-incompatibility of sorts, triggered by a change in the number of superclasses of suzaku.ui.UIManagerSpec$TestUIManager$$anon$1. That would changed the mangling of mock$createChannel$0$2 (with 2 superclasses) to ...$3 (with 3 superclasses).
In principle, since those fields are private, this cannot show up in user space, as private fields can only be accessed from the same compilation unit, and a compilation unit is always recompiled entirely.

ScalaMock is still built against some older versions (2.11.8 with js 0.6.14)
Could this be related to 2.11.11 and the version of Scala.JS you are using? (0.6.15).
Are you able to check with the older versions?

I tested with 2.11.8 and Scala.js 0.6.14 and the result was the same.

Would it be possible to get a smaller code snippet that exposes the problem, but without all the dependencies?
I can't resolve at least one of them:
[warn] 	:: io.suzaku#arteria-core_sjs0.6_2.12;0.1.0-SNAPSHOT: not found
Another suggestion i would have, based on the compilation unit/superclasses comment above, would be to put these classes inside an object, or top-level:
  class MockUIHandler extends MessageChannelHandler[UIProtocol.type]

  class MockUIChannel extends MessageChannel(UIProtocol)(0, 0, null, new MockUIHandler, null) {}

  class MockWidgetHandler extends MessageChannelHandler[TestProtocol.type]

  class MockWidgetChannel extends MessageChannel(TestProtocol)(0, 0, null, new MockWidgetHandler, ()) {}

Currently, they are inner classes and tied to an instance of TestUIManager, and others.

I tried having those classes on top-level and within an object, but no change in results.
Arteria is the library I'm mocking here and I was not able to replicate the issue within that project alone even by copying the same code over to its test suite. It worked fine within that project.
It seems to generate the correct code in that case:
var fld$macro$18 = $g.Object.getOwnPropertyDescriptor(this.channel$1, "mock$createChannel$0$3");

whereas in Suzaku it generates:
var fld$macro$2 = $g.Object.getOwnPropertyDescriptor(this.uiChannel$1, "mock$createChannel$0$2");

The SNAPSHOT should be available in the Sonatype snapshots repo, and the build.sbt should have resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots" to include it.
You can also publishLocal the Arteria library to get it working.

getting a different error now.
[trace] Stack trace suppressed: run last coreJS/test:loadedTestFrameworks for the full output.
[error] (coreJS/test:loadedTestFrameworks) java.io.IOException: Cannot run program "node": error=2, No such file or directory

I am not sure how we can progress looking into this potential bug without a stable example that I can test with.
 I can try to isolate it into a single minimized test case in the Suzaku project, to make it easier to debug.

please do, if you can just put it on some branch and point me at that.
any particular version of node.js needed?

Anything above Node v6 should work fine.

I simplified the test case as much as possible and it can be found in branch https://github.com/suzaku-io/suzaku/tree/scalamock185
Running coreJS/test runs just this single test that exposes the problem.

Thanks for that branch, I think I understand this now:
By setting up the mock inside the TestUIManager, it seems to have changed the number of superclasses somehow.
This is not something ScalaMock has influence over as the ScalaMock macros simply create anonymous subclasses - as you can see from the reference to suzaku.ui.UIManagerSpec$TestUIManager$$anon$1@b in the exception.
So i factored the mock out into a Fixture (and added a foo() function to have a test assertion on it), and iy all looks good.
I've also added your test doubles back into the suite to check that they don't have to be top level classes.
Closing this as not a bug, unless you have objections?
Here is my refactored UIManagerSpec:
package suzaku.ui

import arteria.core.{Message, MessageChannel, MessageChannelHandler, Protocol}
import suzaku.{TestLogger, UnitSpec}
import boopickle.Default._
import org.scalamock.scalatest.MockFactory

class UIManagerSpec extends UnitSpec with MockFactory {
  object TestProtocol extends Protocol {
    override type ChannelContext = Unit

    sealed trait TestMessage extends Message

    private val tmPickler = compositePickler[TestMessage]

    implicit val (messagePickler, witnessMsg) = defineProtocol(tmPickler)

    override val contextPickler = implicitly[Pickler[Unit]]
  }

  class MockUIHandler extends MessageChannelHandler[UIProtocol.type]

  class MockUIChannel extends MessageChannel(UIProtocol)(0, 0, null, new MockUIHandler, null)

  class TestUIManager(val uic: MessageChannel[UIProtocol.type]) extends UIManager(TestLogger, _ => (), () => ()) {
    def foo(): Unit = uic.close()
  }

  trait MockFixture {
    val uiChannel = mock[MockUIChannel]

    (uiChannel
      .createChannel(_: TestProtocol.type)(_: MessageChannelHandler[TestProtocol.type],
        _: TestProtocol.type#ChannelContext,
        _: Any)(_: Pickler[Any]))
      .expects(*, *, *, *, *).anyNumberOfTimes()

    uiChannel.close _ expects() once()
  }

  "View manager child update" should {
    "update nothing" in new MockFixture {
      val vm = new TestUIManager(uiChannel)
      vm.uic shouldNot be(null)
      vm.foo()
    }
  }
}

> coreJS/test
[info] Compiling 1 Scala source to /home/phil/src/oss/suzaku/core/js/target/scala-2.12/test-classes...
[info] Fast optimizing /home/phil/src/oss/suzaku/core/js/target/scala-2.12/suzaku-core-test-fastopt.js
[info] UIManagerSpec:
[info] View manager child update
[info] - should update nothing
[info] Run completed in 339 milliseconds.
[info] Total number of tests run: 1
[info] Suites: completed 1, aborted 0
[info] Tests: succeeded 1, failed 0, canceled 0, ignored 0, pending 0
[info] All tests passed.
[success] Total time: 6 s, completed 12-May-2017 21:17:25

Thanks for figuring out a workaround! Perhaps @sjrd might have some idea why this happens only on Scala.js?

My analysis here suggests that is is actually a bug on ScalaMock's side.


DAG dependency tree manual build flows

Hi,
I'm experimenting with adding a new page to the dashboard and adding a DAG (directional acyclic graph) flow to manually build the dependency job tree; i.e. with wait barrier where edges come in to a node/job and kicking off nodes/jobs down stream if successful.
I'm using http://js.cytoscape.org/ ; would such a dependency be acceptable provided the application of it reaches your standard?
If there is potential interest in this, I'll fork and show my work as I go

Can you explain what the goal is? It sounds more of a feature for https://github.com/Strider-CD/core

Exploring addition of a directed acyclic graph flow both visually and programmatically. It allows the user to connect the edges, the job to job dependencies, start a directional build manually. And monitor progress and status interactively(possibly graph animation and tips).  There would be a model(e.g. https://github.com/jsongraph/json-graph-specification) of the flow/pipeline sent back to mongodb to persist the state or be shared between users. It would build jobs downstream conditionally by clicking a node/job and have the latest changes from artifact copies from upstream successes. State would be illustrated by color. And the flow could be triggered by other events such as cron as well. The problem fits graph theory and cytoscape.
Currently an example looks like

If there is interest I'd appreciate discussion before I go too far without a solid set of features people would want; use t strider technology correctly(maybe flows could be built as plugins?). Just thinking from my own projects perspective up till now.  Many have c++ and native dependencies. I want to use the speed and efficient artifacts in strider too

Related issue here: https://github.com/Strider-CD/drone/issues/1 We discussed using noflo (which is graph based and can run any code)

Thank you, I'll read and learn


FERC1 2022 report year fix

As stated in the docstring, we had some issues setting facts' report years.
This didn't come up with only the 2021 data - the 2020 data in the XBRLs was set to 2021, but we had 2020 data from DBF which masked this error.

I re-ran the integration tests because they failed for some weird SQLite reason that seemed like it was probably not related to these code changes and is hopefully ephemeral.

Looks like there's a bunch of new plants to remap. That makes sense because there weren't very many to remap earlier, maybe related to the report year issue. Working on that.

We're running into one validation error still:
E           AssertionError: Found 51 (expected 6) plant_id_ferc1 values associated with 81 non-unique plant_id_pudl values.

If we look at the denormalized_plants_steam_ferc1 output, filter by the bad plant_id_ferc1 values, and then see what the actual mapping of ferc1 to pudl IDs are, we get:
plant_id_ferc1
32             [733, 18120]
52              [496, 1803]
344              [220, 221]
352            [600, 18061]
353            [600, 18139]
354            [656, 18140]
386            [352, 18080]
612             [51, 18069]
740            [373, 18075]
745     [502, 16858, 18076]
967            [146, 18085]
994            [343, 18074]
1031           [655, 18137]
1032           [655, 18138]
1119         [11410, 11413]
1285          [8659, 11544]
1314           [110, 18098]
1467           [163, 18100]
1468           [464, 18103]
1473           [565, 18115]
1474           [733, 18119]
1475          [1013, 18126]
1488           [317, 18096]
1550            [560, 8468]
1569           [564, 18118]
1574           [733, 18124]
1575           [565, 18117]
1599            [72, 18136]
1614           [110, 18099]
1615          [1013, 18129]
1624           [464, 18104]
1625           [733, 18125]
1626           [733, 18121]
1627           [506, 18114]
1628           [565, 18116]
1629           [437, 18112]
1630          [1013, 18128]
1631          [1013, 18127]
1632           [506, 18113]
1666          [1013, 18131]
1667          [1013, 18130]
1815           [112, 18133]
1903            [12, 18143]
2001           [464, 18109]
2002           [464, 18105]
2003           [464, 18106]
2004           [464, 18108]
2005           [464, 18107]
2034           [138, 18086]
2035           [138, 18087]
2053           [585, 18090]

The largest PUDL plant ID on dev right now is 18020 - so anything smaller than that is "old" and anything newer than that is "new." In addition, any PUDL plant ID >= 18028 is a new small plant, <5MW, which I did not attempt to match to older plants in the sheet.
Of the mapping, only 6 of them have multiple "old" PUDL IDs being mapped to the same FERC ID - which is exactly the number we expect.
If we combine the FERC IDs above with the pudl_id_mapping.xlsx:
FERC ID 32 corresponds to PUDL ID 773 ("West Phoenix"/ "Arizona Public Service Company") and PUDL ID 18120 ("plant name: west phoenix 1 combined cycle" / "arizona public service company"(
FERC ID 352 corresponds to PUDL ID 600 ("Sweatt" / "Mississippi Power Company") and PUDL ID 18061 ("sweat - steam" / "mississippi power company")
etc.
Should I be mapping all these new plants to their old versions? I thought there was no need to map plants <5MW, but maybe I'm confused.

Ugh, well the CI is still blowing up on that "can't operate on a closed database" thing... it might be related to the huge amount of alembic logs pouring out of the tests? are we trying to run migrations on every single test somehow?
The upshot is that I ran the full ETL on this branch last night and validations all passed this morning!

@zaneselvans once you've reviewed this (and the CI stuff works again...) feel free to merge this into 2811 and then merge #2948 . Or to make changes that you deem necessary!


windows CI

https://ci.appveyor.com/project/ShinnosukeWatanabe/broccoli-clean-css
i dont believe explicit paths will work in windows: https://github.com/shinnn/broccoli-clean-css/blob/master/package.json#L11 node_modules/.bin/istanbul maybe there is a trick?
A quick fix, would be to disable coverage for windows, and let the posix suite handle that.

Let me know if ^ works for you, I can gladly doit just give me a +1

I just disabled coverage checking on AppVeyor, and it passes the test now.


(table): Property ‘onSelectAllCheckboxChange’ does not exist on type ‘Table’.

(table) Property ‘onSelectAllCheckboxChange’ does not exist on type ‘Table’: This method was before on type Table, but after the refactor I can't find that method.

@Pablodotnet there are selectAll and deselectAll events, can you use those instead?

@Pablodotnet there are selectAll and deselectAll events, can you use those instead?


Publish Addon on Divio Cloud

Hello @jvamvas it would be amazing if you could publish the Addon on the Divio Cloud:
http://support.divio.com/marketplace/addons/how-to-publish-addons-on-the-django-cms-marketplace

Addon is now available on https://marketplace.django-cms.org/en/addons/browse/djangocms-inline-comment/


Problem to delete row.

Hi. I have for example, a table with 30 rows. When I click in any cell, paint correctly. But, if I delete the row 12, it dissapear, good, so, row 13 will be row 12. But When I press the rows above of 12 ( I mean 13, 14, 15, ... 50), the position click is correct but paint bad of cell. If I go to delete, If error is more visible.

hi,do you find a solution yet?


added profile

Hey @Moscode 👋, thanks for your PR and contribution!
Don't forget to follow me and this organization for updates to this open source project.
Take care, and have a good day ahead 😊


ECONNRESET with node v19

Hi,
We are observing some interesting behavior when using node v19, the requests are failing if we call next(error) after calling response.send(data), but only after the first error is returned.
Minimal repro:
const express = require('express');
const app = express();
const axios = require('axios');

let counter = 0;

app.get('/', (req, res, next) => {
    counter++;
    console.log(counter, 'request');
    if (counter > 1) {
        res.send(counter.toString());
        next(counter + ' error');
        return;
    }
    res.send(counter.toString());
    next();
});

app.listen(6000, async () => {
    for (let i = 0; i < 4; i++) {
        try {
            const res = await axios.get('http://localhost:6000');
            console.log(res.data, 'success');
        } catch (e) {
            console.log(e?.response?.data || e?.code, 'error');
        }
        console.log('****************');
    }
});

Runtime log with node v18 and v16:
npm run start

><EMAIL_ADDRESS>start
> node index.js

1 request
1 success
****************
2 request
2 success
****************
3 request
3 success
****************
4 request
4 success
****************
2 error
3 error
4 error

Runtime log with node v19:
npm run start

><EMAIL_ADDRESS>start
> node index.js

1 request
1 success
****************
2 request
2 success
****************
ECONNRESET error
****************
3 request
3 success
****************
2 error
3 error

With v19, there's a socket hang up error after the first error response. If I increase the interation count, it shows that every request gets the ECONNRESET response after an error response, but the request after that is working fine.

Hello, and thanks for the report! I took at a look and the behavior difference you are seeing is in your axios client, not Express.js. If you separate then in to two different processes and run axios in the old Node.js and Express.js in 19, I am not seeing any behavior difference in the Express.js application. Can you try that out to confirm?

I think it is the change at https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V19.md#https11-keepalive-by-default
See, if you call next() (or next(err) as your description states) after a response is already in progress or done, Express.js will panic and assume something has gone wrong and close the tcp connection since it cannot write out a response any longer. I think your axios client is now trying to use the same tcp connection for multiple requests instead of one request per one tcp connection and thus where the difference is coming from in your example.

Hi,
Thanks, it was a nice catch. I tried to run express in v19 and axios in v18 and the problem was not present.
Thanks again, I'm taking this to the axios repo then :)


Wrong rendering of etcd.service

Since https://github.com/andrewrothstein/ansible-etcd_cluster/pull/28 was rejected, I'll raise this as an issue.
etcd service template, using default configuration, renders as
[Unit]
Description=Etcd Server
After=network.target

[Service]Type=notify
User=etcd

Needs proper whitespace control at https://github.com/andrewrothstein/ansible-etcd_cluster/blob/2184dea37ff568c5d7838a75196ecf6fe7ae0ac8/templates/etcd.service.j2#L6

I believe I remediated this in a flurry of commits. My apologies for pretending like I understood jinja2 whitespace handling without an interactive testing session. Hopefully this issue was squashed in the latest version (v3.0.7) I published to the galaxy.
Thanks for your attention to this role, Drew


Why these two lines code results different?

Steps to reproduce
($myenv.boxGroup.boxes | % {$_.roles} | ? {($_ -match $MYSQL_MASTER) -and ($_ -notmatch $MYSQL_REPLICA)}).Count | Should Be 1

($myenv.boxGroup.boxes | ? {($_.roles -match $MYSQL_MASTER) -and ($_.roles -notmatch $MYSQL_REPLICA)}).Count | Should Be 1

Expected behavior
The second line should be 1 too.
Actual behavior
The Second line results in 0
Environment data
Name                           Value

_                              /usr/bin/powershell
HISTCONTROL                    ignoredups
HISTSIZE                       1000
HOME                           /root
HOSTNAME                       localhost.localdomain
JAVA_HOME                      /usr/lib/jvm/java-1.8.0-openjdk-<IP_ADDRESS>-1.b15.el7_2.x86_64/jre
LANG                           en_US.UTF-8
LESSOPEN                       ||/usr/bin/lesspipe.sh %s
LOGNAME                        root
LS_COLORS                      rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:.tar=01;31:.tgz=01...
MAIL                           /var/spool/mail/root
PATH                           /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PSMODULEPATH                   /root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/6.0.0-alpha.13/Modules
PWD                            /root
SELINUX_LEVEL_REQUESTED
SELINUX_ROLE_REQUESTED
SELINUX_USE_CURRENT_RANGE
SHELL                          /bin/bash
SHLVL                          1
SSH_CLIENT                     <IP_ADDRESS> 59321 22
SSH_CONNECTION                 <IP_ADDRESS> 59321 <IP_ADDRESS> 22
SSH_TTY                        /dev/pts/0
TERM                           xterm
USER                           root
XDG_RUNTIME_DIR                /run/user/0
XDG_SESSION_ID                 64

> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      6.0.0-alpha
PSEdition                      Core
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   <IP_ADDRESS>
GitCommitId                    v6.0.0-alpha.13
CLRVersion
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

You can debug this yourself to understand what is happening if you remove the .Count and instead look at the actual objects you are counting.
For this line:
($myenv.boxGroup.boxes | % {$_.roles} | ? {($_ -match $MYSQL_MASTER) -and ($_ -notmatch $MYSQL_REPLICA)}).Count | Should Be 1

You count the number of roles that match your filter because you enumerate the roles before your filter.
For this line:
($myenv.boxGroup.boxes | ? {($_.roles -match $MYSQL_MASTER) -and ($_.roles -notmatch $MYSQL_REPLICA)}).Count | Should Be 1

You count the number of boxes that match your filter because you filter on the boxes.

Yes, what you said was definitely right. What I thought wrong is prejudging the pipe result to be a collection.
Follow your way, I got the output.
line1 result: NAMENODE,MYSQL_MASTER,RESOURCEMANAGER
line2 result: @{id=1736704; ip=<IP_ADDRESS>; name=box1; hostname=a0.host.name; roles=NAMENODE,MYSQL_MASTER,RESOURCEMANAGER; dnsServer=<IP_ADDRESS>; ips=; ports=; boxRoleConfig=}

psobject has no Count property, so it just return null.
I should rather use TrueFalse detection instead of count.


Add support for configurable SPI mode

See documentation for spi_set_format() for information.

Yes, this would be great as I have several IPS screens that require SPI mode 3 support (clock polarity=1 / clock phase=1)


Resolve new swift 3.1 warnings

This resolves a couple new warnings related to optionality in swift 3.1 / Xcode 8.3; builds fine in 3.0 as well.

💯


Add Nix flake

Should address #834.

I personally think it would make more sense to put those files in a separate repository.  Instead of using src=./., you could use src=fetchFromGitHub to check out the cargo-generate's source code.

@neosam Ah, I didn't know that was possible. I'll have to try that out, thanks.

@neosam Ah, I didn't know that was possible. I'll have to try that out, thanks.

You're very welcome.  Not sure if you need the latest version of cargo-generate but there is already cargo-generate in Nix. https://search.nixos.org/packages?channel=22.11&show=cargo-generate&from=0&size=50&sort=relevance&type=packages&query=cargo-generate


Support for bed tags, bedgraph output and coverage thresholds

First of all, let me say that I was shocked to see how fast this tool works. Being able to obtain all RefSeq's gene coverage information from a 30X human WGS sample in less that 1 minute was really impressive.
As many other bioinformaticians, we are currently using mosdepth to obtain global and/or genic coverage from our samples, so being able to replicate its output as much as possible would be really helpful. Let me ask for 3 (I'm guessing minor) modifications that they would be really really useful for all mosdepth users out there.
BED TAGS
PanDepth is able to use a bed file to generate coverage statistics for each region. I was surprised that you create a new column RegionID based on the first 3 bed file columns (chr, start, end). In case the bed file contained a 4th column with tags, wouldn't it be possible to keep that tag in the output? Is it a problem that these IDs you work with must be unique? Maybe outputting another column with the tag next to RegionID, or appending the tag to the RegionID content?
Bed tags example:
chr13   32316460        32316527        BRCA2;NM_000059.4;2     67      +
chr13   32316460        32316527        BRCA2;NM_001406719.1;2  67      +
chr13   32316460        32316527        BRCA2;NM_001406720.1;2  67      +
chr13   32316460        32316527        BRCA2;NM_001406721.1;2  67      +
chr13   32319076        32319325        BRCA2;NM_000059.4;3     249     +
chr13   32319076        32319325        BRCA2;NM_001406719.1;3  249     +
chr13   32319076        32319325        BRCA2;NM_001406720.1;3  249     +
chr13   32319076        32319325        BRCA2;NM_001406721.1;3  249     +
chr13   32325075        32325184        BRCA2;NM_000059.4;4     109     +
chr13   32325075        32325184        BRCA2;NM_001406719.1;4  109     +
chr13   32325075        32325184        BRCA2;NM_001406720.1;4  109     +
chr13   32325075        32325184        BRCA2;NM_001406721.1;4  109     +

See how useful it would be to be able to parse PanDepth output straight away having the gene, the transcript, or even the exon number in the same file, instead of having to merge both files and parse them.
May it be possible to implement a configurable option, defaulted to 0, to choose which input column the user would like to see in the output?
BEDGRAPH OUTPUT
In the same way I was surprised to see how fast PanDepth is, I don't understand why the "output all the site depth" option for each single genome position. I understand that this may be useful for some users, but writing this information in this chr,pos,depth format takes ages compared with the rest of PanDepth capabilities. Would it be possible to group these coverages in to a chr,start,end,depth bedgraph format using some light transformation like @nathanhaigh's awk solution? This would even help to save I/O time.
May it be possible to implement a configurable option to choose from all positions or bedgraph coverage?
THRESHOLDS
This may not be as simple as the other 2 options mentioned, but I hope it isn't that complicated. PanDepth's bed.stat output include 2 columns, CoveredSite and Coverage(%) that, although it's not mentioned in the documentation, I'm guessing that they refer to >1X positions. I would suggest to allow entering different thresholds and outputting them in corresponding columns.
So, instead of having the current output
#Chr	Start	End	RegionID	Length	CoveredSite	TotalDepth	Coverage(%)	MeanDepth
I would suggest to indicate somehow the threshold in the coverage column, e.g.
#Chr	Start	End	RegionID	Length	TotalDepth	MeanDepth	CoveredSite_1X	Coverage(%)_1X	CoveredSite_10X	Coverage(%)_10X	CoveredSite_20X	Coverage(%)_20X	CoveredSite_30X	Coverage(%)_30X
or, as mosdepth does, to generate 2 different files,
one for CoveredSites
#Chr	Start	End	RegionID	Length	TotalDepth	MeanDepth	CoveredSite_1X	CoveredSite_10X	CoveredSite_20X	CoveredSite_30X
and one for Coverage(%)
#Chr	Start	End	RegionID	Length	TotalDepth	MeanDepth	Coverage(%)_1X	Coverage(%)_10X	Coverage(%)_20X	Coverage(%)_30X
May it be possible to implement a configurable option, defaulted to 1, to allow entering different thresholds, such as "1,10,20,30", for instance?
Congratulations for such an impressive work, and thank you very much for it.

Thank you very much for your attention to PanDepth. Your suggestions are both valuable and effective. I am currently updating to a version that supports multi-threaded computation and no longer requires the index file. All of your recommendations will be incorporated into the latest version. Thank you once again for your input.

Fantastic news! That sounds ever better and faster.
I was mainly focusing on mosdepth comparison, but I have other ideas in mind, such as adding some padding to the bedfile (i.e. adding for instance 10bp to the bedfile regions instead of having to create a temporal bedfile if that 10bp padding is desired), generating bigwig output along with bedgraph, generating the chr.stat.gz output always even if a bed or gene file is used (forced or optional), allowing selection of other GTF features instead of exon and CDS, ...
Thank you very much anyway for paying attention to the users' feedback.


Constrain the value of GLOBAL_METADATA_TRIE_DATA_SIZE

We're currently not constraining this value. This would lead to overwriting the initial trie, which is then used for computing the final trie, leading to a wrong final state.

Duplicated in #473


Can't seem to create a onnxruntime_genai.Tokenizer when using llama3 8b

Steps to prepare model:
python -m venv my_env
source my_env/bin/activate
pip install torch transformers onnx onnxruntime
pip install --pre onnxruntime-genai

python3 -m onnxruntime_genai.models.builder -m meta-llama/Meta-Llama-3-8B-Instruct -o llama3_onnx -p int4 -e cpu -c cache

Given the following python code:
import onnxruntime_genai as og

model = og.Model('llama3_onnx')
tokenizer = og.Tokenizer(model)

I get this RuntimeError:
>>> tokenizer = og.Tokenizer(model)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RuntimeError: [json.exception.type_error.302] type must be string, but is array

I'm not too sure what I am doing wrong -- can someone help? I'm very new to the framework, so perhaps I misunderstood something -- e.g. am I supposed to run something extra to prepare tokenizer?

This is a known issue with Hugging Face's transformers package. Suggested workarounds can be found here.
Also, you can install the latest stable version of ONNX Runtime GenAI with pip install onnxruntime-genai. The --pre only needs to be added if you want to install release candidate packages that are published before a stable release.


ensure pipeline support Quarkus

hopefully "just another Stack"

@tomlinkusa and @kvijai82 - Kabanero 0.9.0 stack-Hub is going to include Quarkus as a tech preview. Do we need any work from the pipeline to support it?

Perhaps to add new tests. Otherwise I don't know. Get @garypicher @stevenschader @StringCheeseCR to weigh in.

Based on discussion with Arthur, this should just work as is like other stacks.  Do a manual test this week at some point.

090rc.1 for Kabanero Operator & Pipelines manual test successful.


RViz not receiving LaserScan data

I'm trying to run turtlebot3 inside a docker container based on the official ros:foxy image. I'm following the guide turtlebot3-simulation-using-gazebo.
The problem I'm having is that RViz is not displaying the laser scan data.

ros2 launch turtlebot3_gazebo empty_world.launch.py
Place some random object to test laser scan.
ros2 launch turtlebot3_bringup rviz2.launch.py

As you can see in the images below, although RViz is correctly displaying the robot model, TF and odometry, it does not display the laser scan. In fact, the laser scan status reads Showing [0] points from [0] messages.

@tirafesi
Hi. @tirafesi . Thank you for your questions.
In Rviz's Display window, change LaserScan -> Topic -> Reliability Policy from Reliable to Best Effort.
Please refer to the image below

Thank you

Thanks @ashekim , that solved the problem!

@tirafesi
I would greatly appreciate it. :)
If you have any question or suggest, please ask to me any time. Thanks :)

Hello,@siferati,may I ask if your laser model is modified by turtlebot3_burger.urdf.xacro? Or is there an open source model?I don't have the laser model in this file. I would appreciate it if you could tell me how to add.


support svg attributes

Fixes: https://github.com/developit/preact/issues/1444

Coverage remained the same at 100.0% when pulling 9bd539a18bb9446e572971f732e67ae06c1e03df on JoviDeCroock:feat/supportSvgAttrs into 66aa9e24bbf116fa30a5fddce7ebc21d8ea3199f on developit:master.

This test does fail locally now, any clue?

Old tests did not seem to try these cases https://github.com/developit/preact/blob/3aaa578270c0c6cd1fb7f5cf992737eec2934433/test/browser/svg.js

Interesting... I'm having a little trouble following. The test is failing because its rendering a different year than we expect? Are browsers inconsistent in their handling of rendering namespaces?

Yes, locally I get the 1999 tag injected and travis injects the 2000 one

I've added the test that fails in travis again.

Wow, that is bizarre...

Ok I just cross checked with a real IE11 instance and it looks like it always adds the xmlns:xlink attribute as soon as an xlink:* attribute is present. The same is true for xmlns="http://www.w3.org/2000/svg".
There doesn't even have to be any JavaScript involved, the behaviour is observable with plain HTML:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>foo</title>
  </head>
  <body>
    <svg viewBox="0 0 360 360" xlink:href="www.preact.com"></svg>
    <script>
      console.log(document.body.innerHTML);
    </script>
  </body>
</html>

To make our CI green again I'd filter out both xmlns and xmlns:xlink attributes. Looking at the test case we're already filtering out the former, but not the latter.

Wow @marvinhagemeister, the more you know. Why does it execute in another browser though (travis vs local)? Changed it now

Travis runs all tests via SauceLabs across all browsers in parallel. Karma then just consolidates the logs and sometimes they are confusing. The bug is weird no doubt, but so are lots of things in IE11 🤷♂
One last thing left to do and then it's ready to go in 🎉 It looks like we need a second test for removing a namespaced attribute:

Woohoo! Nice find :D


use an init container to fix mounted-path permissions

fixes

https://github.com/n8n-io/n8n/issues/6793
https://github.com/n8n-io/n8n/issues/6733

Might be worth coordinating with @Joffcom as he's also doing folder and permissions stuff https://github.com/n8n-io/n8n-docker-caddy/pull/11/files

closing in favor of https://github.com/n8n-io/n8n-docker-caddy/pull/11


Refactor develop to simple and advanced classes

Note that this work has largely taken over branch 85.

This particular issue has grown into epic #163 therefore closing this now.


tdb: 1.4.5 -> 1.4.6

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/tdb/versions.
meta.description for tdb is: "The trivial database"
meta.homepage for tdb is: "https://tdb.samba.org/"
meta.changelog for tdb is: ""
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
Warning: no invocation of /nix/store/5fipz93w59nflg93q4mg4b4067zkigm4-tdb-1.4.6/bin/tdbtool had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/5fipz93w59nflg93q4mg4b4067zkigm4-tdb-1.4.6/bin/tdbbackup had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/5fipz93w59nflg93q4mg4b4067zkigm4-tdb-1.4.6/bin/tdbrestore had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/5fipz93w59nflg93q4mg4b4067zkigm4-tdb-1.4.6/bin/tdbdump had a zero exit code or showed the expected version
0 of 4 passed binary check by having a zero exit code.
0 of 4 passed binary check by having the new version present in output.
found 1.4.6 with grep in /nix/store/5fipz93w59nflg93q4mg4b4067zkigm4-tdb-1.4.6
found 1.4.6 in filename of file in /nix/store/5fipz93w59nflg93q4mg4b4067zkigm4-tdb-1.4.6

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

322 total rebuild path(s)

280 package rebuild(s)

280 x86_64-linux rebuild(s)
42 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
MIDIVisualizer
adapta-gtk-theme
almanah
arcan.all-wrapped
arcan.arcan
arcan.arcan-wrapped
arcan.durden-wrapped
arcan.ffmpeg
arcan.pipeworld-wrapped
arcan.prio-wrapped
arcan.xarcan
autofs5
bareos
bubblemail
calls
ceph
ceph-client
ceph-csi
ceph-dev
chatty
chrome-gnome-shell
cinnamon.cinnamon-common
cinnamon.cinnamon-control-center
cinnamon.cinnamon-gsettings-overrides
cinnamon.cinnamon-screensaver
cinnamon.nemo
clementine
clementineUnfree
collectd
collectd-data
corrscope
diffoscope
docker-machine-kvm
docker-machine-kvm2
dropbox-cli
easysnap
elementary-planner
empathy
enum4linux
enum4linux-ng
evolution
evolution-data-server
evolution-ews
evolutionWithPlugins
far2l
fdm
feedreader
ffmpeg-full
folks
gfbgraph

Instructions to test this update (click to expand)

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

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

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/5fipz93w59nflg93q4mg4b4067zkigm4-tdb-1.4.6
ls -la /nix/store/5fipz93w59nflg93q4mg4b4067zkigm4-tdb-1.4.6/bin

Pre-merge build results
NixPkgs review skipped

Maintainer pings

Tested with samba


Improve srcset parsing

Our current srcset parsing is pretty basic.
We split on comma and then on whitespace and take the first part, which is the image source URL.
However, we don't handle URLs containing unencoded commas like
/cdn-cgi/image/format=webp,width=640/https://img.youtube.com/vi/hVBl8_pgQf0/maxresdefault.jpg, which leads to false-positives.
According to the spec, commas in strings should be encoded, but in practice, there are some websites which don't do that. To handle these cases, too, I propose to extend the srcset parsing to make use of a small "state machine", which detects if a comma is within the image source or outside of it while parsing.
This is part of an effort to reduce false-positives during link checking.

@Techassi, @HU90m: maybe you got any feedback. 😉

State machines are definitely the way to go when writing parsers. I will take a look at the PR asap.

Loved the suggestions. Makes the code quite a bit more idiomatic. Thanks!


Zeitwerk::NameError

(expected file /home/maddy/Sites/DeviceMailer/app/controllers/registrations_controller.rb to define constant RegistrationsController, but didn't):

Unfortunately, you've provided almost no context around this error, but if I had to guess I'd assume you've just set up a new Solidus app on Rails 6 (using the Zeitwerk autoloader) and wanted to make modifications to the registrations controlle and that the file referenced contains those modifications. If that's correct, then you should consider using a decorator to make the modifications and may also want to review the docs on project file structure and Zeitwerk as the error you've encountered is directly related to that.
It's not clear from the details you provided (which don't reference any files from this extension) that you've encountered a bug in the extension itself. If this is more of a support request, please instead us the #support channel on the Solidus Slack. Whether you follow up here or in Slack, more context would be very helpful:

What version of Ruby, Rails, Solidus, and solidus_auth_devise are you using?
What were you trying to do when you experienced this error?
What have you done to try to resolve this error?
What's in the file app/controllers/registrations_controller.rb? That's a file in your app, not in this extension, so it's not clear what's going on.

I'm closing this issue due to lack of details and because there's no evidence this is a bug in this extension. Please feel free to follow up with more information (so we can reopen the issue if it really is a bug) or take the issue to our #support channel. 🙂


Vagrantfile: do not use dns <IP_ADDRESS> if unreachable

Remove <IP_ADDRESS> from /etc/resolv.conf and /etc/resolvconf/resolv.conf.d/head if not reachable. External DNS is often blocked in private networks. In order avoid DNS timeouts we check if <IP_ADDRESS> is reachable when provisioning.

@giner I think it's better to introduce a new env variable that allows to explicitly set DNS entries (or recomment people to use vagrant-dns). Also most vagrantfile changes should be done in the packaged vagrantfile instead of the example Vagrantfile: https://github.com/cloudfoundry/bosh-lite/blob/master/packer/templates/vagrant-local.tpl

Closing as per comment above.

Normally DNS configuration is done by DHCP of your hypervisor and placing <IP_ADDRESS> as a primary DNS does not seem right. Therefore I would revert the following commit in this case https://github.com/cloudfoundry/bosh-lite/commit/d984f8c34ae14ca8f53e3b6266dfa7d3f0ecfe0b.


[dv] Add wait_clks_or_rst function to clk_rst_if

This PR adds a new function, wait_clks_or_rst, which is necessary to implement a test (lowRISC/ibex#1879), to clk_rst_if.

The rst_active() task is not needed, since you can directly reference the clk_rst_if.rst_n signal directly in sequences.

Oh, you're right! I don't know why I had troubles accessing clk_rst_if.rst_n in sequences, but it works now. I've removed the rst_active function, since we don't need it. Thanks for pointing this out!


Ambiguous term "Height": deprecate and use hubheight or clearance height

This change spreads throught the whole code. deprecate the use of the word height, which for the fixed_systems procedure (model chain) means clearance_height, and for the trackign procedure (model chain) means hub_height.

LAtest commit on X and Y addresses this. Closing this because it will be in development branc h soon.


Remove unnecessary API fields

The scope of the project has been changed to a small set of fields pulled from the TSV, rather than the XML. The focus has also been narrowed to a set of priority fields that our partners would like to see in the api.
This PR strips the none-priority fields from the api. Some fields may get readded this week, but in a drastically different form (the data from the TSV is much less granular than the XML).
I haven't touched the lingui stuff yet. I have bad memories from trying to remove/add things and somehow breaking all the things. Will take a look at that in a separate PR.
tl;dr

unnecessary


Read CSV from stdin, not just file

The function dctap._get_rows reads CSV from a file, but could there be an alternative function to read the CSV from stdin?
One easy way to do this could be to use click.Path, which allows the use of a single dash to read input from stdin.

Closing - not seeing a pressing need for this feature...


Auto ignoring some common-ish framework files

When running knip on a freshly created project (using yarn, which default to PnP), I get the following report:
Unused files (3)
.pnp.cjs
.pnp.loader.mjs
.yarn/releases/yarn-3.6.0.cjs

When running on a larger project, I also get reported as unused files:
<EMAIL_ADDRESS>
(and, I guess, more plugins would be reported)

I guess the way is just to ignore these in my config.
And I understand this may be a hotly debated topic as to which files are common enough that they should be ignored by default (or via a plugin?) Typically, I also get reported an unused config/foo.ts for another package that I use, but I consider this specific and fully agree it's on me to ignore it manually.
Maybe knip could have a yarn plugin, activated when package.json#packageManager points to yarn 🤔 Ideally, that plugin would read and understand .yarnrc.yml. Typically, I'd love to have reported an old version of yarn that I forgot to remove if .yarnrc.yml#yarnPath points to something else.
.yarnrc.yml should contain links to yarn release file, plugins, and hint whether this installation is using PnP or node_modules.

Thanks for this idea and your suggestions, I like it. Will pick it up soon.

I guess the way is just to ignore these in my config.

For now I'm going to recommend this indeed. The way Yarn PnP does all of this goes a bit against some conventions, e.g. with the complicated .gitignore settings and adding files inside a "dotdirectory" to VCS.

Maybe knip could have a yarn plugin, activated when package.json#packageManager points to yarn 🤔 Ideally, that plugin would read and understand .yarnrc.yml. Typically, I'd love to have reported an old version of yarn that I forgot to remove if .yarnrc.yml#yarnPath points to something else.

There are other tools available to check whether versions are up-to-date, etc.

.yarnrc.yml should contain links to yarn release file, plugins, and hint whether this installation is using PnP or node_modules.

Currently this isn't something I'm using myself or see happening a lot. I could definitely be wrong, though. Happy to re-consider further down the road when PnP gains more traction (I also saw pnpm supports it).
Sorry, honestly I had different ideas when I first read your post. But since Knip plugins currently are not meant to cq don't support to ignore files, and ignoring custom files is normal, I'm going to leave it at that for now.

Note that this is not just for yarn pnp. Yarn with node_modules also has its release and plugins reported by knip.

They can also be ignored by using e.g. ignore: ".yarn/**", right?
But yeah I get your point. Knip is all about minimizing the amount of configuration necessary for any JS/TS project, so this is definitely something I'll keep in mind.

Note that this is not just for yarn pnp. Yarn with node_modules also has its release and plugins reported by knip.

They can also be ignored by using e.g. ignore: ".yarn/**", right?

Yes, absolutely.
They are also auto-ignored by setting the project config (of the top-level workspace) to src or wherever source files are kept.
OTOH, that means that older releases wouldn't be detected by knip after upgrading yarn version. But that is minor.

:rocket: This issue has been resolved in v2.19.0. See Release 2.19.0 for release notes.

Saw that we only need to ignore .yarn, which will then not reference the .pnp.cjs and .pnp.loader.mjs scripts, so I just went ahead with only that.


Auto-generated titles for working notes cards should only show words on the card

Synonyms of concepts on the card often rank higher than actual words on the card.

Wait, shouldn't pretty items already skip this?
Once it's fixed locally, the hard part is doing the maintenance task to re-save the titles of working notes, because that requires the whole state, wheras maintenance tasks don't load those (I don't think, maybe one does)

The auto-titles are super borked because of this. Synonyms not on the card get boosted quite a bit.

Perhaps a dupe of #406

Ideally the titles would also select the words it's going to include, and then include them in the order they were orignally on the card. That would keep distinctive phrases together more often.

[ ] Titles should not include items that are not on card
[ ] For titles, we shouldn't pretend that concept words are more prominent than they are (just normal counting)
[ ] Maintenance task to regenerate working note titles (without regenerating all fingerprints the whole time!)


only 200 request per hour

Instagram has changed the rules, only 200 request per hour... When the limit is overpassed it throws an error.
SEE ERROR here : https://image.ibb.co/dEaWe7/2018_04_19_164802.jpg

I suggest you cache the items and only fetch new items based on a time interval.


Add option of infinite supply on merchant

I'd like there to be an option to have infinite supply of one or more items on a merchant without just giving them millions of the items.
Alternatively don't remove the item once supply runs out, just leave them at 0 quantity and maybe hide them from players.

Implementation so far :

Limitations :

If GM sets infinity for loot (not merchant) and converts loot into gold, the real quantity (before set to infinity) will be converted

If you are ok with this implementation, I'll include in the next release.

Looks good. I can't spot anything to nitpick on.

Implemented in version 1.9.0 (soon released)


Updating visual-studio-code to 0.9.1

Thank you for the contribution. It was merged directly as df6f60fe0dd5ec28007cfb836a791fccb118f971 to keep commit history cleaner. Your contribution is still credited to you.


[SPARK-40775][SQL] Fix duplicate description entries for V2 file scans

What changes were proposed in this pull request?

Remove overriding the description method in the V2 file sources. FileScan already uses all the metadata to create the description, so adding the same fields to the overridden description creates duplicates.
Why are the changes needed?

Example parquet scan from the agg pushdown suite:
Before:
+- BatchScan parquet file:/...[min(_3)#814, max(_3)#815, min(_1)#816, max(_1)#817, count(*)#818L, count(_1)#819L, count(_2)#820L, count(_3)#821L] ParquetScan DataFilters: [], Format: parquet, Location: InMemoryFileIndex(1 paths)[file:/..., PartitionFilters: [], PushedAggregation: [MIN(_3), MAX(_3), MIN(_1), MAX(_1), COUNT(*), COUNT(_1), COUNT(_2), COUNT(_3)], PushedFilters: [], PushedGroupBy: [], ReadSchema: struct<min(_3):int,max(_3):int,min(_1):int,max(_1):int,count(*):bigint,count(_1):bigint,count(_2)..., PushedFilters: [], PushedAggregation: [MIN(_3), MAX(_3), MIN(_1), MAX(_1), COUNT(*), COUNT(_1), COUNT(_2), COUNT(_3)], PushedGroupBy: [] RuntimeFilters: []

After:
 +- BatchScan parquet file:/...[min(_3)#814, max(_3)#815, min(_1)#816, max(_1)#817, count(*)#818L, count(_1)#819L, count(_2)#820L, count(_3)#821L] ParquetScan DataFilters: [], Format: parquet, Location: InMemoryFileIndex(1 paths)[file:/..., PartitionFilters: [], PushedAggregation: [MIN(_3), MAX(_3), MIN(_1), MAX(_1), COUNT(*), COUNT(_1), COUNT(_2), COUNT(_3)], PushedFilters: [], PushedGroupBy: [], ReadSchema: struct<min(_3):int,max(_3):int,min(_1):int,max(_1):int,count(*):bigint,count(_1):bigint,count(_2)... RuntimeFilters: []

Does this PR introduce any user-facing change?

Just description change in explain output.
How was this patch tested?

Updated a few UTs to accommodate checking explain string.

Can one of the admins verify this patch?

cc @dongjoon-hyun @cloud-fan @maropu, you guys were on the original PR review for the metadata addition

can we also update AvroScan ?

can we also update AvroScan ?

Ah good call, updated that as well.

Could you rebase this PR to the master in order to make it up-to-date and pass CI, @Kimahriman ?

Done (pending CI)

thanks, merging to master!


core::0235::request-parent-field handles top-level resources incorrectly

For example, it generates a finding for:
service Library {
  rpc BatchDeleteBooks(BatchDeleteBooksRequest) returns (google.protobuf.Empty) {
    option (google.api.http) = {
      post: "/v1/books:batchDelete"
      body: "*"
    };
  }
}

message Book {
  option (google.api.resource) = {
    type: "library.googleapis.com/Book"
    pattern: "books/{book}"
  };

  string name = 1;
}

message BatchDeleteBooksRequest {
  repeated string names = 1 [
      (google.api.resource_reference).type = "library.googleapis.com/Book",
      (google.api.field_behavior) = REQUIRED
  ];
}

Aside from the erroneous check against 0 at https://github.com/googleapis/api-linter/blob/1c94b290c131bfb8e8e62d51b46eaab25bc38eec/rules/aip0235/request_parent_field.go#L42 (it should check against 1), we have the issue that there isn't always a BatchDelete*Response: the typical response is google.protobuf.Empty.
So we need another way to derive the resource type.


ERROR user: Current not implemented on linux/amd64

/kind bug
What happened:
Downloaded https://github.com/ksonnet/ksonnet/releases/download/v0.8.0/ks_0.8.0_linux_amd64.tar.gz and tried to use it in CircleCI (ie Linux) - got the error "ERROR user: Current not implemented on linux/amd64".
Seems to be https://github.com/golang/go/issues/14626, which was fixed ages ago - what version of go was used to compile the release?
How to reproduce it (as minimally and precisely as possible):
Download https://github.com/ksonnet/ksonnet/releases/download/v0.8.0/ks_0.8.0_linux_amd64.tar.gz and run ks diff <env>
Environment:

ksonnet version (use ks version):

# ks version
ksonnet version: 0.8.0
jsonnet version: v0.9.5
client-go version: v1.6.8-beta.0+$Format:%h$

Kubernetes version (use kubectl version):

This still seems to be an issue in v0.10.0-alpha.2. We are working around it by setting env USER root but wanted to let you know.


[Bug] SnackBarOptions.Actions has getter only

Makes it cumbersome to init these as one has to use the constructor and provide all the parameters just to set some actions.
Actions should have a setter also.

We like immutability. Use ctor

We like immutability. Use ctor

Eh. I won't. It's so much clearer to chain construction such as
new A()
{
   1, 3 4,
   new B()
   {
      1, 2, 3
   }
}

etc, than to send in everything via constructors. Why would an entire API disregard a common pattern just because someone doesn't like it? Also, every other property has a setter than Actions, why is it special?

We like immutability. Use ctor

Well that's awfully smug. I won't. It's so much clearer to chain construction such as
new Something()
{
   A = 1,
   B = new SomethingElse()
   {
      D = 1,
      E = 2,
      F = new List<int>()
      {
         1, 2, 3
      }
   }
}

etc, than to send in everything via constructors. Why would an entire API disregard a common pattern just because someone doesn't like it? Also, every other property has a setter than Actions, why is it special?

I don't know who "we" is in this case, but as far as I am concerned everything can be discussed :) Not sure if this is a bug though. Technically it works as intended atm
Does adding a setter make for any side-effects as far as we can tell right now?

I don't know who "we" is in this case, but as far as I am concerned everything can be discussed :) Not sure if this is a bug though. Technically it works as intended atm
Does adding a setter make for any side-effects as far as we can tell right now?

Well you are right, maybe it's a feature request then. I thought it was a bug because other properties in the same class has setters except Actions, so it looked like a bug to me.

Any chance this could get corrected at some point? Construction of SnackBar is quite ugly atm as some objects (MessageOptions) the constructor requires has setters only, so you are forced to combine all kinds of different initialisation styles. Instead of being able to chain everything as in the OP, one has to chain SOME of the objects and ultimately send them in to the constructor, as its Actions property does not have a setter. Everything else has setters and some don't even have constructor arguments so it really is a special case.
Also, if you are adamant about having constructors only you will need to remove the properties from for example MessageOptions and add constructor arguments to it, but in that case I think a pattern such as ACL's
                            var toastConfig = new ToastConfig()
                                .SetAction(action => action
                                    .SetText("Open Chat")
                                    .SetAction(async () =>
                                    {
                                        if (!this.vm.GetCancellationToken().IsCancellationRequested)
                                            await this.OpenChat(args.ChatRoom.Id);
                                    }));

would be better. But easiest would be to just expose Actions imho and be done with it.

This is how you currently have to create the options object:
                            var toastConfig = new SnackBarOptions(
                                new MessageOptions()
                                {
                                    Message = $"{toastVm.UserProfile.FirstName} in #{toastVm.ActivityType.Tag}: {args.ChatMessage.Message}"
                                },
                                2000, Color.Red, false, new SnackBarActionOptions[]
                                {
                                    new SnackBarActionOptions()
                                    {
                                        Text = "Open Chat",
                                        Action = async () =>
                                        {
                                            if (!this.vm.GetCancellationToken().IsCancellationRequested)
                                                await this.OpenChat(args.ChatRoom.Id);
                                        }
                                    }
                                });

What I'd prefer:
var toastConfig = new SnackBarOptions()
{
MessageOptions = new MessageOptions()
{
Message = $"{toastVm.UserProfile.FirstName} in #{toastVm.ActivityType.Tag}: {args.ChatMessage.Message}"
},
Actions = new SnackBarActionOptions[]
{
new SnackBarActionOptions()
{
Text = "Open Chat",
Action = async () =>
{
if (!this.vm.GetCancellationToken().IsCancellationRequested)
await this.OpenChat(args.ChatRoom.Id);
}
}
},
// preferably these should be optional, and SnackBar could be themed in one place as suggested at https://github.com/xamarin/XamarinCommunityToolkit/issues/477
BackgroundColor = Color.Red,
Duration = 2000
};
Apparently the other things in SnackBarOptions don't have setters either so I was mistaken it only being Actions lacking it. The inner objects, like MessageOptions and SnackBarActionOptions, do have setters but no constructor arguments.

in progress

Fixed in https://github.com/xamarin/XamarinCommunityToolkit/pull/508


environment read sequence in pipeline.yml

I’d like to set different environment variables for qa and prod build stack.
For QA, I set the environmennt variables on the top level.
For PROD, I set environment in its step.
But when run the build, I found the environment variables in PROD still points to QA environment.
My understanding, the environment on top level will be a lower priority than the environment in each step. But seems not. Will this be a bug in buildkite?
Buidkite version is 2.5.1
$ cat pipeline.yml

---
env:
  AWS_REGION: ap-southeast-2
  STACK_NAME: stack
  ENVIRONMENT: qa
  VARFILE: qa.tfvars

steps:
  - label: qa plan
    command:
      - 'terraform plan'
    agents:
      queue: 'stack-qa’

  - block

  - label: prod plan
    command:
      - 'terraform plan'
    env:
      ENVIRONMENT: prod
      VARFILE: prod.tfvars
    agents:
      queue: 'stack-prod'

This was fixed in v3 beta 34.

See the same issue on agent  v3.22.1


Fix flaky user directory test

Hopefully fixes https://github.com/matrix-org/synapse/issues/14902. In the test, there are two directory lookups, one for a user rod and one for a user todd. When I wrote the test, my assumption was that if rod was showing up in the user directory then todd would show up as well, so I did not retry the lookup for todd. It seems now that I was wrong. I added a retry to todd's lookup, and ran the test ~15 times locally. Not only did it not fail, but I saw several runs where todd's lookup was retried - which in the previous iteration would have been a failure -  so I suspect this was the problem.

Merged, thanks!