Plugin store for PowerToys

📝 Provide a description of the new feature
What is the expected behavior of the proposed feature?  What is the scenario this would be used?
This will allow the users to download and install plugins for PowerToys from the PowerToys settings user interface

If you'd like to see this feature implemented, add a 👍 reaction to this post.

Kind of related to #3200

Are you referring to PT Run plug-ins?

Well I don't know anything about PT plugins. I have heard about them but it would be more accessible if we have something like a plugin store. When I think of plugins I think new features like more powertoys that are not there by default and new features to existing powertoys. Not just PT Run

Kind of like the extension marketplace in Visual Studio and Visual Studio Code

I saw a PT plugin kind of thing in GitHub khanhas/fancytiling

We don't have any plans for plugins in PT, and given the way PT modules work, plug-ins don't fit in the PT architecture.

So should I close this issue

So should I close this issue?
Yes

@enricogior Is it possible to modify existing module's dll file?

That's how the 'plugin' that I mentioned above works

@Aaron-Junker please wait a minute before we close this

Download fancyzones.dll
Save it to C:\Program Files\PowerToys\modules\FancyZones. Since PowerToys has not supported custom module name so just paste and replace the original fancyzones.dll. Back it up if you want. Note: Your path to PowerToys folder might be different
Restart PowerToys

This is the setup instructions for that 'plugin'.
If we make a plugin store that would replace the original dll file, I think it would work.
BTW, I haven't tried using this plugin and I don't know whether this will work

@enricogior @Aaron-Junker
If this ☝ method is not possible to implement then I will close the issue

Is it possible to modify existing module's dll file?

In theory is possible but in general it won't work.

If we make a plugin store that would replace the original dll file, I think it would work.

We don't have any plan to support such a feature, it would open the door to so many problems that would basically kill the project. We are a small team and a plug-in approach would require to rewrite a significant amount of code and it will be very complicated to support it. Can you imagine just the waste of time to try to replicate issues that may occur only with a particular list of plug-ins?
We only support the one version for each module, and only the latest PT release with all the latest modules.

Ok. That makes sense


Provide SPI for persisting events

Hi Andy,
I think it would be nice to provide an SPI to enable persisting all the events generated by the user interaction with the application. Which can be useful in finding\analyzing the user behavior.
Something like durable message queue?
Thanks

Hi,
currently it is not that easy to analyze the messages… but it should be easy to extend JacpFX to provide a SPI which allows you to track/persist the messages. Let me analyze this… but I think this could be a nice feature for 2.1.

Am 02.03.2015 um 10:49 schrieb suyambuganesh<EMAIL_ADDRESS>SPI

Andy


Deleted users - Constraint violated on login - Soft Deletes

In my users table, If I soft delete a user (deleted_at is not null), when I try to login as that user, I got a unique constraint violation:
Oci8Exception in Statement.php line 177: Error Code : 1
Error Message : ORA-00001: unique constraint (INTRANET.USERS_USERNAME_UK) violated
Position : 0
Statement : insert into users (username, "password", name, surname, description, office, badge, serial_number, email, updated_at, created_at) values (:p0, :p1, :p2, :p3, :p4, :p5, :p6, :p7, :p8, :p9, :p10) returning id into :p11

How can I

avoid this error
return (in the login form) a message like "this user has been disabled"

I use Laravel 5.3 authentication scaffolding.
Thank you

Hi @eleftrik, completely forgot about this situation with soft deleted users.
Going to patch this now, thanks!

Hi @stevebauman, thank you very much, I'll wait for the patch.

Hi @eleftrik, patched now, but need to add some tests for this before release, but you can definitely utilize dev-master right now if you wish.

Thank you @stevebauman, I used dev-master, and now I correctly cannot authenticate as soft deleted user and I got no more database constraint errors.
Is there a way to discriminate between an incorrect login (non-existing user, wrong credentials, etc.) and a soft-deleted user which tries to authenticate (entering correct credentials)?
In this case, I would like to output a different error message (e. g. "Your account has been disabled. Please contact an administrator")
Thanks

Is there a way to discriminate between an incorrect login (non-existing user, wrong credentials, etc.) and a soft-deleted user which tries to authenticate (entering correct credentials)?

No, but that's a great point. I need to add events for this situation so you can add errors to the session if needed. I'll implement this now.


Is that possible to update appear dynamically?

I have a user case that need to update appear from 'top' to 'bottom' based on some conditions.
I have tried to store appear value as state with give initial value to 'top' and update to 'bottom' with this.setState based on some condition later, but it does not work at all.
Is that possible to dynamically set appear/disappear?

You could try providing your own transition function instead of the strings "top"/"bottom"


Changes the jdk used by travis to OpenJDK

Solves the broken build in travis-ci by changing the jdk to OpenJDK instead of OracleJDK.
Fixes: https://github.com/arquillian/arquillian-container-chameleon/issues/175

Awesome! Many thanks!


Update README include location of direct download in how to git, and …

…download of necessary dependencies.
Address tickets https://github.com/vdurmont/emoji-java/issues/54, and https://github.com/vdurmont/emoji-java/issues/53

Coverage remained the same at 92.557% when pulling c0820fd1d970f3605a32249801c9f9e817affd71 on whitecat:master into 3ace39c06e89433908dde279e6b80a76158efcc9 on vdurmont:master.

The owner of this repo appears to be away. My PR submitted a few months ago has been ignored.

Not away, just very busy :/


fix: added css in the searchbar #1520

Related Issue
Closes #1520

Description
In this PR, I have added the necessary css in the search bar for both mode(light and dark).

Screenshots
changes:

Checklist

[x] My code adheres to the established style guidelines of the project.
[x] I have included comments in areas that may be difficult to understand.
[x] My changes have not introduced any new warnings.
[x] I have conducted a self-review of my code.

there should not be any changes in the package-lock.json file.
raise another PR where isn't any change in a lock file.

there should not be any changes in the package-lock.json file. raise another PR where isn't any change in a lock file.


ParquetReaderJniWrapper’s Function which call JNI not implement?

Describe the bug
1、In ParquetReaderJniWrapper.java file, I can not find the implement  about the native method, such as "nativeOpenParquetReader" all in this file, is It in the plan?

This Call Process is from BatchScanExec branch which from ColumnarGuardRule.scala(tryConvertToColumnar method),

@aaawuanjun
Can you share some context like the Spark config and class path of the executor that reported this error?
I have the intuition that you were calling a deprecated code path that should be replaced by Gazelle Arrow Data Source. link

It can call ScanBatchExec path From link,  Default I follow this link configuration, so it call FileSourceScanExec path.

In ColumnarDataSourceRDD's compute method, the reader's generate has 2 path,  "ParquetPartitionReaderFactory" this path's JNI not imply, it will still retain？
At present, it is going through ArrowPartitionReaderFactory.createColumnarReader(...)  path.

In ColumnarDataSourceRDD's compute method, the reader's generate has 2 path, "ParquetPartitionReaderFactory" this path's JNI not imply, it will still retain？
At present, it is going through ArrowPartitionReaderFactory.createColumnarReader(...) path.

The code of "ParquetPartitionReaderFactory" seems to be deprecated already. It should be a feasible equivalent to use "ArrowPartitionReaderFactory" for now.

ok, I close the issue


How can I start the app from localhost instead of file://

I need to test cookies at my web app, and Chrome disables by default the support for local cookies. An easy solution for me would be to start the index.html file from a localhost server.
Karma is running on localhost, so how can I choose another port for my app?

You can use http-server. If using linux just enter "npm install -g http-server", that will install http-server globally. After that you can just type it in your working directory or in your bin directory, simply type "http-server", you can also specify a port by running "http-server -p 8888", by default it will use "8080". All you then need to do then, is open your browser and type in "http://localhost:8080". I hope that helps

