Intel® RealSense™ SDK 2.0 (v2.40.0) - testing and problems on different OS with the same NUC (Ubuntu 18.04 - 20.04 - Windows 10) + Jetson AGX Xavier

computer: Intel Nuc Kit NUC8i3BEH /Ram 16Gb / SSd 1 Tb
Ubuntu 20.04
Ubuntu 18.04
Windows 10 pro
Jetson AGX Xavier
Ubuntu 18.04
Intel® RealSense™ SDK 2.0 (v2.40.0)
All the D415 have the last firmware (<IP_ADDRESS>)
I tested everytime a build from source and the dkms or exe available. I also used the anaconda packages or pip packages.
The results are the same.
I spend my week testing different OS on the same platform with the last SDK. For my tests I used a piece of code (python) which was working well until september.
I also decided to test the same code on a Jetson AGX Xavier.
It was very interesting, even if it took me a lot of time.
The Ubuntu install is using a fresh install (erasing the disk) and using a sh script I wrote to install realsense sdk and open3d.
same python 3.7 code with 3x D415.
realsense-viewer is working well on all the OS even with the 3 cameras and it is possible to access advanced mode.
Realsense viewer with the 3 cameras activated give 40-60 Fps
tested with a direct connection to usb 3 ports and also with with powered USB 3 hub (AmazonBasics Hub USB-C 3.1 7 ports power 36 W (12 V/3 A)
On Ubuntu 18.04 and Ubuntu 20.04 :
after the activation of the first camera (sometimes the second), you get this message in the python script :
RuntimeError: Frame didn't arrive within 5000
is an exception thrown at frames = pipeline.wait_for_frames()
It looks like on Ubuntu 20.04, it happens sometimes with the activation of the first camera and with Ubuntu 18.04, it happens more with the activation of the second camera.
In all cases, you can't activate the 2 cameras (and not the 3 of course).
The same python code was working well on this NUC using Intel® RealSense™ SDK 2.0 (v2.38.1) with Ubuntu 18.04 and supported the 3x D415.
On Jetson AGX Xavier:
Error message: failed to set power state (even using the powered hub) when trying to access advanced mode in python. Then the code is not working at all.
With the Nuc with Windows 10 pro:
Same script, no problem using 3x D415 connected. It works well everytime with the 3 cameras.
Does it mean that only the Windows 10 version of the sdk is stable?
I'm not a fan of windows 10. I prefer Ubuntu. But I guess we have no choice.

Hi @Fred3D-tech   Issues with multi-camera setups, such as Failed to set power state when using more than one camera, have been known to occur on some systems.  Improvements to how rs2::pipeline is handled in multi-cam setups were introduced in SDK 2.35.2, though these enhancements may not solve problems that are related to causes other than rs2::pipeline, such as an issue with a particular model of USB hub.
In a case about multi-cam problems in the link below, a RealSense user offered a script that worked for their particular problem.
https://github.com/IntelRealSense/librealsense/issues/5828#issuecomment-625671835

Same for me https://github.com/IntelRealSense/librealsense/issues/7965
but only after first connect-disconnect after reboot.
And on windows is ok. Me too use ubuntu only.

what I don't understand is why using the same python script on the same machine, on Windows 10, I get excepted results with 3 x d415.. On Ubuntu it works with only with 1 (and sometimes 2) cameras..
On the Jetson Xavier, I tested everything and even with only one camera, I get this message  Error message: failed to set power state.
I changed the code but I still have the same problem on the jetson Xavier, trying to enter advanced mode.
I think you have a very big problem.

Hi @Fred3D-tech   I considered all of the information posted on this case very carefully.   Thakns very much for the detailed feedback.
If you are using a multi-camera setup then building from DKMS packages or a manual source code build of librealsense with kernel patching will be best suited to your situation.   This is because an RSUSB backend build is suited to single-camera setups (you do not state that you are using RSUSB though).
If your setup worked up until September, it may be worth testing with SDK 2.38.1 and firmware <IP_ADDRESS> on your Linux machines, as this marks the point before internal changes to the firmware from <IP_ADDRESS> onwards meant that recent SDK versions like 2.39.0 and 2.40.0 should be used.
Having said that, there have been reported issues with Failed to set power state on Jetson boards (Nano, TX2, Xavier) on multi-cam setups prior to September 2020.  SDK 2.35.2 introduced multicam improvements, though they address problems related specifically to rs2::pipeline rather than other factors that might cause problems (such as a particular brand of USB hub).  So it is not necessarily a problem that is related directly to librealsense.

Having said that, there have been reported issues prior to September 2020 with Failed to set power state on diferent types of Jetson board (Nano, TX2 and Xavier) on multi-cam setups of more than one camera.

on the Jetson Xavier, I have the problem Error message: failed to set power state with just one camera now !

Some RealSense users have found that they achieve great stability, particularly in multicam setups, if they add a time delay after the pipeline start.  An example of this is a 500 ms delay used in the link below to resolve a failed to set power state error when starting one or more cameras:
https://github.com/IntelRealSense/librealsense/issues/6120#issuecomment-704910981

Hi @Fred3D-tech   Do you require further assistance with this case, please?   Thanks!

Case closed due to no further comments received.

Case closed due to no further comments received.

same "failed to set power state" problem here, only one L515 with Jetson NX,
compiled Open3D with librealsense,
I have tried set usbcore.autosuspend=-1, no help
with "dmesg --follow", when I unplug/plug L515, shows:
uvcvideo: Unable to create debugfs 2-5 directory.
...

same "failed to set power state" problem here, only one L515 with Jetson NX,
compiled Open3D with librealsense,
I have tried set usbcore.autosuspend=-1, no help
with "dmesg --follow", when I unplug/plug L515, shows:
uvcvideo: Unable to create debugfs 2-5 directory.
...

After install librealsense follow installation_jetson
sudo apt-get install librealsense2-utils
sudo apt-get install librealsense2-dev
the realsense-viewer works great, and the previous compiled app also works.
Thank you

After install librealsense follow installation_jetson
sudo apt-get install librealsense2-utils
sudo apt-get install librealsense2-dev
the realsense-viewer works great, and the previous compiled app also works.
Thank you

Thanks very much @funshine for the update about your success!

Thanks very much @funshine for the update about your success!


Integrate fuzzers

Integrate Guido Vranken’s work from https://github.com/guidovranken/SoftEtherVpn-Fuzz-Audit.

@guidovranken , can you help with fuzzers ?


Question about Promise adaptor

Hi, all! I'm using Promise adaptor and basically, it's a nice tool to set some async values right into Ractive data. But now I want to use built-in Promise returned by ractive.set() method.
The problem is that this promise resolved instantly, before Promise adaptor's resolved real value. But I want to do something like this:
ractive.set('items', api.get('items')).then(() => {  /* do something with real values */ })
Is any ideas how to rewrite Promise adaptor to support this behaviour?

Unfortunately there's not really a way for adaptors to do that. The Promise returned from set and friends resolves when the DOM is settled after any transitions, which is on the next tick when no transitions are involved. The one thing we could do would be to resolve the set Promise with the value that was set, which would then defer it until both transitions are complete and the given Promise resolves. That seems like it could be a bit of a trap though, if you're expecting maybe transitions on the second resolution to also be complete.
I think the best solution here would be a monkey-patch:
const realSet = Ractive.prototype.set;
Ractive.prototype.set = function(keypath, value, options) {
  if (value instanceof Promise) return Promise.all([value, realSet.call(this, keypath, value, options)]).then(function(arr) { return arr[1]; });
  return realSet.call(this, keypath, value, options);
}

Most of the API methods on the Ractive prototype are just sugaring internal functions, so it's generally pretty safe to add more sugar on top.

@evs-chris, hi and thanks for the answer! It's little bit sad that adaptors can't be used for this purpose. How to you think, maybe this feature need to be included in Ractive itself? I suppose that because promises are very useful and widespread thing right now. Many-many libraries and modules supports it and it can improve Ractive's set() capability.
One more, it's really strange to me, that ractive.set() resolve a promise without value which was set. I mean that ractive.set().then() doesn't have any arguments. I think more useful something like this:
ractive.set('item', 'My item').then(console.log) // 'My item' printed in console

One more, it really strange to me, that ractive.set() resolve a promise without value which was set.

This is because the promise returned by ractive.set() isn't related to the set operation at all. It's a promise that resolves after the transitions it caused resolves. If any value were to be provided as the resolved value, it would be related to the transition, and not the set operation.
The real problem is that there's actually two ractive.sets happening - one is setting the promise as the value (your code), and the other is setting the real value after the promise is resolved (adaptor code). What you're looking for to hook on to is the second set call, which is inside the adaptor. However, this is an implementation detail of that adaptor.
But then, that's what adaptors are for. If this feature would need to exist, it would be best implemented on that adaptor. I would imagine that set monkey patch would be done on the adaptor, and that your code and Ractive would be oblivious of its existence.

@fskreuz hi and thank you too!

This is because the promise returned by ractive.set() isn't related to the set operation at all. It's a promise that resolves after the transitions it caused resolves.

Yea, I know, but it's strange too because if I do set operation and this method returns some promise I undoubtedly expect that this promise relates to this operation. I can happen after a transition, it's ok, but promise itself need to be related to set operation. It's more obvious behaviour I think.
Additional question, where can I get changelog for 0.9.0 version? I just install it from npm and all my project became a broken. Whether there are some breaking changes in this version?

There's a changelog file in the repo. I think we should add it to the package along with the readme next time for an easy lookup.

There's a migration page in the docs with known breaking changes: https://ractive.js.org/get-started/migrating
Let us know if there's something we missed!

Thanks, guys! Unfortunately, I see not too encouraging trends in latest versions. In my opinion, of course, but it's completely up to you.
Anyway, I've resolved most of the issues except one: when I build Reactive and other modules, using Webpack 2 I got a strange error on the client:
Slider.js:14 Uncaught TypeError: o.extend is not a function
Debug in Chrome shows me that it's really true. Ractive itself looks like that:
Reactive: Object

	default:function t(e)

 		defaults { <here regular Ractive things like extend etc.> }

 	easing:Object

	transitions:Object

My previous version is 0.8.14, webpack config the same. I guess why easing and transitions object was included to Ractive too:
Ractive.transitions = require('./animations/transitions');
Ractive.easing = require('./animations/easing');

But why Ractive become this strange object I don't understand.

@PaulMaly what are the discouraging trends? Too many features, not enough features?

0.9 includes an ES module bundle, and I think it's not getting along with webpack. I'm looking into that, though it may take me a bit as I've never used webpack before.

Regarding the webpack issue, I've confirmed that everything works out using the ractive ES module bundle with something like:
import Ractive from 'ractive';

const Component = Ractive.extend({
  template: 'Hello'
});

new Component({
  target: '#target'
});

is working. I think the issue is probably with the ractive-component-loader, if that's what's being used. I'll see if I can track that down and see what it's doing.

@sabob Actually, isn't a lot to devote too much time to discuss it. I see that Ractive moves forward a little bit quicker than earlier.
I don't like directives-based approach strengthening. I didn't like directives in Angular, I hate that in Vue. I hope that this approach won't become the cornerstone of Ractive. I don't like reduction of browsers support. I don't like some complications in Ractive's concepts. I think that Adaptors is a very useful thing but too weak than should be. I think that server-side capabilities also could be more advanced. I really like Ractive, I wrote much code with Backbone and Angular before. I tried Riot, React and Vue, but Ractive still my favourite tool. Yes, Ractive not so popular, not a big community and not a lot of modules for it. Reactive slower than most of these tools and have a big size. But Ractive always was most simple to understand and use tool. Minimum complexity, maximum usability, you know.
@evs-chris I don't use ractive-component-loader. I just use Webpack to support CommonJS modules on the client and some other applied things like minification, etc.

using the ractive ES module

Unfortunately, I can't use ES modules, because they are not supported by NodeJS. I use isomorphic approach and for me, it's very important. The main thing that previous version works fine on the same config, but a new version is not. Seems that an issue.

@fskreuz

But then, that's what adaptors are for. If this feature needs to exist, it would be best implemented on that adaptor. I would imagine that set monkey patch would be done in the adaptor, and that your code and Ractive would be oblivious of its existence.

I use CommonJS modules on client and server sides. So, I don't have any global Ractive in my Promise adaptor module. It just uses ractive instance argument of wrap function.

This is the just the kind of feedback we need. 👍 I agree that Ractive can be simpler. I have my own opinions, but we'll have to save these up for 2.0. 🎉 For now, we need it to be stable and bug-free for a 1.0 release.

@PaulMaly attempting to address some concerns:

The directives are mostly the same ones that have been in place since < 0.7, they just restructured a bit for parsing clarity (both code and coder). The only additional directive in 0.9 is to control event delegation in a fine-grained way, but you can safely turn off delegation completely and ignore it. The class- and style- directives added in 0.8 are mostly for performance and developer convenience - again, not required as style and class still work.
IE8 is the only browser that got dropped. To support IE9+, you just need to include the polyfills file ahead of ractive. IE8 was getting very cumbersome to support, and in fact, it didn't fully work with 0.7. IE9 is much less cumbersome, though it is definitely still an IE 😄.
There's actually an open issue #2512 to address issues with adaptors. They're queued for an API overhaul that will give them more control than they have now. Swing by that issue when you get some time and add what you'd like to be able to support over there.
As of 0.9, Ractive is not much slower than vue, react, or angular in some metrics and is faster in others based on the frameworks benchmark. That particular benchmark is a bit of the worst case in terms of style and layout penalties. Bigger is on the list of things to address for 1.0.
I think the worst change as far as adding complexity was switching to expressions for events and the introduction of @this. To some extent, I regret that change, but I also see it as necessary for resolving the weird state of event listeners that had come to be. There are no more planned for things like that 😄.

Can you exapnd a bit on what you'd like to see more in regards to server-side capabilities?
As far as ES modules, the one shipped with ractive now should only be picked up by systems that can use ES modules, like webpack and rollup. The UMD bundle is still the default, so it should be fine for both node and browser environments. @mpowell-atomic also had an issue, but got it resolved by deleting ractive/ractive.mjs from node_modules. Again, I suspect it's a loader issue because my test with webpack worked surprisingly well and it was definitely using ractive.mjs.
As for the adaptor needing access to Ractive, that seems like something that should be accessible from an instance, probably with instance.constructor.Ractive. I think instance.constructor.Parent should also be available for extended extensions. I'll flag that up for 0.9.1.

I use CommonJS modules on client and server sides. So, I don't have any global Ractive in my Promise adaptor module. It just uses ractive instance argument of wrap function.

The way I understand module management in Node is that once a module is loaded, anything else requiring it will refer to that loaded module and not some clone/duplicate/separate instance. Assuming everything loads the same adaptor module and Ractive, modifying the Ractive prototype from the adaptor module should modify it once and permanently... or at least that's the theory.
const Ractive = require('ractive');

// Once this module gets required somewhere, monkey-patch Ractive.prototype.set
const realSet = Ractive.prototype.set;
Ractive.prototype.set = function(keypath, value, options) {
  if (value instanceof Promise) return Promise.all([value, realSet.call(this, keypath, value, options)]).then(function(arr) { return arr[1]; });
  return realSet.call(this, keypath, value, options);
}

module.exports = function MyAdaptor(){ ... }

@evs-chris

The directives are mostly the same ones that have been in place since < 0.7, they just restructured a bit for parsing clarity (both code and coder).

I don't remember when exactly new transition syntax was implemented but this syntax generates many additional directives. In my opinion, an old syntax of transitions was more laconic.

They're queued for an API overhaul that will give them more control than they have now.

Wow, it's  a great news! Thanks!

As of 0.9, Ractive is not much slower than vue, react, or angular in some metrics and is faster in others based on the frameworks benchmark.

It would be very awesome! My comment based on this publications cycle: http://www.stefankrause.net/wp/?p=431
But seems that latest benchmark doesn't contain 0.9.0 version of Ractive. So, I believe that soon we'll see the new version in the next benchmark and will be surprised with results. )))

