WIP  Allow making unlimited RPG worlds and better performance

This update adds the ability to make as many RPG worlds as you'd like. This update also cleans up loads of code. It might not be stable, it has yet to be tested.
DO NOT MERGE YET, UNTESTED

done?

I will test it

+1

+1

?

It was too much of a mess so I quickly pushed it in one commit directly to 1.0-Update

nederlands mag ook hoor

:P


unable to register dataset due to licence issue IPT 3.0-RC1

I'm currently exploring the publication of CamtrapDP data from Aguti via the IPT Version 3.0-RC1.
This is the dataset I have created: https://gbif-staging.mnhn.lu/ipt/resource?r=camtrap-pb
I have made it publicly available and now wanted to register it, however I'm getting this message:
The resource cannot be registered because the current published version was not assigned one of the licences that GBIF supports. To enable registration, assign one of these licences and publish a new version.
In the metadata section I have set the licences to CC0-1.0, not sure if I need to set licences at another place? I did not find anything else.

Thank you for contacting us.
Currently there can be issues with the dataset registration into GBIF. I'll have a look


Create TestProject template for dotnet

Implementation for https://github.com/microsoft/botframework-sdk/issues/5346

If @sgellock wants to own the VSIX, he can take this one over.

.NET Core Templates have been updated and merged into master.


Fix protobuf dependency invalid semver for cargo 1.54 for v0.5.x

With this, https://github.com/rust-lang/cargo/pull/9508, the dependency can no longer be used.
What was picked with 1.53 cargo was ~2.0, so use that instead.
This needs to be a new branch 0.5.1 that I branched from tag v0.5.0
Test:
Verify dependency can now be used.
protobuf in cargo.lock is unchanged in my dependent project.

You need to sign off your commits.

Thanks, Added the sign off line in the commit now.


Doc view: Changed download button's radius for better look

just an extra...  changed the border radius of the download button and replaced the icon with the icon that they use for download
before:

after:

ignore the locale change, i tested it with studersnel

Implementation's not that great, but hey, I think the look is now better :D.

@imxaander hey man appriciate the aestetic update, will merge it soon for the next official release, if there is anything else you would like to add/change like the logo white text on the top left merging with the backgrounf etc... let me know and you can commit it to this pr.

Alright, I'll let you know if I want to add/change something. Thank you.


TBChi: Networking.Network

A Network object that does the work of listening for and sending messages.

Status: NetworkStatus
Start: Start(...) initializes and manages the Client and non-public Server network peers
Stop: Stop(...) Client and non-public Server network peers

Known bug. Intermittent exception in Network.ClientListen(...) method:
            if (Client.Sender.Connected)                                            // Sender throwing exception
            { bufferLen = Client.Sender.Receive(rcvBuffer); }

Completed


Add ability to sort results when calculating checksums

At this time, the scripts to calculate checksums return a single string for each file through a zenity window with no columns. This prevents any possibility to sort results.
If zenity is called with the "--column" option, then the output of md5sum (or any other hash function), could be placed in the appropriate column, thus giving the possibility of sorting each field.
The following code produces the intended behavior, giving initial results sorted by checksum:
sed '/^$/d' <<< $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS | xargs -d '\n' md5sum | sort | sed 's/^\([^ ]*\) \(.*\)$/\1\x0\2/' | \
zenity --width=900 --height=300 --list --title "Hashes de archivos" --text "Archivos seleccionados" --column "MD5" --column "Archivo"

This is the resulting window after running the code above:

Hi @chronos000 ! Thanks for the feature request!
I have implemented this feature now. It is in the 'main' branch. Could you test?
Thanks for your time!


Lifting the finger just as secondary callout pops up, enters both primary secondary character

First of all, very cool software project. I love playing around with it.
I've found a little bug.
This takes a couple of tries to time exactly right, but when the finger is lifted just as the secondary callout callout is activated, the keyboard performs two insert actions. There seems to be around a 50ms window where this happens.
I haven't delved into the code for the long-press yet, maybe a timer issue?

Hi again! I have updated the gesture handling in the latest patch, but can't test it on device since my Xcode will not build to my 14.6 device, and my iPad runs the latest 15 beta 🤷♂
If you'd have a chance to give the master branch a test, that would be great. Otherwise, I'll try to test this myself shortly.

@digitalheir I think the new gestures in the master branch solves this. Could you please test and verify as well?

Tried it out, seems to be fixed, indeed!

One minor thing, off-topic: I noticed the release notes lists:

StandardKeyboardActionHandler canHandle is now open instead of public.

But it's still public in the main branch. Is this an oversight?

Thank you for verifying!
Oh, I must have missed cherry picking it in after rolling back the RTL changes. I'll adjust the release notes and release it separately. Thanks!

@digitalheir I've released the open thing as a 4.5.4.


Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.

I run npm run test in terminal, but I encountered error below, I don't know what does the error mean, how could I do?
Actual behaviour
><EMAIL_ADDRESS>test /Users/gengliming/Desktop/vue2-project
> npm run unit

><EMAIL_ADDRESS>unit /Users/gengliming/Desktop/vue2-project
> karma start test/unit/karma.conf.js --single-run

04 11 2016 19:32:48.962:INFO [karma]: Karma v1.3.0 server started at http://localhost:9876/
04 11 2016 19:32:48.965:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency
04 11 2016 19:32:48.970:INFO [launcher]: Starting browser PhantomJS
04 11 2016 19:32:49.727:INFO [PhantomJS 2.1.1 (Mac OS X 0.0.0)]: Connected on socket /#2CXoJv9uwmam8iCsAAAA with id 47647179
LOG LOG: '552a0d2a68b89f6e13d0e07d71f831cd1797e7cd89'
ERROR LOG: 'Unhandled promise rejection', TypeError{stack: 'http://localhost:9876/base/index.js?27a36bfdace53b5f11dc9ece93feea32e45ab5c8:9719:2397
Promise@http://localhost:9876/base/index.js?27a36bfdace53b5f11dc9ece93feea32e45ab5c8:1706:16
getAuthUserInfo@http://localhost:9876/base/index.js?27a36bfdace53b5f11dc9ece93feea32e45ab5c8:9719:2276
http://localhost:9876/base/index.js?27a36bfdace53b5f11dc9ece93feea32e45ab5c8:173:27
attemptAsync@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:1980:28
run@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:1935:21
execute@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:1923:13
queueRunnerFactory@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:714:42
execute@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:371:28
fn@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:2579:44
attemptAsync@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:1980:28
run@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:1935:21
execute@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:1923:13
queueRunnerFactory@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:714:42
fn@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:2564:31
attemptAsync@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:1980:28
run@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:1935:21
execute@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:1923:13
queueRunnerFactory@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:714:42
execute@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:2426:25
execute@http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d:776:24
http://localhost:9876/absolute/Users/gengliming/Desktop/vue2-project/node_modules/karma-jasmine/lib/adapter.js?7975a273517f1eb29d7bd018790fd4c7b9a485d5:320:23
loaded@http://localhost:9876/context.js:151:17
global code@http://localhost:9876/context.html:40:28', line: 9719, sourceURL: 'http://localhost:9876/base/index.js?27a36bfdace53b5f11dc9ece93feea32e45ab5c8'}

  Api.users
    ✗ will get json data
	Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.

  App.vue
    ✓ should export the correct `name`
    ✓ has a created hook

  UserPage.vue
    ✓ shoule have the correct name : UserPage

PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 4 of 4 (1 FAILED) (5.231 secs / 5.216 secs)
TOTAL: 1 FAILED, 3 SUCCESS

1) will get json data
     Api.users
     Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.

=============================== Coverage summary ===============================
Statements   : 81.11% ( 176/217 ), 42 ignored
Branches     : 94.68% ( 89/94 ), 36 ignored
Functions    : 41.86% ( 18/43 )
Lines        : 58.95% ( 56/95 )
================================================================================

npm ERR! Darwin 15.3.0
npm ERR! argv "/usr/local/Cellar/node/5.10.1/bin/node" "/usr/local/bin/npm" "run" "unit"
npm ERR! node v6.8.1
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>unit: `karma start test/unit/karma.conf.js --single-run`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>unit script 'karma start test/unit/karma.conf.js --single-run'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the vue2-project package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     karma start test/unit/karma.conf.js --single-run
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs vue2-project
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls vue2-project
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/gengliming/Desktop/vue2-project/npm-debug.log
npm ERR! Test failed.  See above for more details.

Environment Details

Karma version (output of karma --version):  Karma version: 1.3.0
Relevant part of your karma.config.js file

module.exports = function (config) {
  config.set({
    // to run in additional browsers:
    // 1. install corresponding karma launcher
    //    http://karma-runner.github.io/0.13/config/browsers.html
    // 2. add it to the `browsers` array below.
    browsers: ['PhantomJS'],
    frameworks: ['jasmine'],
    reporters: ['spec', 'coverage'],
    files: ['./index.js'],
    preprocessors: {
      './index.js': ['webpack', 'sourcemap']
    },
    webpack: webpackConfig,
    webpackMiddleware: {
      noInfo: true
    },
    coverageReporter: {
      dir: './coverage',
      reporters: [
        { type: 'lcov', subdir: '.' },
        { type: 'text-summary' }
      ]
    }
  })
}

specs
users.spec.js：
import Api from 'src/api'

describe('Api.users', () => {
  const { users } = Api

  it('will get json data', done => {
    users.getAuthUserInfo('552a0d2a68b89f6e13d0e07d71f831cd1797e7cd89').then(json => {
      expect(typeof json).toBe('object')
      done()
    }).catch(err => {
      throw err
    })
  })
})