@gruberb if you have php installed you can just run php -S localhost:8000 inside the build directory and open that in your browser.
Another approach would be to add grunt connect, there is already a (PR)[https://github.com/ngbp/ngbp/pull/296/files] where you can take a look.

@mustela Thanks a lot! I manually merged the PR, but get an error:
Verifying property connect.server exists in config...ERROR

Unable to process task.
Warning: Required config property "connect.server" missing.

Did you run npm install? Since its a new node you need in there. Try that and then run http://<IP_ADDRESS>:9001 in your browser.

Yes. 'npm install grunt-contrib-connect --save-dev'
It is installed, but getting this error... Very new to grunt so I don't actually know where to look. Also the GitHub repo says nothing about connect.server.

You don't need to do that if you merge the PR. Can you post your Gruntfile.js file please?

module.exports = function ( grunt ) {
/**

Load required Grunt tasks. These are installed based on the versions listed
in package.json when you do npm install in this directory.
*/
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-conventional-changelog');
grunt.loadNpmTasks('grunt-bump');
grunt.loadNpmTasks('grunt-karma');
grunt.loadNpmTasks('grunt-ng-annotate');
grunt.loadNpmTasks('grunt-html2js');

/**

Load in our build configuration file.
*/
var userConfig = require( './build.config.js' );

/**

This is the configuration object Grunt uses to give each plugin its
instructions.
/
var taskConfig = {
/*

We read in our package.json file so we can access the package name and
version. It's already there, so we don't repeat ourselves here.
*/
pkg: grunt.file.readJSON("package.json"),

/**
 * The banner is the comment that is placed at the top of our compiled
 * source files. It is first processed as a Grunt template, where the `<%=`
 * pairs are evaluated based on this very configuration object.
 */
meta: {
  banner:
    '/**\n' +
    ' * <%= pkg.name %> - v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %>\n' +
    ' * <%= pkg.homepage %>\n' +
    ' *\n' +
    ' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
    ' * Licensed <%= pkg.licenses.type %> <<%= pkg.licenses.url %>>\n' +
    ' */\n'
},

/**
 * Creates a changelog on a new version.
 */
changelog: {
  options: {
    dest: 'CHANGELOG.md',
    template: 'changelog.tpl'
  }
},

/**
 * Increments the version number, etc.
 */
bump: {
  options: {
    files: [
      "package.json",
      "bower.json"
    ],
    commit: false,
    commitMessage: 'chore(release): v%VERSION%',
    commitFiles: [
      "package.json",
      "client/bower.json"
    ],
    createTag: false,
    tagName: 'v%VERSION%',
    tagMessage: 'Version %VERSION%',
    push: false,
    pushTo: 'origin'
  }
},

/**
 * The directories to delete when `grunt clean` is executed.
 */
clean: [
  '<%= build_dir %>',
  '<%= compile_dir %>'
],

/**
 * The `copy` task just copies files from A to B. We use it here to copy
 * our project assets (images, fonts, etc.) and javascripts into
 * `build_dir`, and then to copy the assets to `compile_dir`.
 */
copy: {
  build_app_assets: {
    files: [
      {
        src: [ '**' ],
        dest: '<%= build_dir %>/assets/',
        cwd: 'src/assets',
        expand: true
      }
   ]
  },
  build_vendor_assets: {
    files: [
      {
        src: [ '<%= vendor_files.assets %>' ],
        dest: '<%= build_dir %>/assets/',
        cwd: '.',
        expand: true,
        flatten: true
      }
   ]
  },
  build_appjs: {
    files: [
      {
        src: [ '<%= app_files.js %>' ],
        dest: '<%= build_dir %>/',
        cwd: '.',
        expand: true
      }
    ]
  },
  build_vendorjs: {
    files: [
      {
        src: [ '<%= vendor_files.js %>' ],
        dest: '<%= build_dir %>/',
        cwd: '.',
        expand: true
      }
    ]
  },
  build_vendorcss: {
    files: [
      {
        src: [ '<%= vendor_files.css %>' ],
        dest: '<%= build_dir %>/',
        cwd: '.',
        expand: true
      }
    ]
  },
  compile_assets: {
    files: [
      {
        src: [ '**' ],
        dest: '<%= compile_dir %>/assets',
        cwd: '<%= build_dir %>/assets',
        expand: true
      },
      {
        src: [ '<%= vendor_files.css %>' ],
        dest: '<%= compile_dir %>/',
        cwd: '.',
        expand: true
      }
    ]
  },

  connect: {
    server: {
      options: {
        port: 9001,
        base: ['build', 'www-root'],
        livereload: true
      }
    }
  }
},

/**
 * `grunt concat` concatenates multiple source files into a single file.
 */
concat: {
  /**
   * The `build_css` target concatenates compiled CSS and vendor CSS
   * together.
   */
  build_css: {
    src: [
      '<%= vendor_files.css %>',
      '<%= build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css'
    ],
    dest: '<%= build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css'
  },
  /**
   * The `compile_js` target is the concatenation of our application source
   * code and all specified vendor source code into a single file.
   */
  compile_js: {
    options: {
      banner: '<%= meta.banner %>'
    },
    src: [
      '<%= vendor_files.js %>',
      'module.prefix',
      '<%= build_dir %>/src/**/*.js',
      '<%= html2js.app.dest %>',
      '<%= html2js.common.dest %>',
      'module.suffix'
    ],
    dest: '<%= compile_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.js'
  }
},

/**
 * `ngAnnotate` annotates the sources before minifying. That is, it allows us
 * to code without the array syntax.
 */
ngAnnotate: {
  compile: {
    files: [
      {
        src: [ '<%= app_files.js %>' ],
        cwd: '<%= build_dir %>',
        dest: '<%= build_dir %>',
        expand: true
      }
    ]
  }
},

/**
 * Minify the sources!
 */
uglify: {
  compile: {
    options: {
      banner: '<%= meta.banner %>'
    },
    files: {
      '<%= concat.compile_js.dest %>': '<%= concat.compile_js.dest %>'
    }
  }
},

/**
 * `grunt-contrib-sass` handles our SASS compilation and uglification automatically.
 * Only our `main.scss` file is included in compilation; all other files
 * must be imported from this file.
 */
sass: {
  build: {
    files: {
      '<%= build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css': '<%= app_files.sass %>'
    }
  },
  compile: {
    files: {
      '<%= build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css': '<%= app_files.sass %>'
    },
    options: {

    }
  }
},

/**
 * `jshint` defines the rules of our linter as well as which files we
 * should check. This file, all javascript sources, and all our unit tests
 * are linted based on the policies listed in `options`. But we can also
 * specify exclusionary patterns by prefixing them with an exclamation
 * point (!); this is useful when code comes from a third party but is
 * nonetheless inside `src/`.
 */
jshint: {
  src: [
    '<%= app_files.js %>'
  ],
  test: [
    '<%= app_files.jsunit %>'
  ],
  gruntfile: [
    'Gruntfile.js'
  ],
  options: {
    curly: true,
    immed: true,
    newcap: true,
    noarg: true,
    sub: true,
    boss: true,
    eqnull: true
  },
  globals: {}
},

/**
 * HTML2JS is a Grunt plugin that takes all of your template files and
 * places them into JavaScript files as strings that are added to
 * AngularJS's template cache. This means that the templates too become
 * part of the initial payload as one JavaScript file. Neat!
 */
html2js: {
  /**
   * These are the templates from `src/app`.
   */
  app: {
    options: {
      base: 'src/app'
    },
    src: [ '<%= app_files.atpl %>' ],
    dest: '<%= build_dir %>/templates-app.js'
  },

  /**
   * These are the templates from `src/common`.
   */
  common: {
    options: {
      base: 'src/common'
    },
    src: [ '<%= app_files.ctpl %>' ],
    dest: '<%= build_dir %>/templates-common.js'
  }
},

/**
 * The Karma configurations.
 */
karma: {
  options: {
    configFile: '<%= build_dir %>/karma-unit.js'
  },
  unit: {
    port: 9019,
    background: true
  },
  continuous: {
    singleRun: true
  }
},

/**
 * The `index` task compiles the `index.html` file as a Grunt template. CSS
 * and JS files co-exist here but they get split apart later.
 */
index: {

  /**
   * During development, we don't want to have wait for compilation,
   * concatenation, minification, etc. So to avoid these steps, we simply
   * add all script files directly to the `<head>` of `index.html`. The
   * `src` property contains the list of included files.
   */
  build: {
    dir: '<%= build_dir %>',
    src: [
      '<%= vendor_files.js %>',
      '<%= build_dir %>/src/**/*.js',
      '<%= html2js.common.dest %>',
      '<%= html2js.app.dest %>',
      '<%= vendor_files.css %>',
      '<%= build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css'
    ]
  },

  /**
   * When it is time to have a completely compiled application, we can
   * alter the above to include only a single JavaScript and a single CSS
   * file. Now we're back!
   */
  compile: {
    dir: '<%= compile_dir %>',
    src: [
      '<%= concat.compile_js.dest %>',
      '<%= vendor_files.css %>',
      '<%= build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css'
    ]
  }
},

/**
 * This task compiles the karma template so that changes to its file array
 * don't have to be managed manually.
 */
karmaconfig: {
  unit: {
    dir: '<%= build_dir %>',
    src: [
      '<%= vendor_files.js %>',
      '<%= html2js.app.dest %>',
      '<%= html2js.common.dest %>',
      '<%= test_files.js %>'
    ]
  }
},

/**
 * And for rapid development, we have a watch set up that checks to see if
 * any of the files listed below change, and then to execute the listed
 * tasks when they do. This just saves us from having to type "grunt" into
 * the command-line every time we want to see what we're working on; we can
 * instead just leave "grunt watch" running in a background terminal. Set it
 * and forget it, as Ron Popeil used to tell us.
 *
 * But we don't need the same thing to happen for all the files.
 */
delta: {
  /**
   * By default, we want the Live Reload to work for all tasks; this is
   * overridden in some tasks (like this file) where browser resources are
   * unaffected. It runs by default on port 35729, which your browser
   * plugin should auto-detect.
   */
  options: {
    livereload: true
  },

  /**
   * When the Gruntfile changes, we just want to lint it. In fact, when
   * your Gruntfile changes, it will automatically be reloaded!
   */
  gruntfile: {
    files: 'Gruntfile.js',
    tasks: [ 'jshint:gruntfile' ],
    options: {
      livereload: false
    }
  },

  /**
   * When our JavaScript source files change, we want to run lint them and
   * run our unit tests.
   */
  jssrc: {
    files: [
      '<%= app_files.js %>'
    ],
    tasks: [ 'jshint:src', 'karma:unit:run', 'copy:build_appjs' ]
  },

  /**
   * When assets are changed, copy them. Note that this will *not* copy new
   * files, so this is probably not very useful.
   */
  assets: {
    files: [
      'src/assets/**/*'
    ],
    tasks: [ 'copy:build_app_assets', 'copy:build_vendor_assets' ]
  },

  /**
   * When index.html changes, we need to compile it.
   */
  html: {
    files: [ '<%= app_files.html %>' ],
    tasks: [ 'index:build' ]
  },

  /**
   * When our templates change, we only rewrite the template cache.
   */
  tpls: {
    files: [
      '<%= app_files.atpl %>',
      '<%= app_files.ctpl %>'
    ],
    tasks: [ 'html2js' ]
  },

  /**
   * When the CSS files change, we need to compile and minify them.
   */
  sass: {
    files: [ 'src/**/*.scss' ],
    tasks: [ 'sass:build' ]
  },

  /**
   * When a JavaScript unit test file changes, we only want to lint it and
   * run the unit tests. We don't want to do any live reloading.
   */
  jsunit: {
    files: [
      '<%= app_files.jsunit %>'
    ],
    tasks: [ 'jshint:test', 'karma:unit:run' ],
    options: {
      livereload: false
    }
  }
}

};
grunt.initConfig( grunt.util._.extend( taskConfig, userConfig ) );
/**

In order to make it safe to just compile or copy only what was changed,
we need to ensure we are starting from a clean, fresh build. So we rename
the watch task to delta (that's why the configuration var above is
delta) and then add a new task called watch that does a clean build
before watching for changes.
*/
grunt.renameTask( 'watch', 'delta' );
grunt.registerTask( 'watch', [ 'build', 'karma:unit', 'delta' ] );

/**

The default task is to build and compile.
*/
grunt.registerTask( 'default', [ 'build', 'compile' ] );

/**

The build task gets your app ready to run for development and testing.
*/
grunt.registerTask( 'build', [
'clean', 'html2js', 'jshint', 'sass:build',
'concat:build_css', 'copy:build_app_assets', 'copy:build_vendor_assets',
'copy:build_appjs', 'copy:build_vendorjs', 'copy:build_vendorcss', 'index:build', 'karmaconfig',
'karma:continuous'
]);

/**

The compile task gets your app ready for deployment by concatenating and
minifying your code.
*/
grunt.registerTask( 'compile', [
'sass:compile', 'copy:compile_assets', 'ngAnnotate', 'concat:compile_js', 'uglify', 'index:compile'
]);

grunt.registerTask( 'serve', [
'connect:server', 'watch'
]);
/**

A utility function to get all app JavaScript sources.
*/
function filterForJS ( files ) {
return files.filter( function ( file ) {
return file.match( /.js$/ );
});
}

/**

A utility function to get all app CSS sources.
*/
function filterForCSS ( files ) {
return files.filter( function ( file ) {
return file.match( /.css$/ );
});
}

/**

The index.html template includes the stylesheet and javascript sources
based on dynamic names calculated in this Gruntfile. This task assembles
the list into variables for the template to use and then runs the
compilation.
*/
grunt.registerMultiTask( 'index', 'Process index.html template', function () {
var dirRE = new RegExp( '^('+grunt.config('build_dir')+'|'+grunt.config('compile_dir')+')/', 'g' );
var jsFiles = filterForJS( this.filesSrc ).map( function ( file ) {
return file.replace( dirRE, '' );
});
var cssFiles = filterForCSS( this.filesSrc ).map( function ( file ) {
return file.replace( dirRE, '' );
});

grunt.file.copy('src/index.html', this.data.dir + '/index.html', {
  process: function ( contents, path ) {
    return grunt.template.process( contents, {
      data: {
        scripts: jsFiles,
        styles: cssFiles,
        version: grunt.config( 'pkg.version' )
      }
    });
  }
});

});
/**

In order to avoid having to specify manually the files needed for karma to
run, we use grunt to manage the list for us. The karma/* files are
compiled as grunt templates for use by Karma. Yay!
*/
grunt.registerMultiTask( 'karmaconfig', 'Process karma config templates', function () {
var jsFiles = filterForJS( this.filesSrc );

grunt.file.copy( 'karma/karma-unit.tpl.js', grunt.config( 'build_dir' ) + '/karma-unit.js', {
  process: function ( contents, path ) {
    return grunt.template.process( contents, {
      data: {
        scripts: jsFiles
      }
    });
  }
});

});
};