I think the worst change as far as adding complexity was switching to expressions for events and the introduction of @this.

Yes, that's one of the things what I talking about.
@fskreuz

The way I understand module management in Node is that once a module is loaded,

Yes, modules are caching, but it's a strange architectural proposal. Right now promise adaptor depends only on arguments passed to it, and it's good practice. My guess, it would be much more preferable if it will be available out-of-box.
@evs-chris @fskreuz

Can you exapnd a bit on what you'd like to see more in regards to server-side capabilities?

The main problem on the server side is not "How we render an app?", Ractive does this well, but "When we need to render an app and send the response?" If we try to create our components isolated from another code, components need to make async operations inside of it. On the client, it's not a problem, because of client fully asynchronous, but server response is not, we need to decide a point when we can send fully rendered app with all data, after all async operations inside of all components.
I try to do something like this:
// app.js

const Ractive = require('ractive');

const app = new Ractive({
        target: '#app',
        enhance: true,
        template: require('./templates/parsed/app'),
        components: {
		subclass: require('./components/subclass')
	},
	data: function() {
		return {};
	},
        onconfig: function() {
                this.promises = [];
        },
        oninit: function() { console.log('app init');
	        const $$ = this;
	        Promise.all($$.promises.map(p => p.catch(e => e)))
			    .then(res =>$$.fire('ready', null, res))
			    .catch(err => $$.fire('ready', err));
        }
});

// subclass.js

const Ractive = require('ractive');
const api = require('../api');

module.exports = Ractive.extend({
    enhance: true,
    css: '@import "/styles/subclass.css?' + Date.now() + '";',
    template: require('../templates/parsed/subclass'),
    adapt: [
        require('../adaptors/promise')
    ],
    data: function() {
        return {
            items: []
        };
    },
    onconfig: function() {

        const items = this.set('items', api.get('items'));

        this.root.promises.push(items);
    }
});