You seem to have a test (Probably the will get json data >> Api.users one that needs to call done() method. Take a look at the function argument.
The error message tells you that the done() was not called within the timeout period.  This means that the async expectation was not met.  First check if  you really need the done in your test case.
More details about done here: http://stackoverflow.com/questions/27344872/testing-asynchronous-callbacks-with-jasmine

@CoderGLM it is quite possible that an exception occurs. In such case done() will not be called as we are just throwing err
Another possibility is that users.getAuthUserInfo('552a0d2a68b89f6e13d0e07d71f831cd1797e7cd89') did not return within the timeout period.  Is there a possibility that this method is taking too long?

@vivganes There is an exception occurs, so I catch it like this:
it('will get json data', done => {
    users.getAuthUserInfo('3f3c4d1ac7c55d89b48bcdbe6d519f5ba3167b78').then(json => {
      expect(typeof json).toBe('object')
    }).catch(error => {
      expect(true).boBe(true);
    }).finally(done)
  })

But I encountered another error：
05 11 2016 14:12:25.416:INFO [karma]: Karma v1.3.0 server started at http://localhost:9876/
05 11 2016 14:12:25.418:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency
05 11 2016 14:12:25.446:INFO [launcher]: Starting browser PhantomJS
05 11 2016 14:12:26.139:INFO [PhantomJS 2.1.1 (Mac OS X 0.0.0)]: Connected on socket /#AL6ki8OFEEHi-zpKAAAA with id 25159723

  Api.users
    ✗ will get json data
	TypeError: undefined is not a constructor (near '...}).finally(done);...') in index.js (line 190)
	webpack:///test/unit/specs/api/users.spec.js:30:15 <- index.js:190:16
	loaded@http://localhost:9876/context.js:151:17

  App.vue
    ✓ should export the correct `name`
    ✓ has a created hook

  UserPage.vue
    ✓ shoule have the correct name : UserPage

PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 4 of 4 (1 FAILED) (0.031 secs / 0.007 secs)
TOTAL: 1 FAILED, 3 SUCCESS

1) will get json data
     Api.users
     TypeError: undefined is not a constructor (near '...}).finally(done);...') in index.js (line 190)
webpack:///test/unit/specs/api/users.spec.js:30:15 <- index.js:190:16
loaded@http://localhost:9876/context.js:151:17

@CoderGLM I am wondering if this error is because of a typo
    }).catch(error => {
      expect(true).boBe(true);
    }).finally(done)

Can you try changing boBe to toBe. It is quite possible that it is something different from this also. but, can you please try this first?
Before that, do you really need that expect there? If not needed, you can totally remove that line and check

@vivganes Not a typo error, the error occurs again when I clear catch block:
unit-test:
it('will get json data', done => {
    users.getAuthUserInfo('3f3c4d1ac7c55d89b48bcdbe6d519f5ba3167b78').then(json => {
      expect(typeof json).toBe('object')
    }).catch(error => {
    }).finally(done)
  })

error:
TypeError: undefined is not a constructor (near '...(error) {}).finally(done);...') in index.js (line 188)

When I access access_token-invalid-page in which users.getAuthUserInfo(access_token) has been called, the console shows :
vue-resource.common.js?2f13:1071 GET https://api.github.com/user?access_token=134 401 (Unauthorized)

If the parameter called access_token of users.getAuthUserInfo is valid, then the unit-test works, otherwise, 401 http error will occur in users.getAuthUserInfo. The unit-test can't catch it and raise another error?

I close this issue because it's not related to the karma. Error in client's code.
Thanks!

Whatever, but "Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL" is useless.

The message is sent by jasmine framework, not by karma or karma-jasmine.  It needs to be fixed in jasmine.

In my case, this was caused by improper use of "fixture.detectChanges()" It seems this method is a event listener (async) which will only respond a callback when changes are detected. If no changes are detected it will not invoke the callback, resulting in a timeout error. Hope this helps :)

@AFigueroa Do you know what to do in case that is the problem? How can i fix this?
I just remove fixture.detectChanges()?

The issue was caused for me when I was calling fixture.detectChanges, but I didn't have anything defined as the component ngOnInit or anything else, other than non-angular specific functions. Removing the call to detect changes worked for me--thanks, @AFigueroa

Guys, it's all about doing things right.
My problem was caused because of how we create our tests. We didn't mock anything at all, a lot of memory was required because of that and the chrome driver disconnect and there you have all the timeouts.
My solution, use ng-mocks and ng-bullet and all the timeouts are gone. We have 288 tests. Before using mocks everywhere sometimes they took 2min and a half to finish. Now they pass in 8 seconds and with no timeout at all.
So, mock every service, module, component, pipe, etc and you will have a nice deployment (CI).
This is my karma config:
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html

process.env.CHROME_BIN = require('puppeteer').executablePath();

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-mocha-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular-devkit/build-angular/plugins/karma')
    ],
    client: {
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    files: [
      {
        pattern: './test.ts',
        watched: false
      },
      {
        pattern: '../node_modules/cookieconsent/build/cookieconsent.min.js',
        watched: true,
        included: true,
        served: true
      }
    ],
    coverageIstanbulReporter: {
      dir: require('path').join(__dirname, '../coverage'),
      reports: ['html', 'lcovonly'],
      fixWebpackSourcePaths: true
    },
    reporters: ['progress', 'mocha'],
    mochaReporter: {
      output: 'minimal'
    },
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    singleRun: false,
    browsers: ['ChromeHeadlessNoSandbox'],
    browserDisconnectTolerance: 2,
    browserNoActivityTimeout: 10000,
    reportSlowerThan: 90,
    customLaunchers: {
      ChromeHeadlessNoSandbox: {
        base: 'ChromeHeadless',
        flags: ['--no-sandbox']
      }
    }
  });
};

Notice reportSlowerThan!!!
Here I'm going to leave a complete example:
import {ComponentFixture, TestBed} from '@angular/core/testing';
import {ApplicationNewComponent} from './application-new.component';
import {Application} from '../../shared/application.model';
import Program from '../../../program/shared/program.model';
import {ProgramService} from '../../../program/shared/program.service';
import * as applicationFixture from '../../shared/fixtures/application.json';
import * as programFixture from '../../../../modules/program/shared/fixtures/program.json';
import {of} from 'rxjs';
import {MockComponent, MockModule, MockPipe} from 'ng-mocks';
import {ApplicationPlaceholderComponent} from '../../components/application-placeholder/application-placeholder.component';
import {TranslateService} from '@ngx-translate/core';
import {ApplicationFormComponent} from '../../components/application-form/application-form.component';
import {RouterTestingModule} from '@angular/router/testing';
import {LocalizeRouterPipe, LocalizeRouterService} from 'localize-router';
import {HttpClientTestingModule} from '@angular/common/http/testing';
import {configureTestSuite} from 'ng-bullet';
import {CookieService} from 'ngx-cookie';
import {NgSelectModule} from '@ng-select/ng-select';