module.exports = function ( grunt ) {

  /**
   * Load required Grunt tasks. These are installed based on the versions listed
   * in `package.json` when you do `npm install` in this directory.
   */
  grunt.loadNpmTasks('grunt-contrib-clean');
  grunt.loadNpmTasks('grunt-contrib-copy');
  grunt.loadNpmTasks('grunt-contrib-jshint');
  grunt.loadNpmTasks('grunt-contrib-concat');
  grunt.loadNpmTasks('grunt-contrib-connect');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-sass');
  grunt.loadNpmTasks('grunt-conventional-changelog');
  grunt.loadNpmTasks('grunt-bump');
  grunt.loadNpmTasks('grunt-karma');
  grunt.loadNpmTasks('grunt-ng-annotate');
  grunt.loadNpmTasks('grunt-html2js');

  /**
   * Load in our build configuration file.
   */
  var userConfig = require( './build.config.js' );

  /**
   * This is the configuration object Grunt uses to give each plugin its
   * instructions.
   */
  var taskConfig = {
    /**
     * We read in our `package.json` file so we can access the package name and
     * version. It's already there, so we don't repeat ourselves here.
     */
    pkg: grunt.file.readJSON("package.json"),

    /**
     * The banner is the comment that is placed at the top of our compiled
     * source files. It is first processed as a Grunt template, where the `<%=`
     * pairs are evaluated based on this very configuration object.
     */
    meta: {
      banner:
        '/**\n' +
        ' * <%= pkg.name %> - v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %>\n' +
        ' * <%= pkg.homepage %>\n' +
        ' *\n' +
        ' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
        ' * Licensed <%= pkg.licenses.type %> <<%= pkg.licenses.url %>>\n' +
        ' */\n'
    },

    /**
     * Creates a changelog on a new version.
     */
    changelog: {
      options: {
        dest: 'CHANGELOG.md',
        template: 'changelog.tpl'
      }
    },

    /**
     * Increments the version number, etc.
     */
    bump: {
      options: {
        files: [
          "package.json",
          "bower.json"
        ],
        commit: false,
        commitMessage: 'chore(release): v%VERSION%',
        commitFiles: [
          "package.json",
          "client/bower.json"
        ],
        createTag: false,
        tagName: 'v%VERSION%',
        tagMessage: 'Version %VERSION%',
        push: false,
        pushTo: 'origin'
      }
    },

    /**
     * The directories to delete when `grunt clean` is executed.
     */
    clean: [
      '<%= build_dir %>',
      '<%= compile_dir %>'
    ],

    /**
     * The `copy` task just copies files from A to B. We use it here to copy
     * our project assets (images, fonts, etc.) and javascripts into
     * `build_dir`, and then to copy the assets to `compile_dir`.
     */
    copy: {
      build_app_assets: {
        files: [
          {
            src: [ '**' ],
            dest: '<%= build_dir %>/assets/',
            cwd: 'src/assets',
            expand: true
          }
       ]
      },
      build_vendor_assets: {
        files: [
          {
            src: [ '<%= vendor_files.assets %>' ],
            dest: '<%= build_dir %>/assets/',
            cwd: '.',
            expand: true,
            flatten: true
          }
       ]
      },
      build_appjs: {
        files: [
          {
            src: [ '<%= app_files.js %>' ],
            dest: '<%= build_dir %>/',
            cwd: '.',
            expand: true
          }
        ]
      },
      build_vendorjs: {
        files: [
          {
            src: [ '<%= vendor_files.js %>' ],
            dest: '<%= build_dir %>/',
            cwd: '.',
            expand: true
          }
        ]
      },
      build_vendorcss: {
        files: [
          {
            src: [ '<%= vendor_files.css %>' ],
            dest: '<%= build_dir %>/',
            cwd: '.',
            expand: true
          }
        ]
      },
      compile_assets: {
        files: [
          {
            src: [ '**' ],
            dest: '<%= compile_dir %>/assets',
            cwd: '<%= build_dir %>/assets',
            expand: true
          },
          {
            src: [ '<%= vendor_files.css %>' ],
            dest: '<%= compile_dir %>/',
            cwd: '.',
            expand: true
          }
        ]
      },

      connect: {
        server: {
          options: {
            port: 9001,
            base: ['build', 'www-root'],
            livereload: true
          }
        }
      }
    },

    /**
     * `grunt concat` concatenates multiple source files into a single file.
     */
    concat: {
      /**
       * The `build_css` target concatenates compiled CSS and vendor CSS
       * together.
       */
      build_css: {
        src: [
          '<%= vendor_files.css %>',
          '<%= build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css'
        ],
        dest: '<%= build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css'
      },
      /**
       * The `compile_js` target is the concatenation of our application source
       * code and all specified vendor source code into a single file.
       */
      compile_js: {
        options: {
          banner: '<%= meta.banner %>'
        },
        src: [
          '<%= vendor_files.js %>',
          'module.prefix',
          '<%= build_dir %>/src/**/*.js',
          '<%= html2js.app.dest %>',
          '<%= html2js.common.dest %>',
          'module.suffix'
        ],
        dest: '<%= compile_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.js'
      }
    },

    /**
     * `ngAnnotate` annotates the sources before minifying. That is, it allows us
     * to code without the array syntax.
     */
    ngAnnotate: {
      compile: {
        files: [
          {
            src: [ '<%= app_files.js %>' ],
            cwd: '<%= build_dir %>',
            dest: '<%= build_dir %>',
            expand: true
          }
        ]
      }
    },

    /**
     * Minify the sources!
     */
    uglify: {
      compile: {
        options: {
          banner: '<%= meta.banner %>'
        },
        files: {
          '<%= concat.compile_js.dest %>': '<%= concat.compile_js.dest %>'
        }
      }
    },

    /**
     * `grunt-contrib-sass` handles our SASS compilation and uglification automatically.
     * Only our `main.scss` file is included in compilation; all other files
     * must be imported from this file.
     */
    sass: {
      build: {
        files: {
          '<%= build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css': '<%= app_files.sass %>'
        }
      },
      compile: {
        files: {
          '<%= build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css': '<%= app_files.sass %>'
        },
        options: {

        }
      }
    },

    /**
     * `jshint` defines the rules of our linter as well as which files we
     * should check. This file, all javascript sources, and all our unit tests
     * are linted based on the policies listed in `options`. But we can also
     * specify exclusionary patterns by prefixing them with an exclamation
     * point (!); this is useful when code comes from a third party but is
     * nonetheless inside `src/`.
     */
    jshint: {
      src: [
        '<%= app_files.js %>'
      ],
      test: [
        '<%= app_files.jsunit %>'
      ],
      gruntfile: [
        'Gruntfile.js'
      ],
      options: {
        curly: true,
        immed: true,
        newcap: true,
        noarg: true,
        sub: true,
        boss: true,
        eqnull: true
      },
      globals: {}
    },

    /**
     * HTML2JS is a Grunt plugin that takes all of your template files and
     * places them into JavaScript files as strings that are added to
     * AngularJS's template cache. This means that the templates too become
     * part of the initial payload as one JavaScript file. Neat!
     */
    html2js: {
      /**
       * These are the templates from `src/app`.
       */
      app: {
        options: {
          base: 'src/app'
        },
        src: [ '<%= app_files.atpl %>' ],
        dest: '<%= build_dir %>/templates-app.js'
      },

      /**
       * These are the templates from `src/common`.
       */
      common: {
        options: {
          base: 'src/common'
        },
        src: [ '<%= app_files.ctpl %>' ],
        dest: '<%= build_dir %>/templates-common.js'
      }
    },

    /**
     * The Karma configurations.
     */
    karma: {
      options: {
        configFile: '<%= build_dir %>/karma-unit.js'
      },
      unit: {
        port: 9019,
        background: true
      },
      continuous: {
        singleRun: true
      }
    },

    /**
     * The `index` task compiles the `index.html` file as a Grunt template. CSS
     * and JS files co-exist here but they get split apart later.
     */
    index: {

      /**
       * During development, we don't want to have wait for compilation,
       * concatenation, minification, etc. So to avoid these steps, we simply
       * add all script files directly to the `` of `index.html`. The
       * `src` property contains the list of included files.
       */
      build: {
        dir: '<%= build_dir %>',
        src: [
          '<%= vendor_files.js %>',
          '<%= build_dir %>/src/**/*.js',
          '<%= html2js.common.dest %>',
          '<%= html2js.app.dest %>',
          '<%= vendor_files.css %>',
          '<%= build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css'
        ]
      },

      /**
       * When it is time to have a completely compiled application, we can
       * alter the above to include only a single JavaScript and a single CSS
       * file. Now we're back!
       */
      compile: {
        dir: '<%= compile_dir %>',
        src: [
          '<%= concat.compile_js.dest %>',
          '<%= vendor_files.css %>',
          '<%= build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css'
        ]
      }
    },

    /**
     * This task compiles the karma template so that changes to its file array
     * don't have to be managed manually.
     */
    karmaconfig: {
      unit: {
        dir: '<%= build_dir %>',
        src: [
          '<%= vendor_files.js %>',
          '<%= html2js.app.dest %>',
          '<%= html2js.common.dest %>',
          '<%= test_files.js %>'
        ]
      }
    },

    /**
     * And for rapid development, we have a watch set up that checks to see if
     * any of the files listed below change, and then to execute the listed
     * tasks when they do. This just saves us from having to type "grunt" into
     * the command-line every time we want to see what we're working on; we can
     * instead just leave "grunt watch" running in a background terminal. Set it
     * and forget it, as Ron Popeil used to tell us.
     *
     * But we don't need the same thing to happen for all the files.
     */
    delta: {
      /**
       * By default, we want the Live Reload to work for all tasks; this is
       * overridden in some tasks (like this file) where browser resources are
       * unaffected. It runs by default on port 35729, which your browser
       * plugin should auto-detect.
       */
      options: {
        livereload: true
      },

      /**
       * When the Gruntfile changes, we just want to lint it. In fact, when
       * your Gruntfile changes, it will automatically be reloaded!
       */
      gruntfile: {
        files: 'Gruntfile.js',
        tasks: [ 'jshint:gruntfile' ],
        options: {
          livereload: false
        }
      },

      /**
       * When our JavaScript source files change, we want to run lint them and
       * run our unit tests.
       */
      jssrc: {
        files: [
          '<%= app_files.js %>'
        ],
        tasks: [ 'jshint:src', 'karma:unit:run', 'copy:build_appjs' ]
      },

      /**
       * When assets are changed, copy them. Note that this will *not* copy new
       * files, so this is probably not very useful.
       */
      assets: {
        files: [
          'src/assets/**/*'
        ],
        tasks: [ 'copy:build_app_assets', 'copy:build_vendor_assets' ]
      },

      /**
       * When index.html changes, we need to compile it.
       */
      html: {
        files: [ '<%= app_files.html %>' ],
        tasks: [ 'index:build' ]
      },

      /**
       * When our templates change, we only rewrite the template cache.
       */
      tpls: {
        files: [
          '<%= app_files.atpl %>',
          '<%= app_files.ctpl %>'
        ],
        tasks: [ 'html2js' ]
      },

      /**
       * When the CSS files change, we need to compile and minify them.
       */
      sass: {
        files: [ 'src/**/*.scss' ],
        tasks: [ 'sass:build' ]
      },

      /**
       * When a JavaScript unit test file changes, we only want to lint it and
       * run the unit tests. We don't want to do any live reloading.
       */
      jsunit: {
        files: [
          '<%= app_files.jsunit %>'
        ],
        tasks: [ 'jshint:test', 'karma:unit:run' ],
        options: {
          livereload: false
        }
      }
    }
  };

  grunt.initConfig( grunt.util._.extend( taskConfig, userConfig ) );

  /**
   * In order to make it safe to just compile or copy *only* what was changed,
   * we need to ensure we are starting from a clean, fresh build. So we rename
   * the `watch` task to `delta` (that's why the configuration var above is
   * `delta`) and then add a new task called `watch` that does a clean build
   * before watching for changes.
   */
  grunt.renameTask( 'watch', 'delta' );
  grunt.registerTask( 'watch', [ 'build', 'karma:unit', 'delta' ] );

  /**
   * The default task is to build and compile.
   */
  grunt.registerTask( 'default', [ 'build', 'compile' ] );

  /**
   * The `build` task gets your app ready to run for development and testing.
   */
  grunt.registerTask( 'build', [
    'clean', 'html2js', 'jshint', 'sass:build',
    'concat:build_css', 'copy:build_app_assets', 'copy:build_vendor_assets',
    'copy:build_appjs', 'copy:build_vendorjs', 'copy:build_vendorcss', 'index:build', 'karmaconfig',
    'karma:continuous'
  ]);

  /**
   * The `compile` task gets your app ready for deployment by concatenating and
   * minifying your code.
   */
  grunt.registerTask( 'compile', [
    'sass:compile', 'copy:compile_assets', 'ngAnnotate', 'concat:compile_js', 'uglify', 'index:compile'
  ]);

  grunt.registerTask( 'serve', [
    'connect:server', 'watch'
  ]);

  /**
   * A utility function to get all app JavaScript sources.
   */
  function filterForJS ( files ) {
    return files.filter( function ( file ) {
      return file.match( /\.js$/ );
    });
  }

  /**
   * A utility function to get all app CSS sources.
   */
  function filterForCSS ( files ) {
    return files.filter( function ( file ) {
      return file.match( /\.css$/ );
    });
  }

  /**
   * The index.html template includes the stylesheet and javascript sources
   * based on dynamic names calculated in this Gruntfile. This task assembles
   * the list into variables for the template to use and then runs the
   * compilation.
   */
  grunt.registerMultiTask( 'index', 'Process index.html template', function () {
    var dirRE = new RegExp( '^('+grunt.config('build_dir')+'|'+grunt.config('compile_dir')+')\/', 'g' );
    var jsFiles = filterForJS( this.filesSrc ).map( function ( file ) {
      return file.replace( dirRE, '' );
    });
    var cssFiles = filterForCSS( this.filesSrc ).map( function ( file ) {
      return file.replace( dirRE, '' );
    });

    grunt.file.copy('src/index.html', this.data.dir + '/index.html', {
      process: function ( contents, path ) {
        return grunt.template.process( contents, {
          data: {
            scripts: jsFiles,
            styles: cssFiles,
            version: grunt.config( 'pkg.version' )
          }
        });
      }
    });
  });

  /**
   * In order to avoid having to specify manually the files needed for karma to
   * run, we use grunt to manage the list for us. The `karma/*` files are
   * compiled as grunt templates for use by Karma. Yay!
   */
  grunt.registerMultiTask( 'karmaconfig', 'Process karma config templates', function () {
    var jsFiles = filterForJS( this.filesSrc );

    grunt.file.copy( 'karma/karma-unit.tpl.js', grunt.config( 'build_dir' ) + '/karma-unit.js', {
      process: function ( contents, path ) {
        return grunt.template.process( contents, {
          data: {
            scripts: jsFiles
          }
        });
      }
    });
  });

};