So, app "ready" events will be triggered only when all promises from all components, which add themselves to be rendered on the server (some components or some async operations can be not added, if it's not necessary), will be resolved or rejected (when we try to resolve them on client).
But, it's not working right now, because set operation promise resolving at the wrong time with wrong value. To do that, we need to resolve this promise only then the actual value will seted even if it's a another promise. And this promise need to be resolved with the actual value, not with undefined or transition things.

I think the worst change as far as adding complexity was switching to expressions for events and the introduction of @this.

Difficult to balance simplicity vs expressiveness...
Not sure if it is too late to revert some complexity but a "Best Practice" guide might be useful to show idiomatic Ractive template syntax.

@sabob "Best Practice" is a great idea! Most of the existing frameworks provide only "hello world" things, but Ractive always had an interactive tutorial and I think "Best Practice" which solves main development issues, will be very useful to start with Ractive.

As of 0.9.1, you can access the Ractive constructor from any component constructor, so the promise adaptor, or whatever can monkey patch methods as needed.

As of 0.9, Ractive is not much slower than vue, react, or angular in some metrics and is faster in others based on the frameworks benchmark. That particular benchmark is a bit of the worst case in terms of style and layout penalties. Bigger is on the list of things to address for 1.0.

So-so: http://www.stefankrause.net/wp/?p=454

Oddly enough, it seems startup time is our worst metric now. I think using the ractive-bin-loader in the webpack config would result in a significant drop (maybe half) in startup time because parsing isn't exactly cheap.

Fun observation: Ractive's implementation appears to be purely runtime... while the benchmark is against compiled/half-compiled implementations. Not too bad really. :P
btw, i'd avoid hijacking the thread. :P

I use fully pre-compiled templates during packaging via Webpack. How do you think how much acceleration it gives as a result?

And one more point about this case:

Thanks, guys! Unfortunately, I see not too encouraging trends in latest versions. In my opinion, of course, but it's completely up to you.
Anyway, I've resolved most of the issues except one: when I build Reactive and other modules, using Webpack 2 I got a strange error on the client:
Slider.js:14 Uncaught TypeError: o.extend is not a function

Unfortunately, it's still happening. And I don't know what I can do with this. CommonJS still more convenient for me to include dependencies. On the server-side everything OK, but on the client, I see this object instead Ractive constructor:
const Ractive = require('ractive');
console.log(Ractive);
// Ractive:
    default:
        ƒ Ractive( options )
        __esModule: true
        __proto__: Object

Maybe you know what does it mean? Maybe it will help you:
https://github.com/babel/babel/issues/5079
https://stackoverflow.com/questions/41289200/output-an-es-module-using-webpack
Can we somehow prevent this problem? I will be very grateful if you provide a solution.

The issue is that [webpack doesn't support default exports in a configurable way] (https://github.com/webpack/webpack/issues/4742), so we may need to drop the module field from our package manifest if we need to support commonjs in bundlers. I think that's not a particularly good solution though. You can probably set up an alias or something like it to make sure you get the cjs build of ractive rather than the es build.

Ok, but why I don't get this issue using other libs? Most of them work well with both - CommonJS and ES6.

You can probably set up an alias or something like it to make sure you get the cjs build of ractive rather than the es build.

It seems I did not fully understand this point, could you please provide more details.

The issue is that [webpack doesn't support default exports in a configurable way] (webpack/webpack#4742),

Seems, it can be fixed via Webpack config. FYI:
resolve: {
       mainFields: ['browser', 'main']
},


Add MQTT controller support

This commit adds support for an MQTT-based controller to be used with the climate component.
A user would need to have an appropriate MQTT client that can emit IR/RF/etc based on the
payload received.
There is some prior discussion in #49 which should be resolved prior to this PR merging.

Hey I am mid-way through setting my DIY ESP8266 mqtt IR remote. I have an IR receiver on it, are you able to change state in Home assistant via mqtt state topic or something?
As in I want the IR receiver to sync HA mode/temp/fan speed if someone uses a manual remote.
There should be a way, mqtt supports command topic and state topic so should be possible right?

SmartIR doesn't currently support getting state from MQTT (only sending commands).
What you want to do it possible, with some caveats.
You could set up a standard mqtt sensor and an HA automation that decodes the state message your IR receiver has published to the topic. The automation could then apply those changes to the climate service. The main caveat here is that the climate service (using SmartIR) would then echo the same command back to the command topic and your IR emitter would send it on to the AC unit. This is not a huge problem, your AC may accept the command and "beep", but it should just be the same command again and shouldn't throw anything out of whack.

Thanks for the prompt reply @forfuncsake
While researching I just found that there's a HA climate mqtt platform as well, which takes care of all this.
Trying to figure out if using that would be a better idea. I mean if commands are being sent via mqtt, then what are the advantages of using smartir and not climate mqtt?
Thanks again for the inputs.

Indeed, using the official mqtt component is a better idea. The SmartIR difference is that it sends the full command in a single topic (temperature, fan etc).

ah nice. Thanks for the clarification.
I am using IRRemoteESP8266 Library (which I think works with different commands for each) so should be ok.
@smartHomeHub Just one more question, IRRemoteESP8266 library has my specific Fujitsu remote in it, is there a way I could extract codes from there to use with my Broadlink  and smartIR?


Building an application over datagate

Heya! So im wondering, is there some way I can import datagate into my backend project and expand some of its endpoints (stuff like auto sign up, user sync with ldap, write to user repositories via a web interface and have the clients synced, etc), or would i have to integrate via the rest api/database?

The datagate project was not built as a library project. I would suggest, modify the project at your will and build your own application on top of it.
And lastly, I would highly appreciate if you can contribute any useful feature or fix you develop back in the datagate project.


Installation Error on Latest Kali Linux build for both .NET Core and SDK

Problem encountered on https://dotnet.microsoft.com/download/linux-package-manager/debian9/runtime-current
Operating System: Linux Debian 9 - x64
Provide details about the problem you are experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.
The message below was the error/issue I was running into. I have the latest version of Kali Linux installed and I am also trying to install the SDK file as well for my development.
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
aspnetcore-runtime-2.2 : Depends: dotnet-runtime-2.2 (>= 2.2.4) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Kali Linux isn't a supported distro, but there are ways to get this to work--see https://github.com/dotnet/core/issues/2392:

Kali is not an officially supported distro and this is likely a subtle system dependency difference.
Couple of things you can try that may work.

install using the tar.gz instead of apt-get,
install using dotnet-install.sh,
install using our Snap.

Option 3 would be my first recommendation to try. Each of these methods are detailed in our Linux Setup document.

Duplicate of #2392


⚠ api.piste.gouv.fr healthcheck has degraded performance

In b0a10a6, api.piste.gouv.fr healthcheck (https://api.piste.gouv.fr/cassation/judilibre/v1.0/healthcheck) experienced degraded performance:

HTTP code: 200
Response time: 4618 ms

Resolved: api.piste.gouv.fr healthcheck performance has improved in f6bf874.


JSONDecoderERROR

Hello,author:
I have meet a error as follows:
"""
dl_coursera --cookies E:\coursera\cookies-www-coursera-org.txt --slug deep-neural-networks-with-pytorch --outdir E:\Pytorch --how builtin
Traceback (most recent call last):
File "d:\programdata\anaconda3\lib\runpy.py", line 193, in run_module_as_main
"main", mod_spec)
File "d:\programdata\anaconda3\lib\runpy.py", line 85, in run_code
exec(code, run_globals)
File "D:\ProgramData\Anaconda3\Scripts\dl_coursera.exe_main.py", line 7, in
File "d:\programdata\anaconda3\lib\site-packages\dl_coursera_run.py", line 178, in main
soc = crawl(args['cookies'], args['slug'], args['isSpec'], args['outdir'], args['n_worker'])
File "d:\programdata\anaconda3\lib\site-packages\dl_coursera_run.py", line 54, in crawl
if 'elements' not in sess.get(URL_COURSE_1(slug)).json():
File "d:\programdata\anaconda3\lib\site-packages\requests\models.py", line 898, in json
return complexjson.loads(self.text, **kwargs)
File "d:\programdata\anaconda3\lib\json_init.py", line 354, in loads
return _default_decoder.decode(s)
File "d:\programdata\anaconda3\lib\json\decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "d:\programdata\anaconda3\lib\json\decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
"""
So,how to deal with this problem ?If you have seen it ,reply to me please.
Thanks you!

The error occurred very early even before crawling started. The cookies.txt might not be right, try getting a new one. Refer to README.md for instructions.


OpenNI.org

OpenNI.org doesn't exist any more!

苹果是开源的毒瘤？

http://openni.ru/
It works.

It now goes to apple.com...

Ah. Seems someone is rescuing it: http://structure.io/openni


Create workflow using GitHub Actions to setup CI

Fixes

Partially fixes #484 by @brenoferreira
Description

This PR creates a new workflow using GitHub Actions for setting up CI
Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[ ] My pull request targets the master branch of the repository.
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[ ] I added tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no
visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

@brenoferreira I have added the unit tests to the CI workflow as well. Please review it

@kgodey The logic behind separating the build, lint and tests into three separate jobs is that these three jobs can then run in parallel as specified under the jobs section here. However, I just analyzed that running these three steps within the same job sequentially will cause each workflow run to just take around 5 seconds extra, which I don't think is a significant time and so we can move this to run sequentially as suggested by you.
Either way has some trade-off. Please let me know which approach to finally take and I will accordingly make the necessary changes.

I'll defer to @brenoferreira on the best approach.

I'll have to look into the GH Actions docs to review this more properly, but I think it's fine to run some tasks sequentially. Specially tasks that are dependencies of other tasks, such as install can run first and then the others can run afterwards

Sure, I will update the PR to make it run sequentially.

@brenoferreira I have made the instructed changes. Please review it.

@brenoferreira Any updates on this PR?


Backport/v1.3 2018 10 29

PR: 6078 -- Fix go 1.11 warnings and errors (@tgraf) -- https://github.com/cilium/cilium/pull/6078
PR: 6068 -- bpf: Provide more specific drop reasons (@tgraf) -- https://github.com/cilium/cilium/pull/6068
PR: 6048 -- Nightly test fixes (@eloycoto) -- https://github.com/cilium/cilium/pull/6048
PR: 6044 -- Update extensions.rst (@kiranbond) -- https://github.com/cilium/cilium/pull/6044
PR: 6037 -- Update cilium descriptors in examples/kubernetes/addons (@aanm) -- https://github.com/cilium/cilium/pull/6037
PR: 6034 -- pkg/fqdn: make any operation in the sourceRuleCopy (@aanm) https://github.com/cilium/cilium/pull/6034
PR: 6026 -- Test: stop background monitor command. (@eloycoto) -- https://github.com/cilium/cilium/pull/6026

test-me-please

test-missed-k8s

test-docs-please

test-me-please

test-me-please

test-docs-please

test-missed-k8s

This was an etcd failure.
I've updated this PR with today's backports as well.

test-me-please

test-docs-pleas

test-docs-please

test-missed-k8s

The failure was an etcd thing (which I'll look at). I'll rerun the build.

test-missed-k8s

K8s tests failed due to the etcd-operator scaling issues.
Trying again.

test-missed-k8s


Cluster with markers in same location take default design

Hello,
I've update the library from 0.6.2 to 1.0.0 and I have a trouble with Cluster (Bug is not present in version 0.6.2)
I have Custom Cluster
When I have markers in same location, the Cluster take the default design and not mine

@beli63 Thanks for reporting this. Are you able to share code you used to create the above screenshot?

@barbeau , I use CustomMarkerClusteringDemoActivity Demo's code.
I just put same location in 2 Markers

@beli63 Ok, thanks for the additional info. This may also be related to https://github.com/googlemaps/android-maps-utils/issues/384.

@barbeau Okay thanks

still facing this bug in 1.0.2, any update?

Sorry, no update yet!

I am also encountering this bug. By changing the algorithm to GridBasedAlgorithm it stops the default clustering icon from being shown. However, this introduces other problems.
I am not sure if there is anything erroneous occurring with the algorithms... hope that helps!

A temporary fix would be to just overwrite "onClusterUpdated" with an empty implementation. Seems to fix the issue for me.

@B3nedikt thanks. Fixed this problem

@B3nedikt Yes I valid, it fixed the problem
Thanks

Looking at the code, it looks like this behavior is new in v1.0 due to a side-effect of PR https://github.com/googlemaps/android-maps-utils/pull/627, part of which fixes an issue with existing markers not reflecting updated contents. For example, as discussed in https://github.com/googlemaps/android-maps-utils/issues/90, prior to https://github.com/googlemaps/android-maps-utils/pull/627 if you updated a marker's position, title, or snippet, that update wouldn't be reflected on the map.
PR https://github.com/googlemaps/android-maps-utils/pull/627 fixes this by updating the cached cluster marker using a new protected method onClusterUpdated(), whose default implementation uses the default design. So, when iterating through the markers to render them the 2nd identical location triggers onClusterUpdated() instead of onBeforeClusterRendered(), which then updates the marker with the default cluster design.
So, to fix this, you should override onClusterUpdated() as @B3nedikt suggested above, but the implementation should be the same as your onBeforeClusterRendered() implementation to avoid any caching issues.
Similarly, you should override the implementation of onClusterItemUpdated() with the same implementation as onBeforeClusterItemRendered().
An aside - the implementation can't be identical because you're working with a Marker instead of MarkerOptions, but it's as simple as changing from the format of markerOptions.title("X") to marker.setTitle("X"))

FYI, I've opened a pull request at https://github.com/googlemaps/android-maps-utils/pull/679 which shows the changes discussed above for the CustomMarkerClusteringDemoActivity in the demo app.

This occurs with me when zooming in and out

Closed by https://github.com/googlemaps/android-maps-utils/pull/679


Correction for raw affiliation Enseignants-chercheurs, laboratoire GRIPIC

Correction needed for raw affiliation Enseignants-chercheurs, laboratoire GRIPIC
raw_affiliation_name: Enseignants-chercheurs, laboratoire GRIPIC
new_rors: ;04p8das24
previous_rors:
works_examples: W4302575824
contact: 59e2fa4437f118805ba44d9ee5528665:14105b02ad8179f6ecd8f293ec @ sorbonne-universite.fr

This issue was accepted and ingested by the OpenAlex team on 2024-11-01. The new affiliations should be visible within the next 7 days.


Building is failed

I cloned the repo, and tried to build it,
npm run buildDev
It Results:
><EMAIL_ADDRESS>buildDev /home/sahilbansal/Downloads/expack-master
> rm -rf dist && webpack --mode development --config webpack.server.config.js && webpack --mode development --config webpack.dev.config.js

Hash: 582bd3137d42f12577c7
Version: webpack 4.28.3
Time: 421ms
Built at: 05/06/2019 4:03:38 PM
    Asset      Size  Chunks             Chunk Names
server.js  10.4 KiB  server  [emitted]  server
Entrypoint server = server.js
[./src/server/server-dev.js] 928 bytes {server} [built]
[./webpack.dev.config.js] 1.34 KiB {server} [built]
[express] external "express" 42 bytes {server} [built]
[html-webpack-plugin] external "html-webpack-plugin" 42 bytes {server} [built]
[path] external "path" 42 bytes {server} [built]
[webpack] external "webpack" 42 bytes {server} [built]
[webpack-dev-middleware] external "webpack-dev-middleware" 42 bytes {server} [built]
[webpack-hot-middleware] external "webpack-hot-middleware" 42 bytes {server} [built]
Hash: e23a78602af73e67abac
Version: webpack 4.28.3
Time: 1020ms
Built at: 05/06/2019 4:03:40 PM
                               Asset       Size  Chunks             Chunk Names
                        ./index.html  357 bytes          [emitted]
dfe07a62c3eb4990566f19a74aa53aef.jpg    106 KiB          [emitted]
                             main.js    137 KiB    main  [emitted]  main
                         main.js.map    145 KiB    main  [emitted]  main
Entrypoint main = main.js main.js.map
[0] multi webpack-hot-middleware/client?path=/__webpack_hmr&timeout=20000 ./src/index.js 40 bytes {main} [built]
[./node_modules/css-loader/index.js!./src/css/style.css] ./node_modules/css-loader!./src/css/style.css 549 bytes {main} [built]
[./node_modules/webpack-hot-middleware/client-overlay.js] (webpack)-hot-middleware/client-overlay.js 2.16 KiB {main} [built]
[./node_modules/webpack-hot-middleware/client.js?path=/__webpack_hmr&timeout=20000] (webpack)-hot-middleware/client.js?path=/__webpack_hmr&timeout=20000 7.59 KiB {main} [built]
[./node_modules/webpack-hot-middleware/process-update.js] (webpack)-hot-middleware/process-update.js 4.26 KiB {main} [built]
[./node_modules/webpack/buildin/module.js] (webpack)/buildin/module.js 497 bytes {main} [built]
[./src/css/style.css] 1.06 KiB {main} [built]
[./src/img/bg.jpg] 82 bytes {main} [built]
[./src/index.js] 223 bytes {main} [built]
[./src/js/logger.js] 101 bytes {main} [built] [1 warning]
    + 14 hidden modules

WARNING in ./src/js/logger.js
Module Warning (from ./node_modules/eslint-loader/index.js):

/home/sahilbansal/Downloads/expack-master/src/js/logger.js
  1:27  error  Unexpected console statement  no-console
  1:27  error  'console' is not defined      no-undef

✖ 2 problems (2 errors, 0 warnings)

 @ ./src/index.js 1:0-37 4:0-10
 @ multi webpack-hot-middleware/client?path=/__webpack_hmr&timeout=20000 ./src/index.js
Child html-webpack-plugin for "index.html":
     1 asset
    Entrypoint undefined = ./index.html
    [./node_modules/html-webpack-plugin/lib/loader.js!./src/html/index.html] 346 bytes {0} [built]

Now, when I got my on the article from @bengrunfeld on medium ( link ), it is clearly mentioned there.

Cool. Let me know if you need any extra help with this issue.


Make cli commands and descriptions consistent

Describe the proposal

Make command descriptions platform agnostic. For example commands like 'init', 'logs', 'mtls' are not specific to k8s so all such descriptions need to corrected.
Make nouns consistent for example: Dapr --> dapr, Redis --> redis

This issue is about reviewing all the descriptions AND the help for CLI commands given that

Dapr is hosting platform agnostic (There should not be the impression it can only be deployed to Kubernetes)
Supports specific hosting platforms (Kubernetes and self hosted) today with new ones being added in the future (e.g. IoT Edge, Docker Swarm etc)
Dapr is programming language agnostic
Dapr should be written as "Dapr" not "dapr"
Redis should be written as "Redis" not "redis"

For example
Available Commands:
init           Setup dapr in Kubernetes or Standalone modes
should say
init           Installs Dapr on supported hosting platforms
and the help for init should say
init           Installs Dapr on supported hosting platforms currently Kubernetes and self hosted
For logs should say (and check help description)
logs           Gets Dapr sidecar logs for an app
For mtls should say (and check help description)
mtls           Check if mTLS is enabled
Note: Should have a conversation with @yaron2 on whether this command can also be applied to self hosted
Effectively review every description and help description to ensure these are updated.  For example this (which has inaccuracies)
--runtime-version string   The version of the Dapr runtime to install. for example: v0.1.0 (default "latest")
should be updated to
--runtime-version string   The version of the Dapr runtime to install. For example: "v1.0.0" (default "latest")

Also see bug https://github.com/dapr/cli/issues/455 that can be addressed at the same time, however we should get @yaron2 input on this


[system] Add type safety to styled overridesResolver

[x] I have followed (at least) the PR section of the contributing guide.

Closes https://github.com/mui-org/material-ui/issues/27234

overridesResolver current type is overridesResolver?: (props: any, styles: Record<string, any>) => Record<string, any>; This isn't particularly useful and type safe.

Solution:

Accept two generic types, one for props and the other for classes.
Apply the (received) type for props to props of overridesResolver.
Apply the (received) type for classes to styles of overridesResolver. More specifically, we can do this by applying this type: Record<keys of Classes, CSSInterpolation>.
Change the type of the return value of overridesResolver to CSSInterpolation from Record<string, any>.

I created a unit test file to test and updated the logic a bit: https://github.com/mui-org/material-ui/pull/27983/commits/97f599806580bfd4970812feaaeae6c19667897d.
Also, here is an updated, more detailed solution:

Accept two generic types, one for props and the other for classes.
Apply the (received) type for props to props of overridesResolver.
Apply the (received) type for classes to styles of overridesResolver. More specifically, we can do this by applying this type: Record<keys of Classes, CSSInterpolation>.
Change the type of the return value of overridesResolver to CSSInterpolation from Record<string, any>.

@eps1lon I agree. I will close this ticket and since @mnajdova suggested, I will create a separate ticket that simply changes the type of the return value of overridesResolver from Record<string, any> to CSSInterpolation.


Material lost on next render

https://codesandbox.io/s/vigorous-poitras-0e02y
Clicking on one of the yellow headstones will trigger re-rendering of the components.  This is expected, but why is the material gone?

some things look shaky in there. using index as a key instead of a unique identifier means react could mix up elements. if these objects unmount .dispose() will be called on them, which kills the material, which they probably all share for some reason. cloning them ... i don't know how three is doing it, but to me it seems like there must be a better way.

can you maybe extract the geometry from the gltf instead of the full meshes so that you can render the stones declaratively? the imperative stuff is kind of messing everything up.

so, i tried: https://codesandbox.io/s/eloquent-dream-zxk4b
it extracts the geometry, is this better?
btw, you don't need to ship GLTFLoader, you can take it from three/jsm

Thanks!  the reason I have my own copy of GLTFLoader is because I am using a custom/stripped down build of Three.js in my real project, and for some reason loading the one from jsm causes problems in that case.


Windows Sample - Microphone Intent Detection Not Working

The intent detection with the microphone does not work as the _micClient is being prematurely disposed before LUIS can return back the intent.

I have merged your PR. Thanks for the contributions!


[WIP] Devguide upgrade candidate

For review - ping @wardbell and @PascalPrecht :)
Feel free to suggest all kinds of changes. I'm feeling particularly uncertain about the role Angular 1 TypeScript/TSD material, and would appreciate input on that.
The examples directories contain full, runnable copies of the PhoneCat app and are thus quite large.

@teropa awesome work! This is the best resource on upgrading to Angular 2 by now, very well done!
Oh and due to GitHub's latest UI changes, I (again) totally failed commenting on the PR commits. All my comments are on your commits directive, hope this is not such a super big deal....
One thing I've noticed also was that almost half of the guide is about the TS+System+Testing setup. While I love it how you consider the whole testing story and everything, I do think we should move the "TS Preparation" part out into its own guide.
So that we'd end up with something like:

Upgrading to TS
Upgrading to Angular 2

In addition I'd like to point out that this guide is written in a tutorial-like way, so maybe this should rather end up in our "Tutorial" section where ToH is also located?
Maybe it makes sense to have a dev guide on how to use ngUpgrade and then an actual tutorial (this one) next to it, so people can see how to use it in an actual app.
The thing with tutorial-like guides is that if I as a reader are interested in a specific topic, I have to find the place in the tutorial where it's explained + I have to understand the context and everything that happened before. Sometimes I just want to jump to "How to do X" in a dev guide and a dedicated section should just be there.
@teropa and also @wardbell, what do you think about this? We can chat about this in VC too

Thank you for the comments @PascalPrecht! I'm soon pushing changes based on them.

Maybe it makes sense to have a dev guide on how to use ngUpgrade and then an actual tutorial (this one) next to it, so people can see how to use it in an actual app.

Very much agreed and that's actually what I'm working on at the moment. If you look at the latest commit in #8, you can see my planned outline for a whole Upgrade section (on which I'd love to hear any feedback and ideas you have too of course).

@teropa:
I liked the tutorial, as it helped me to get a fundamental understanding of what I need to do when upgrading an Angular 1 app to a hybrid or to a clean Angular 2 app.
Summary:
The tutorial was easy to read, fluent, and helped me to understand what the whole upgrade is about, and what are the main techniques to use.  I think, it is a great tutorial .
These are my main findings:

The biggest issue is the one with the style guide. Unless the original sample is not upgraded to the Angular guidelines, readers needs to carry our extra steps so that the app can run right after TypeScript migration.
I’d rather move every section related to testing to the end of this chapter — or into its own tutorial chapter.
There are certain tiny changes you forgot to add to the tutorial — I assume it is because you needed to update it thousand times — I tried to collect all of them.

Here are the details section-by-section:
Preparing for the Upgrade
The guide’s project structure contains a js/phone_list/phone_list.component.js file, but it’s missing from the source code.
TypeScript and Module Loading
Thinking with the head of an Angular 1 JavaScript developer, the whole TypeScript thing sounds a bit scary. We start to install SystemJS, TypeScript and TSD.  Why we need those type definitions? I think, this tutorial is not the right place to explain it, it’d be better treated in the “Preparing for Update” chapter. However, I guess, this tutorial should point out to the content, and recall in a few short sentence why we use TypeScript — without going into the details.
I suggest cutting this section into two just for the sake of progressing in smaller, more visual steps:

Bringing in TypeScript
Module loading (starting form “The next thing we'll do is convert our JavaScript files to TypeScript and define their imports and exports.”...)

Just for the sake of demonstration that we can get rid of numerous

The header tab of the app/js/phone_detail/phone_list.module.ts file should be app/js/phone_list/phone_list.module.js.
Unfortunately, moving to the new TS module structure is not enough to allow the app run. Because you applied the “ControllerAs” convention, phone_list.html and phone_detail.html also should be changed. I guess, the best solution is to start from a proper JavaScript version with the “ControllerAs” pattern already applied.
phone_list.html: (vm. prefixes added to controller properties)

      Search: <input ng-model="query">
      Sort by:
      <select ng-model="vm.orderProp">
        <option value="name">Alphabetical</option>
        <option value="age">Newest</option>
      </select>

          {{phone.name}}

{{phone.snippet}}

phone_detail.html: (vm. prefixes added to controller properties)

{{vm.phone.name}}

{{vm.phone.description}}

    Availability and Networks

Availability

{{availability}}

    Battery

Type

{{vm.phone.battery.type}}

Talk Time

{{vm.phone.battery.talkTime}}

Standby time (max)

{{vm.phone.battery.standbyTime}}

    Storage and Memory

RAM

{{vm.phone.storage.ram}}

Internal Storage

{{vm.phone.storage.flash}}

    Connectivity

Network Support

{{vm.phone.connectivity.cell}}

WiFi

{{vm.phone.connectivity.wifi}}

Bluetooth

{{vm.phone.connectivity.bluetooth}}

Infrared

{{vm.phone.connectivity.infrared | checkmark}}

GPS

{{vm.phone.connectivity.gps | checkmark}}

    Android

OS Version

{{vm.phone.android.os}}

UI

{{vm.phone.android.ui}}

    Size and Weight

Dimensions

{{dim}}

Weight

{{vm.phone.sizeAndWeight.weight}}

    Display

Screen size

{{vm.phone.display.screenSize}}

Screen resolution

{{vm.phone.display.screenResolution}}

Touch screen

{{vm.phone.display.touchScreen | checkmark}}

    Hardware

CPU

{{vm.phone.hardware.cpu}}

USB

{{vm.phone.hardware.usb}}

Audio / headphone jack

{{vm.phone.hardware.audioJack}}

FM Radio

{{vm.phone.hardware.fmRadio | checkmark}}

Accelerometer

{{vm.phone.hardware.accelerometer | checkmark}}

    Camera

Primary

{{vm.phone.camera.primary}}

Features

{{vm.phone.camera.features.join(', ')}}

    Additional Features

{{vm.phone.additionalFeatures}}

Preparing Tests
I guess, testing is an important topic — I really believe it —, but it distracts readers from the context. I’d rather move every section related to testing to the end of this chapter — or into its own tutorial chapter.
After carrying out all the steps to convert JS files to TS, the TypeScript compiler still complains about “module”: error TS2304: Cannot find name 'module'. I had no time to examine what the reason is...
Enjoying the Benefits of TypeScript
I suggest highlighting this TypeScript changes for the sake of easier discoverability:
app/js/core/checkmark.filters.ts:
export default function checkmarkFilter() {
  return function(input:boolean):string {
    return input ? '\u2713' : '\u2718';
  };
}

Gradually Upgrading to Angular 2
The sentence introducing the


Implement guide for Salesforce connector use case

Description:

Implement a salesforce guide covering a use case with creating account adding contacts and opportunity details.

Duplicated: https://github.com/wso2/ballerina-integrator/issues/167


Fix #456, Perf log threading and concurrency issues

Describe the contribution
Replaces the OS_IntLock with a standard OSAL mutex for protecting the shared/global perflog data structure.  This may introduce unexpected task switches when contention occurs, but it ensures proper exclusion with respect to the data structures.
Removes the temporary child worker task that was spawned for writing the log data to a file, and replace with a more generic CFE ES background task.  The background task is started at boot and
pends on a semaphore until there is work to do.
The background performance log dump is implemented as a state machine which is called repeatedly over time from the background job task.  This performs a limited amount of work on each invocation, and resumes where it left from the previous invocation.
Fixes #456
Testing performed
Build CFE with ENABLE_UNIT_TESTS=TRUE
Confirm all unit tests pass
Confirm near 100% coverage on all newly added/modified code
Run CFE and send commands to start performance logging
Send other CFE commands to generate performance log activity
Send command to stop performance log and generate a dump file
Confirm validity of dump file by opening with Java tool.  No errors reported when opening file.
Expected behavior changes
No impact to behavior.  Previously the perf log dump file frequently contained errors due to out of order or otherwise corrupted entries, which is now fixed.
System(s) tested on

Ubuntu 18.04 LTS 64-bit (native)
MIPS 32 target running in QEMU (big endian)

Contributor Info - All information REQUIRED for consideration of pull request
Joseph Hickey, Vantage Systems, Inc.

@ejtimmon Is this design change an impact on the training slides?  Might be worth a state diagram and a couple bullets...

It should not change the perf log feature from a user standpoint.  One still sends the same command to start logging, set the trigger, and stop logging, and then the dump file appears.
The only thing that a user might care about is that CFE_ES_PerfLogAdd() might cause a task switch because it now uses a mutex.  This makes it less deterministic.  Of course this is only a risk when using the perf log (i.e. no chance of this happening until you send the start command).

I understand it's not a user impact, which is why I'm not requesting user's guide updates.  We are required to maintain current design documentation, and this is a significant design change.

CCB Fast Track - Approved, @skliper should we open a ticket to address your documentation comment?

cFE design documentation isn't currently in the repo, so more like an action item.  I'm suggesting a slide or two overview in the context of ES covering the new background task and work it performs.


error when creating an ionic 2 projects

Short description of the problem:
When creating a project it says that start is undefined and there was error running npminstall. It written together without spaces so I think it was a typo on  your part.
What behavior are you expecting?
to npm install everything when creating a project.
Steps to reproduce:

ionic start  nameOfProject --v2 --ts

insert any relevant code between the above and below backticks
https://1drv.ms/i/s!Al0ly62YCZx3lsIZ-QMrGV1WVXpSFA

Which Ionic Version?
2-beta 8
Plunker that shows an example of your issue
For Ionic 2 issues - http://plnkr.co/edit/me3Uk0GKWVRhZWU0usad?p=preview

Hello, thanks for opening an issue with us! Since this is an issue with the ionic-cli and not the framework i will be moving this issue to the ionic-cli repo. Thanks for using Ionic!

This issue was moved to driftyco/ionic-cli#1076


Adding bld.bat from conda/svn recipe

Checklist

[X] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

needs more work

Thanks, @briantoby for taking this up. It's really great to see a move to bring this package to windows as well! :+1:
You don't have to close the PR when it doesn't work immediately. If you push new commits to the branch, they will show up here. Then, we can discuss them and see what additional work is needed. It is not unusual for a PR to stay open for weeks, with numerous commits being added and different things being tried over that period. Don't worry if you run into problems. Generally speaking, if there is someone interested in a feature like you clearly are, the team will step up to help us all achieve it.
The expectation is not that this is a lone-wolf effort, where you have to solve everything before you can bring it to the table. If you show some effort, as in this PR and #14, we'll be happy to help push it to completion.
Thanks again, and let's reopen either this PR or #14 as you see fit.

@zklaus thanks for the advice and explanation. I did not realize that the PR "review" process could be collaborative. I have #15 now open and we will see if I get any farther.


endPoint doesn't respect the plugin setting but keeps pointing to TuyaCN

Describe the bug
The plugin won't change the endPoint to "https://openapi.tuyaus.com" but keeps on pointing to tuyacn so it causes error authentication in the latest version of the plugin even with config file setting and endPoint parameter to tuyaus.
Expected behavior
The endPoint should be pointing to TuyaUS so the authentication is not failed.
Screenshots
N/A
Additional context
N/A

Hi @Aekung , In version 1.3.0, the login interface is published in all regions. Therefore, you can use the endPoint of any region to log in. After a successful login, the endPoint of the region where the account resides is returned to obtain device information.
If you failed to log in, please provide more log information.

I can't login. It returns this error.
[27/07/2021, 09:26:17] Homebridge v1.3.4 (TuyaPlatform) is running on port 33812.
TuyaOpenAPI response: {"code":2406,"msg":"skill id invalid","success":false,"t":1627352779287} path = /v1.0/iot-01/associated-users/actions/authorized-login
TypeError: Cannot destructure property 'access_token' of 'res.result' as it is undefined.
    at TuyaSHOpenAPI._refreshAccessTokenIfNeed (/usr/local/lib/node_modules/homebridge-tuya-platform/lib/tuyashopenapi.js:48:11)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at TuyaSHOpenAPI.request (/usr/local/lib/node_modules/homebridge-tuya-platform/lib/tuyashopenapi.js:144:7)
    at TuyaSHOpenAPI.getDevices (/usr/local/lib/node_modules/homebridge-tuya-platform/lib/tuyashopenapi.js:62:15)
    at TuyaPlatform.initTuyaSDK (/usr/local/lib/node_modules/homebridge-tuya-platform/index.js:88:19)
Attention⚠ ⚠ ⚠ ! You get an error!
Failed to get device information. Please check if the config.json is correct.

I subscribed to these service and already authorized the app for the permission
Smart Home Devices Management
Authorization
Smart Home Family Management
Smart Home Scene Linkage
Smart Home Data Service
Device status notification
Do you know what's the problem is?

I reread the document and found that it's the error stating my project created before May 25, 2021, which is true since I have created this for tuya wizard cli. However, I tried to create new project few times yesterday but it return 'Captcha Error' in both Safari and Chrome and I couldn't get the new project set up. Is it possible that there's a problem on your site that prevents the new project to be created successfully?
This is the return error message
会员过期
Thank you.

Oh, I could finally create the project now. I found that I have to upgrade my membership from trial period to 'Basic (TRIAL EDITION)' in order to be able to create the project. I will see if the setup goes well and will update.
Thank you.

Installation and configuration is done and I can see the supported devices in Homekit. However, the curtains (cl category) are not controllable at all. The status is incorrect and it won't control the curtain for a simple on and off command.
Not sure if I have to create another ticket for the problem but let me know if I have to.

Hi @Aekung ,Please provide details log of the curtain device.

Hi, i seem to get this error when i use:
"projectType": "2",
When i use:
"projectType": "1".
It respects the endPoint and I get a login failed:
TuyaOpenAPI request: method = post, endpoint = https://openapi.tuyaeu.com, path = /v1.0/iot-03/users/login, params = null, body = {"username":"olibuijr@olibuijr.com","password":"29a0bbbf7d480ef942dedce1dcd44ad1e5f413ed587090b3a1e6a2b941064742"}, headers = {"t":"1628097191858","client_id":"y5ewe4g7a6igkf520ufy","nonce":"3f378b60-f547-11eb-8b83-2d70034f5a04","Signature-Headers":"client_id","sign":"D89ED68DB1727937BFEF35DCDBFB1341BBC196B1FA14FB65812344856F5A282B","sign_method":"HMAC-SHA256","access_token":"","lang":"en","dev_lang":"javascript","dev_channel":"homebridge","devVersion":"1.3.1"}
TuyaOpenAPI response: {"code":2401,"msg":"username or password wrong","success":false,"t":1628097192306} path = /v1.0/iot-03/users/login
(node:40211) UnhandledPromiseRejectionWarning: TypeError: Cannot destructure property 'access_token' of 'res.result' as it is undefined.
at TuyaOpenAPI.login (/usr/lib/node_modules/homebridge-tuya-platform/lib/tuyaopenapi.js:57:10)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at TuyaPlatform.initTuyaSDK (/usr/lib/node_modules/homebridge-tuya-platform/index.js:66:7)

Here is my config
        "options": {
            "username": "XXXXX",
            "password": "XXXXX",
            "accessId": "XXXXX",
            "accessKey": "XXXXX",
            "lang": "en",
            "projectType": "2",
            "endPoint": "https://openapi.tuyaeu.com",
            "appSchema": "tuyaSmart",
            "countryCode": "354",
            "debug": true
        },
        "name": "TuyaPlatform",
        "platform": "TuyaPlatform"

Hi @olibuijr ,Please use "projectType": "2" to log in, And update to the latest version.
If the plugin has any errors, please provide the relevant log information.

Hi @olibuijr ,Please use "projectType": "2" to log in, And update to the latest version.
If the plugin has any errors, please provide the relevant log information.

Like OP said. When using projectType 2 the config is locked on tuyacn. but not if i use 1

Hi @olibuijr ,Please use "projectType": "2" to log in, And update to the latest version.
If the plugin has any errors, please provide the relevant log information.

Like OP said. When using projectType 2 the config is locked on tuyacn. but not if i use 1

Please read preparation , If there are any problems, please provide the log.

Hi @Aekung ,Please provide details log of the curtain device.

Hello Hanh,
Sorry for the late reply. I switched back to the tuya plugin that works for me so I didn't have time to retest it up until now.
To answer your question, I have 4 Tuya Motorized Curtains in my house. All of them are in CL category. However, 2 curtains seem to work, or at least controllable but another 2 are not.
Checking on Tuya Device Debugging Screen, the curtains that I can control are having the same standard instruction set, which is
Code | Type | Values
-- | -- | --
control | Enum | {   "range": [     "open",     "stop",     "close"   ] }

Other 2 that are not working at all are having this standard instruction set,
Code | Type | Values
-- | -- | --
mach_operate | Enum | {   "range": [     "ZZ",     "FZ",     "STOP"   ] }

As you can see, the type in the standard instruction set of these 2 is different. The one that works is 'Control', while the one that doesn't work is 'Mach_operate' and the range of both standard instruction sets are different as well.
Regarding the log in Homebridge (even with debuggin enabled on both homebridge and plugin), there's nothing displayed when trying to control the 2 curtains that is using the second standard instruction set. However, when trying to control the 2 curtains that is using the first standard instruction set, the API returns and shows in Homebridge log just fine.
Hope this helps.

Hi @Aekung , According to your description, we have a general understanding, because the standard instruction set used by different devices may be different. I hope you can provide the latest log, we can query the specific information of your device according to the log, and then adapt it to the plug-in. As for how to provide the log, please refer to the issue template

Hi @Aekung , According to your description, we have a general understanding, because the standard instruction set used by different devices may be different. I hope you can provide the latest log, we can query the specific information of your device according to the log, and then adapt it to the plug-in. As for how to provide the log, please refer to the issue template

Hi @Hanh94
Thanks for the reply.
I think this is what you are looking for.
{"category":"cl","devices":["10670875bcddc2b0e398","52003233ecfabca9fdce"],"functions":[{"code":"mach_operate","desc":"mach operate","name":"mach operate","type":"Enum","values":"{"range":["ZZ","FZ","STOP"]}"},{"code":"opposite","desc":"opposite","name":"opposite","type":"Boolean","values":"{}"},{"code":"position","desc":"position","name":"position","type":"Integer","values":"{"unit":"%","min":0,"max":100,"scale":0,"step":1}"}],"product_id":"XS76BY5Q1uKO6gjC"}
Thanks for pointing me out to how to collect the log. Hope it's the thing you are looking for.
Let me know if I can still be any help.
Thank you.

Or perhaps it's this one that you are looking for
{"active_time":1593148709,"biz_type":18,"category":"cl","create_time":1593148709,"icon":"smart/product_icon/cl.png","id":"10670875bcddc2b0e398","ip":"124.120.XX.XXX","lat":"13.99627978XXXXXX","local_key":"f1d0e7e02aXXXXXX","lon":"100.5574729XXXXXX","model":"BCM700D WiFi","name":"Window Covers Main","online":true,"owner_id":"657XXXX","product_id":"XS76BY5Q1uKO6gjC","product_name":"窗帘电动轨道","status":[{"code":"position","value":0},{"code":"mach_operate","value":"STOP"},{"code":"opposite","value":true}],"sub":false,"time_zone":"+07:00","uid":"az1556662956734lhmLi","update_time":1628186274,"uuid":"10670875bcddc2b0e398"}
Please let me know if it's the right log.

Hi @Aekung ,Thank you for your feedback.
We will support "position" dp code control in the next release.

Hi @Aekung ,Thank you for your feedback.
We will support "position" dp code control in the next release to support older devices.

Thanks @Hanh94
Looking forward to that.

Hi @Aekung ,We already support the "position" control in version 1.4.0.
Regarding the dp "position" control, if you control through the Home App, whether the real device behaves properly or just the Home App status update is incorrect?

Same issue on the same configs as everyone else in this thread and account made June 2021.

v1.4.1 fixed this


Rollback

Hi there, how does rollback occours in your code ?
Lets say i have a table with the following fields:
-Id (Int, Key, Auto Increment)
-Name(Nvarchar, Constraint, Not Null)
-Age(Int, Null)

When i try to insert two people in row like.
using(var uow = repositoryFactory.Create(true)){
    uow.Execute(new AddPersonCommand(PersonInstanceOne));
    uow.Execute(new AddPersonCommand(PersonInstanceOne));
    uow.Commit();
}

The first query executes without any throuble as it should, but after the second query where i try to insert an existing constraint i get the exception but the commit accours for the first query.
My repository's execute method looks like this:
public void Execute(ICommand command){
        if (command.RequiresTransaction && _transaction==null)
            throw new Exception($"Error")

        try{
            command.Execute(_connection, _transaction)
        } Catch(SqlClient.SqlException ex
            Debug.WriteLine($"Error: {ex.Message}")
        }
}

Hi,
the rollback is handled automatically.
Can you please add the whole AddPersonCommand class?
If you have correctly inherited from ICommand, the Execute method should be:
void Execute(IDbConnection connection, IDbTransaction transaction)

It's all VB
Imports System.Threading
Imports Dapper
Imports RepositoryTest.DataMine

Public Class AddPersonCommand
    Implements ICommand, IAsyncCommand

    Private Const statement As String = "INSERT INTO People(Name, Age) VALUES(@Name, @Age)"
    Private ReadOnly Property _Person As Person

    Public ReadOnly Property RequiresTransaction As Boolean Implements IAsyncCommand.RequiresTransaction, ICommand.RequiresTransaction
        Get
            Return True
        End Get
    End Property

    Public Sub New(ByVal Person As Person)
        _Person = Person
    End Sub

    Public Sub Execute(connection As IDbConnection, transaction As IDbTransaction) Implements ICommand.Execute
        connection.Execute(statement, _Person, transaction)
    End Sub

    Public Function ExecuteAsync(connection As IDbConnection, transaction As IDbTransaction, Optional cancelationToken As CancellationToken = Nothing) As Task Implements IAsyncCommand.ExecuteAsync
        Return connection.ExecuteAsync(statement, _Person, transaction)
    End Function
End Class

The command looks ok, but where is the following code from?
Did you notice that the SqlException is handled without being rethrown?

public void Execute(ICommand command){
        if (command.RequiresTransaction && _transaction==null)
            throw new Exception($"Error")

        try{
            command.Execute(_connection, _transaction)
        } Catch(SqlClient.SqlException ex
            Debug.WriteLine($"Error: {ex.Message}")
        }
}

Understood, since your example had only one annotation for the mandatory Commit i thought the Rollback was automatic as you said, as if it doesn't need an extra Try...Catch block, it got me confused, that's why i was wondering what did i do wrong. And sorry for the late answer even after taking your time, i was driving back home.
UnitOfWork(Repository) Execute method, reverted back to its inital state.
Public Sub Execute(command As ICommand) Implements IUnitOfWork.Execute
        If command.RequiresTransaction And IsNothing(_transaction) Then
            Throw New Exception($"Error")
        End If
        command.Execute(_connection, _transaction)
    End Sub

And the implementation of the repository within the Main method of a console application:
Using uow As UnitOfWork = repository.Create(True)
            Try
                uow.Execute(New AddPersonCommand(New Person With {.Name = "Jane Smith", .Age = 24}))
                uow.Execute(New AddPersonCommand(New Person With {.Name = "Jane Smith", .Age = 24}))
                uow.Commit()
            Catch ex As Exception
                uow.RollBack()
            End Try
        End Using

I also noticed that your code implements an exception handler, is he responsible for rolling back the transaction and/or avoiding the commit ?

Since the transaction is explicitly started, if not committed it gets rolled back. There is no need to issue a rollback in a catch block. Of course if you have modified the original code, things may not work as expected :-)
The exception handler is meant to catch sql transient exceptions and issue retries.

Yeah, i work with more complex and bulk data and debug is the only thing that keeps me on track(most of times). I was using an old implementation and not much of eficient as i expected, was just a hack apparently and now i'm replacing the code i have because i'm about to add more functionality and right now Dapper is the only thing working with my models. Thanks for the feedback man.


This crate hasn't been released in almost 3 months

https://github.com/rust-lang/libc/pull/3287 was merged on July 16, which is great.
We needed it to implement additional functionality in the nix crate. But the nix crate obviously cannot have a "git dependency" on libc, it needs to point at something released on crates.io.
(This is all in service of https://lib.rs/crates/ktls which uses some APIs I guess nobody else thought to include in the libc crate because they're a bit niche),
I have no idea who maintains the libc crate, if there's a release schedule, who to talk to about this.
I understand reviewing PRs takes time but.. surely releasing whatever's in the default branch is somewhat automated? Or at least quick enough?
Let me know how to proceed, I'm at a complete loss here.

cc @JohnTitor

@fasterthanlime Unfortunately, the release process is in fact not automated at all, and requires someone with publish permissions on the crate (anyone in the libc-maintainers team) to manually bump the version in Cargo.toml, send that in as a PR, make and push a tag, and cargo publish.
Happy to do that now.

Happy to do that now.

I'd greatly appreciate that, thanks!

the release process is in fact not automated

Would there be interest in automating it? Is that something I can help with? I feel like this would be a good use of the rest of my 2023 Rust foundation grant (if not no big deal, plenty of other projects need help).

@fasterthanlime I'd suggest coordinating with infra on that to check in (as I think others might also be looking at it and may already have some work in that direction). I've certainly heard various comments to the effect that many people (for many different crates) would be interested in some form of automated make-a-publish-happen workflow (which would need to be determined/proposed).

I'd suggest coordinating with infra

Is the best way to reach "infra" the #t-infra topic on zulip?

I'd expect that to be the best starting point to discuss automating crate publishes, yeah.

@joshtriplett thanks.
Re the 0.2.148 release: I believe it's missing a Git tag / GitHub release with a changelog, see previous releases here: https://github.com/rust-lang/libc/releases

@fasterthanlime There's a signed tag, just not a release with release notes.
cc @JohnTitor or others for adding the GitHub release (also not automated).

Hey folks,
Re the automated releases, there are many ways to do this — I've been using https://github.com/mgeisler/rust-release-gh-action for my own libraries. It works like this:

I push a new branch called release-x.y.z to GitHub
The prepare-release GH action sees this and if x.y.z is different from the version number in Cargo.toml, it does a few things:

Updates the changelog. The changelog is a list with the titles of all pull requests that have been merged since the last release. All features and bug fixes go through pull requests in my repositories so I find this a useful logical unit.
I added optional machinery to generate a dependency graph with cargo-depgraph, but that's probably not for everybody.
Updates the version number to x.y.z in Cargo.toml and in the README.md (if found).
Pushes these commits to the release-x.y.z branch.
Opens a PR back to your main branch.

I pull the new commits on the release-x.y.z branch and I then edit the changelog to my liking. I remove unimportant PRs and I rephrase things as needed. Nothing has been tagged, nothing has been published, so I have complete freedom to fixup things here.
After tests have passed on the PR, I merge it.
The publish-crate GH action sees that the version number in Cargo.toml doesn't have a GitHub tag. It then does the following

Runs cargo publish
Extracts the changelog commited earlier and uses it to create a GitHub releases. This also adds a Git tag.

What I like about this setup is that it automates the tedious bits, but leaves room for me to adjust a release as needed. Because the state of the release is in its own branch, I can fix typos in READMEs and changelogs as needed and have the whole thing tested with the normal CI setup. I like that the Git tag is added on the code after running cargo publish
I know there are other tools for automating this. I feel that cargo-release is lacking the two-step process. Looking at the related tools on their page, I see release-pr Action, which looks close in spirit to my setup.
Maybe the ideas here could be useful to someone — they're fairly easy to reimplement or extend to your needs.

Yeah, I'd also say that the initiating step for releasing libraries should not be automated since there are a bunch of manual judgements that go into making the call whether something is ready to release (or needs release at all) and if this crate ever hits 1.0 (which I hope it tries for), minor vs patch versioning.
The toolchain has effectively clockwork scheduled releases but a lot of work is put into making that feasible; I don't think other libraries have put in sufficient work to make that a thing. Not just libc, I'm talking about the bulk of the ecosystem.
That said, I'm only talking about the initiating step, the process described by @mgeisler still has manual initiation and automated everything-else which seems great. (certainly something I may look into for my own projects since I hate doing the release two-step)

Re the automated releases, there are many ways to do this — I've been using https://github.com/mgeisler/rust-release-gh-action for my own libraries. It works like this:

This sounds like an interesting experiment to run against one of the crates maintained by "the rust libs team". Maybe a smaller one than libc at first? Or maybe set everything up but it publishes to "libc-automated-releases-tryouts" on crates.io or something?
The sticking points here are, I'd imagine:

The libs team doesn't want to give just anyone permission to publish the libc crate on crates.io (for good reason)
The libs team doesn't want a "bad" release of libc to end up on crates.io (although, I guess another manual release could be done shortly thereafter + the bad release could be yanked, it's not MUCH harm done as long as we're reactive)

One cautious course of action could be to set up a dummy crate repo somewhere else, so folks currently involved with releasing "official rust libs crates" can play around with the workflow @mgeisler suggested (and/or other similar workflows), making them confident it'll work for bigger/real crates.
How does that sound?

Re the automated releases, there are many ways to do this — I've been using https://github.com/mgeisler/rust-release-gh-action for my own libraries. It works like this:

This sounds like an interesting experiment to run against one of the crates maintained by "the rust libs team". Maybe a smaller one than libc at first? Or maybe set everything up but it publishes to "libc-automated-releases-tryouts" on crates.io or something?

One thing my little contraption lacks is tests... partly because I don't know how to test publish a package. Now that I search for it, I found https://staging.crates.io/ — is that a place where one can test-publish crates?
Note that the main point of my comment was to float the idea used here (separation between preparing a release and actually publishing it, always using reversible actions until the final cargo publish). The implementation is fairly simply, just ~250 lines of JavaScript and Python inside the YAML files. I would like to write it in Rust instead for my own sanity and for ease of development :smile:

Just following up on this, although it'd probably be best to move that conversation somewhere else in the near future.
I've tried a couple "crate release automation" solutions since we last spoke, and settled on https://release-plz.ieni.dev by @MarcoIeni.
You can see that I used to maintain the changelog manually and that release-plz took over: https://github.com/hapsoc/ktls/blame/main/CHANGELOG.md - of course I could've made the effort to edit it before merging the "release" PR, which I'm assuming is what will happen on "rust libs" crates.
The releases themselves also contain changelog items: https://github.com/hapsoc/ktls/releases
And they're automatically published to crates.io: https://crates.io/crates/ktls/versions
release-plz also uses cargo-semver (and conventional commits, if you use them) to determine if the version bump should be major/minor/patch.
As far as I can tell, release-plz (an actual Rust executable running in CI, comes with its own GitHub Action) is best-of-class. The changelog management part might be the sticking point here, also "proving it's fine to run this binary with a token that's able to publish an important crate such as libc", but I've briefly spoken with @MarcoIeni and they are interested in supporting the needs of the libs team.
I'm happy to act as a facilitator (or not, if none is needed!) to have that happen. It probably involves heading over to Zulip (my nemesis!) but before I do, can I get a quick vibe check from @JohnTitor and @joshtriplett ?

I've tried a couple "crate release automation" solutions since we last spoke, and settled on https://release-plz.ieni.dev by @MarcoIeni.

I actually saw this recently after you tweeted about it — it looks really nice and from skimming the docs, I think it has a similar philosophy to what I've been using. So I'm planning on trying it for my own crates too :smile:


Upgrade third_party/go:protobuf library to commit 8df8a93c670173cd1d8737a507a253b94f2d0b5a [phab:D526]

Created by schroederc at 2015-09-25 18:21:23:

fromberger accepted this revision at 2015-09-25 18:24:16

schroederc closed via commit d2b69d8712c35f7cb7a006463dc66f44245a25c8 at 2015-09-25 18:25:35


Config auth callback

I try to setup a mapcontib instance from docker-hub.
I have fixed the docker-compose from here
https://github.com/mapcontrib/mapcontrib/wiki/Install-MapContrib-with-the-Docker-image#sample-docker-composeyml
But I fail to configure the OAuth. I try all URL from passort https://github.com/mapcontrib/mapcontrib/blob/develop/lib/passport.js#L138-L142
Without sucess.
All fails with this error
mapcontrib_1  | GET /auth?successRedirect=/&failureRedirect=/ 302 226.509 ms - 0
mapcontrib_1  | 2021-04-01T18:55:33.679Z - error: uncaughtException: next is not a function date=Thu Apr 01 2021 18:55:33 GMT+0000 (UTC), pid=45, uid=0, gid=0, cwd=/mapcontrib, execPath=/usr/local/bin/node, version=v8.17.0, argv=[node, /mapcontrib/server.js], rss=91103232, heapTotal=60219392, heapUsed=50398448, external=26080590, loadavg=[4.3984375, 3.20361328125, 3.05908203125], uptime=1139010
mapcontrib_1  | TypeError: next is not a function
mapcontrib_1  |     at Strategy.strategy.error (/mapcontrib/node_modules/passport/lib/middleware/authenticate.js:356:9)
mapcontrib_1  |     at /mapcontrib/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth.js:146:32
mapcontrib_1  |     at /mapcontrib/node_modules/passport-openstreetmap/lib/passport-openstreetmap/strategy.js:76:23
mapcontrib_1  |     at passBackControl (/mapcontrib/node_modules/oauth/lib/oauth.js:397:13)
mapcontrib_1  |     at IncomingMessage.<anonymous> (/mapcontrib/node_modules/oauth/lib/oauth.js:409:9)
mapcontrib_1  |     at emitNone (events.js:111:20)
mapcontrib_1  |     at IncomingMessage.emit (events.js:208:7)
mapcontrib_1  |     at endReadableNT (_stream_readable.js:1064:12)
mapcontrib_1  |     at _combinedTickCallback (internal/process/next_tick.js:139:11)
mapcontrib_1  |     at process._tickDomainCallback (internal/process/next_tick.js:219:9)

Try with this (with the correct domain/port of course):

Ok, thank you, my issue was with the list of right.
I update the wiki.


Update live with current master

Open Publishing Build Service: The pull request content has been published and here are some changed files links of this time:

Docset 1 - core-docs
https://review.docs.microsoft.com/en-us/dotnet/articles/core/getting-started?branch=pr-en-us-1127
https://review.docs.microsoft.com/en-us/dotnet/articles/core/tools/project-json?branch=pr-en-us-1127
https://review.docs.microsoft.com/en-us/dotnet/articles/csharp/csharp-7?branch=pr-en-us-1127
Please see 27 more published files of this docset in report.

Status: Succeeded.
Open Publishing Report.


Use rake to generate docker files in out

From the README file, I understand that rake devel_base should use the in files in src/base and create the corresponding files in out/base. This fails however when I don't have anything already present in out. For example, when experimenting with an mscore image, I get
...
building devel_mscore from Dockerfile in out/devel_mscore...
...

and I can reproduce this if I remove any of the src directories for the existing images. What am I missing?

I'll look into changing the rake file to create directories if they aren't already created. Thank you for bringing this to my attention.

I don't think it's only a matter of missing directory, as it still fails creating out/devel_mscore.

When I was playing around with adding the hooks directory it has some weird results as well until I fixed the directory structure but I will look into the rake file to see how we assemble the list of files to copy to see if it needs to be updated

Also if you are creating a new devel and release for mscore  did you add mscore to the config.yml under the containers section?

Also if you are creating a new devel and release for mscore did you add mscore to the config.yml under the containers section?

Yes -
containers: # FIXME (?) rename this to 'images' (?)
    base:
        parent: bogus
    core:
        parent: bioconductor/base
    mscore:
        parent: bioconductor/base
    protmetcore:
        parent: bioconductor/core
        biocViews:
            - Metabolomics
            - Proteomics
    metabolomics:
        parent: bioconductor/protmetcore
        biocViews:
            - Metabolomics

And the src/mscore/* files are basically copied from src/core with an update package list. I can rake devel_mscore when I copy and update the out/devel_core/* files to out/devel_mscore/., otherwise it fails as shown above.

Please try now with the updated Rakefile.

Nope - here's the full trace
$rake devel_mscore --trace
** Invoke devel_mscore (first_time)
** Invoke devel_base (first_time)
** Execute devel_base
running task devel_base...
setting docker url
checking for existing image devel_base:20170131....
found an existing image with id a2ef5f0e9287f51c087d456777c6bc6b9cfc6d8f9a759b70cff657a045eb9446...
building devel_base from Dockerfile in out/devel_base...
{"stream":"Step 0 : FROM rocker/rstudio-daily\n"}
{"stream":" ---\u003e 134acbb2d4a7\n"}
{"stream":"Step 1 : MAINTAINER<EMAIL_ADDRESS>{"stream":" ---\u003e Using cache\n"}
{"stream":" ---\u003e f5b034868030\n"}
{"stream":"Step 2 : RUN rm -f /var/lib/dpkg/available \u0026\u0026 rm -rf  /var/cache/apt/*\n"}
{"stream":" ---\u003e Using cache\n"}
{"stream":" ---\u003e c79a8ef2dd8e\n"}
{"stream":"Step 3 : RUN apt-get update \u0026\u0026     apt-get -y  install --fix-missing -t unstable gdb libxml2-dev python-pip\n"}
{"stream":" ---\u003e Using cache\n"}
{"stream":" ---\u003e ae0ca8fa5afc\n"}
{"stream":"Step 4 : RUN pip install awscli\n"}
{"stream":" ---\u003e Using cache\n"}
{"stream":" ---\u003e 2eaa8219ab2a\n"}
{"stream":"Step 5 : RUN apt-get update \u0026\u0026     apt-get -y install --fix-missing --fix-broken -t unstable     texlive     texinfo     texlive-fonts-extra     texlive-latex-extra\n"}
{"stream":" ---\u003e Using cache\n"}
{"stream":" ---\u003e d7d33d2f991f\n"}
{"stream":"Step 6 : RUN dpkg --clear-avail\n"}
{"stream":" ---\u003e Using cache\n"}
{"stream":" ---\u003e 15aee87fc5bb\n"}
{"stream":"Step 7 : RUN apt-get update\n"}
{"stream":" ---\u003e Using cache\n"}
{"stream":" ---\u003e 546f740620c4\n"}
{"stream":"Step 8 : RUN apt-get remove -y r-base-core\n"}
{"stream":" ---\u003e Using cache\n"}
{"stream":" ---\u003e 2a4d170b9070\n"}
{"stream":"Step 9 : RUN apt-get update \u0026\u0026 apt-get -y install -t unstable gfortran gfortran-6\n"}
{"stream":" ---\u003e Using cache\n"}
{"stream":" ---\u003e b93f2f5e6385\n"}
{"stream":"Step 10 : ADD install.R /tmp/\n"}
{"stream":" ---\u003e Using cache\n"}
{"stream":" ---\u003e 9fe41a551500\n"}
{"stream":"Step 11 : RUN R -f /tmp/install.R \u0026\u0026     echo \"library(BiocInstaller)\" \u003e $HOME/.Rprofile\n"}
{"stream":" ---\u003e Using cache\n"}
{"stream":" ---\u003e a2ef5f0e9287\n"}
{"stream":"Successfully built a2ef5f0e9287\n"}
built id matches pre-existing id, skipping tag and push steps...
** Execute devel_mscore
running task devel_mscore...
checking for existing image devel_mscore:20170131....
building devel_mscore from Dockerfile in out/devel_mscore...
rake aborted!
Docker::Error::ServerError: Cannot locate specified Dockerfile: Dockerfile
/home/lg390/.rvm/gems/ruby-2.3.0/gems/docker-api-1.33.2/lib/docker/connection.rb:50:in `rescue in request'
/home/lg390/.rvm/gems/ruby-2.3.0/gems/docker-api-1.33.2/lib/docker/connection.rb:38:in `request'
/home/lg390/.rvm/gems/ruby-2.3.0/gems/docker-api-1.33.2/lib/docker/connection.rb:65:in `block (2 levels) in <class:Connection>'
/home/lg390/.rvm/gems/ruby-2.3.0/gems/docker-api-1.33.2/lib/docker/image.rb:259:in `build_from_tar'
/home/lg390/.rvm/gems/ruby-2.3.0/gems/docker-api-1.33.2/lib/docker/image.rb:278:in `build_from_dir'
/home/lg390/dev/00_github/bioc_docker/Rakefile:78:in `block (3 levels) in <top (required)>'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/task.rb:238:in `block in execute'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/task.rb:235:in `each'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/task.rb:235:in `execute'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/home/lg390/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:150:in `invoke_task'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:106:in `each'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:106:in `block in top_level'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:115:in `run_with_threads'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:100:in `top_level'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:78:in `block in run'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:176:in `standard_exception_handling'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:75:in `run'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/bin/rake:33:in `<top (required)>'
/home/lg390/.rvm/rubies/ruby-2.3.0/bin/rake:23:in `load'
/home/lg390/.rvm/rubies/ruby-2.3.0/bin/rake:23:in `<main>'
Excon::Error::InternalServerError: Expected([200, 201, 202, 203, 204, 301, 304]) <=> Actual(500 InternalServerError)
/home/lg390/.rvm/gems/ruby-2.3.0/gems/excon-0.54.0/lib/excon/middlewares/expects.rb:7:in `response_call'
/home/lg390/.rvm/gems/ruby-2.3.0/gems/excon-0.54.0/lib/excon/middlewares/response_parser.rb:9:in `response_call'
/home/lg390/.rvm/gems/ruby-2.3.0/gems/docker-api-1.33.2/lib/excon/middlewares/hijack.rb:45:in `response_call'
/home/lg390/.rvm/gems/ruby-2.3.0/gems/excon-0.54.0/lib/excon/connection.rb:388:in `response'
/home/lg390/.rvm/gems/ruby-2.3.0/gems/excon-0.54.0/lib/excon/connection.rb:252:in `request'
/home/lg390/.rvm/gems/ruby-2.3.0/gems/docker-api-1.33.2/lib/docker/connection.rb:40:in `request'
/home/lg390/.rvm/gems/ruby-2.3.0/gems/docker-api-1.33.2/lib/docker/connection.rb:65:in `block (2 levels) in <class:Connection>'
/home/lg390/.rvm/gems/ruby-2.3.0/gems/docker-api-1.33.2/lib/docker/image.rb:259:in `build_from_tar'
/home/lg390/.rvm/gems/ruby-2.3.0/gems/docker-api-1.33.2/lib/docker/image.rb:278:in `build_from_dir'
/home/lg390/dev/00_github/bioc_docker/Rakefile:78:in `block (3 levels) in <top (required)>'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/task.rb:238:in `block in execute'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/task.rb:235:in `each'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/task.rb:235:in `execute'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/home/lg390/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:150:in `invoke_task'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:106:in `each'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:106:in `block in top_level'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:115:in `run_with_threads'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:100:in `top_level'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:78:in `block in run'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:176:in `standard_exception_handling'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/lib/rake/application.rb:75:in `run'
/home/lg390/.rvm/gems/ruby-2.3.0@global/gems/rake-10.4.2/bin/rake:33:in `<top (required)>'
/home/lg390/.rvm/rubies/ruby-2.3.0/bin/rake:23:in `load'
/home/lg390/.rvm/rubies/ruby-2.3.0/bin/rake:23:in `<main>'
Tasks: TOP => devel_mscore

I'm not exactly sure how the last bit in the README works and I can't really tell without seeing the directory structure how you have set up.   My initial thought/how I am developing: when I am building and testing locally the rake is done from the bioc_docker directory not a devel_mscore directory.  Once all the files are copied, which is what the rake does, provided mscore is in the config.yml, you should be able to build the image with running docker build in bioc_docker/out/devel_mscore; if you are using dockerhub to do an automated build make sure the dockerhub is pointing to the specific bioc_docker/out/devel_mscore subdirectory on github that holds the Dockerfile.
Not sure if any of that helps; maybe someone else has some better insight

Here's the (simplified) directory structure
.
├── auth.yml
├── auth.yml.template
├── config.yml
├── Gemfile
├── Gemfile.lock
├── LICENSE
├── out
│   ├── devel_base
│   ├── devel_core
│   ├── devel_mscore # created manually
│       ├── Dockerfile
│       └── install.R
├── Rakefile
├── README.md
├── src
│   ├── base
│   ├── mscore
│       ├── Dockerfile.in
│       ├── hooks
│       │   └── post_push
│       └── install.R.in
└── tagutil.rb

and how you describe is exactly the way I work (or at least try, as rake devel_mscore from wihtin bioc_docker fails). I'm going to investigate further...

What version of ruby and the docker/docker-api modules are you using?

 Sorry to ask this, but you are sure that when renaming a directory in out, it can be regenerates it with the Rakefile.
@sneumann - has this ever worked for you?

Ok, thanks to @sneumann for helping me sort it out.