describe('ApplicationNewComponent', () => {
  let component: ApplicationNewComponent;
  let fixture: ComponentFixture<ApplicationNewComponent>;

  const programServiceSpy = jasmine.createSpyObj('ProgramService', [
    'getProgram'
  ]);

  configureTestSuite(() => {
    TestBed.configureTestingModule({
      imports: [
        MockModule(NgSelectModule),
        RouterTestingModule,
        HttpClientTestingModule
      ],
      declarations: [
        MockComponent(ApplicationPlaceholderComponent),
        MockComponent(ApplicationFormComponent),
        MockPipe(LocalizeRouterPipe),
        ApplicationNewComponent
      ],
      providers: [
        {provide: ProgramService, useValue: programServiceSpy},
        {
          provide: TranslateService, useValue:
            {
              getBrowserCultureLang: (key) => key,
              instant: (key) => key
            }
        },
        {provide: LocalizeRouterService, useValue: {}},
        {
          provide: CookieService, useValue: {
            getObject: () => {
            }
          }
        }
      ]
    });
  });

  beforeEach(() => {
    fixture = TestBed.createComponent(ApplicationNewComponent);
    component = fixture.componentInstance;
    programServiceSpy.getProgram.and.returnValue(of(programFixture));
    component.program = new Program(programFixture);
    component.application = new Application(applicationFixture);
    component.numberTypes = ProgramService.numberTypes;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});

Our results at this moment:
TOTAL: 288 SUCCESS

Finished in 7.817 secs / 2.645 secs @ 13:08:42 GMT+0200 (CEST)

SUMMARY:
✔ 288 tests completed
⚠ 1 test slow

Hope this help someone.

Try using lesser timeout instead. I got this error while using timeout = 5000. I replaced it with 2000 and it worked for me!

@marinariaz  And how did you setup the timeout, where exactly?


Problem with ScopedParams and null values

Hi,
I use RulesEngine, version 4.0.0 with .NET Core 3.1.

The problem I have is that my params refer to array properties of a child object, but, in some situations, this child object may be null.  When this occurs, the whole workflow breaks down instead of returning valid values.  I would like to know what would be the best practice in that situation.
Here is an example of the input data, the rules I use and the output I get...  Please note that I have simplified everything to the smallest meaningful sample...  Our real-life objects are much more complex and I have lots of rules, so reusing logic with GlobalParams and LocalParams is a life saver!
Input object:
{
    "ActivityId": 1,
    "Description": "Activity Description",
    "Quote": {
        "QuoteId": 1234,
        "Items": [{
                "ItemId": 1,
                "Description": "Product 1",
                "Quantity": 2,
                "UnitPrice": 1.00
            },
            {
                "ItemId": 2,
                "Description": "Product 2",
                "Quantity": 1,
                "UnitPrice": 10.00
            },
        ]
    }
}

Here is the workflow I use:
[
    {
        "WorkflowName": "Workflow",
        "WorkflowRulesToInject": null,
        "GlobalParams": [
            {
                "Name": "PiecesCount",
                "Expression": "Activity.Quote == null ? 0d : Activity.Quote.Items.Sum(Quantity)"
            }
        ],
        "Rules": [
            {
                "RuleName": "Load/unload pieces",
                "Operator": null,
                "ErrorMessage": "Rule failed",
                "RuleExpressionType": "LambdaExpression",
                "Expression": "PiecesCount != 0",
                "Actions": {
                    "OnSuccess": {
                        "Name": "OutputExpression",
                        "Context": {
                            "Expression": "PiecesCount * 90d"
                        }
                    }
                },
                "Rules": null
            }
        ]
    }
]

For completeness sake, here is how the workflow is run.  The rules variable holds my workflow and the activity variable holds my input data...
var rulesEngine = new RulesEngine.RulesEngine(rules, new ReSettings()
{
    CustomTypes = null,
});

var result = await rulesEngine.ExecuteAllRulesAsync("Workflow",
                                                    new RuleParameter("Activity", activity));

When I run this workflow with the sample object provided, The PiecesCount is 3 and the OutputExpression is 270d, as expected.
In some cases, my "activities" have no Quote, like so:
{
    "ActivityId": 1,
    "Description": "Activity Description",
    "Quote": null
}

In that case, I have this error message when the Rule is run:

Error while compiling rule Load/unload pieces: No applicable method 'Sum' exists in type 'Object', in ScopedParam: PiecesCount

I would expect the rule to return 0d, since Activity.Quote == null (as a reminder, the GlobalParam's expression is Activity.Quote == null ? 0d : Activity.Quote.Items.Sum(Quantity)), but it seems the RulesEngine has interpreted the whole expression and failed because the Quote is null.
If my workflow has many rules and some rules never refer to my GlobalParam, all rules fail, even those who don't refer the param...
For instance, all rules of this workflow fail with the same error message:
[
    {
        "WorkflowName": "Workflow",
        "WorkflowRulesToInject": null,
        "GlobalParams": [
            {
                "Name": "PiecesCount",
                "Expression": "Activity.Quote == null ? 0d : Activity.Quote.Items.Sum(Quantity)"
            }
        ],
        "Rules": [
            {
                "RuleName": "Load/unload pieces",
                "Operator": null,
                "ErrorMessage": "Rule failed",
                "RuleExpressionType": "LambdaExpression",
                "Expression": "PiecesCount != 0",
                "Actions": {
                    "OnSuccess": {
                        "Name": "OutputExpression",
                        "Context": {
                            "Expression": "PiecesCount * 90d"
                        }
                    }
                },
                "Rule": null
            },
            {
                "RuleName": "Other unrelated rule",
                "Operator": null,
                "ErrorMessage": "Rule failed",
                "RuleExpressionType": "LambdaExpression",
                "Expression": "true == true",
                "Actions": {
                    "OnSuccess": {
                        "Name": "OutputExpression",
                        "Context": {
                            "Expression": "10d"
                        }
                    }
                },
                "Rules": null
            }
        ]
    }
]

Here is the complete response:
[
  {
    "Rule": {
      "RuleName": "Load/unload pieces",
      "Properties": null,
      "Operator": null,
      "ErrorMessage": "Rule failed",
      "Enabled": true,
      "RuleExpressionType": "LambdaExpression",
      "WorkflowsToInject": null,
      "Rules": null,
      "LocalParams": null,
      "Expression": "PiecesCount != 0",
      "Actions": {
        "OnSuccess": {
          "Name": "OutputExpression",
          "Context": {
            "Expression": "PiecesCount * 90d"
          }
        },
        "OnFailure": null
      },
      "SuccessEvent": null
    },
    "IsSuccess": false,
    "ChildResults": null,
    "Inputs": {
      "Activity": {
        "ActivityId": 1,
        "Description": "Activity Description",
        "Quote": null
      }
    },
    "ActionResult": {
      "Output": null,
      "Exception": null
    },
    "ExceptionMessage": "Error while compiling rule `Load/unload pieces`: No applicable method 'Sum' exists in type 'Object', in ScopedParam: PiecesCount"
  },
  {
    "Rule": {
      "RuleName": "Other unrelated rule",
      "Properties": null,
      "Operator": null,
      "ErrorMessage": "Rule failed",
      "Enabled": true,
      "RuleExpressionType": "LambdaExpression",
      "WorkflowsToInject": null,
      "Rules": null,
      "LocalParams": null,
      "Expression": "true == true",
      "Actions": {
        "OnSuccess": {
          "Name": "OutputExpression",
          "Context": {
            "Expression": "10d"
          }
        },
        "OnFailure": null
      },
      "SuccessEvent": null
    },
    "IsSuccess": false,
    "ChildResults": null,
    "Inputs": {
      "Activity": {
        "ActivityId": 1,
        "Description": "Activity Description",
        "Quote": null
      }
    },
    "ActionResult": {
      "Output": null,
      "Exception": null
    },
    "ExceptionMessage": "Error while compiling rule `Other unrelated rule`: No applicable method 'Sum' exists in type 'Object', in ScopedParam: PiecesCount"
  }
]

Any help / workaround will be much appreciated!
Thanks in advance!
Best regards!

I had the same issue. Although it is not an ideal solution, I had success with doing some data massaging before executing the expression. Specifically, replacing all "null" values in the object with a string "null", then in my expression I had some logic like this:
Int(record) > (recordThreshold== "null" ? (null) : Int(recordThreshold))
This allowed me to do comparisons with data that has a possibility of having a null value.

@ghigad Thanks for bringing this up. Let me share some details regarding RulesEngine which might help and this is based on the type of input you pass:

Pass a dynamic Object(aka ExpandoObject) - Here RulesEngine tries to convert the input to an approx typed object and may fail at compile if certain values are changing types (or null)
Pass a strong typed object - This will handle all scenarios perfectly as RulesEngine does not need to guess
Pass a JObject from Newtonsoft.Json - In this case, RulesEngine will support dynamic references to even not present properties, you would need to handle null checks at runtime. But it will require typecasting if you want to use any C# methods like sum.

There is another option to use CustomTypes and add a Utility class to handle such scenarios and keep the rules clean.
Let me know if this helps.

Hi @Bugattisport1 ,
Thanks for your feedback.
Unfortunately, I'm not sure this will help since the expression seems to fail as a whole, no matter if it is reached by the ternary operator...
Unless I didn't quite understand you suggestion.
Maybe an example could help me understand?
Best regard!

Hi @abbasc52,
Thank you for your feedback.

I used to use an ExpandoObject because I was doing some processing on my data before passing it to the rules engine.

I was creating a new type with new properties depending on the input object.
I first started experiencing my problem in this setup.
This now makes sense since you confirmed that this is a normal behavior for ExpandoObjects.

I completely removed the process that was generating the ExpandoObject and now pass a strongly typed object

I still face the issue, even with my strongly typed object
I even tried passing all the types involved in the object hierarchy in ReSettings,CustomTypes, but it still didn't work

I didn't try converting my object to a JObject object with NewtonSoft.Json, but I will definitely give it a try.

I will keep you posted with the results

I also tried to create a utility class and pass it to the CustomTypes, but with very little success...

I first tried to create a simple static method with no parameters and called it.  This worked.
I then tried to create a static method like so:  public static TResult Test<TValue, TResult>(TValue value, Expression<Func<TValue, TResult> expresssion)

The idea was to pass my value object (Activity in my previous example) and the wanted expression like so:  Utils.Test(Activity, x => x.Quote.Items)
In the method, I would check if value.Quote != null

If true, return the expression
If false, return null or an empty collection

All I got is an error stating that the Utils.Test method was not found

Any other ideas?
Best regards!

Hi @abbasc52,
A quick follow-up...
I went through my tests again and found out that my test program was using an ExpandoObject.
I updated my test to use a strongly typed object and my basic rules worked!
I'll rerun through my monster rules and make sure they use strongly typed objects and see if I still face the issue.
I'll keep you posted of my results.
Thank you again for your help!
Best regards!

Hi @abbasc52,
Sorry for the delay...
Using strongly typed objects solved my issue!
Thank you for your help!
Best regards!


Debian "bookworm" unsupported

Hi,
I tried to install your script into Debian bookworm and it make an error:
Error: could not find a distribution template for Debian\n\a
Thanks for your work :-)

I resolved with other installation of Wine :)


New feature : List - color per line

Hi,
It would be nice to be able to define a line (per line) color in the widget list.
Thks !

Hi @yesnault , this will be a useful feature! I think we can put it this way:
data = []string{
  "1. pass: foobar0",
  "[[color=red]]2. warning: foobar1",
  "3. pass: foobar2"}

If one wants to specify a particular color,  insert a piece like [[color=xxx]] in the front into the data passing to List, then List can detect it and render it differently. This will avoid adding in dramatic changes in current codes.

LGTM !
Le sam. 14 mars 2015 à 20:24, Zack Guo<EMAIL_ADDRESS>a écrit :

Hi @yesnault https://github.com/yesnault , this will be a useful
feature! I think we can put it this way:
data = []string{
"1. pass: foobar0",
"[[color=red]]2. warning: foobar1",
"3. pass: foobar2"}
If one wants to specify a particular color, insert a piece like
[[color=xxx]] in the front into the data passing to List, then List can
detect it and render it differently. This will avoid adding in dramatic
changes in current codes.
—
Reply to this email directly or view it on GitHub
https://github.com/gizak/termui/issues/4#issuecomment-80685561.

I don't know if it's possible or better, but another solution is to use same syntax than term color, like that for yellow color
\e[33;My Text here

@yesnault I like your solution, since it looks more "natural" in the sense of terminal printing:)

Another option I've seen is to use HTML style syntax e.g.
"<style color="red">ERROR</style> Something went wrong" This is nice as it lets you color individual parts of a line.

That seems pretty good, but have to type up many chars. How about this:
item := "[ERROR](red,bold) Something went wrong"

Does the same thing but uses markdown-like syntax.

+1

Has anyone already started working on it? If not, I could start in a few days.

:+1: That would be great! I was also thinking maybe we can apply this for any text rendering not just List. Introduced a new struct text that:
text.Len() int // return string real length
text.Buffer() []Point// return Points
text.SetBg(Attribute)
text.SetFg(Attribute)

Then all text procedures can use this structure to render, which gives the ability of using specific color.

:+1:

While something like that was my initial idea, it is not going to work because of text overflows.
I will implement an Api that is easy to implement and customizable. I was thinking of an interface that implements a method for the normalized text (I.e. All formating elements are stripped out) so the list class can work with that text. But instead of creating the buffer itself, there will be a method that will return a buffer for the given text sequence.
This should not break backwards compatibility and it will be customizable so that @warmans can implement his html formating if he wants to.
I will implement markdown and ASCII escape codes.
Sent from my iPhone

On Apr 1, 2015, at 1:25 AM, Zack Guo<EMAIL_ADDRESS>wrote:
That would be great! I was also thinking maybe we can apply this for any text rendering not just List. Introduced a new struct text that:
text.Len() int // return string real length
text.Buffer() []Point// return Points
text.SetBg(Attribute)
text.SetFg(Attribute)
Then all text procedures can use this structure to render, which gives the ability of using specific color.
—
Reply to this email directly or view it on GitHub.

+1 for markdown syntax: it's easy to pick up even if you're terminal codes guy.

@divan:
Both are already implemented and the pull request #22 is pending

:+1:

Done!

Thanks to everyone !


Instead of shelling out use the kubernetes provider and config_map resource

I have issues
When using manage_aws_auth, shelling out and running kubectl in a null resource, whilst works, is not ideal, or a terraform best practice. Whilst you can turn this off, the worker lifecycle is tied to this being updated with new role arns of nodes for iam authenticator to auth said nodes.
I think swapping out the null resources to the kubernetes provider and the config_map resource would be a much slicker solution solving lots of problms.
However, this then brings up issues of having two providers in this module, and it becoming quite bloated. Perhaps splitting the module out to control plane, workers and config modules would make more sense? Perhaps this can still stay the main repo, but we could make other modules and include them?
I am going to make a module for the auth config and see how this works. Has this been attempted before?
I'm submitting a...

[ ] bug report
[?] feature request
[ ] support request
[ ] kudos, thank you, warm fuzzy

I had gone down this road a bit as an experiment a little while back, and decided it wasn't worth the effort for what is gained, but I'll provide my notes for reference.
To my knowledge, the terraform kubernetes provider still does not support exec authentication providers, like the one required for eks.
See: https://github.com/terraform-providers/terraform-provider-kubernetes/issues/161
The only way to use the kubernetes provider is through the config_path option,
requiring all the same kubeconfig rendering logic in the module today, or implementing one of the documented work arounds from the noted issue.
It will still require aws-iam-authenticator either way.
Also, most of the existing data "template_file" resources as still needed for rendering the specific and dynamic config map value structure needed to be supplied to mapRoles, mapUsers, mapAccounts config map keys.
data "template_file" "worker_role_arns"
data "template_file" "map_users" {
data "template_file" "map_roles" {
data "template_file" "map_accounts" {

You also need a net new data resource for combining the 2 pieces that make up current mapRoles from the template, (or rework that logic in a different way):
${worker_role_arn}
${map_roles}

You do replace
data "template_file" "config_map_aws_auth" {
and
resource "null_resource" "update_config_map_aws_auth" {
with a single
resource "kubernetes_config_map" "aws_auth" {
but at the cost of the additional provider dependency
In the end, the same dependencies for ensuring all eks resources are rendered before the kubernetes provider is usable exist, so the known issue around provider depends_on described in https://github.com/hashicorp/terraform/issues/2430
would also come into play if attempting to both render a valid kubeconfig as input to the kubernetes provider in the same apply in the same module.
A general discussion on expanding the modules capabilities around k8s providers is here for reference: https://github.com/terraform-aws-modules/terraform-aws-eks/issues/99

Thanks for taking the time to comment on this, it was really helpful, and your design decisions make more sense now. I found that the new version of the provider in theory should implement the exec functionality. However, your points are completely valid, and i see that it would only reduce the requirement for kubectl to be installed, and still require workarounds, so shelling out isnt that bad.
I am going to bring this up with our EKS SA at Amazon as I feel like configuring the auth of workers via roles is something that should be fronted by an API, not directly in the config map, as its so tightly coupled to AWS resources. I could imagine that if the aws-iam-authenticator could accept multiple yaml config files this would be possible.

@willejs were you able to convince the EKS team to manage worker auth outside of K8S? I think it would be much cleaner that way.


Discussion on whether to include all flavours of npm install or just npm

npm, yarn, pnmp
npm comes default with node installed. People who install yarn or pnpm have gone out of their way to deviate from the default, so the assumption is that they know how a given npm command looks like in their choice of package manager.
That means we could reduce noise by omitting command examples that relate to yarn or pnpm.
On the other hand that might make it harder for newer devs to work with the documentation especially if they were advised to install yarn as a first thing after installing node when they began their developer journey.

Tricky question, thanks for asking!
My gut says we could have little tabs for different installation methods. However, this is tricky to mantain.
How about a note that says this is written with npm in mind, but works on package manager of choice?

I also wrote about this in my onboarding notes, feeling like we should either stick with just npm or provide a link to an explanation about why someone might choose one or the other. I also like @ramonh's suggestion:

How about a note that says this is written with npm in mind, but works on package manager of choice?

I'd be down for a tabbed component approach, however, to my understanding, Yarn will complain about having npm-specific lockfiles (package-lock.json) in the folder when installing because that's a possible footgun as (locked) dependencies could go inconsistent between using two systems -- and the package-lock.json we currently have (as per industry best practice) committed into the repo, so it will always be there by default. So avoiding this would require more research to figure out what's the correct best practice here.
TBQH the digging I did for #12 uncovered practical gains for why someone would want to use Yarn so I wouldn't throw it away just yet.

Going by my conversation with @callahad:

Those who know yarn will use yarn

Making the conclusion here that we'll remove the yarn mentions and stick with npm for now


Add debugging of connections and IO

Add debugging of basic information on connections and
IO (to be removed)

@vinted/backend @vinted/sre
Long story short, there're no timeouts set for unix sockets in the memcached client.
I already have a fix for the issue and I'll push it with the next PR. Just want to be able to easily revert these changes later.

👍

👍

👍


Make invalid command turn red

Codecov Report

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

@@            Coverage Diff            @@
##             master     #183   +/-   ##
=========================================
  Coverage     61.74%   61.74%
  Complexity      842      842
=========================================
  Files           134      134
  Lines          3108     3108
  Branches        348      348
=========================================
  Hits           1919     1919
  Misses         1040     1040
  Partials        149      149

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 e2c35b3...31741fe. Read the comment docs.


Compiling failure watchdog sample with nucleo_u575zi_q

Failed to compile the watchdog sample for the nucleo_u575zi_q board.
Build with following commandline.
./scripts/twister -p nucleo_u575zi_q --test samples/drivers/watchdog/sample.drivers.watchdog

I got this error in build.log
/home/crs/zephyrproject/zephyr/include/zephyr/device.h:96:39: error: '__device_dts_ord_DT_N_ALIAS_watchdog0_ORD' undeclared (first use in this function)
   96 | #define DEVICE_NAME_GET(name) _CONCAT(__device_, name)
      |

It is may be forgot to fix in the #47912.

Verified with 4a8ffee1d8b1630a1328918f8c3e83b67810ffa7.
Solved.


\examples\imagenet\models_test.py fails on GPU (8 x Titan-m):

Problem you have encountered:
Running flax\examples\imagenet\models_test.py  hits runtime error.
What you expected to happen:
Test to exit with OK status.
Logs, error messages, etc:
Log trace says:
RuntimeError: UNKNOWN: device kernel image is invalid
in external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_asm_compiler.cc(69): 'cuLinkComplete(link_state, &cubin_out, &cubin_size)'

Full log trace:
/usr/bin/python3 -u /workdisk/jax/FlaxExamples/flax/examples/imagenet/models_test.py
Running tests under Python 3.8.10: /usr/bin/python3
[ RUN      ] ResNetV1Test.test_resnet_v1_model
I1216 13:56:24.360462<PHONE_NUMBER>01952 xla_bridge.py:243] Unable to initialize backend 'tpu_driver': NOT_FOUND: Unable to find driver in registry given worker:
I1216 13:56:25.496197<PHONE_NUMBER>01952 xla_bridge.py:243] Unable to initialize backend 'tpu': INVALID_ARGUMENT: TpuPlatform is not available.
2021-12-16 13:56:25.729863: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:419] ********************************************************************************
2021-12-16 13:56:25.729899: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:420] The XLA GPU backend doesn't support unoptimized code generation but
2021-12-16 13:56:25.729910: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:422] --xla_backend_optimization_level is set to 0!
2021-12-16 13:56:25.729917: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:424] (Supported configuration is --xla_backend_optimization_level >= 2.)
2021-12-16 13:56:25.729923: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:426] ********************************************************************************
2021-12-16 13:56:25.791850: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:419] ********************************************************************************
2021-12-16 13:56:25.791876: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:420] The XLA GPU backend doesn't support unoptimized code generation but
2021-12-16 13:56:25.791903: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:422] --xla_backend_optimization_level is set to 0!
2021-12-16 13:56:25.791909: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:424] (Supported configuration is --xla_backend_optimization_level >= 2.)
2021-12-16 13:56:25.791933: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:426] ********************************************************************************
2021-12-16 13:56:25.852572: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:419] ********************************************************************************
2021-12-16 13:56:25.852607: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:420] The XLA GPU backend doesn't support unoptimized code generation but
2021-12-16 13:56:25.852634: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:422] --xla_backend_optimization_level is set to 0!
2021-12-16 13:56:25.852642: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:424] (Supported configuration is --xla_backend_optimization_level >= 2.)
2021-12-16 13:56:25.852649: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:426] ********************************************************************************
2021-12-16 13:56:25.904518: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:419] ********************************************************************************
2021-12-16 13:56:25.904543: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:420] The XLA GPU backend doesn't support unoptimized code generation but
2021-12-16 13:56:25.904551: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:422] --xla_backend_optimization_level is set to 0!
2021-12-16 13:56:25.904557: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:424] (Supported configuration is --xla_backend_optimization_level >= 2.)
2021-12-16 13:56:25.904562: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:426] ********************************************************************************
2021-12-16 13:56:25.956814: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:419] ********************************************************************************
2021-12-16 13:56:25.956839: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:420] The XLA GPU backend doesn't support unoptimized code generation but
2021-12-16 13:56:25.956865: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:422] --xla_backend_optimization_level is set to 0!
2021-12-16 13:56:25.956874: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:424] (Supported configuration is --xla_backend_optimization_level >= 2.)
2021-12-16 13:56:25.956889: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:426] ********************************************************************************
2021-12-16 13:56:26.025412: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:419] ********************************************************************************
2021-12-16 13:56:26.025437: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:420] The XLA GPU backend doesn't support unoptimized code generation but
2021-12-16 13:56:26.025446: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:422] --xla_backend_optimization_level is set to 0!
2021-12-16 13:56:26.025451: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:424] (Supported configuration is --xla_backend_optimization_level >= 2.)
2021-12-16 13:56:26.025456: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:426] ********************************************************************************
2021-12-16 13:56:26.025946: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:419] ********************************************************************************
2021-12-16 13:56:26.025996: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:420] The XLA GPU backend doesn't support unoptimized code generation but
2021-12-16 13:56:26.026010: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:422] --xla_backend_optimization_level is set to 0!
2021-12-16 13:56:26.026021: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:424] (Supported configuration is --xla_backend_optimization_level >= 2.)
2021-12-16 13:56:26.026031: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:426] ********************************************************************************
2021-12-16 13:56:26.026043: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:419] ********************************************************************************
2021-12-16 13:56:26.026077: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:419] ********************************************************************************
2021-12-16 13:56:26.026110: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:420] The XLA GPU backend doesn't support unoptimized code generation but
2021-12-16 13:56:26.026127: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:422] --xla_backend_optimization_level is set to 0!
2021-12-16 13:56:26.026140: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:424] (Supported configuration is --xla_backend_optimization_level >= 2.)
2021-12-16 13:56:26.026151: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:426] ********************************************************************************
2021-12-16 13:56:26.026163: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:420] The XLA GPU backend doesn't support unoptimized code generation but
2021-12-16 13:56:26.026176: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:422] --xla_backend_optimization_level is set to 0!
2021-12-16 13:56:26.026184: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:424] (Supported configuration is --xla_backend_optimization_level >= 2.)
2021-12-16 13:56:26.026191: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/gpu_backend_lib.cc:426] ********************************************************************************
2021-12-16 13:56:26.079888: E external/org_tensorflow/tensorflow/compiler/xla/service/gpu/gpu_compiler.cc:1099] The CUDA linking API did not work. Please use XLA_FLAGS=--xla_gpu_force_compilation_parallelism=1 to bypass it, but expect to get longer compilation time due to the lack of multi-threading.
[  FAILED  ] ResNetV1Test.test_resnet_v1_model
======================================================================
ERROR: test_resnet_v1_model (__main__.ResNetV1Test)
ResNetV1Test.test_resnet_v1_model
Tests ResNet V1 model definition and output (variables).
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/workdisk/jax/FlaxExamples/flax/examples/imagenet/models_test.py", line 46, in <module>
    absltest.main()
  File "/usr/local/lib/python3.8/dist-packages/absl/testing/absltest.py", line 2007, in main
    _run_in_app(run_tests, args, kwargs)
  File "/usr/local/lib/python3.8/dist-packages/absl/testing/absltest.py", line 2124, in _run_in_app
    app.run(main=main_function)
  File "/usr/local/lib/python3.8/dist-packages/absl/app.py", line 303, in run
    _run_main(main, args)
  File "/usr/local/lib/python3.8/dist-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "/usr/local/lib/python3.8/dist-packages/absl/testing/absltest.py", line 2122, in main_function
    function(argv, args, kwargs)
  File "/usr/local/lib/python3.8/dist-packages/absl/testing/absltest.py", line 2438, in run_tests
    result = _run_and_get_tests_result(
  File "/usr/local/lib/python3.8/dist-packages/absl/testing/absltest.py", line 2409, in _run_and_get_tests_result
    test_program = unittest.TestProgram(*args, **kwargs)
  File "/usr/lib/python3.8/unittest/main.py", line 101, in __init__
    self.runTests()
  File "/usr/lib/python3.8/unittest/main.py", line 271, in runTests
    self.result = testRunner.run(self.test)
  File "/usr/local/lib/python3.8/dist-packages/absl/testing/_pretty_print_reporter.py", line 87, in run
    return super(TextTestRunner, self).run(test)
  File "/usr/lib/python3.8/unittest/runner.py", line 176, in run
    test(result)
  File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
    test(result)
  File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
    test(result)
  File "/usr/lib/python3.8/unittest/case.py", line 736, in __call__
    return self.run(*args, **kwds)
  File "/usr/lib/python3.8/unittest/case.py", line 676, in run
    self._callTestMethod(testMethod)
  File "/usr/lib/python3.8/unittest/case.py", line 633, in _callTestMethod
    method()
  File "/workdisk/jax/FlaxExamples/flax/examples/imagenet/models_test.py", line 35, in test_resnet_v1_model
    variables = model_def.init(
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/traceback_util.py", line 162, in reraise_with_filtered_traceback
    return fun(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/flax/linen/module.py", line 1138, in init
    _, v_out = self.init_with_output(
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/traceback_util.py", line 162, in reraise_with_filtered_traceback
    return fun(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/flax/linen/module.py", line 1107, in init_with_output
    return self.apply(
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/traceback_util.py", line 162, in reraise_with_filtered_traceback
    return fun(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/flax/linen/module.py", line 1074, in apply
    return apply(
  File "/usr/local/lib/python3.8/dist-packages/flax/core/scope.py", line 730, in wrapper
    y = fn(root, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/flax/linen/module.py", line 1329, in scope_fn
    return fn(module.clone(parent=scope), *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/flax/linen/transforms.py", line 883, in wrapped_fn
    return prewrapped_fn(self, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/flax/linen/module.py", line 333, in wrapped_module_method
    return self._call_wrapped_method(fun, args, kwargs)
  File "/usr/local/lib/python3.8/dist-packages/flax/linen/module.py", line 618, in _call_wrapped_method
    y = fun(self, *args, **kwargs)
  File "/workdisk/jax/FlaxExamples/flax/examples/imagenet/models.py", line 100, in __call__
    x = conv(self.num_filters, (7, 7), (2, 2),
  File "<string>", line 17, in __init__
  File "/usr/local/lib/python3.8/dist-packages/flax/linen/module.py", line 719, in __post_init__
    object.__setattr__(self, 'scope', self.parent.scope.push(self.name))
  File "/usr/local/lib/python3.8/dist-packages/flax/core/scope.py", line 459, in push
    rngs = {key: _fold_in_str(rng, name) for key, rng in self.rngs.items()}
  File "/usr/local/lib/python3.8/dist-packages/flax/core/scope.py", line 459, in <dictcomp>
    rngs = {key: _fold_in_str(rng, name) for key, rng in self.rngs.items()}
  File "/usr/local/lib/python3.8/dist-packages/flax/core/scope.py", line 92, in _fold_in_str
    return random.fold_in(rng, jnp.uint32(hash_int))
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/random.py", line 171, in fold_in
    return _return_prng_keys(wrapped, _fold_in(key, data))
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/random.py", line 157, in _fold_in
    return key._fold_in(jnp.uint32(data))
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/prng.py", line 185, in _fold_in
    return PRNGKeyArray(self.impl, self.impl.fold_in(self._keys, data))
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/prng.py", line 448, in threefry_fold_in
    return _threefry_fold_in(key, jnp.uint32(data))
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/traceback_util.py", line 162, in reraise_with_filtered_traceback
    return fun(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/api.py", line 424, in cache_miss
    out_flat = xla.xla_call(
  File "/usr/local/lib/python3.8/dist-packages/jax/core.py", line 1661, in bind
    return call_bind(self, fun, *args, **params)
  File "/usr/local/lib/python3.8/dist-packages/jax/core.py", line 1652, in call_bind
    outs = primitive.process(top_trace, fun, tracers, params)
  File "/usr/local/lib/python3.8/dist-packages/jax/core.py", line 1664, in process
    return trace.process_call(self, fun, tracers, params)
  File "/usr/local/lib/python3.8/dist-packages/jax/core.py", line 633, in process_call
    return primitive.impl(f, *tracers, **params)
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/dispatch.py", line 128, in _xla_call_impl
    compiled_fun = _xla_callable(fun, device, backend, name, donated_invars,
  File "/usr/local/lib/python3.8/dist-packages/jax/linear_util.py", line 263, in memoized_fun
    ans = call(fun, *args)
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/dispatch.py", line 155, in _xla_callable_uncached
    return lower_xla_callable(fun, device, backend, name, donated_invars,
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/dispatch.py", line 506, in compile
    self._executable = XlaCompiledComputation.from_xla_computation(
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/dispatch.py", line 563, in from_xla_computation
    compiled = compile_or_get_cached(backend, xla_computation, options)
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/dispatch.py", line 534, in compile_or_get_cached
    return backend_compile(backend, computation, compile_options)
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/profiler.py", line 206, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/dispatch.py", line 514, in backend_compile
    return backend.compile(built_c, compile_options=options)
jax._src.traceback_util.UnfilteredStackTrace: RuntimeError: UNKNOWN: device kernel image is invalid
in external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_asm_compiler.cc(69): 'cuLinkComplete(link_state, &cubin_out, &cubin_size)'

The stack trace below excludes JAX-internal frames.
The preceding is the original exception that occurred, unmodified.

--------------------

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/workdisk/jax/FlaxExamples/flax/examples/imagenet/models_test.py", line 35, in test_resnet_v1_model
    variables = model_def.init(
  File "/workdisk/jax/FlaxExamples/flax/examples/imagenet/models.py", line 100, in __call__
    x = conv(self.num_filters, (7, 7), (2, 2),
  File "<string>", line 17, in __init__
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/random.py", line 171, in fold_in
    return _return_prng_keys(wrapped, _fold_in(key, data))
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/random.py", line 157, in _fold_in
    return key._fold_in(jnp.uint32(data))
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/prng.py", line 185, in _fold_in
    return PRNGKeyArray(self.impl, self.impl.fold_in(self._keys, data))
  File "/usr/local/lib/python3.8/dist-packages/jax/_src/prng.py", line 448, in threefry_fold_in
    return _threefry_fold_in(key, jnp.uint32(data))
RuntimeError: UNKNOWN: device kernel image is invalid
in external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_asm_compiler.cc(69): 'cuLinkComplete(link_state, &cubin_out, &cubin_size)'

----------------------------------------------------------------------
Ran 1 test in 1.762s

FAILED (errors=1)

Process finished with exit code 1

Steps to reproduce:
Run command:
/usr/bin/python3 -u /workdisk/jax/FlaxExamples/flax/examples/imagenet/models_test.py
Tested with docker image: nvidia/cuda:11.3.0-cudnn8-devel-ubuntu20.04
including the following installations:

ENV PYTHON_VERSION=cp38 \
    CUDA_VERSION=cuda11 \
    PLATFORM=linux_x86_64 \
    BASE_URL='https://storage.googleapis.com/jax-releases'

RUN set -ex; \
    pip install -U $BASE_URL/cuda11/jaxlib-0.1.75+cuda11.cudnn82-cp38-none-manylinux2010_x86_64.whl; \
    pip install -U jax \
    pip install --upgrade -q git+https://github.com/google/flax.git \
    pip install torchvision \
    pip install jupyter clu ml-collections

RUN pip install dm-tree dm-sonnet tensorflow tensorflow_datasets ipywidgets matplotlib dm-haiku
RUN pip3 install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio===0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html

PATH and LD_LIBRARY_PATH updated accordingly:
export PATH=/usr/local/cuda-11.3/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

It seems your kernel image is invalid, which makes me suspect there is something wrong with your selected docker image nvidia/cuda:11.3.0-cudnn8-devel-ubuntu20.04, perhaps it isn't supported by the XLA compiler, or perhaps there is a mismatch with jaxlib.
It would be useful if we can determine that this is independent of Flax, so you can file an issue against the JAX repo. It seems the error happens when using an RNG in a convolution. I can't easily reproduce your setup right now, but could you try running the following code on your machine and see whether you also get an error?
from jax import lax, jit, random
import jax.numpy as jnp

def conv():
  lhs = jnp.ones((2, 3, 9, 10))
  rhs = random.normal(random.PRNGKey(0), ((3, 3, 4, 5)))
  return lax.conv_general_dilated(lhs, rhs, (1, 1), ((0,0), (0,0)))

jit(conv)()

That test ran successfully. the jit'ed conv returns a DeviceArray of dimensions (2, 3, 6, 6).

Hmm ok, on what machine are you running this and what GPU does it have?

I run it within a K8S environment, with a pod assigned with 40 CPU cores, 80Gi RAM and 8 GPU's (NVIDIA GeForce GTX TITAN X)

Ok, thanks for the details. Unfortunately I will be OOO for the coming two weeks so I can't help you further, but perhaps @jheek  can take a look at this next week since he should still be around.

If one

uses the docker image nvidia/cuda:11.4.1-cudnn8-devel-ubuntu18.04, and
install jax by calling pip install --upgrade "jax[cuda]" -f https://storage.googleapis.com/jax-releases/jax_releases.html, and
run the  flax test script flax\examples\imagenet\models_test.py with XLA_FLAGS=--xla_gpu_force_compilation_parallelism=1

then the scripts completes with a success indicator.

XLA_FLAGS=--xla_gpu_force_compilation_parallelism=1, so without this FLAG even the tests don't run?
If that's the case this bug should probably go into google/jax

@mattiasmar any updates?

Oh, since January I haven't got to try it out again. Probably the repo has changed a lot since then anyway.

Alright, I will close it for now then.


Computed lifecycle hook keys not bound to Lifecycle.

I have attempted to create a kind of debouncer or delayed action HOC as follows:
/* @flow */
import { compose, withState, lifecycle } from 'recompose'
import ms from 'ms'

type DelayableLifecycleHooks =
  | 'componentWillMount'
  | 'componentDidMount'
  | 'componentWillReceiveProps'
  | 'componentWillUpdate'
  | 'componentDidUpdate'

type DelayedAction = (props: Object) => any

const withDelayedAction = (name: string, action: DelayedAction, lifecycleHook: DelayableLifecycleHooks, delay: string) => compose(
  withState(
    `${name}Timeout`,
    `set${name}Timeout`,
    null
  ),
  lifecycle({
    [lifecycleHook]: () => {
      const { [`${name}Timeout`]: timeout, [`set${name}Timeout`]: setTimer } = this.props
      timeout && clearTimeout(timeout)
      const later = () => {
        action(this.props)
      }
      setTimer(setTimeout(later, ms(delay)))
    }
  })
)

export default withDelayedAction

But when the hook is called by React, the function is not bound to this, so this is undefined (even though it is called as imp.componentWillMount(), for example.

If I specify the lifecycle hook directly, it works as advertised.

Hmmm... also works if I use [lifecycleHook](). Must be a quirk in how functions and methods are handled differently?

Try this
lifecycle({
    [lifecycleHook] () {

In a case of () => {} it's binded but to parent context not the object

A quick example https://babeljs.io/repl/#?babili=false&evaluate=true&lineWrap=false&presets=es2015%2Creact%2Cstage-2&targets=&browsers=&builtIns=false&debug=false&code_lz=GYVwdgxgLglg9mABADVQCgJSIN4CgIIDOUixATogLyIDkAJgzQNz5EkCGVOuiiA2uQC6ALkSYqAPm69eBMITgAbAKYA6RXADmaGlAAWMQjQA0ifYYwteAX1y3c7VQzqYWtsMoDuKdJdy4gA
See right side.

Interesting... Thanks for that insight!

Javascript is tricky language. Ill close this, feel free to reopen if ...


Selected group inside URL

The currently selected group shall be present in the URL (via hash) in order to have deep links for each group.

Done,

@lars-sh Please check!

noxone, this seems to work for groups without white spaces, while group names with white spaces are visible in the URL, but do not load any group.
Tested with latest iOS Safari.

If the group is preselected it seems to be impossible to (de)select group members...


Strange issue management

@TylerBarnes Feel free to reopen the issue if you think it's an issue. And add more details
Originally posted by @ItsMrAkhil in https://github.com/ItsMrAkhil/react-styled-carousel/issues/32#issuecomment-473622715
Hey @ItsMrAkhil,
I stopped using react-styled-carousel because of this error but if I didn't think it was an issue I wouldn't have opened an issue in the first place. Why does the issue need to be opened twice for it to be considered an issue?
It also seems I can't reopen issues here.
What other details do you want? The issue was fairly specific.
If you just want to close the issue to not deal with it, it's probably better to say that when you're closing it.

@TylerBarnes I didn't understand your problem exactly. And it was in the issues for a long time. As I was packed by my professional stuff I didn't get time to fix the issues in recent times. Thanks for creating the issue. I'll fix it as early as possible. And I'm really sorry for closing the issue.

@ItsMrAkhil no worries! I realized today my response was a little harsh, sorry for that.
 I know maintaining open source stuff is hard!
Thanks


We list an incorrect branch protection rule

Code of Conduct

[X] I have read and agree to the GitHub Docs project's Code of Conduct

What article on docs.github.com is affected?
<EMAIL_ADDRESS>What part(s) of the article would you like to see updated?
The list of servers for this rule are incorrect. The specific rule: Require deployments to succeed before merging made it into GHES versions 3.6 and up, but we list about all GA versions of GHES including versions that do not have this rule.
Additional information
Conversation when asking about this
ZenDesk ticket where I was initially asked

👋 @RobotKrabs - Thanks so much for opening an issue! I'll triage this for the team to take a look :eyes:

Thank u
On Mon, Mar 20, 2023, 9:08 AM Courtney Wilson @.***>
wrote:

👋 @RobotKrabs https://github.com/RobotKrabs - Thanks so much for
opening an issue! I'll triage this for the team to take a look 👀
—
Reply to this email directly, view it on GitHub
https://github.com/github/docs/issues/24498#issuecomment-1476515597, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/A3XXF7MRKMTLS6U3GADZ33DW5B6GPANCNFSM6AAAAAAV5U7RKI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

@RobotKrabs 👋 Thanks for opening this issue! Looks like we need to add some liquid tags:
{% ifversion fpt or ghec or ghes > 3.5 %}
### Require deployments to succeed before merging

You can require that changes are successfully deployed to specific environments before a branch can be merged. For example, you can use this rule to ensure that changes are successfully deployed to a staging environment before the changes merge to your default branch.
{% endif %}

Now that section will only be shown in the Free, Pro, & Team, Enterprise Cloud and GHES 3.6+ versions of the docs.
You, or anyone else, are free to open a PR to fix.
Thanks!


two sided surfaces

It would be wonderful to have two sided surfaces!

Ok, implemented, see this example:
ipv.figure()
m1 = ipv.examples.klein_bottle(show=False)
m2 = ipv.examples.klein_bottle()
m1.side = 'front'
m1.color = 'orange'
m2.side = 'back'

The default side is 'both'

Thanks!


Do I still need the nativescript-aws plugin?

Do I still need the nativescript-aws plugin?
From nativescript-nodeify's description looks like it automagically de-browserfies all of the libraries, but the instructions state that I need to install it nonetheless. Is that correct?

The example in the readme is correct. Perhaps later it's no longer required, but for now it is.

Got it.

With 0.5.0 I don't think you'll need nativescript-aws anymore.


switch name and synonym GO:0071839	apoptotic process in bone marrow

to
GO:0071839	apoptotic process in bone marrow cell

Also changed

'regulation of apoptotic process in bone marrow'
positive and negative
GO:0035602 fibroblast growth factor receptor signaling pathway involved in negative regulation of apoptotic process in bone marrow

Pascale


The readme should have instructions on how to upgrade to version 3

BUG TEMPLATE
This is a bug in the documentation.
Version
master
Steps to reproduce

Visit https://github.com/ReactTraining/react-router
Look for instructions on how to upgrade to version 3
Find instructions for upgrading to 2, but none for 3

Expected Behavior
I expected the readme to have instructions on how to upgrade to version 3
Actual Behavior
I could not find said instructions in the readme.
Notes

While the changelog (https://github.com/ReactTraining/react-router/blob/master/CHANGES.md) seems to be through, I, not being an expert in this project, was unable to use it as a guide for upgrading.
The docs directory (https://github.com/ReactTraining/react-router/tree/master/docs) also needs a link to the upgrade instructions.
I searched StackOverflow for information that we could base a guide on (https://stackoverflow.com/search?q=[react-router]+upgrade) but didn't find any.

There isn't a need. 3.0 is basically just 2.x with the deprecation warnings removed. If your code is running without warnings in 2.x, then no change is needed to run 3.0.

There isn't a need. 3.0 is basically just 2.x with the deprecation warnings removed. If your code is running without warnings in 2.x, then no change is needed to run 3.0.

That's great news for me, in my upgrade, thanks!
Can we add your description to the readme? It would encourage more people like me to upgrade.


Support ability to alter schema/database and rename

Terraform CLI and Provider Versions
Terraform CLI version: >= 1.5.0
Snowflake provider version: 0.68.0
Use Cases or Problem Statement
When we try to update the name of a schema in Terraform, it attempts to drop and re-create it. We do not want this behavior and would need it to ALTER SCHEMA RENAME ....
Proposal
Implement something similar to the solution to this issue https://github.com/Snowflake-Labs/terraform-provider-snowflake/issues/891 but for schemas and databases
How much impact is this issue causing?
High
Additional Information
No response

Hey @mwufigma. Thanks for creating the issue.
We are supporting renames for the schema. We changed the schema implementation lately (check https://github.com/Snowflake-Labs/terraform-provider-snowflake/releases/tag/v0.73.0). The rename happens here: https://github.com/Snowflake-Labs/terraform-provider-snowflake/blob/8fbc5cf3005f33c7cfb27815d6e4a1909ffbac80/pkg/resources/schema.go#L179. I have also confirmed that in this test: https://github.com/Snowflake-Labs/terraform-provider-snowflake/blob/8fbc5cf3005f33c7cfb27815d6e4a1909ffbac80/pkg/resources/schema_acceptance_test.go#L35 rename is behaving correctly.
You may be changing another parameter that causes a recreation.
Can you upgrade to the newer provider version first? If this does not help, could you provide the configurations you are using that are causing the issue?

Hey @mwufigma, I will close this issue; please open a new one if you are experiencing problems with renaming in the more recent versions of the provider.


[import/no-unresolved] when using with typescript and "paths" option

I get [import/no-unresolved] error with eslint while using typescript tsconfig.json paths option.
nextjs + typescript + eslint
My eslint file
module.exports = {
    root: true,
    parser: '@typescript-eslint/parser',
    parserOptions: {
        ecmaFeatures: { jsx: true },
    },
    extends: [
        'eslint:recommended',
        'plugin:@typescript-eslint/eslint-recommended',
        'plugin:@typescript-eslint/recommended',
        'plugin:react/recommended',
        'plugin:jsx-a11y/recommended',
        'plugin:import/errors',
        'plugin:import/warnings',
        'plugin:import/typescript',

        // Prettier plugin and recommended rules
        'plugin:prettier/recommended',
    ],
    rules: {
        // Include .prettierrc.js rules
        'prettier/prettier': ['error', {}, { usePrettierrc: true }],

        'no-empty': 'off',
        'react/prop-types': 'off',
        '@typescript-eslint/ban-ts-comment': 'off',
        '@typescript-eslint/no-non-null-assertion': 'off',
        'jsx-a11y/click-events-have-key-events': 'off',
        'jsx-a11y/no-static-element-interactions': 'off',
        'jsx-a11y/interactive-supports-focus': 'off',
        'jsx-a11y/no-noninteractive-element-interactions': 'off',
        'jsx-a11y/no-onchange': 'off',
    },
    settings: {
        'import/extensions': ['.js', '.jsx', '.tsx', '.ts'],
        'import/resolver': {
            typescript: {},
        },
    },
};

In tsconfig.json i use paths
"paths": {
      "@/core/*": ["src/core/*"],
}

and get errors from eslint like
  18:23  error  Unable to resolve path to module '@/core/useRouter'                  import/no-unresolved

Compilation build all works great, just linting fails eslint

It does not work with bare React and Typescript setup.
I tried all solutions I found on StackOverflow and the linked issue, and I could not make it work.

Do you have your baseUrl set in tsconfig?
"baseUrl": ".",
"paths": {
      "@/core/*": ["src/core/*"],
}

I can get the module to resolve or eslint to work, not both simultaneously.

turborepo

I'm using "baseUrl": "src", it should work, isn't it?

Do you have your baseUrl set in tsconfig?
"baseUrl": ".",
"paths": {
      "@/core/*": ["src/core/*"],
}

I can get the module to resolve or eslint to work, not both simultaneously. It builds fine when eslint works and vscode can't find the module.
I'm using turborepo, next, eslint, and typescript

Did you figure this out? I also have an issue with eslint showing the error in vscode, but it otherwise compiles and the error goes away for a bit when I run eslint with a file open. Reopening the file causes the error to come back.

Do you have your baseUrl set in tsconfig?
"baseUrl": ".",
"paths": {
      "@/core/*": ["src/core/*"],
}

I can get the module to resolve or eslint to work, not both simultaneously. It builds fine when eslint works and vscode can't find the module.
I'm using turborepo, next, eslint, and typescript

Mine is this:
"baseUrl": "src",
  "paths": {
    "@/application/*": ["application/*"],
    "@/domain/*": ["domain/*"],
    "@/presentation/*": ["presentation/*"]
  },

On the plugin docs (https://github.com/alexgorbatchev/eslint-import-resolver-typescript):
Adding
  settings: {
    "import/parsers": {
      "@typescript-eslint/parser": [".ts", ".tsx"],
    },
    "import/resolver": {
      typescript: {},
    },
  },

has worked for me - the import/parsers bit seemed to fix it.

@loweoj warked for me. Thanks!

On the plugin docs (https://github.com/alexgorbatchev/eslint-import-resolver-typescript):
Adding
  settings: {
    "import/parsers": {
      "@typescript-eslint/parser": [".ts", ".tsx"],
    },
    "import/resolver": {
      typescript: {},
    },
  },

has worked for me - the import/parsers bit seemed to fix it.
this is with  "eslint-import-resolver-typescript": "^2.7.1",

Well, I have this configuration, and it does not work.

Do you have your baseUrl set in tsconfig?
"baseUrl": ".",
"paths": {
      "@/core/*": ["src/core/*"],
}

I can get the module to resolve or eslint to work, not both simultaneously. It builds fine when eslint works and vscode can't find the module.
I'm using turborepo, next, eslint, and typescript

Mine is this:
"baseUrl": "src",
  "paths": {
    "@/application/*": ["application/*"],
    "@/domain/*": ["domain/*"],
    "@/presentation/*": ["presentation/*"]
  },

Do you have your baseUrl set in tsconfig?
"baseUrl": ".",
"paths": {
      "@/core/*": ["src/core/*"],
}

I can get the module to resolve or eslint to work, not both simultaneously. It builds fine when eslint works and vscode can't find the module.
I'm using turborepo, next, eslint, and typescript

Did you figure this out? I also have an issue with eslint showing the error in vscode, but it otherwise compiles and the error goes away for a bit when I run eslint with a file open. Reopening the file causes the error to come back.

And yeah, it compiles, not problem with it, but eslint still gives the problem.

I was not putting it inside of the compiler settings.

In case you have a custom path tsconfig, you might want to add it to typescript.project as found in https://github.com/import-js/eslint-plugin-import/issues/2301#issuecomment-974473228
  settings: {
    "import/resolver": {
      typescript: {
        project: ["tsconfig.base.json"]
      },
    },
  },

Facing a similar issue here, I've tried each of the solutions above and no resolution. nextjs + typescript + eslint
typescript compiles fine, but eslint throws errors like:
./src/api/auth.ts
1:28  Error: Unable to resolve path to module 'config'.  import/no-unresolved

My repo is set up like
tsconfig.json
.eslintrc.json
src/
- api/
- components/
- config.ts

relevant tsconfig.json:
{
  "compilerOptions": {
    "baseUrl": "src",
  },
  "include": ["next-env.d.ts", "vendor.d.ts", "**/*.ts", "**/*.tsx"],
  "exclude": ["node_modules"]
}

and .eslintrc.json
{
  "settings": {
    "import/resolver": {
      "typescript": {
        "project": ["tsconfig.json"]
      }
    },
    "import/parsers": {
      "@typescript-eslint/parser": [".ts", ".tsx"]
    }
  },
  "env": {
    "es6": true,
    "jest": true
  },
  "extends": ["next/core-web-vitals", "prettier"],
  "plugins": ["prettier", "import"],
  "globals": {
    "React": "writable"
  },
  "ignorePatterns": ["vercel-ignore.js"],
  "rules": {
    "react/react-in-jsx-scope": "off",
    "@typescript-eslint/no-non-null-assertion": "off",
    "import/no-anonymous-default-export": "off",
    "import/no-unresolved": "error"
  }
}

Anything look off here? Thanks

@liamjsc yes, you're missing the import/extensions setting, which would need to include .ts.

@ljharb thank you! eslint passes now.
Still trying to configure vscode to:

Stop complaining about this syntax. import { baseApiURL } from 'config' has 'config' red underlined, and "problems" includes ts(2307)

"quick fix" is suggesting a relative import for cases like this

I expect these may not be related to eslint or import-js, but if you have a suggestion I am stuck here. thanks

@ljharb thank you! eslint passes now.
Still trying to configure vscode to:

Stop complaining about this syntax. import { baseApiURL } from 'config' has 'config' red underlined, and "problems" includes ts(2307)

"quick fix" is suggesting a relative import for cases like this

I expect these may not be related to eslint or import-js, but if you have a suggestion I am stuck here. thanks

@liamjsc You may need to reload VSCode.

@liamjsc You may need to reload VSCode.

@liamjsc did you try this?

@JounQin @SalahAdDin yes, unplug it and plug it back in 😮💨
Thanks for the followup

@damiangreen to my understanding, this plugin doesn't completely resolve tsconfig when it's being extended, try:
  settings: {
    'import/resolver': {
      typescript: {
        project: ['../../tsconfig.settings.json'],
      },
    },
  },

Had similar issues in SvelteKit project and this solved it:
  settings: {
    'svelte3/typescript': () => require('typescript'),
    'import/resolver': {
      typescript: {
        project: ['./.svelte-kit/tsconfig.json'],
      },
    },
  },

@ljharb when the paths compiler option is placed in a tsconfig that is being extended from, it doesn't seem to resolve that.
Having
tsconfig.json
{
  "extends": "./.svelte-kit/tsconfig.json",
  "compilerOptions": {
    "allowJs": true,
    "checkJs": true,
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "skipLibCheck": true,
    "sourceMap": true,
    "strict": true,
    "noImplicitReturns": true,
    "noUncheckedIndexedAccess": true,
    "noUnusedLocals": true,
    "stripInternal": true
  }
}

and ./.svelte-kit/tsconfig.json
{
  "compilerOptions": {
    "paths": {
      "$lib": ["../src/lib"],
      "$lib/*": ["../src/lib/*"]
    },
    ...
  }
}

This fails
  settings: {
    'svelte3/typescript': () => require('typescript'),
    'import/resolver': {
      typescript: {
        project: ['./tsconfig.json'],
      },
    },
  },

as 3:22  error  Unable to resolve path to module '$lib/components/Footer.svelte'  import/no-unresolved
While this works
  settings: {
    'svelte3/typescript': () => require('typescript'),
    'import/resolver': {
      typescript: {
        project: ['./.svelte-kit/tsconfig.json'],
      },
    },
  },

🤷

interesting, ok - maybe that's a feature in v4 of tsconfig-paths and we're stuck on v3.

@karolis-sh is it still working on your side ? When I try your solution I got Unable to resolve path to module on every single imports even from modules...
Here's my full eslint config:
module.exports = {
	root: true,
	parser: "@typescript-eslint/parser",
	extends: [
		"eslint:recommended",
		"plugin:@typescript-eslint/recommended",
		"prettier",
		"plugin:import/recommended",
		"plugin:import/typescript",
	],
	plugins: ["svelte3", "@typescript-eslint"],
	ignorePatterns: ["*.cjs"],
	overrides: [{ files: ["*.svelte"], processor: "svelte3/svelte3" }],
	settings: {
		"svelte3/typescript": () => require("typescript"),
		"import/resolver": {
			typescript: {
				project: ["./.svelte-kit/tsconfig.json"],
			},
		},
	},
	rules: {
		"import/order": [
			"error",
			{
				groups: ["builtin", "external", "internal", ["sibling", "parent"], "index", "unknown"],
				"newlines-between": "always",
				alphabetize: {
					order: "asc",
					caseInsensitive: true,
				},
			},
		],
	},
	parserOptions: {
		sourceType: "module",
		ecmaVersion: 2020,
	},
	env: {
		browser: true,
		es2017: true,
		node: true,
	},
};

To remove errors, I have to remove the resolver + import/no-unresolved": "off".

@scorsi the import/resolver settings should include node: {} after the typescript resolver.

@scorsi the import/resolver settings should include node: {} after the typescript resolver.

It partially fixes my issue, still have Unable to resolve path to module '$app/environment',
which is declared like so in ambient.d.ts included in "./.svelte-kit/tsconfig.json":
declare module '$app/environment' {}

What a mess...

What worked for me (Vite, React, and TypeScript):

Installing plugins  eslint-import-resolver-alias , and eslint-import-resolver-typescript.
Adding 'import-resolver-alias' to the plugins array of my eslint config.

Notes:

You can also try adding 'eslint-import-resolver-typescript' to the plugins array of your eslint config. At one point, this also fixed the Unable to resolve path to module flags for me, but that plugin had a strange error which I resolved with nuance (by nuking package.json and re-running npm install). After that, I only needed to add 'import-resolver-alias' to my eslint config's plugins array.
I have a path alias defined in my tsconfig.json, which is in the same directory as my eslint config. The eslint-import-resolver-typescript plugin seems to resolve my path alias just fine via tsconfig.json.  As per the docs, so long as tsconfig.json is in the same directory as eslint config, you shouldn't need to add the project property and path to the typescript object.
I was predominantly getting eslint Unable to resolve path to module  flags on internal project imports.

Configs

eslintrc.cjs:

module.exports = {
  root: true,
  env: { browser: true, es2020: true },
  extends: [
    'eslint:recommended',
    'plugin:@typescript-eslint/recommended',
    'plugin:react-hooks/recommended',
    'plugin:prettier/recommended',
    'plugin:import/errors',
    'plugin:import/warnings',
    'plugin:import/typescript',
  ],
  ignorePatterns: ['dist', '.eslintrc.cjs'],
  parser: '@typescript-eslint/parser',
  plugins: [
    'import',
     /* This line here was key. */
    'import-resolver-alias',
    'react-refresh',
  ],
  settings: {
    'import/parsers': {
      '@typescript-eslint/parser': ['.ts', '.tsx'],
    },
    'import/resolver': {
      typescript: {
        alwaysTryTypes: true,
      },
    },
  },
  rules: {
    'import/no-unresolved': 'error',
    'react-refresh/only-export-components': [
      'warn',
      { allowConstantExport: true },
    ],
  },
}

tsconfig.json:

{
  "compilerOptions": {
    "target": "ES2020",
    "useDefineForClassFields": true,
    "lib": [
      "ES2020",
      "DOM",
      "DOM.Iterable"
    ],
    "module": "ESNext",
    "skipLibCheck": true,

    /* Resolve paths/path alias without error. */
    "baseUrl": ".",
    "paths": {
      "@/*": [
        "./src/*"
      ]
    },
    /* Bundler mode. */
    "moduleResolution": "bundler",
    "allowImportingTsExtensions": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react-jsx",
    /* Linting. */
    "strict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noFallthroughCasesInSwitch": true
  },
  "include": [
    "src"
, "project_notes/DialogDemo.tsx"  ],
  "references": [
    {
      "path": "./tsconfig.node.json"
    }
  ]
}

viteconfig.ts:

import path from "path"
import { defineConfig } from "vite"

export default defineConfig({
  /* Resolve path alias. */
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "./src"),
    },
  },
  server: {
    proxy: {
         /* My proxy config*/
    }
  }
});


Implement --custom-index-page option

Allows passing a path to your custom index.html as --custom-index-page to carton dev and carton bundle. The entrypoint script is then injected into this file with a simple text substitution looking for a closing </head> tag. The assumption is that your custom <body> is not supposed to contain an unescaped <head></head>, and adding a dependency on a proper HTML parser to implement this injection is too costly.
Depends on #97.
Resolves #100.

Thanks, could you also review #97 first so that these two land as separate commits to main?

Fails

:no_entry_sign:

Sources/carton/Commands/Bundle.swift#L43 - Function body should span 50 lines or less excluding comments and whitespace: currently spans 52 lines (function_body_length)

  Generated by :no_entry_sign: Danger Swift against fa99714a09520e882ee55c30bdd44dc0f167fe35

Fails

:no_entry_sign:

Sources/carton/Commands/Bundle.swift#L43 - Function body should span 50 lines or less excluding comments and whitespace: currently spans 52 lines (function_body_length)

  Generated by :no_entry_sign: Danger Swift against fa99714a09520e882ee55c30bdd44dc0f167fe35

Fails

:no_entry_sign:

Sources/carton/Helpers/FileSystem.swift#L49 - FIXMEs should be resolved (should use UnitInformationSto...). (todo`)

  Generated by :no_entry_sign: Danger Swift against 17e82598fdf225053e1bb9a81a1ab9bbf03bbd74


Failed fetching from private github repo

I am trying to use Exodus on my private GitHub repo and it fails with:
"Exception in thread "main" com.wixpress.build.maven.MissingPomException: Failed to read artifact descriptor"
When running "$ java -Xmx12G -Dskip.classpath=false -Dskip.transformation=false -Dlocal.maven.repository.path=<PATH-TO-LOCAL-.m2-REPO>  -Dfail.on.severe.conflicts=true -Drepo.root= -Drepo.url=git@github.com:YOUR-ORG/target-repo.git -jar <path/to/downloads>/exodus.jar"
how should my repo.url look like?
"git@git..com:/.git" is that ok?
Also, why do i need to specify both the local directory of the repo AND the github repo url?

Hi @Ifraimovich,
The repo.url is indeed not REALLY needed. we will work on removing this flag and update soon.


AttributeError: 'Steemd' object has no attribute 'commit' in dex.py

When using the functions buy(), sell() and cancel() in dex.py the following error occurs:
AttributeError: 'Steemd' object has no attribute 'commit' in dex.py

Duplicate of #121 .


 There is no replacement.
Please report this issue to the sighupio/furyctl tap (not Homebrew/brew or Homebrew/core):
  /usr/local/Homebrew/Library/Taps/sighupio/homebrew-furyctl/Formula/furyctl.rb:6

Ciao @filippobuletto
I've created an issue to track this on the root of the problem, thanks for the report!

➜ brew tap sighupio/furyctl
==> Tapping sighupio/furyctl
Cloning into '/usr/local/Homebrew/Library/Taps/sighupio/homebrew-furyctl'...
remote: Enumerating objects: 165, done.
remote: Counting objects: 100% (165/165), done.
remote: Compressing objects: 100% (123/123), done.
remote: Total 165 (delta 39), reused 15 (delta 2), pack-reused 0
Receiving objects: 100% (165/165), 20.89 KiB | 1.39 MiB/s, done.
Resolving deltas: 100% (39/39), done.
Error: Invalid formula: /usr/local/Homebrew/Library/Taps/sighupio/homebrew-furyctl/Formula/furyctl.rb
furyctl: Calling bottle :unneeded is disabled! There is no replacement.
Please report this issue to the sighupio/furyctl tap (not Homebrew/brew or Homebrew/core):
  /usr/local/Homebrew/Library/Taps/sighupio/homebrew-furyctl/Formula/furyctl.rb:6

Error: Cannot tap sighupio/furyctl: invalid syntax in tap!

Hi @filippobuletto , sorry to hear you are having trouble. We've merged the fix in master (https://github.com/sighupio/furyctl/pull/60) but we haven't released it yet, we'll do it in the next few days.
You can download furyctl from the releases page or use the asdf plugin as an alternative method in the meanwhile. Please refer to the readme for instructions.

Hi @filippobuletto , we fixed the issue related to homebrew/furyctl today with a new furyctl patch release v0.6.2.
I will close the issue, thank you!


Multiple OrganizationAffiliation Types

Section Number Identify the most specific section number the issue occurs (e.g. 4.1.2)
Open Issue mCSD_27
Issue Describe your issue. Don't write a book, but do include enough to indicate what you see as a problem.
I think this could be useful. Some HIEs generate documents that aggregate all of the data from their children. In this case, it would be useful to know if querying the HIE provides data directly sourced from the children, or if the data provided has been processed (aggregated/deduplicated) by the HIE first.
Proposed Change Propose a resolution to your issue (e.g., suggested new wording or description of a way to address the issue). The committee might simply accept your suggested text. Even if they don't, it gives a good sense of what you are looking for. Leaving this blank means you can't imagine how to resolve the issue, which makes it easier for the committee to admit they can't imagine how to resolve it either and leave it unresolved.
Define multiple OrganizationAffiliation types for "data aggregator", "request gateway", etc.
Priority:

Medium: Significant issue or clarification. Requires discussion, but should not lead to long debate.

Thinking more about this ..... do we need a way to represent that federation applies only to certain types of communication channels. For example, an Organization that provides federation to participatingOrganizations via MHD but whose XDR interface does not have said federation?

Thinking about it more, we might need to split up the intendedRecipient codes:

MHD-intendedRecipient-organization: ITI-65 can route to participatingOrganization by intendedRecipient, passing Organization.identifier
MHD-intendedRecipient-practitioner: ITI-65 can route to practitioner within participatingOrganization by intendedRecipient, passing Practitioner.identifier

Not sure if any profiling would be needed or if mCSD already has enough breadcrumbs for what would go in the directory.


[Windows] error copying static files

This was working fine and then I started getting this error and I can't figure out why:
ERROR: 2014/11/13 Error copying static files to C:\Users\John\Documents\My Dropbox\personal\projects\html\expendabots\source\public

Sorry for the delay (sincerely, it's inexcusable) but I'm still getting the same error with Hugo v0.13 (which I assume includes your fix since it was released this issue was closed)

@ghosttie, did you compile it yourself or download a binary? If self, what version of Hugo?

I downloaded the latest official release - Hugo v0.13

@spf13 what Go version did you use to build 0.13?

I didn't build it, I just downloaded it from https://github.com/spf13/hugo/releases

Well, @spf13 did build that, and the question was meant for him.

OK, well, I'm still getting the error so something is still not right in the latest release...

@bep built with Go 1.4

I might be shooting in the dark as well, so if this doesn't apply at all, please ignore this comment.
See this is under Linux, not under Windows, but the point is, that I wanted to avoid stress on my SSD when Hugo built the output directory over and over again after file changes. I mounted the output directory as tmpfs and chowned it to my user&group. After this, Hugo would crash with weird error messages whenever a new file should be created in the output directory. I tracked it down to the fsync package trying to be over-energetic wrt/something (don't remember what anymore) and "fixed" the problem by doing a chmod 777 on the output (the tmpfs mountpoint).