You have quiet a mess in there, just try this file please, and let me know how it goes.
You only need to run npm install and grunt serve then open http://<IP_ADDRESS>:9001/ in your browser.

Thanks a lot for your help. The only difference is that you inserted LESS again (i removed it and do it with SASS), and coffeescript though.
https://www.diffchecker.com/ro0bm63h
The connect-part is exactly the same.

Hey @gruberb, but thats not the one you posted :), maybe some copy/paste issue since there are some missing nodes.
 -.- I finally got it. Put the connect:serve task inside another task. One { to less and everything was a mess. Ok, it's working. Thanks a lot for your help.

Awesome! Happy code then!


Cartpole state dimension

Hi,
In the DeepMind Control Suite paper, Cart-pole has the dimension of (state_dimension=4, action_dimension=1, obervation_dimension=5). However, when I print the state dimension, I have more than that:
OrderedDict([('orientations', ArraySpec(shape=(14,), dtype=dtype('float64'), name='orientations')), ('height', ArraySpec(shape=(), dtype=dtype('float64'), name='height')), ('velocity', ArraySpec(shape=(9,), dtype=dtype('float64'), name='velocity'))])
OrderedDict([('orientations', array([-0.98755397, -0.15728048, -0.53161767,  0.84698444, -0.8187997 ,
       -0.57407931, -0.2290569 , -0.97341304, -0.30038274,  0.95381875,
       -0.85714334, -0.51507796, -0.88954764, -0.45684242])), ('height', 1.3), ('velocity', array([0., 0., 0., 0., 0., 0., 0., 0., 0.]))])

How can I transform this "big state" into a one with 4 dimensions only ?
Thanks

You are right, I realized that I was looping over the task set and only the last one was used.
 I just copied and pasted the script from the readme file without checking.
Thanks!


theme: fix header search

The header search bar is not consistent

Should be like this:

Findings from a quick investigation:

invenio-communities has its own header.html
it is needed because it needs to define certain urls to work
Could it be solved by simple inheriting from THEME_HEADER_TEMPLATE? Therefore the body_page block would not be needed, just adding some jinja vars.


Issue kubelet service is not getting start

I tried starting kubelet service after installing kubeadm,docker,minikube
systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Di 2018-05-22 08:07:36 CEST; 1h 6min ago
Docs: https://docs.docker.com
Main PID: 1058 (dockerd)
Memory: 138.7M
CGroup: /system.slice/docker.service
├─1058 /usr/bin/dockerd
└─1232 docker-containerd --config /var/run/docker/containerd/containerd.toml
Mai 22 08:07:35 kuber-master-01 dockerd[1058]: time="2018-05-22T08:07:35.540590580+02:00" level=info msg="[graphdriver] using prior storage driver: devicemapper"
Mai 22 08:07:35 kuber-master-01 dockerd[1058]: time="2018-05-22T08:07:35.600433171+02:00" level=info msg="Graph migration to content-addressability took 0.00 seconds"
Mai 22 08:07:35 kuber-master-01 dockerd[1058]: time="2018-05-22T08:07:35.601651832+02:00" level=warning msg="mountpoint for pids not found"
Mai 22 08:07:35 kuber-master-01 dockerd[1058]: time="2018-05-22T08:07:35.603144952+02:00" level=info msg="Loading containers: start."
Mai 22 08:07:36 kuber-master-01 dockerd[1058]: time="2018-05-22T08:07:36.253533456+02:00" level=info msg="Default bridge (docker0) is assigned with an IP address <IP_ADDRESS>/1... IP address"
Mai 22 08:07:36 kuber-master-01 dockerd[1058]: time="2018-05-22T08:07:36.483053276+02:00" level=info msg="Loading containers: done."
Mai 22 08:07:36 kuber-master-01 dockerd[1058]: time="2018-05-22T08:07:36.724885615+02:00" level=info msg="Docker daemon" commit=f150324 graphdriver(s)=devicemapper version=18.05.0-ce
Mai 22 08:07:36 kuber-master-01 dockerd[1058]: time="2018-05-22T08:07:36.725329386+02:00" level=info msg="Daemon has completed initialization"
Mai 22 08:07:36 kuber-master-01 systemd[1]: Started Docker Application Container Engine.
Mai 22 08:07:36 kuber-master-01 dockerd[1058]: time="2018-05-22T08:07:36.777533978+02:00" level=info msg="API listen on /var/run/docker.sock"
Hint: Some lines were ellipsized, use -l to show in full.
[root@kuber-master-01 system]#
systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/kubelet.service.d
└─10-kubeadm.conf
Active: activating (auto-restart) (Result: exit-code) since Di 2018-05-22 09:14:52 CEST; 6s ago
Docs: http://kubernetes.io/docs/
Process: 9322 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS (code=exited, status=255)
Main PID: 9322 (code=exited, status=255)
Mai 22 09:14:52 kuber-master-01 systemd[1]: kubelet.service: main process exited, code=exited, status=255/n/a
Mai 22 09:14:52 kuber-master-01 systemd[1]: Unit kubelet.service entered failed state.
Mai 22 09:14:52 kuber-master-01 systemd[1]: kubelet.service failed.
[root@kuber-master-01 system]#
tail -f /var/log/messages
May 22 09:15:13 [localhost] kubelet: Flag --cluster-domain has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.
May 22 09:15:13 [localhost] kubelet: Flag --authorization-mode has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.
May 22 09:15:13 [localhost] kubelet: Flag --client-ca-file has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.
May 22 09:15:13 [localhost] kubelet: Flag --cadvisor-port has been deprecated, The default will change to 0 (disabled) in 1.12, and the cadvisor port will be removed entirely in 1.13
May 22 09:15:13 [localhost] kubelet: Flag --cgroup-driver has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.
May 22 09:15:13 [localhost] kubelet: I0522 09:15:13.549860    9331 feature_gate.go:226] feature gates: &{{} map[]}
May 22 09:15:13 [localhost] kubelet: F0522 09:15:13.549971    9331 server.go:218] unable to load client CA file /etc/kubernetes/pki/ca.crt: open /etc/kubernetes/pki/ca.crt: no such file or directory
May 22 09:15:13 [localhost] systemd: kubelet.service: main process exited, code=exited, status=255/n/a
May 22 09:15:13 [localhost] systemd: Unit kubelet.service entered failed state.
May 22 09:15:13 [localhost] systemd: kubelet.service failed.
May 22 09:15:23 [localhost] systemd: kubelet.service holdoff time over, scheduling restart.
May 22 09:15:23 [localhost] systemd: Started kubelet: The Kubernetes Node Agent.
May 22 09:15:23 [localhost] systemd: Starting kubelet: The Kubernetes Node Agent...
May 22 09:15:23 [localhost] kubelet: Flag --pod-manifest-path has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.
May 22 09:15:23 [localhost] kubelet: Flag --allow-privileged has been deprecated, will be removed in a future version
May 22 09:15:23 [localhost] kubelet: Flag --cluster-dns has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.
May 22 09:15:23 [localhost] kubelet: Flag --cluster-domain has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.
May 22 09:15:23 [localhost] kubelet: Flag --authorization-mode has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.
May 22 09:15:23 [localhost] kubelet: Flag --client-ca-file has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.
May 22 09:15:23 [localhost] kubelet: Flag --cadvisor-port has been deprecated, The default will change to 0 (disabled) in 1.12, and the cadvisor port will be removed entirely in 1.13
May 22 09:15:23 [localhost] kubelet: Flag --cgroup-driver has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.
May 22 09:15:23 [localhost] kubelet: I0522 09:15:23.747105    9336 feature_gate.go:226] feature gates: &{{} map[]}
May 22 09:15:23 [localhost] kubelet: F0522 09:15:23.747182    9336 server.go:218] unable to load client CA file /etc/kubernetes/pki/ca.crt: open /etc/kubernetes/pki/ca.crt: no such file or directory
May 22 09:15:23 [localhost] systemd: kubelet.service: main process exited, code=exited, status=255/n/a
May 22 09:15:23 [localhost] systemd: Unit kubelet.service entered failed state.
May 22 09:15:23 [localhost] systemd: kubelet.service failed.
I tried reset the kubeadm as well and tied restarting kubelet service, still its not working .
cat kubelet.service
[Unit]
Description=kubelet: The Kubernetes Node Agent
Documentation=http://kubernetes.io/docs/
[Service]
ExecStart=/usr/bin/kubelet
Restart=always
StartLimitInterval=0
RestartSec=10
[Install]
WantedBy=multi-user.target

]# which kubelet
/bin/kubelet
I tried making changes to kubelet.service
ExecStart=/usr/bin/kubelet to ExecStart=/bin/kubelet
Can anyone help?

@Rajeev9045, this repo is for Kubernetes docs. Can you open your issue in the kubernetes/kubernetes repo?


Getting Fonts and Colors example

It would be great to have an example on how to properly get the fonts and colors settings and subscribe to changes :)

@niemyjski did you find a solution for this? I, too would like to get the pre-defined item colors in the Tool-Options-Environment such as keywords:

I found Colors and Styling for Visual Studio that seems to be close, but I cannot determine the names of the elements, such as keyword color. There's a huge list of EnvironmentColors     Class, but none are what I am looking for. (seems to be a zillion system colors, but not editor colors)


Provide web accessible endpoint listing info on all releases

At the least it should declare the atom-shell version, the v8 version, and the process.versions.modules value.
IO.js has offered this (https://iojs.org/download/release/index.json) and it makes knowledge about ABI compatibility transparent and accessible in an automated way. This is important for node-pre-gyp to know which binaries for a given Node C++ addon will work with a given Atom Shell version. refs #mapbox/node-pre-gyp#112 | #533.

Although even more ideal would be to use a specific, unaltered io.js release inside atom-shell to maintain full ABI compatibility with a given io.js release. Then node-pre-gyp could in fact just use https://iojs.org/download/release/index.json to know the process.versions.modules value for a given atom-shell release.

You also need to include the name of the executable that Atom Shell is built on, because Windows includes that name in the IAT of built native modules (see #713 for the ugly details). imho, this lessens the utility of node-pre-gyp as a concept, because anyone who renames atom.exe will bust the published binaries :-/

@paulcbetts actually just fixed this for christkv/bson-ext iojs support. See tootallnate/node-gyp#599

@imlucas Yeah, this is fixed in Electron too because modules now link to a node.dll


Add support for creating JVM based runners

In order to take advantage of using generating features in even more environments
As a Pickles developer
I want to use the open source tool called Grasshopper to generate binary equivalent Java .jars so we can developer Pickles Java plugins for other builds tools like Ant, Ivy and Maven.
Thoughts: Support other platforms through the Iron* tools like IronRuby and IronPython.  Should add documentation on this.  Also, what about supporting plain Ruby or Python?
Can also checkout a project called XMLVM to translate the code
http://dev.mainsoft.com/Default.aspx?tabid=130

It turns out this this technique requires source code for all assemblies involved.    I'm looking at re-writing the core logic in Fantom to allow the code to be written out to C# and Java (as well as Javascript coincidentally)

XMLVM looks to be another contender.  I'm going to try this one out as well.


[SPARK-16584][SQL] Move regexp unit tests to RegexpExpressionsSuite

What changes were proposed in this pull request?
This patch moves regexp related unit tests from StringExpressionsSuite to RegexpExpressionsSuite to match the file name for regexp expressions.
How was this patch tested?
This is a test only change.

Test build #62404 has started for PR 14230 at commit 58111e8.

Test build #62404 has finished for PR 14230 at commit 58111e8.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class RegexpExpressionsSuite extends SparkFunSuite with ExpressionEvalHelper

Merged build finished. Test PASSed.

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

OK I'm going to merge this since it is a simple move.
Merging in master/2.0.


0.5.0 fails to build where aligned_alloc is not supplied by the OS

--->  Building R-nanoarrow
xinstall: mkdir /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-nanoarrow/R-nanoarrow/work/build
Executing:  cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-nanoarrow/R-nanoarrow/work/nanoarrow" && /opt/local/bin/R CMD INSTALL . --library=/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-nanoarrow/R-nanoarrow/work/build --install-tests
* installing *source* package ‘nanoarrow’ ...
** package ‘nanoarrow’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
using C compiler: ‘gcc-mp-13 (MacPorts gcc13 13.2.0_4+stdlib_flag) 13.2.0’
using C++ compiler: ‘g++-mp-13 (MacPorts gcc13 13.2.0_4+stdlib_flag) 13.2.0’
Warning in system2("xcrun", "--show-sdk-path", TRUE, TRUE) :
  running command ''xcrun' --show-sdk-path 2>&1' had status 64
using SDK: ‘NA’‘NA’‘NA’‘NA’‘NA’‘NA’
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c altrep.c -o altrep.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c array.c -o array.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c array_stream.c -o array_stream.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c array_view.c -o array_view.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c as_array.c -o as_array.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c buffer.c -o buffer.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c convert.c -o convert.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c convert_array.c -o convert_array.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c convert_array_stream.c -o convert_array_stream.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c flatcc.c -o flatcc.o
In file included from flatcc/flatcc_flatbuffers.h:29,
                 from flatcc/flatcc_builder.h:68,
                 from flatcc.c:19:
flatcc.c: In function 'flatcc_builder_finalize_aligned_buffer':
../src/flatcc/flatcc_alloc.h:116:36: warning: implicit declaration of function 'aligned_alloc' [-Wimplicit-function-declaration]
  116 | #define FLATCC_ALIGNED_ALLOC(a, n) aligned_alloc(a, n)
      |                                    ^~~~~~~~~~~~~
flatcc/flatcc_builder.h:203:44: note: in expansion of macro 'FLATCC_ALIGNED_ALLOC'
  203 | #define FLATCC_BUILDER_ALIGNED_ALLOC(a, n) FLATCC_ALIGNED_ALLOC(a, n)
      |                                            ^~~~~~~~~~~~~~~~~~~~
flatcc.c:1995:14: note: in expansion of macro 'FLATCC_BUILDER_ALIGNED_ALLOC'
 1995 |     buffer = FLATCC_BUILDER_ALIGNED_ALLOC(align, size);
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
flatcc.c:21:1: note: include '<stdlib.h>' or provide a declaration of 'aligned_alloc'
   20 | #include "flatcc/flatcc_emitter.h"
  +++ |+#include <stdlib.h>
   21 |
../src/flatcc/flatcc_alloc.h:116:36: warning: incompatible implicit declaration of built-in function 'aligned_alloc' [-Wbuiltin-declaration-mismatch]
  116 | #define FLATCC_ALIGNED_ALLOC(a, n) aligned_alloc(a, n)
      |                                    ^~~~~~~~~~~~~
flatcc/flatcc_builder.h:203:44: note: in expansion of macro 'FLATCC_ALIGNED_ALLOC'
  203 | #define FLATCC_BUILDER_ALIGNED_ALLOC(a, n) FLATCC_ALIGNED_ALLOC(a, n)
      |                                            ^~~~~~~~~~~~~~~~~~~~
flatcc.c:1995:14: note: in expansion of macro 'FLATCC_BUILDER_ALIGNED_ALLOC'
 1995 |     buffer = FLATCC_BUILDER_ALIGNED_ALLOC(align, size);
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/flatcc/flatcc_alloc.h:116:36: note: include '<stdlib.h>' or provide a declaration of 'aligned_alloc'
  116 | #define FLATCC_ALIGNED_ALLOC(a, n) aligned_alloc(a, n)
      |                                    ^~~~~~~~~~~~~
flatcc/flatcc_builder.h:203:44: note: in expansion of macro 'FLATCC_ALIGNED_ALLOC'
  203 | #define FLATCC_BUILDER_ALIGNED_ALLOC(a, n) FLATCC_ALIGNED_ALLOC(a, n)
      |                                            ^~~~~~~~~~~~~~~~~~~~
flatcc.c:1995:14: note: in expansion of macro 'FLATCC_BUILDER_ALIGNED_ALLOC'
 1995 |     buffer = FLATCC_BUILDER_ALIGNED_ALLOC(align, size);
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
flatcc.c: In function 'flatcc_builder_aligned_alloc':
../src/flatcc/flatcc_alloc.h:116:36: warning: incompatible implicit declaration of built-in function 'aligned_alloc' [-Wbuiltin-declaration-mismatch]
  116 | #define FLATCC_ALIGNED_ALLOC(a, n) aligned_alloc(a, n)
      |                                    ^~~~~~~~~~~~~
flatcc/flatcc_builder.h:203:44: note: in expansion of macro 'FLATCC_ALIGNED_ALLOC'
  203 | #define FLATCC_BUILDER_ALIGNED_ALLOC(a, n) FLATCC_ALIGNED_ALLOC(a, n)
      |                                            ^~~~~~~~~~~~~~~~~~~~
flatcc.c:2014:12: note: in expansion of macro 'FLATCC_BUILDER_ALIGNED_ALLOC'
 2014 |     return FLATCC_BUILDER_ALIGNED_ALLOC(alignment, size);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/flatcc/flatcc_alloc.h:116:36: note: include '<stdlib.h>' or provide a declaration of 'aligned_alloc'
  116 | #define FLATCC_ALIGNED_ALLOC(a, n) aligned_alloc(a, n)
      |                                    ^~~~~~~~~~~~~
flatcc/flatcc_builder.h:203:44: note: in expansion of macro 'FLATCC_ALIGNED_ALLOC'
  203 | #define FLATCC_BUILDER_ALIGNED_ALLOC(a, n) FLATCC_ALIGNED_ALLOC(a, n)
      |                                            ^~~~~~~~~~~~~~~~~~~~
flatcc.c:2014:12: note: in expansion of macro 'FLATCC_BUILDER_ALIGNED_ALLOC'
 2014 |     return FLATCC_BUILDER_ALIGNED_ALLOC(alignment, size);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c infer_ptype.c -o infer_ptype.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c init.c -o init.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c ipc.c -o ipc.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c materialize.c -o materialize.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c nanoarrow.c -o nanoarrow.o
/opt/local/bin/g++-mp-13 -std=gnu++17 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc   -c nanoarrow_cpp.cc -o nanoarrow_cpp.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c nanoarrow_ipc.c -o nanoarrow_ipc.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c pointers.c -o pointers.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c schema.c -o schema.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c util.c -o util.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c vctr.c -o vctr.o
/opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I../src  -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c version.c -o version.o
/opt/local/bin/g++-mp-13 -std=gnu++17 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/opt/local/Library/Frameworks/R.framework/Resources/lib -Wl,-headerpad_max_install_names -L/opt/local/lib -lMacportsLegacySupport -Wl,-rpath,/opt/local/lib/libgcc -arch ppc -o nanoarrow.so altrep.o array.o array_stream.o array_view.o as_array.o buffer.o convert.o convert_array.o convert_array_stream.o flatcc.o infer_ptype.o init.o ipc.o materialize.o nanoarrow.o nanoarrow_cpp.o nanoarrow_ipc.o pointers.o schema.o util.o vctr.o version.o -F/opt/local/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
installing to /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-nanoarrow/R-nanoarrow/work/build/00LOCK-nanoarrow/00new/nanoarrow/libs
** R
** inst
** tests
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded from temporary location
Error: package or namespace load failed for ‘nanoarrow’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-nanoarrow/R-nanoarrow/work/build/00LOCK-nanoarrow/00new/nanoarrow/libs/nanoarrow.so':
  dlopen(/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-nanoarrow/R-nanoarrow/work/build/00LOCK-nanoarrow/00new/nanoarrow/libs/nanoarrow.so, 6): Symbol not found: _aligned_alloc
  Referenced from: /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-nanoarrow/R-nanoarrow/work/build/00LOCK-nanoarrow/00new/nanoarrow/libs/nanoarrow.so
  Expected in: dynamic lookup

Error: loading failed
Execution halted
ERROR: loading failed

What gcc suggests won't work here, though a missing header is still wrong, of course, since aligned_alloc is not provided by the compiler but relies on the OS, and it is not supported in many macOS versions (and likely other systems).
We need a fallback implementation with a better cross-platform support here.

@paleolimbot Could you please help with this?
Usual fallbacks for this are malloc and posix_memalign.

Wait, looks like flatcc_alloc.h already has everything needed, but nanoarrow does not use needed macros to pick the right implementation.

So, passing -DFLATCC_USE_GENERIC_ALIGNED_ALLOC via Makevars fixes the bug.
I.e., what is needed is a configure script with a check for aligned_alloc support; if it is not present, then add the flag to Makevars. Problem solved.

I think aligned_alloc() is C11 also, so perhaps compiling with explicit C99 will work?

@paleolimbot Assuming nanoarrow does not need C11, that might work, but AFAIK R bakes in flags used to build R itself, I have no idea if we could manually cancel them out for a single package and whether this is desirable at all.


How to use Admin with exist IdentityServer4

Question
Hello, How to use Admin with an existing IdentityServer4

I don't if this link Follow these steps for setup project to use existing IdentityServer4 and Asp.Net Core Identity  that shows up on How to configure the Administration - IdentityServer4 and Asp.Net Core Identity is related to your question.

Hi guys, yeah, currently following links above are the guide which I have. 👍
I will work on simplification of distribution of whole UI, I would transfer UI into nuget package - it would be easier way how to upgrade UI part. 😊


Revert "added ddoc for #4619"

Reverts D-Programming-Language/dlang.org#982
The compiler change was already reverted in: https://github.com/D-Programming-Language/dmd/pull/4670

I merge this to immediately follow the compiler change.

:+1:


$ReadOnly<> for Objects

Hi,
As far as I know, if I check for the existence of an optional property, Flow will not complain for the rest of my function if I try to access this property. But if I pass it as a parameter to a function in-between, Flow will reset anything it infered about it.
For example,
https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVAXAngBwKZgZgC8YA3qmGHDhgJZwB2AhjAFxgD8AzhgE51GAcwA0qAL4BudAGMmvMAFssAeQBGAKw5FSFKjXpNWHRgFcYMMVPRRTjGYcZgAJnADKGABYAKOJoCU5JRgfHgYpnxO0uLodFBg3srqGgB0BgwsMGAAhMSkZhaBei7uXomqAdJUcozccDB4KfBC5clptBmsTXjCXv7RQA
/* @flow */

type t = {
  optional: ?string,
};

const myObj: t = {
  optional: null,
};

function doSth(obj) {
  return ;
}

if (myObj.optional !== null && myObj.optional !== undefined) {
  console.log(myObj.optional.length); // No error
  doSth(myObj);
  console.log(myObj.optional.length); // Error
}

One solution would be to able to type the object as a ReadOnly object, like this is already the case for arrays : $ReadOnly<{ ... }>. This way, flow could assume nothing in the object is being changed.
Is this something planned? Do you see any other solutions?

This is proper refinement behavior. Suppose doSth looked like
doSth(obj) {
  delete obj.optional;
}

Someday Flow could pass your use case for covariant fields, e.g. type t = {+optional: ?string};, but it currently doesn't. And myObj.optional != null is adequate for your purposes.

@popham The workaround seems ok for now :) Thank you.
What do you think about a $ReadOnly<>  utility type?

I would use it, but I don't find the local variable solution especially intrusive.

$ReadOnly found its way to flow. I think you can close the issue as it seems to be solved.


Wrap GenericInstanceType in link if type vars don't have link

See Hash(K, V) doc:

This pull request makes Enumerable({K, V}) wrap in link.

Awesome, thank you!! ❤
It's so nice to see that you and others are starting to send PRs to the compiler's code, doc generator, etc. :-)

@asterite I should learn compiler internals... Maybe I'll try and find some easy PRs over the holidays.

@RX14 I plan to give a talk at Manas about how the compiler works, so more people there could start collaborating on the compiler. The talk will be in Spanish, but I'll take notes in English to prepare it, maybe do some slides. Once I do that I'll share it so others can jump into the compiler too. I believe there's a lot of room for improvements to the compiler, both in terms of code organization, readablity and performance.

@asterite que bueno que hablo español, jaja. pero en verdad eso sería bien chévere. Por favor, hagalo 👍

This PR broke links rendering, see below:


Error because of exceeding max completion tokens

I'm trying out the researcher role example. The code is running fine generating questions, doing web search etc. After a while however it throws an error because it is exceeding the max completion tokens. I understand that the latest GPT-4 Turbo model has a 128k input tokens context window, but only a 4,096 tokens completion output window. There does not seem to be an easy fix - I checked.
Things I've tried:

specifiying my research prompt
increasing MAX_TOKENS variable (but that was silly as it only controls the input context window)
setting the long term memory variable to false
adjusting the class ConductResearch(Action) to try and create chunks of the completions but didn't work out

Any other ideas?

@geekan kind sir?

@pas-mllr thanks for your kind comments, i've reproduced the bug.
@shenchucheng could you plz check this?


Allow KeyBindingContainer actions to travel past PassThroughInputManagers

Not pretty
Missing tests
PRing for comment
Closes #1569

@ekrctb can I get your thoughts on this? I know you're in the process or refactoring inputmanager.

@smoogipoo I think this change is reasonable (I don't have superior idea).


Wrong exit code when server is not reachable

Expected behavior
$ vagrant provision dev
==> dev: The managed server is not reachable. Check if the `config.managed.server` is correct.
$ echo $?
1

Actual behavior
$ vagrant provision dev
==> dev: The managed server is not reachable. Check if the `config.managed.server` is correct.
$ echo $?
0

This is not good :(

Hey @promethe42 , @pvalena ,
sorry for the delay in response. I'm currently not finding time to properly support this as needed, but I'm happy to accept pull requests for this.
Only issue is that before making any functional changes:

the plugin should be lifted to be compatible with latest vagrant version
the.travis.yml is currently failing and needs to be fixed

I will try to find some time during the next days. If you want to support, I'm happy about PRs as well.
Cheers,
Torben

the plugin should be lifted to be compatible with latest vagrant version

How's that? We're experimenting with it, and it works fine, currently. Do you have some specifics?
I'll try to check travis-ci failures later on, but I'm no expert.


Error in make - Linux debian x86_64

Installed boost version : boost_1_66_0
Installed openssl version: OpenSSL 1.1.1-pre3-dev
command used for cmake in build directory:
"cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ ../cpp-netlib"
Error in make:
/usr/local/include/boost/asio/ssl/detail/impl/engine.ipp:221:9: error: ‘SSL_R_SHORT_READ’ was not declared in this scope
ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ),

I don't think this is an issue with cpp-netlib, as it seems to be an issue with Boost.Asio not being able to find that macro definition. My suggestion here would be to ensure that CMake is able to find the correct OpenSSL installation. If it persists, I suspect asking the Boost.Asio maintainers about this would be the most prudent course of action.

Thanks for the input. I'll check the Makefile and OpenSSL.


Fetch latest upstream updates

Removed old field names that are no longer used from serializers (still need to remove from database)
Updated CSV output to include SMC-specific fields like kind, payments, products, and market_match

Coverage decreased (-0.12%) to 98.92% when pulling 5a977ddbe489d2a232538c858f98f5c140a892a5 on upstream-updates into 11c14389000bb5f60c8b68079ed42b5eaf33641b on master.

Coverage decreased (-0.12%) to 98.92% when pulling a70a64237726286239d16fe917b62c5b45767f6b on upstream-updates into 11c14389000bb5f60c8b68079ed42b5eaf33641b on master.


Duplicate Key error not detected

Background
At the moment I'm using this library with MongoDB 4.0.8.
In my database, I have a "users" collection where the "username" field is a unique index". I've added this initialization script in order to create the unique index:
db.users.createIndex({ username: 1 }, { unique: true })

Expected behavior
In mongo-express, when I attempt to add a new user with a duplicate username to the collection, it behaves as expected and gives me a duplicate key error.

Actual behavior
When I add the user through this library, it behaves as if the insertion happened, but nothing changes in the database. I think it must just be ignoring this error somewhere along the way.
Is there a reason for this behavior, and can I expect this error to be supported in the near future?
I'm not opposed to implementing the fix and creating a pull request, I just wanted to bring it to your attention first.

Hi! Can you post an example of the code you're running in the library that's causing this issue? Additionally, if you're creating the index through the shell and not the driver, can you provide which database you're creating the users in along with that code?

Here's the example code for inserting a user. I'm using r2d2_mongodb to manage my database connections.
use bson::{bson, doc, Bson};
use mongodb::{coll::options::FindOptions, db::ThreadedDatabase};
use r2d2::Pool;
use r2d2_mongodb::MongodbConnectionManager;

use crate::err::{Error, Result};

#[derive(Clone)]
pub struct App {
    pool: Pool<MongodbConnectionManager>,
}

impl App {
    pub fn create_user(
        &self,
        username: String,
        name: Option<String>,
        picture: Option<String>,
    ) -> Result<()> {
        let conn = self.pool.get()?;

        let users = conn.collection("users");
        users.insert_one(
            doc! {
                "username": username,
                "name": name.map(|name| Bson::String(name)).unwrap_or(Bson::Null),
                "picture": picture.map(|pic| Bson::String(pic)).unwrap_or(Bson::Null),
            },
            None,
        )?;

        Ok(())
    }
}

I'm not creating the index through the driver. Instead, I'm using the mongo docker image with an initialization script:
Dockerfile:
FROM mongo:latest

ENV MONGO_INITDB_DATABASE example

COPY ./init-example.js /docker-entrypoint-initdb.d/

Init script:
db.users.createIndex({ username: 1 }, { unique: true })

The code you shared using r2d2 doesn't show which database you're using, but the initialization script seems to be using the shell's default database (i.e. test). I suspect that the issue is due to the code using a different database where the user hasn't already been created.

It looks like r2d2-mongodb defaults to using admin, which would explain the issue. You can change the database that the initialization script creates the user in by prepending the line use admin to your script, or you can change the database that your connection pool uses by default with this method (or both, of course).

Thanks for responding so quickly! I appreciate the help with this problem.
I don't know if r2d2's defaults are the problem here, though. I should have included the creation of the r2d2 connection pool, because I was overriding the default admin database. I went back and verified that the documents were not being inserted into the admin database.
Here's a full example that I've tested with a fresh database called 'example'. The index creation is fully in rust and the client connects to the same mongodb server that I was using earlier. I even ripped out r2d2 to isolate the issue.
use bson::{bson, doc};
use mongodb::{Client, ThreadedClient, db::{Database, ThreadedDatabase}, coll::options::IndexOptions};

fn create_user(
    database: &Database,
    username: &str,
) {
    let users = database.collection("users");
    users.insert_one(
        doc! {
            "username": username,
        },
        None,
    ).unwrap();
}

fn main() {
    let client = Client::connect("database", 27017).unwrap();
    let database = client.db("example");

    let mut index_options = IndexOptions::new();
    index_options.unique = Some(true);
    database.collection("users").create_index(doc! { "username": 1 }, Some(index_options)).unwrap();

    create_user(&database, "example-user");
    create_user(&database, "example-user");
}

I expect this example to panic with the Duplicate Keys error, but the program runs successfully.
This image shows the "users" collection after the operation. There is only one user here named "example-user" as expected.

This image shows the indexes that were created for the "users" collection after the program runs. There is a unique username index as expected.

I mentioned above that this was a fresh database. I made sure that there was no database named 'example' on the server before I ran this example.

Thanks for the self-contained example here! This makes it much clearer for me.
This seems to be the same issue as https://github.com/mongodb-labs/mongo-rust-driver-prototype/issues/244; if the call to insert_one is changed to the following, then it shows the error in the write_exception field:
dbg!(users.insert_one(
    doc! {
        "username": username,
    },
    None,
).unwrap()

Output:
[src/main.rs:9] users.insert_one(doc!{"username" : username , }, None) = Ok(
    InsertOneResult {
        acknowledged: true,
        inserted_id: None,
        write_exception: Some(
            WriteException {
                write_concern_error: None,
                write_error: Some(
                    WriteError {
                        code: 11000,
                        message: "E11000 duplicate key error collection: example.users index: username_1 dup key: { : \"example-user\" }"
                    }
                ),
                message: "WriteError { code: 11000, message: \"E11000 duplicate key error collection: example.users index: username_1 dup key: { : \\\"example-user\\\" }\" }"
            }
        )
    }
)

Awesome, the write_exception was exactly what I needed. I should have dug into the docs a bit more. Thanks for your help!
Should we leave this issue open or close it in favor of #244?

No worries! At the very least, I think that we should document this method (and any others where this can occur) that write errors will not cause an Err variant to be returned.

Hello everyone! We've just released an alpha of an official MongoDB Rust driver; you can read about it here! Because of this, we won't be updating this driver anymore, and the repository will be made read-only as soon as I get finished posting these messages. Thanks for using this driver, and we hope you try out the new one!

Apologies, the blog post link is this: https://www.mongodb.com/blog/post/announcing-the-official-mongodb-rust-driver


Conflicting count and providers in module implementation

Thank you for opening an issue.
In this template paragraph text could be removed, however, please retain headers.
Prerequisites

[X] Ensure you have the latest version of the plugin installed
[X] Search for possible issue duplicates

Installation details

[X] IDE version (Help->About->Copy to Clipboard)

PyCharm 2021.2 (Professional Edition)
Build #PY-212.4746.96, built on July 27, 2021
Licensed to XXXXX
Subscription is active until November 26, 2021.
Runtime version: 11.0.11+9-b1504.13 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 11.5.2
...

[ ] intellij-hcl plugin version (Settings->Plugins)
0.7.10
[ ] Terraform version (terraform -v)
1.0.5

Terraform Configuration Files
module "dummy" {
  count  = local.create_vpc ? 1 : 0
  source = "./"
  providers = {
    aws = aws.shd
  }
}

Exception
The code is highlighted as an error, while it is deployable and works ok.

Expected Behavior
Accept both count and providers. Seems like they work.
There is this text in the documentation, but it is about providers defined into the modules, not the ones that are defined in the callee.
A module containing its own provider configurations is not compatible with the for_each, count, and depends_on arguments that were introduced in Terraform v0.13. For more information, see Legacy Shared Modules with Provider Configurations.

Actual Behavior
There is an error indication about conflicting properties.
Steps to Reproduce
Paste the above code in a file in an empty folder and open it with the IDE.

Duplicates #311.


POTENTIAL SOLUTION for Package Dependency Issues

The main branch has many issues with unmet package dependencies, some examples below
NVTX functions not installed
Cannot load Graphbolt C++ library
Missing packages such as torchdata, pandas and pydantic
These issues have been documented at least in #104, #99, #36 and #33.
After quite a bit of trial and error, the following steps/script works for installing packages and is able to run through the example dataset.
OS: Ubuntu 22.04.4 LTS
Nvidia Driver: 550.54.15
CUDA: 12.4
Prerequisite: conda
This shell script takes care of dependencies in RF2na-linux.yml and SE3Transformer/requirements.txt
After cloning the RoseTTAFold2NA repository, place the below shell script in the RoseTTAFold2NA directory.
Execute as $ source create_env.sh
Download the script from this GitHub repo.
Hope this is helpful!

Also documented are the conda YAML (use not recommended) and conda table of packages.

📦  Submitted a Pull Request #110


disk size units other than mb lead to destroyment of cluster

I am using the following definition for a minikube cluster
resource "minikube_cluster" "local" {
  driver       = "kvm2"
  cluster_name = var.minikube_cluster_name
  nodes        = 1
  addons = [
    "dashboard",
    "default-storageclass",
    "ingress",
    "storage-provisioner",
    "registry",
    "registry-aliases"
  ]
  cni = "bridge"
  disk_size = "80g"
}

When I ran terraform apply without any changes, the provider wants to recreate the whole cluster because it does not recognize the disk size unit correctly.
If I use the following definition
resource "minikube_cluster" "local" {
  driver       = "kvm2"
  cluster_name = var.minikube_cluster_name
  nodes        = 1
  addons = [
    "dashboard",
    "default-storageclass",
    "ingress",
    "storage-provisioner",
    "registry",
    "registry-aliases"
  ]
  cni = "bridge"
  disk_size = "81920mb"
}

it recognizes the disk size unit correctly and does not want to recreate the cluster
Expected behaviour
I can use any documented disk size unit without leading to unnecessary recreations of the whole cluster

Thanks for reporting this! I've merged and released a fix for v0.4.4 😄 https://github.com/scott-the-programmer/terraform-provider-minikube/releases/tag/v0.4.4


drivers: i2c: SC18IS600 SPI to I2C bridge

Adds driver for the SC18IS600 SPI to I2C bridge. The bridge is registered as an ordinary I2C bus.

Codecov Report

Merging #6840 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #6840   +/-   ##
=======================================
  Coverage   54.89%   54.89%
=======================================
  Files         449      449
  Lines       43328    43328
  Branches     8157     8157
=======================================
  Hits        23785    23785
  Misses      16241    16241
  Partials     3302     3302

Continue to review full report at Codecov.

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


Toggle cell output

Is there a key to toggle cell output?
BTW, I would like to thank everyone who made this awesome extension happen.

There are commands to expand and collapse cell outputs but currently they are not bound to anything. There doesn't appear to be any commands to toggle outputs nor toggle inputs. I think we could make those. It might be good to get them upstream though.
I'm not sure what keybinding to use. I use Tab in vim to toggle folds. Maybe other people would find that agreeable :stuck_out_tongue_closed_eyes:

I think vim's fold commands can be used to toggle code and output:
                                   (1)      (2)      (3)
notebook:hide-cell-code            Z c  or  Z a  or  z c
notebook:show-cell-code            Z o  or  Z a  or  z c
notebook:hide-all-cell-code        Z C  or  Z A  or  z C
notebook:show-all-cell-code        Z O  or  Z A  or  z C

notebook:hide-cell-outputs         z c  or  z a  or  z o
notebook:show-cell-outputs         z o  or  z a  or  z o
notebook:hide-all-cell-outputs     z C  or  z A  or  z O
notebook:show-all-cell-outputs     z O  or  z A  or  z O

notebook:enable-output-scrolling                     z s
notebook:disable-output-scrolling                    z s

I don't know if it is possible to toggle cells, because I could only find
hiding and showing, but no toggling.
If toggling is possible third option would be most convenient.
https://neovim.io/doc/user/fold.html
https://github.com/jupyterlab/jupyterlab/blob/89e7251fbb83ecfeff879032e7fb3c2f8fea27e3/packages/notebook-extension/src/index.ts#L180-L198


Revert "move pipelines and resolvers controller from leader election …

…to statefulsets (#5036)"
This reverts commit e7c41a03c0441cacddc7ab67a389b175eebab78a.

The issue is result of a typo and should be resolved by https://github.com/redhat-appstudio/infra-deployments/pull/5102 (merged). Closing this one.


Adds ability for automod to detect duplicate messages across channels

Changes

lib/dstate/inmemorytracker now maintains 1 extra "channel" worth of message data per guild. This is an ordered snapshot of most recent messages from any channel. Its memory footprint is limited by shard.conf.ChannelMessageLen.
lib/dstate/interface's GetMessages returns messages matching query for a specific channel as before. However, if channel id is passed in as 0, it will check against the guild message snapshot.
automod/triggers's SpamTrigger was updated to have a "Match across channels" option. The default value is false which causes the trigger to work the same way it does now (each channel's message events isolated from all others).

Use Case
Someone copy+pastes the same spam message very quickly, but across more than channel. This allows automod to detect this and take action.
This change will also make it possible for other automod rules to match across channels in the future.

At a glance, I am wondering whether there is a way we can reduce the memory overhead here/implement this while retaining the original storage representation. For instance, would it be feasible to instead call the existing GetMessages(channelID, limit) procedure multiple times for each channel in the guild (with limit scaled down appropriately?)

@jo3-l Right now the only way I can think to make it work with the existing GetMessages would be to iterate over all channels in the guild (with scaled down limit) and merge them into a single list sorted by timestamp. Then it could walk the resulting list and see if the user posted more than X duplicates. Would bot perf be impacted a lot for bigger guilds?
I do think the memory footprint could be reduced though. After thinking more about it I could revert to the previous message representation without the map of maps, but add a single new list per guild keeping track of some small snapshot of most recent messages. Then GetMessage with channel id 0 could still return sorted messages from the whole guild. For the memory footprint it would be as if the bot was tracking 1 extra channel per guild with id 0.

After thinking more about it I could revert to the previous message representation without the map of maps, but add a single new list per guild keeping track of some small snapshot of most recent messages.

This implementation sounds good (and preferable to the current one in this PR) to me. That said I would wait for the developer @ashishjh-bst to chime in before making any changes in case he has an alternate suggestion or preference.

@jo3-l Right now the only way I can think to make it work with the existing GetMessages would be to iterate over all channels in the guild (with scaled down limit) and for each one walk the message list and count up the number of duplicates. Would bot perf be impacted for bigger guilds with lots of activity and lots of channels?
I do think the memory footprint could be reduced though. After thinking more about it I could revert to the previous message representation without the map of maps, but add a single new list per guild keeping track of some small snapshot of most recent messages. Then GetMessage with channel id 0 could still return sorted messages from the whole guild. For the memory footprint it would be as if the bot was tracking 1 extra channel per guild with id 0.

This would most certainly cause issues in yagpdb.xyz, and will most likely get ratelimited too.

@ashishjh-bst That makes sense. I went with option 2 since the memory footprint increase is very small per guild.


new team members don't appear

Karoline Ziska
Sasha Astiadi
Justing Snyder

done
must rename the tomel file publicinfo.toml


[regression] displayed date does not change when date_format changes

Here is the test case which fails
Given I have a date picker and a button which switches date format (for instance MM/DD/YYYY and DD/MM/YYYY)
When I type a date
and switches format WITHOUT PRESSING ENTER
Then the date keeps the original format
The example can be found here:
https://github.com/euZebe/react-datepicker/tree/master/examples/hello-world
Notes:

the problem doesn't happen when typing a valid date then pressing "Enter" before switching date format
the problem doesn't happen when picking a date using the calendar.

A few investigation later, I think this is a regression which happened at version 0.46.0.


#414 ready for review

Hey @kasperbolarsen - thank you 👏 - it is highly appreciated. This should be live shortly 😊
Also I made a small adjustment to the description, to show better how AWESOME that script is. I had never considered to add the parameters into a template with a script - great example there. Hope that is OK.

I am just to lazy to edit the XML file by hand each time I have an update 😁


Visual Studio 2022 uses cmd instead of windows terminal

Windows Terminal version
1.13.10984.0
Windows build number
10.0.22000.0
Other Software
No response
Steps to reproduce
I've configured windows terminal to be the default terminal:

I've created a simple .net 6 console application in Visual Studio Professional 2022

When i debug this console application, its started in a cmd shell rather than in the windows terminal

When i run cmd via "Windows-R", it does actually start the terminal (as expected). This means the windows terminal is set as default terminal for windows.
Is there a specific settings in visual studio in order to force the use of the windows terminal?
Expected Behavior
Visual studio starts the windows terminal when debugging a console application
Actual Behavior
Visual studio starts the cmd terminal

Hello!
Same problem here

Still an issue on Version 17.3.0 Preview 2.0 - always launches with cmd, despite Terminal being the default app.

Same here but only with ASP.NET Core projects. Standard console apps or Azure Function apps run in Windows Terminal.

Hmm, I'm up to 17.3.0 Preview 2.0 now, and I'm still not seeing this, even with a <Project Sdk="Microsoft.NET.Sdk.Web"> console app.

The default terminal detection has been pretty stable for a few OS release now. If there's some subset of VS projects that this does still repro for, best to report this directly at Developer Community.
(spoiler alert: looks like they've got a lot of issues with their handoff)

Fixed in Visual Studio v17.3.0

I'm now using Visual Studio v17.3.0 and it still doesn't open the windows terminal.

I'm now using Visual Studio v17.3.0 and it still doesn't open the windows terminal.

Just found a work around for me, check your startup configurtion of the visual studio. If it runs as administrator - then it won't launch the terminal, remove checkbox in startup options from that option and it will launch console apps in the terminal.

Try changing Windows Terminal > Settings > Default terminal application
from Let Windows decide to Windows Terminal.

Is there a way to launch VS2022 as administrator and still have the Terminal as the default option instead of the ConsoleApp?

I too would like to know how to get that to work, since my workflow requires me to run VS as administrator so I can debug the IIS (w3wp.exe) process.
VS Version: 17.9.6.
Windows Terminal Version: 1.19.10821.0

We're more or less tracking that issue over in #10276. It's a platform limitation currently that elevated applications cannot use the default terminal handoff.


Serial Reader

Script Title - Serial reader Script
what will change -
I will add a python script to read data serially from any UART module which can be connected to PC via USB port. In addition, I will add proper README.md to explain parameters such as Baud Rate, different modes etc.
Please add/delete options that are not relevant.

[x] Adding New Code

Programming Language

[x] Python

:star2: Star it :fork_and_knife:Fork it :handshake: Contribute to it!
Discord server  - https://discord.gg/FXyh2S3
Happy Coding,

I would like to work on this please.


Update stable version in repo from 0.9.5 to 1.0.0

Think about update stable version to 1.0.0
Version: stable=0.9.5 (695 days old) => latest=1.0.0 (15 days old)
Installs: stable=103 (72.54%), latest=39 (27.46%), total=142
Click to edit

yes please update otherwise new shipped klf-200 doesn't work with version < 1.0.0 because of new firmware

yes please update otherwise new shipped klf-200 doesn't work with version < 1.0.0 because of new firmware

Version 1.0.0 is released in latest repository and it works with new firmware. To be included in the stable repository, additional steps like the automatic discovery has to be implemented.


arch-arm: Don't hardcode secure mode accesses for semihosting

When accessing memory using functionalAccess(), the MMU could tell us to use a nonsecure access even though the CPU is operating in secure mode. I noticed this while trying to run a simple semihosting hello world with the MMU+caches enabled and the semihosting calls ended up reading from memory instead of the caches due to an S/NS mismatch.
See also https://github.com/gem5/gem5/pull/1198 which happens to also mask the issue I saw, but I believe both changes are needed.
Change-Id: I9e6b9839b194fbd41938e2225449c74701ea7fee

Thanks for these fixes! It looks good to me, I would only amend the commit title (and PR) to include the "mem" tag as well (so: arch-arm,mem) as it touches the translation port proxy which is used by every ISA


Add Danielle and alphabetic order

Added codeowners in alphabetical order

Hi @Roseywinter thank you for the review!
Issue was fixed.
Could you please check it again?


Server error at<EMAIL_ADDRESS>

server error
Please raise an issue, quoting this URL.

ENOENT: no such file or directory, open '/var/app/current/.tmp/5bcbdc09e7a3d10963cdc53a8bffe83ccce91142/package/index.js.js'

I invalided the cache and now it's available.