text:
Step 05

In the file main.js the function handleRemoteStreamAdd is declared twice.
In the file index.js: var numClients = io.sockets.sockets.length; - variable numClients = undefined
Probably should be Object.keys(io.sockets.sockets).length

Hello @YuriyPomaznoy, I understand both of these comments are referring to step 5. Is that correct?
For now, I was able to identify the duplicated "handleRemoteStreamAdded(event)" function and submitted a PR.

On a second look, this looks duplicate of #3 and #5 respectively. Do you agree, @YuriyPomaznoy ?

To step 7, line 31:
var numClients = io.sockets.sockets.length;
Should be:
var numClients = Object.keys(io.sockets.sockets).length;

To step 7, line 31:
var numClients = io.sockets.sockets.length;
Should be:
var numClients = Object.keys(io.sockets.sockets).length;
2017-11-28 18:51 GMT+07:00 Nito Buendia notifications@github.com:

On a second look, this looks duplicate of #3
https://github.com/googlecodelabs/webrtc-web/issues/3 and #5
https://github.com/googlecodelabs/webrtc-web/issues/5 respectively. Do
you agree, @YuriyPomaznoy https://github.com/yuriypomaznoy ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/googlecodelabs/webrtc-web/issues/39#issuecomment-347500091,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AWWgGASSt2T1He1TwbOLnM8c1MxyNis7ks5s6_O-gaJpZM4O1Biw
.

Correct step 7, completely (sorry for my bad english)
var os = require('os');
var nodeStatic = require('node-static');
var http = require('http');
var socketIO = require('socket.io');

var fileServer = new(nodeStatic.Server)();
var app = http.createServer(function(req, res) {
  fileServer.serve(req, res);
}).listen(8080);

var io = socketIO.listen(app);

	var clientsArray = {};
	var roomNow;

io.sockets.on('connection', function(socket) {

	// convenience function to log server messages on the client
	function log() {
		var array = ['Message from server:'];
		array.push.apply(array, arguments);
		socket.emit('log', array);
	}

	socket.on('message', function(message) {

		io.sockets.in(roomNow).emit('message', message);

	});

	socket.on('create or join', function(room) {

		roomNow = room;

		if(clientsArray[room] === undefined)
			clientsArray[room] = [];
		clientsArray[room].push(socket.id);

		log('Received request to create or join room ' + room);

							console.log(clientsArray);

		//var numClients = Object.keys(io.sockets.sockets).length;
		var numClients = clientsArray[room].length;
		log('Room ' + room + ' now has ' + numClients + ' client(s)');

		if (numClients === 1) {
			socket.join(room);
			log('Client ID ' + socket.id + ' created room ' + room);
			io.sockets.in(room).emit('created', room, socket.id);
		} else if (numClients === 2) {
			log('Client ID ' + socket.id + ' joined room ' + room);
			io.sockets.in(room).emit('join', room);
			socket.join(room);
			io.sockets.in(room).emit('joined', room, socket.id);
		} else { // max two clients
			socket.emit('full', room);
		}
	});

	socket.on('disconnect', function() {
		for(var key in clientsArray) {
			for(var i=0; i<clientsArray[key].length; i++) {
				if(clientsArray[key][i] == socket.id) {
					clientsArray[key].splice(i, 1);
				}
			}
		}
	});

	socket.on('ipaddr', function() {
		var ifaces = os.networkInterfaces();
		for (var dev in ifaces) {
			ifaces[dev].forEach(function(details) {
				if (details.family === 'IPv4' && details.address !== '127.0.0.1') {
					socket.emit('ipaddr', details.address);
				}
			});
		}
	});

});

Hi @YuriyPomaznoy — thanks for the heads-up, and apologies for the delay in responding.
I'll close this, given the comments from @nitobuendia, and we'll do a separate PR for the numCllients stuff.

To complete here: we will follow up that issue on #5. Thanks again :)

OK — reopened :).

...and now closed :).

I uesd this code in step 5 var os = require('os');
var nodeStatic = require('node-static');
var http = require('http');
var socketIO = require('socket.io');
var fileServer = new(nodeStatic.Server)();
var app = http.createServer(function(req, res) {
fileServer.serve(req, res);
}).listen(8080);
var io = socketIO.listen(app);
var clientsArray = {};
var roomNow;

io.sockets.on('connection', function(socket) {
// convenience function to log server messages on the client
function log() {
	var array = ['Message from server:'];
	array.push.apply(array, arguments);
	socket.emit('log', array);
}

socket.on('message', function(message) {

	io.sockets.in(roomNow).emit('message', message);

});

socket.on('create or join', function(room) {

	roomNow = room;

	if(clientsArray[room] === undefined)
		clientsArray[room] = [];
	clientsArray[room].push(socket.id);

	log('Received request to create or join room ' + room);

						console.log(clientsArray);

	//var numClients = Object.keys(io.sockets.sockets).length;
	var numClients = clientsArray[room].length;
	log('Room ' + room + ' now has ' + numClients + ' client(s)');

	if (numClients === 1) {
		socket.join(room);
		log('Client ID ' + socket.id + ' created room ' + room);
		io.sockets.in(room).emit('created', room, socket.id);
	} else if (numClients === 2) {
		log('Client ID ' + socket.id + ' joined room ' + room);
		io.sockets.in(room).emit('join', room);
		socket.join(room);
		io.sockets.in(room).emit('joined', room, socket.id);
	} else { // max two clients
		socket.emit('full', room);
	}
});

socket.on('disconnect', function() {
	for(var key in clientsArray) {
		for(var i=0; i<clientsArray[key].length; i++) {
			if(clientsArray[key][i] == socket.id) {
				clientsArray[key].splice(i, 1);
			}
		}
	}
});

socket.on('ipaddr', function() {
	var ifaces = os.networkInterfaces();
	for (var dev in ifaces) {
		ifaces[dev].forEach(function(details) {
			if (details.family === 'IPv4' && details.address !== '127.0.0.1') {
				socket.emit('ipaddr', details.address);
			}
		});
	}
});

});
but I disconnect a room all the room  calls are disconnecting

This is a simple, instructional example. In the original it was so that you had to restart the server every time. I just fixed it. For complex cases - https://play.google.com/store/apps/details?id=rmc3.videoconference

Can you provide the code to restart the server

I am facing a problem with the above code A&B, C&D, E&F can communicate each other at a time but A&B closes connection all other room connections are disconnected , simply if any room connection will close other rooms are automatically disconnected. how to rectify this problem anybody provide some sample code for this

Empty the room after the first disconnect from it
socket.on('disconnect', function() {
	for(var key in clientsArray) {
		for(var i=0; i<clientsArray[key].length; i++) {
			if(clientsArray[key][i] == socket.id) {
				clientsArray[key] = [];
			}
		}
	}
});

or delete it from the object
socket.on('disconnect', function() {
	for(var key in clientsArray) {
		for(var i=0; i<clientsArray[key].length; i++) {
			if(clientsArray[key][i] == socket.id) {
				delete clientsArray[key];
			}
		}
	}
});

ha-ha!
function hangup() {
  console.log('Hanging up.');
  stop();
  // sendMessage('bye');		On the client, do not send this message
}

still all the rooms are get disconnected while I close a video call
I used this code
function hangup() {
console.log('Hanging up.');
stop();
// sendMessage('bye');		On the client, do not send this message
}
but it is not working

All the client code is from me
'use strict';

var isChannelReady = false;
var isInitiator = false;
var isStarted = false;
var localStream;
var pc;
var remoteStream;
var turnReady;

var pcConfig = {
  'iceServers': [{
    'urls': 'stun:stun.l.google.com:19302'
  }]
};

// Set up audio and video regardless of what devices are present.
var sdpConstraints = {
  offerToReceiveAudio: true,
  offerToReceiveVideo: true
};

/////////////////////////////////////////////

// Could prompt for room name:
//var room = prompt('Enter room name:', 'foo-bar');
/////////////////// ?????????????????????????????????
var socket = io.connect('http://localhost:3001');

if (room !== '') {
  socket.emit('create or join', room);
  console.log('Attempted to create or  join room', room);
}

socket.on('created', function(room) {
  console.log('Created room ' + room);
  isInitiator = true;
});

socket.on('full', function(room) {
  alert('Room ' + room + ' is full');
});

socket.on('join', function (room){
  console.log('Another peer made a request to join room ' + room);
  console.log('This peer is the initiator of room ' + room + '!');
  isChannelReady = true;
});

socket.on('joined', function(room) {
  console.log('joined: ' + room);
  isChannelReady = true;
});

socket.on('log', function(array) {
  console.log.apply(console, array);
});

////////////////////////////////////////////////

function sendMessage(message) {
  console.log('Client sending message: ', message);
  socket.emit('message', message);
}

// This client receives a message
socket.on('message', function(message) {
  console.log('Client received message:', message);
  if (message === 'got user media') {
    maybeStart();
  } else if (message.type === 'offer') {
    if (!isInitiator && !isStarted) {
      maybeStart();
    }
    pc.setRemoteDescription(new RTCSessionDescription(message));
    doAnswer();
  } else if (message.type === 'answer' && isStarted) {
    pc.setRemoteDescription(new RTCSessionDescription(message));
  } else if (message.type === 'candidate' && isStarted) {
    var candidate = new RTCIceCandidate({
      sdpMLineIndex: message.label,
      candidate: message.candidate
    });
    pc.addIceCandidate(candidate);
  } else if (message === 'bye' && isStarted) {				///////////////////// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    handleRemoteHangup();
  }
});

////////////////////////////////////////////////////

var localVideo = document.querySelector('#localvideo');
var remoteVideo = document.querySelector('#remotevideo');

navigator.mediaDevices.getUserMedia = navigator.mediaDevices.getUserMedia
  || navigator.mediaDevices.mozGetUserMedia || navigator.mediaDevices.webkitGetUserMedia;

navigator.mediaDevices.getUserMedia({
  audio: true,
  video: true
})
.then(gotStream)
.catch(function(e) {
  alert('getUserMedia() error: ' + e.name);
});

function gotStream(stream) {
  console.log('Adding local stream.');
  // localVideo.src = window.URL.createObjectURL(stream);
	localVideo.srcObject = stream;
  localStream = stream;
  sendMessage('got user media');
  if (isInitiator) {
    maybeStart();
  }
}

var constraints = {
  video: true
};

console.log('Getting user media with constraints', constraints);

if (location.hostname !== 'localhost') {
  requestTurn(
    'https://computeengineondemand.appspot.com/turn?username=41784574&key=4080218913'
  );
}

function maybeStart() {
  console.log('>>>>>>> maybeStart() ', isStarted, localStream, isChannelReady);
  if (!isStarted && typeof localStream !== 'undefined' && isChannelReady) {
    console.log('>>>>>> creating peer connection');
    createPeerConnection();
    pc.addStream(localStream);
    isStarted = true;
    console.log('isInitiator', isInitiator);
    if (isInitiator) {
      doCall();
    }
  }
}

//window.addEventListener('beforeunload', function() {
//  sendMessage('bye');
//});
// window.onbeforeunload = function() {
//     sendMessage('bye');
// };

/////////////////////////////////////////////////////////

function createPeerConnection() {
  try {
    pc = new RTCPeerConnection(null);
    pc.onicecandidate = handleIceCandidate;
    pc.onaddstream = handleRemoteStreamAdded;					/////////// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    pc.onremovestream = handleRemoteStreamRemoved;
    console.log('Created RTCPeerConnnection');
  } catch (e) {
    console.log('Failed to create PeerConnection, exception: ' + e.message);
    alert('Cannot create RTCPeerConnection object.');
    return;
  }
}

function handleIceCandidate(event) {
  console.log('icecandidate event: ', event);
  if (event.candidate) {
    sendMessage({
      type: 'candidate',
      label: event.candidate.sdpMLineIndex,
      id: event.candidate.sdpMid,
      candidate: event.candidate.candidate
    });
  } else {
    console.log('End of candidates.');
  }
}

function handleRemoteStreamAdded(event) {
  console.log('Remote stream added.');
  remoteVideo.srcObject = event.stream;
  remoteStream = event.stream;
}

function handleCreateOfferError(event) {
  console.log('createOffer() error: ', event);
}

function doCall() {
  console.log('Sending offer to peer');
  pc.createOffer(setLocalAndSendMessage, handleCreateOfferError);
}

function doAnswer() {
  console.log('Sending answer to peer.');
  pc.createAnswer().then(
    setLocalAndSendMessage,
    onCreateSessionDescriptionError
  );
}

function setLocalAndSendMessage(sessionDescription) {
  // Set Opus as the preferred codec in SDP if Opus is present.
  //  sessionDescription.sdp = preferOpus(sessionDescription.sdp);
  pc.setLocalDescription(sessionDescription);
  console.log('setLocalAndSendMessage sending message', sessionDescription);
  sendMessage(sessionDescription);
}

function onCreateSessionDescriptionError(error) {
  trace('Failed to create session description: ' + error.toString());
}

function requestTurn(turnURL) {
  var turnExists = false;
  for (var i in pcConfig.iceServers) {
    if (pcConfig.iceServers[i].url.substr(0, 5) === 'turn:') {
      turnExists = true;
      turnReady = true;
      break;
    }
  }
  if (!turnExists) {
    console.log('Getting TURN server from ', turnURL);
    // No TURN server. Get one from computeengineondemand.appspot.com:
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
      if (xhr.readyState === 4 && xhr.status === 200) {
        var turnServer = JSON.parse(xhr.responseText);
        console.log('Got TURN server: ', turnServer);
        pcConfig.iceServers.push({
          'url': 'turn:' + turnServer.username + '@' + turnServer.turn,
          'credential': turnServer.password
        });
        turnReady = true;
      }
    };
    xhr.open('GET', turnURL, true);
    xhr.send();
  }
}

//function handleRemoteStreamAdded(event) {
//  console.log('Remote stream added.');
//  remoteVideo.src = window.URL.createObjectURL(event.stream);
//  remoteStream = event.stream;
//}

function handleRemoteStreamRemoved(event) {
  console.log('Remote stream removed. Event: ', event);
}

function hangup() {
  console.log('Hanging up.');
  stop();
  // sendMessage('bye');		On the client, do not send this message
}

function handleRemoteHangup() {
  console.log('Session terminated.');
  stop();
  isInitiator = false;																				//	!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}

function stop() {
  isStarted = false;
  // isAudioMuted = false;
  // isVideoMuted = false;
  pc.close();
  pc = null;
}

///////////////////////////////////////////

// Set Opus as the default audio codec if it's present.
function preferOpus(sdp) {
  var sdpLines = sdp.split('\r\n');
  var mLineIndex;
  // Search for m line.
  for (var i = 0; i < sdpLines.length; i++) {
    if (sdpLines[i].search('m=audio') !== -1) {
      mLineIndex = i;
      break;
    }
  }
  if (mLineIndex === null) {
    return sdp;
  }

  // If Opus is available, set it as the default in m line.
  for (i = 0; i < sdpLines.length; i++) {
    if (sdpLines[i].search('opus/48000') !== -1) {
      var opusPayload = extractSdp(sdpLines[i], /:(\d+) opus\/48000/i);
      if (opusPayload) {
        sdpLines[mLineIndex] = setDefaultCodec(sdpLines[mLineIndex],
          opusPayload);
      }
      break;
    }
  }

  // Remove CN in m line and sdp.
  sdpLines = removeCN(sdpLines, mLineIndex);

  sdp = sdpLines.join('\r\n');
  return sdp;
}

function extractSdp(sdpLine, pattern) {
  var result = sdpLine.match(pattern);
  return result && result.length === 2 ? result[1] : null;
}

// Set the selected codec to the first in m line.
function setDefaultCodec(mLine, payload) {
  var elements = mLine.split(' ');
  var newLine = [];
  var index = 0;
  for (var i = 0; i < elements.length; i++) {
    if (index === 3) { // Format of media starts from the fourth.
      newLine[index++] = payload; // Put target payload to the first.
    }
    if (elements[i] !== payload) {
      newLine[index++] = elements[i];
    }
  }
  return newLine.join(' ');
}

// Strip CN from sdp before CN constraints is ready.
function removeCN(sdpLines, mLineIndex) {
  var mLineElements = sdpLines[mLineIndex].split(' ');
  // Scan from end for the convenience of removing an item.
  for (var i = sdpLines.length - 1; i >= 0; i--) {
    var payload = extractSdp(sdpLines[i], /a=rtpmap:(\d+) CN\/\d+/i);
    if (payload) {
      var cnPos = mLineElements.indexOf(payload);
      if (cnPos !== -1) {
        // Remove CN payload from m line.
        mLineElements.splice(cnPos, 1);
      }
      // Remove CN line in sdp
      sdpLines.splice(i, 1);
    }
  }

  sdpLines[mLineIndex] = mLineElements.join(' ');
  return sdpLines;
}

All server code
var os = require('os');
var sktio = require('socket.io');
module.exports = function(server) {
var clientsArray = {};
var io = sktio(server);
var roomNow;
io.sockets.on('connection', function(socket) {
// convenience function to log server messages on the client
function log() {
	var array = ['Message from server:'];
	array.push.apply(array, arguments);
	socket.emit('log', array);
}

socket.on('message', function(message) {

	// log('Client said: ', message);
	// for a real app, would be room-only (not broadcast)
	// socket.broadcast.emit('message', message);
	io.sockets.in(roomNow).emit('message', message);

});

socket.on('create or join', function(room) {

	roomNow = room;

	if(clientsArray[room] === undefined)
		clientsArray[room] = [];
	clientsArray[room].push(socket.id);

	log('Received request to create or join room ' + room);

						console.log(clientsArray);

	//var numClients = Object.keys(io.sockets.sockets).length;
	var numClients = clientsArray[room].length;
	log('Room ' + room + ' now has ' + numClients + ' client(s)');

	if (numClients === 1) {
		socket.join(room);
		log('Client ID ' + socket.id + ' created room ' + room);
		io.sockets.in(room).emit('created', room, socket.id);
		// socket.emit('created', room, socket.id);

	} else if (numClients === 2) {
		log('Client ID ' + socket.id + ' joined room ' + room);
		io.sockets.in(room).emit('join', room);
		socket.join(room);
		io.sockets.in(room).emit('joined', room, socket.id);
		// socket.emit('joined', room, socket.id);
		// io.sockets.in(room).emit('ready');
	} else { // max two clients
		socket.emit('full', room);
	}
});
socket.on('disconnect', function() {
	for(var key in clientsArray) {
		for(var i=0; i<clientsArray[key].length; i++) {
			if(clientsArray[key][i] == socket.id) {
				clientsArray[key].splice(i, 1);
			}
		}
	}
				console.log(clientsArray);
});

socket.on('ipaddr', function() {
	var ifaces = os.networkInterfaces();
	for (var dev in ifaces) {
		ifaces[dev].forEach(function(details) {
			if (details.family === 'IPv4' && details.address !== '127.0.0.1') {
				// socket.emit('ipaddr', '127.0.0.1');
				socket.emit('ipaddr', details.address);
			}
		});
	}
});

});
};

Everything is working
GET / 200 4070.844 ms
GET /go-rtc 304 123.064 ms
{ foo: [ 'IvGx_pUBmFwvaRaJAAAA' ] }
GET /go-rtc 304 126.898 ms
{ foo: [ 'IvGx_pUBmFwvaRaJAAAA' ],
  bar: [ 'NlCjlR0MhavPgmKoAAAB' ] }
GET /go-rtc 304 105.445 ms
{ foo: [ 'IvGx_pUBmFwvaRaJAAAA', 't9EnR3uSYxjZMM-oAAAC' ],
  bar: [ 'NlCjlR0MhavPgmKoAAAB' ] }
GET /go-rtc 304 194.731 ms
{ foo: [ 'IvGx_pUBmFwvaRaJAAAA', 't9EnR3uSYxjZMM-oAAAC' ],
  bar: [ 'NlCjlR0MhavPgmKoAAAB', '2NQKCi0AbLig375zAAAD' ] }
{ foo: [ 't9EnR3uSYxjZMM-oAAAC' ],
  bar: [ 'NlCjlR0MhavPgmKoAAAB', '2NQKCi0AbLig375zAAAD' ] }
GET /go-rtc 304 100.887 ms
{ foo: [ 't9EnR3uSYxjZMM-oAAAC', 'altqfw_cZPbbYBLfAAAE' ],
  bar: [ 'NlCjlR0MhavPgmKoAAAB', '2NQKCi0AbLig375zAAAD' ] }
{ foo: [ 't9EnR3uSYxjZMM-oAAAC' ],
  bar: [ 'NlCjlR0MhavPgmKoAAAB', '2NQKCi0AbLig375zAAAD' ] }
{ foo: [],
  bar: [ 'NlCjlR0MhavPgmKoAAAB', '2NQKCi0AbLig375zAAAD' ] }
GET /go-rtc 304 119.343 ms
{ foo: [ 'EWjfAMdPaWDghbN9AAAF' ],
  bar: [ 'NlCjlR0MhavPgmKoAAAB', '2NQKCi0AbLig375zAAAD' ] }
GET /go-rtc 304 102.493 ms
{ foo: [ 'EWjfAMdPaWDghbN9AAAF', 'dxLS4aJO18xS68hLAAAG' ],
  bar: [ 'NlCjlR0MhavPgmKoAAAB', '2NQKCi0AbLig375zAAAD' ] }
{ foo: [ 'EWjfAMdPaWDghbN9AAAF', 'dxLS4aJO18xS68hLAAAG' ],
  bar: [ 'NlCjlR0MhavPgmKoAAAB' ] }
GET /go-rtc 304 87.981 ms
{ foo: [ 'EWjfAMdPaWDghbN9AAAF', 'dxLS4aJO18xS68hLAAAG' ],
  bar: [ 'NlCjlR0MhavPgmKoAAAB' ],
  baz: [ 'LEHKjgaHsCxoolH4AAAH' ] }
GET /go-rtc 304 76.438 ms
{ foo: [ 'EWjfAMdPaWDghbN9AAAF', 'dxLS4aJO18xS68hLAAAG' ],
  bar: [ 'NlCjlR0MhavPgmKoAAAB' ],
  baz: [ 'LEHKjgaHsCxoolH4AAAH', '5iRQZr51BkYM8-4XAAAI' ] }
{ foo: [ 'EWjfAMdPaWDghbN9AAAF' ],
  bar: [ 'NlCjlR0MhavPgmKoAAAB' ],
  baz: [ 'LEHKjgaHsCxoolH4AAAH', '5iRQZr51BkYM8-4XAAAI' ] }
{ foo: [],
  bar: [ 'NlCjlR0MhavPgmKoAAAB' ],
  baz: [ 'LEHKjgaHsCxoolH4AAAH', '5iRQZr51BkYM8-4XAAAI' ] }
{ foo: [],
  bar: [],
  baz: [ 'LEHKjgaHsCxoolH4AAAH', '5iRQZr51BkYM8-4XAAAI' ] }
GET /go-rtc 304 213.221 ms
GET /go-rtc 304 107.315 ms
GET /go-rtc 304 113.495 ms
GET /go-rtc 304 118.767 ms
{ foo: [ '4E2Fc4Ip8HXoKHVTAAAJ' ],
  bar: [],
  baz: [ 'LEHKjgaHsCxoolH4AAAH', '5iRQZr51BkYM8-4XAAAI' ] }
GET /go-rtc 304 125.519 ms
{ foo: [ '4E2Fc4Ip8HXoKHVTAAAJ', '5EPsj1V8F9g3nwFzAAAK' ],
  bar: [],
  baz: [ 'LEHKjgaHsCxoolH4AAAH', '5iRQZr51BkYM8-4XAAAI' ] }
{ foo: [ '4E2Fc4Ip8HXoKHVTAAAJ', '5EPsj1V8F9g3nwFzAAAK' ],
  bar: [],
  baz: [ 'LEHKjgaHsCxoolH4AAAH' ] }
{ foo: [ '4E2Fc4Ip8HXoKHVTAAAJ', '5EPsj1V8F9g3nwFzAAAK' ],
  bar: [],
  baz: [] }
{ foo: [ '4E2Fc4Ip8HXoKHVTAAAJ' ], bar: [], baz: [] }
{ foo: [], bar: [], baz: [] }

Do you see the logs?
One room, the second room, disconnected in the first room, again disconnected in the first room, again turned up in the first room, a third room appeared, etc. etc.
Everything is working.

thanks for the code ,
we are facing a problem outside networks cant connect to our network , how to rectify this problem.

https://github.com/muaz-khan/RTCMultiConnection#v3-demos

I tried to add a third person to the  room for step no -5  but its not working, can you help us

On the above link there is the item "Video Conferencing". There are ready-made client side and server side codes. I made a video conference on them for any number of clients - they are working codes.
This training example can not be expanded.

I tried to add a third participant , in server a third participant added  by adding number of clients , but no peer connection created for third person . should I made any changes in main.js page

authors: YuriyPomaznoy nitobuendia samdutton sarathkumar654

repo: googlecodelabs/webrtc-web


text:
Please create tests files in a subdirectory

When I run the test suite, I get lots of test files created in my drive. To make it easier to clean up after that, can you please make the testsuite create them not in root, but in a subdirectory with some unique name, like pydrive-test-files?

A delete method has been merged, and the test suites updated to include clean-up code.

source: gharchive/issue

repo: googledrive/PyDrive

license_type: permissive

license_source: bigquery


text:
Bump grpc-java.

Per https://groups.google.com/forum/#!topic/grpc-io/CcFkmhxZmAg

LGTM

source: gharchive/pull-request

authors: deflaux dionloy

repo: googlegenomics/utils-java


text:
Add Lydian support

I installed all Google Noto Fonts and Firefox still does not support the display of Lydian. See for example https://en.wikipedia.org/wiki/Lydian_(Unicode_block)

Actually the problem of display only happens on Firefox. Characters are correctly displayed with Chromium 53

The problem is with Firefox rendering engine. Closing the issue.


text:
A Story is hard to delete from. the browser cache

Describe the bug
When you are building a new story using the Storytelling app, the configurations are almost permanent. Even if you start and stop the app or reload the app the configuration does not go away
Expected behavior
When you restart the node app, it will clear the browser cache or the local storage should have a Time to Live and it should delete the entry after x amount of time..

Right now there are following workarounds:

Start the app in incognito mode which will start with no local storage
Follow these instructions and clear your local storage: https://docs.devolutions.net/kb/general-knowledge-base/clear-browser-local-storage/clear-chrome-local-storage/
When starting the app locally using the bash script, use a different port. The bash script supports passing port as an argument.

license_source: github-api


text:
Fuzzilli died after running for some hours

I run fuzzilli with this command 'swift run -c release FuzzilliCli --profile="v8" --jobs=48 --storeagePath=/result /home/v8/out/fuzzbuild/d8 --minCorpusSize=10240 --engine=hybrid'
After running few hour, it died with this message 'Illegal instruction (core dump)'
in the statistics report, it covered d8 14.98%.
How can i find out which part of the program has problem. is there any log files?
I also had same result with ''swift run -c release FuzzilliCli --profile="v8" --jobs=48 --storeagePath=/result /home/v8/out/fuzzbuild/d8 --minCorpusSize=10240 --engine=multi'
Thanks,

That's not really debuggable without more information.
Here's what I use to get good debug information:
Compile with swift build -Xswiftc -g -Xlinker --export-dynamic, which produces a debug build with symbols at .build/debug/FuzzilliCli
Then, run that in gdb or the debugger of your choice to get a stack trace at the point of crash.

@saelo I'm not sure this is what happened to the original poster, but I did hit a similar while running testing the Markov corpus. From my understanding, Swift compiles integer sizing issues into the ud2 instruction, which produces the error above. Here's the stack trace I got, due to trying to assign a variable id greater than can be stored in 16 bits.
Swift/Integers.swift:3444: Fatal error: Not enough bits to represent the passed value
Current stack trace:
0    libswiftCore.so                    0x00007efd827eb210 swift_reportError + 50
1    libswiftCore.so                    0x00007efd8285ffc0 _swift_stdlib_reportFatalErrorInFile + 112
2    libswiftCore.so                    0x00007efd82549f56 <unavailable> + 1425238
3    libswiftCore.so                    0x00007efd82549b7f <unavailable> + 1424255
4    libswiftCore.so                    0x00007efd8254991c <unavailable> + 1423644
5    libswiftCore.so                    0x00007efd82549430 _assertionFailure(_:_:file:line:flags:) + 441
6    libswiftCore.so                    0x00007efd82547f9c <unavailable> + 1417116
7    FuzzilliCli                        0x000055c58b416090 Variable.init(number:) + 115
8    FuzzilliCli                        0x000055c58b3a3e10 Instruction.init<A>(_:inouts:index:) + 341
9    FuzzilliCli                        0x000055c58b39bef0 Code.append(_:) + 197
10   FuzzilliCli                        0x000055c58b333e60 ProgramBuilder.internalAppend(_:) + 804
11   FuzzilliCli                        0x000055c58b327870 ProgramBuilder.adopt(_:keepTypes:) + 420
12   FuzzilliCli                        0x000055c58b4a9f7c <unavailable> + 3850108
13   FuzzilliCli                        0x000055c58b326250 ProgramBuilder.adopting(from:_:) + 84
14   FuzzilliCli                        0x000055c58b4a9160 BaseInstructionMutator.mutate(_:using:) + 2212
15   FuzzilliCli                        0x000055c58b4b3960 Mutator.mutate(_:for:) + 257
16   FuzzilliCli                        0x000055c58b313a80 MutationEngine.fuzzOne(_:) + 3084
17   FuzzilliCli                        0x000055c58b3155b1 <unavailable> + 2192817
18   FuzzilliCli                        0x000055c58b426730 Fuzzer.fuzzOne() + 893
19   FuzzilliCli                        0x000055c58b426c7d <unavailable> + 3312765
20   FuzzilliCli                        0x000055c58b341a10 <unavailable> + 2374160
21   libdispatch.so                     0x00007efd81a03947 <unavailable> + 141639
22   libdispatch.so                     0x00007efd81a0f259 <unavailable> + 189017
23   libdispatch.so                     0x00007efd81a0fefe <unavailable> + 192254
24   libdispatch.so                     0x00007efd81a17b72 <unavailable> + 224114
25   libpthread.so.0                    0x00007efd81bd9609 <unavailable> + 38409
26   libc.so.6                          0x00007efd818ff250 clone + 67

I suspect it's an issue with the HybridEngine. There were quite a few issues with e.g. the way it currently instantiates Types, and I wouldn't be surprised if there are some left. I think the HybridEngine should be treated as experimental and have updated to documentation. Also see https://github.com/googleprojectzero/fuzzilli/issues/206.
Although what @WilliamParks described is also plausible, i.e. a program becoming so large that it requires more than 65536 variables. One solution would be to increase Variables to 32 bit integers, at the cost of additional memory consumption. Maybe that's overkill though, since IMO such huge programs shouldn't really be generated during "normal" operations. Maybe the best solution for that is just to fail gracefully, reject the program, and continue with the next fuzz iteration? Thoughts?

authors: WilliamParks leepeter2019 saelo

repo: googleprojectzero/fuzzilli


text:
can't build

Error:Failed to resolve: com.android.support:support-emoji-bundled:26.0.0-beta1
Install Repository and sync project
Open File
Show in Project Structure dialog

Error:Failed to resolve: com.android.support:support-annotations:26.0.0-beta1
Install Repository and sync project
Open File
Show in Project Structure dialog

Error:Failed to resolve: com.android.support:support-emoji-appcompat:26.0.0-beta1
Install Repository and sync project
Open File
Show in Project Structure dialog

Error:Failed to resolve: com.android.support:appcompat-v7:26.0.0-beta1
Install Repository and sync project
Open File
Show in Project Structure dialog

Error:Failed to resolve: com.android.support:support-emoji:26.0.0-beta1
Install Repository and sync project
Open File
Show in Project Structure dialog

Gradle sync failed: Failed to find target with hash string 'android-O'

Nevermind, just figured out that I need the Android Studio 3 preview to download the required files with the SDK manager...

authors: futabooo stefanhaustein

repo: googlesamples/android-EmojiCompat


text:
[todo-mvvm-databinding] Removed unnecessary parameters from the saveTask method

As a more complete example usage of MVVM, I've changed the saveTask() method to not take any parameters into the method as the ViewModel already has the title and description as class variables.
Now I am using the values from ViewModel itself instead of passing the values back through to the ViewModel from the Fragment.

Thanks again!

authors: JoseAlcerreca riggaroo

repo: googlesamples/android-architecture


text:
Play mode error when SteamVR is imported

Hi, an issue I am having is that when I import the SteamVR plugin, there are a number of compiler errors in the console which prevent me from playing the scene. All I have in the scene is a camera rig, a directional light, and a Tilt brush export. My apologies, I am new to coding, VR, Unity and Github. It seems to work fine before I import the SteamVR plugin.
Thank you in advance!

I've actually ran into the same problem and do not have the confidence in my troubleshooting enough to fix it after trying and failing more or less. I thought it was something on my end. Switched back to the old SteamVR pkg after that for all my VR projects :(

Hi. On the one hand Assets/TiltBrushExamples directory is extremely old and no longer compiles with the latest SteamVR. Since it doesn't really have anything to do with being able to import Tilt Brush .fbx files into Unity, we'll probably delete it from any future .unitypackages we build.
Even without that code, you'll be able to take a fbx, drop it into your Assets folder, and get all the Tilt Brush materials and shaders properly assigned to it.

Hi. On the one hand Assets/TiltBrushExamples directory is extremely old and no longer compiles with the latest SteamVR. Since it doesn't really have anything to do with being able to import Tilt Brush .fbx files into Unity, we'll probably delete it from any future .unitypackages we build.
Even without that code, you'll be able to take a fbx, drop it into your Assets folder, and get all the Tilt Brush materials and shaders properly assigned to it.

Thank you for your help. To clarify, I should import the TiltBrush SDK, except the Assets/TiltBrushExamples. And I should be able to import the fbx file and it will animate/run with the latest Steam VR plugin.

Yes, that's correct; except the the fbx importer doesn't require the SteamVR plugin. Only that old example code required it. Here are the simplest steps to get up and running:

Start a new project
Import the .unitypackage, ignoring Assets/TiltBrushExamples
Drop a Tilt Brush .fbx into your project

Hello, there is a question I want to ask
Tilt brush unity sdk, this plug-in imported into unit, dynamic loading of FBX exported by Tilt Brush into the project through code in unit, error occurred. Is there a feasible way?

Should be fixed with latest .unitypackage

authors: HelloOrwell chiarashim dubois mahe373662858

repo: googlevr/tilt-brush-toolkit


text:
🛑 goormEDU is down

In 1bd1a73, goormEDU (https://edu.goorm.io) was down:

HTTP code: 403
Response time: 626 ms

Resolved: goormEDU is back up in fd4f7e0 after 11 minutes.

repo: goorm-dev/goorm-status

license: MIT


text:
🛑 goormIDE is down

In 60ff799, goormIDE (https://ide.goorm.io) was down:

HTTP code: 403
Response time: 786 ms

Resolved: goormIDE is back up in 46ff5ae after 38 minutes.


text:
Add i2c support

All the same support for gpio and pwm but for i2c. See the mraa implementation for a guideline but obviously we want the Go implementation to be Go-ish.

Put implementation into an i2c sub package.

repo: gopackage/edison

license: isc


text:
Server rendering bug

ReferenceError: window is not defined

fixed https://github.com/gorangajic/react-svg-morph/commit/dfc90c4da0bd881c23b2e1de2e39b0018aed10e2
published on npm v0.1.3

Still ran into this problem at version v0.1.6.

try now https://github.com/gorangajic/react-svg-morph/commit/0535555f702b0cee732cdde81dc24e8ea5d1b96f

@gorangajic Thanks for the quick fix. 😭
But there is one missed window object checking in svglite.js
I send a PR#11 to fix that. Please review it. Thanks! 😉

repo: gorangajic/react-svg-morph

license: mit


text:
feat: [GM-26] [BE] Implement the get tags endpoint

Example:

I saw the endpoint returns user_id: "0", it's not good, the endpoint shouldn't return the user_id field, even if user_id != "". So I think we'd better define a response struct for this endpoint, don't use ToProto directly.

authors: hwbrzzl kkumar-gcc

repo: goravel-ecosystem/market-backend


text:
Add HLDS/goldsrc support

Is it possible to add support for HLDS/goldsrc?

Hi! Thank you for using gorcon!
Please tell more about you request. As far as I know HLDS/goldsrc uses the standard RCON protocol and this is already available in gorcon/rcon-cli.

I was unable to use this for connecting to RCON from goldsrc, but HLSW works. I'm currently using https://github.com/fant1kua/goldsrc-rcon-console and this is working. According to my packet captures, goldsrc RCON uses UDP while source RCON uses TCP

I will check and search for the specification of this protocol. I think it will be possible to implement it, but so far I don't have enough information.

@elitetheespeon Could you please suggest which game is using this and give examples of commands and their responses?

authors: elitetheespeon outdead

repo: gorcon/rcon-cli


text:
create packages with fpm

See: https://www.reddit.com/r/golang/comments/5l3i9b/deliver_go_binaries_as_fast_and_easy_as_possible/dbsrx16/

yeah, only thought on using fpm vs scaffolding some rpm spec templates is that fpm would add a whole other language runtime dependency to the mix. stealing it's brainjuice for packaging and just calling rpmtools directly would eliminate the need for keeping yet another ruby runtime around (which i don't particularly mind). another example would be pleaserun, which could also generate systemd units, rc.d scripts, etc, but requires a ruby runtime to make it work.

https://github.com/dz0ny/cdeb :) Needs a bit of work, currently only naive approach is supported (via data directory)

Adding link to fpm directly instead of redirecting through reddit link

@sairam I think the reddit link is to give context for the issue

For everyone interested, please check #109 =D

repo: goreleaser/releaser


text:
using big.Int as backing type

Hello all!
I am wondering about the best way to go about using big.Int or big.Float as the backing type for a tensor.
data := make([]*big.Int, 4)
data[0] = big.NewInt(0)
data[1] = big.NewInt(1)
data[2] = big.NewInt(2)
data[3] = big.NewInt(3)

a := tensor.New(tensor.WithShape(2, 2), tensor.WithBacking(data))
b := tensor.New(tensor.WithShape(2, 2), tensor.WithBacking(data))

works fine, but you cannot do
c, err := a.Mul(b)

because the type is not a member of Number.
I browsed the docs for a while and it looks like I could support this by creating an engine that implements Muler.  But I would have to do this for a bunch of ops I want, and again for big.Float.
I may be wrong but I feel like I would get a lot of this for free if I could tell tensor how two big.Int's should be multiplied. e.g. return big.NewInt(0).Mul(a,b)
I am fairly new to golang so maybe this is a dumb question, but is there a way to do this?
Is there a more recommended way to go about this?
Thanks!

I browsed the docs for a while and it looks like I could support this by creating an engine that implements Muler.

That's the only way to.

type BigIntEngine struct {
    tensor.StdEng
}

func (e *BigIntEngine) Mul(a, b tensor.Tensor, opts ...tensor.FuncOpt) (retVal tensor.Tensor, err error) {
swtich a.Dtype() {
    case BigInt:
        dataA := a.Data().([]*big.Int)
        dataB := b.Data().([]*big.Int)
        for i, v := range dataA {
              dataA[i] = v.Mul(dataB[i])
        }
}
}

I may be wrong but I feel like I would get a lot of this for free if I could tell tensor how two big.Int's should be multiplied. e.g. return big.NewInt(0).Mul(a,b)

Interesting issue you brought up. Very early versions of gorgonia supported this. It turned out tho be a bad idea because the compiler was unable to perform its optimizations dynamically. Therefore function calls became the bottleneck

Okay thanks a lot for the info!
Off-topic for this issues but I have one follow-up and then I will close this issue.  I implemented an engine that does the ops needed for my use-case.  Regarding MatMul, which provides a tensor you should modify.  If you MatMul two tensors that implement a custom tensor, the passed prealloc tensor doesn't use the same engine that those two tensors used.  Is there any way to change the engine or specify that the prealloc tensor should use a certain engine?  I implemented a copy to change the engine which basically copies the backing data and makes a new tensor using my engine but that seems inefficient.
Thanks a lot for your support!

I'm not entirely sure what you meant. I see two possible interpretations of your question:
Interpretation 1
Did you mean when doing tensor.MatMul(a, b), the result doesn't have the same engine as a or b ? If so, that's indeed a missing feature, and if you want, feel free to make a pull request. The line to add is this:
retVal.e = t.e

This line needs to be added:

here
here
here

If you don't want to make a PR, it'll be in the next version of Gorgonia (v0.9.0), which is at this point seemingly permanently 2 weeks away.
Interpretation 2
You were trying to do tensor.MatMul(a, b, tensor.WithPrealloc(prealloc)). Of which, the solution is to simply do this: tensor.WithEngine(MyEngine{})(prealloc) which changes the engine for prealloc

all good?

yes thanks!

authors: bendecoste chewxy

repo: gorgonia/tensor


text:
Resource refactor

There was a bit of unnecessary repetition in the resources around generating urls for api calls. It also seems to make sense to set the API version in one place, and use a variable, instead of hard-coding it into the url strings.
I also figured it made sense to make resources produce objects of the resource type, instead of having everything return ShippoObject objects. This way I could wire something up like 'refresh' so you don't need to necessarily re-retrieve an object to update its values. Same thing with 'get_rates' for a shipment - you should be able to get the rates by asking the instance for them directly.
I'm not sure the 'api_key' needs to be passed around as much as it does, but I figure I would leave that for another time and wait to see if there's a need for it.
I piggy backed this branch onto the other PEP8 changes so I wouldn't have to work around formatting and future merge conflicts that would need to be resolved - that is if you accept the original PR.
I couldn't really test all these changes since the tests were already broken. The tests should be fixed in my other PR, so I can address broken tests if those changes get accepted.

@SteveByerly Tks for the PRs. I am merging them right now into a helper branch. I will fix the tests and will deploy over the weekend.

Awesome! Sorry for not seeing your note and fixing the path.
Let me know if you have any feedback on the changes.

@SteveByerly just to be sure. I started merging #5 in a branch-helper. I also need to merge #7 after right ?

Yeah, #7 could be merged in afterwards. I didn't touch the tests on this PR because there were so many changes to the tests in #5 that I didn't want to duplicate or clobber anything, while keeping the scope of the changes separate.
After you merge, I'd be happy to go back in and update any tests that no longer pass.

authors: SteveByerly mnowik

repo: goshippo/shippo-python-client


text:
Build fails with GTK 3.22

I'm running on debian, with GTK packages:
$ dpkg -l libgtk-3\*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                              Version               Architecture          Description
+++-=================================-=====================-=====================-========================================================================
ii  libgtk-3-0:amd64                  3.22.11-1             amd64                 GTK+ graphical user interface library
ii  libgtk-3-bin                      3.22.11-1             amd64                 programs for the GTK+ graphical user interface library
ii  libgtk-3-common                   3.22.11-1             all                   common files for the GTK+ graphical user interface library
ii  libgtk-3-dev:amd64                3.22.11-1             amd64                 development files for the GTK+ library

The build fails as follows:
$ go get -v -tags gtk_3_22 github.com/gotk3/gotk3/gtk
github.com/gotk3/gotk3/glib
github.com/gotk3/gotk3/cairo
github.com/gotk3/gotk3/gdk
github.com/gotk3/gotk3/pango
github.com/gotk3/gotk3/gtk
# github.com/gotk3/gotk3/gtk
cgo-gcc-prolog: In function ‘_cgo_ec24e68943f7_Cfunc_gtk_widget_override_background_color’:
cgo-gcc-prolog:305:2: warning: ‘gtk_widget_override_background_color’ is deprecated [-Wdeprecated-declarations]
In file included from /usr/include/gtk-3.0/gtk/gtkapplication.h:27:0,
                 from /usr/include/gtk-3.0/gtk/gtkwindow.h:33,
                 from /usr/include/gtk-3.0/gtk/gtkdialog.h:32,
                 from /usr/include/gtk-3.0/gtk/gtkaboutdialog.h:30,
                 from /usr/include/gtk-3.0/gtk/gtk.h:31,
                 from ../../go/src/github.com/gotk3/gotk3/gtk/gtk_since_3_20.go:8:
/usr/include/gtk-3.0/gtk/gtkwidget.h:1148:14: note: declared here
 void         gtk_widget_override_background_color (GtkWidget     *widget,
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# github.com/gotk3/gotk3/gtk
cgo-gcc-prolog: In function ‘_cgo_ec24e68943f7_Cfunc_gtk_widget_override_font’:
cgo-gcc-prolog:617:2: warning: ‘gtk_widget_override_font’ is deprecated [-Wdeprecated-declarations]
In file included from /usr/include/gtk-3.0/gtk/gtkapplication.h:27:0,
                 from /usr/include/gtk-3.0/gtk/gtkwindow.h:33,
                 from /usr/include/gtk-3.0/gtk/gtkdialog.h:32,
                 from /usr/include/gtk-3.0/gtk/gtkaboutdialog.h:30,
                 from /usr/include/gtk-3.0/gtk/gtk.h:31,
                 from ../../go/src/github.com/gotk3/gotk3/gtk/label.go:6:
/usr/include/gtk-3.0/gtk/gtkwidget.h:1153:14: note: declared here
 void         gtk_widget_override_font             (GtkWidget                  *widget,
              ^~~~~~~~~~~~~~~~~~~~~~~~
# github.com/gotk3/gotk3/gtk
../../go/src/github.com/gotk3/gotk3/gtk/gtk_since_3_20.go:66: cannot use (*C.gchar)(cstr) (type *C.gchar) as type *C.char in argument to func literal
../../go/src/github.com/gotk3/gotk3/gtk/gtk_since_3_20.go:71: cannot use (func literal)(v.native()) (type *C.char) as type *C.gchar in argument to stringReturn
../../go/src/github.com/gotk3/gotk3/gtk/gtk_since_3_20.go:190: cannot use (*C.gchar)(cstr) (type *C.gchar) as type *C.char in argument to func literal
../../go/src/github.com/gotk3/gotk3/gtk/gtk_since_3_20.go:195: cannot use (func literal)(v.native()) (type *C.char) as type *C.gchar in argument to stringReturn
../../go/src/github.com/gotk3/gotk3/gtk/gtk_since_3_20.go:202: cannot use (*C.gchar)(cstr) (type *C.gchar) as type *C.char in argument to func literal
../../go/src/github.com/gotk3/gotk3/gtk/gtk_since_3_20.go:207: cannot use (func literal)(v.native()) (type *C.char) as type *C.gchar in argument to stringReturn
../../go/src/github.com/gotk3/gotk3/gtk/gtk_since_3_20.go:212: cannot use _Cfunc_CString(color) (type *C.char) as type *C.gchar in argument to _Cfunc_gdk_rgba_parse

The behavior is the same with and without -tags gtk_3_22.

Same here on up-to-date Msys64 on Windows.

@SMerrony does https://github.com/gotk3/gotk3/pull/284 work for you?

@nilclass  - No it doesn't seem to make any difference.  The errors (warnings actually) are about deprecated functions so I wouldn't expect that PR to be relevant.

Just ran into this myself
Fedora 29
gtk3-devel.x86_64 3.24.1 (3.24.1-1.fc29)
cairo-devel.x86_64 1.16.0 (1.16.0-1.fc29)
glib-devel.x86_64 1.2.10 (1:1.2.10-53.fc29)

I'm seeing this on Arch when trying to build the simple example in the README, which may be similar (except that I'm on 3.24)?
/usr/bin/ld: $WORK/b035/_x002.o: undefined reference to symbol 'g_value_get_enum'
/usr/bin/ld: /usr/lib/libgobject-2.0.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

$ pacman -Q gtk3
gtk3 3.24.2+7+g43aeb52b73-1

@SamWhited In your case it just can't find the library I'd say. Probably not a gotk3 bug though, but some problem with your setup.

@SamWhited I'm having the same issue (also Arch). Have you found any solution?

@akarl no, I used Rust and gtk-rs for the project instead; I wanted Go for another unrelated library, but Rust has better C integration and the project needs to be in GTK3 so ¯\_(ツ)_/¯

authors: Bios-Marcel SMerrony SamWhited akarl nilclass utahcon


text:
added some detail about enabling  renderscripts

For those like me who would get confused how to enable renderscripts

Thank you @dmsherazi !
I think
Enable renderscript

Open the build.gradle file in the app folder of your application module. Add the following RenderScript settings to the file in defaultConfig:

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 23

        renderscriptTargetApi 22
        renderscriptSupportModeEnabled true

    }
}

is Perfect.
Please delete below ?
  renderscriptTargetApi 22
  renderscriptSupportModeEnabled true

 Here is an example how it looks

done!

thx!!

authors: dmsherazi gotokatsuya

repo: gotokatsuya/BlurredGridMenu


text:
Excluding directory from coverage

Hi there, I'm using ionic for our app and I can't seem to exclude the www/libs/ folder for the coverage. Its covering js files inside the "lib" folder. The directory structure of ionic is www/libs and www/js where "js" is the main src js files but needs the lib folder to run the app.
I only wanted to get coverage on the www/js folder, is it possible? I tried using env: coverage APP_DIR..: '../intrumented/www/js/' but its not working.
My current Gruntfile.js

copy: {
            'instrument': {
                files: [{
                        src: ['www/**/*', '!www/**/*.js'],
                        dest: 'instrumented/'
                    }]
            }
        },
        instrument: {
            files: 'www/**/*.js',
            options: {
                basePath: "instrumented"
            }
        },

Thanks in advance!

I have no idea on what the grunt tasks do. Please raise this issue with whoever has written the grunt task. istanbul gives you options to include and exclude directories.

Just adding the solution I found. Thanks
http://chawi3.com/2015/02/16/grunt-protractor-coverage-exclude-files-or-directory-angularjs/

authors: emascarinas gotwarlost

repo: gotwarlost/istanbul


text:
Service worker with Google Workbox

This installs a service worker on the site. Service workers allow our users to visit the site once and return to the site if they are offline.

[x] Bump cuttlebelle to latest, fix babel ...spread issues
[x] Offline GA tracking
[x] Doesn't load on developer environments
[ ] Notify users of asset updates ( can be done by generating hashes on assets or installing push notifications )

Preview: https://designsystem-featureservice-worker-test.apps.y.cld.gov.au/

In order to do this effectively we have some problems that need to be addressed.
Firstly, the current site deployment is a custom express.js server deployment, the service worker implementation would be simpler to implement if can control the cache headers for our static site files.
Another option is to keep the current site setup but to write some integrations with cuttlebelle so that we can create an asset manifest of the static site files.
Why is that needed? In order to add a service worker we need a way to force update a users content, this can be on a timer, hamburger menu notification or on page load when online. Cuttlebelle doesn't create unique hashes for the static site assets so this needs to be created so that we can uniquely control the status of the index.html files.

repo: govau/design-system-site


text:
🛑 Mobile Application APIs is down

In 14e9af3, Mobile Application APIs (https://ritamdigital.org/services/ritam/api/posts/top-headlines/tag/top-stories/editor) was down:

HTTP code: 500
Response time: 1078 ms

Resolved: Mobile Application APIs is back up in 5f7d781 after 21 minutes.

repo: govindbhardwaj/monitor-ritam


text:
Bring example project in to govuk-react

Now this is a monorepo I think it may make sense to have packages/example being the govuk-react-example project.
Lerna lets you import another repo keeping commit history, we should probably import using this.

Blocked by
https://github.com/facebook/create-react-app/issues/1333

planning to make this an ExampleApplication component that doesn't use create-react-app, but can be loaded in to storybook and cypress

repo: govuk-react/govuk-react


text:
Unbind C-a via .tmux.conf.local

Hi,
How can I disable the GNU-Screen compatible prefix via .tmux.conf.local?
Thanks

set -gu prefix2
unbind C-a

Thanks!

Sorry. I know this has been closed, but the solution from @gpakosz doesn't work in my tmux. Any idea?
Ubuntu 16.04
tmux 2.1

I tried to use those settings to disable C-a prefix on tmux 1.9 (on a server, which means I can't upgrade my tmux version), and I get the following:

Can't unset global option: prefix2.

How can I do?

I'm sorry this configuration doesn't support tmux 1.9.

For others arriving here via Internet search:
set -gu prefix2
unbind C-a

from https://github.com/gpakosz/.tmux/issues/53#issuecomment-276544577 works for me on tmux v3.1 and v3.2.

authors: bubble-joe gpakosz hqythu miguno nblondiau seagle0128


text:
possible bug in src/windows/patch_functions.cc

Originally reported on Google Code with ID 664
LibcInfo::PopulateWindowsFn() in src/windows/patch_functions.cc
has this code to deal with multiple modules using the same symbol:

  // There's always a chance that our module uses the same function
  // as another module that we've already loaded.  In that case, we
  // need to set our windows_fn to NULL, to avoid double-patching.
  for (int ifn = 0; ifn < kNumFunctions; ifn++) {
    for (int imod = 0;
         imod < sizeof(g_module_libcs)/sizeof(*g_module_libcs);  imod++) {
      if (g_module_libcs[imod]->is_valid() &&
          this->windows_fn(ifn) == g_module_libcs[imod]->windows_fn(ifn)) {
        windows_fn_[ifn] = NULL;
      }
    }
  }

I am not sure this works.  An earlier line sets windows_fn_:

      windows_fn_[i] = PreamblePatcher::ResolveTarget(fn);

The problem is that ResolveTarget() chases JMP instructions.  If the
function appeared in an earlier module, it has been patched, and its
first instruction is now a jump to the corresponding
LibcInfoWithPatchFunctions<T>::Perftools_XXX().  So windows_fn_[i]
in the current module gets set to the address of that, but in the
loop you are comparing it with the address of the original Windows
function.

This seems to be the cause of a crash in a program linked with with
libtcmalloc_minimal.  PopulateWindowsFn() gets called thrice during
initialization: for MSVCRT, then MSVCR100, and finally the main
executable.  In the ModuleEntryCopy argument for the last call, the
addresses of malloc(), free(), realloc(), calloc(), _msize(), and
_expand() are the same as for MSVCR100.  The last entry in the
address array, for k_CallocCrt, is calloc() again.  But the eight
new/delete function addresses are different and seem to be in the
executable rather than the DLL.

For the functions that are repeated,
PreamblePatcher::RawPatchWithStub() patches
LibcInfoWithPatchFunctions<2>::Perftools_XXX().  It aborts because
Perftools__expand() is too short to patch.

This is a 32-bit executable running on 64-bit Windows 7.  The
compiler is VS 2010 SP1.  Only the 32-bit debug build of the program
fails.  The 32-bit release build works, as do the 64-bit debug and
release builds.  All builds are statically linked with the release
build of libtcmalloc_minimal, which is compiled with /MD.  I am
using gperftools 2.2.1, but even in 2.3.90 the code in src/windows/
is not significantly different.

Reported by manojkumar.total on 2015-01-07 15:38:41

__extend should be fixed. At least in common cases. See commit message for how and why. But this is not a proper fix since my attempts at more proper fix to "don't patch our own functions" I kept finding various corner cases. Proper fix would probably involve limiting "follow jumps" thingy and some sort of centralized caching facility to avoid trying to double patch same functions. But this code is already tricky and not entirely correct. So my thinking is we should go with detours and as part of that we make sure to patch things right.

repo: gperftools/gperftools


text:
Feature Request: Check that the sizeof VarDecl type matches struct field

I just ran into this tricky bug...
Here, we were using a uint64_t to represent the pointer of a vertex buffer, however, the type should have been gprt::Buffer, which is actually a uint64_t2.

The end result currently is a rather ambiguous "DEVICE LOST" error when trying to launch any kernel using these types.
It would be great to do some sort of compile time check that the type of the variable in the GPRTVarDecl list matches--in size at the very least--with the given GPRT_TYPE enumeration.

This issue is addressed with PR #56

repo: gprt-org/GPRT


text:
how do you use lit-gpt to work with Qwen?

I checked the documentation for lit-gpt on GitHub and found that it mentions lit-gpt does not support Qwen. So how do you use lit-gpt to work with Qwen?

hi, it support qwen now, you may check again.


text:
[REVIEW] Inner & Left Join API cleanup

Single column inner and left joins have been replaced with multi column data type agnostic function calls i.e. gdf_(inner/left)join(generic/i8/i16..) are replaced with gdf_(inner/left)_join.
Google Test and Python Tests have been changed to reflect the new API.

@nsakharnykh @mt-jones we have the bindings PR ready to go here: gpuopenanalytics/pygdf#203 so feel free to merge this when you're ready.

repo: gpuopenanalytics/libgdf


text:
[interop] Large integers passed as double on java call

I have an interop method:
public String createUri(String url, Map<String, ?> requestQueryParams) {

Then I do call from my JS code with this method:
util.createUri("http://test", {phone: 79131111111})

When java method called in the requestQueryParams the phone property is a double value.

Can I avoid them or it's expected behaviour\bug?
Graal version: ce 19.0.0
That looks like a bug.
Because now I need manually check values like this:
Value value = Value.asValue(requestQueryParams.get("phone"));
value.fitsInDouble() // true
value.fitsInLong() // true

fitsInLong should be first for me

JavaScript numbers are double-precision 64-bit numbers according to the specification. Java type that matches this definition is double. So, it is expected that you receive double number in a call that does not require any number conversion. If you passed JavaScript number to a Java method that expects long arguments than our Java-interoperability would attempt to convert the JavaScript number to long but there is no reason for such conversions when the argument of the corresponding Java method is Object.

@iamstolis thanks for answer.
Looks like the only way is to add some mapping to get expected result:
HostAccess.newBuilder()
            .targetTypeMapping(Long.class, Object.class, null, v -> v)
            .targetTypeMapping(Double.class, Object.class, null, BigDecimal::valueOf)
            .build();

But I'm not sure is that convenient for all cases, may be it's better to make some enhancements in standard mappings

authors: iamstolis mdsina

repo: graalvm/graaljs


text:
Spring dependency-management-plugin failure on 6.8.0-rc1

First of all, let me emphasize, that this is a failure in spring dependency plugin. But I'm not an expert in gradle to understand the deep reason of it, is it a fault of gradle or spring-dependency-management (or even kotlin library). I know only that it was working on gradle 6.7. Moreover, the spring plugin is widely used, while 6.8 is still on the stage of release candidate and there is a chance to address it in gradle (sure, if the root of problem is wrong gradle behaviour).
https://github.com/spring-gradle-plugins/dependency-management-plugin/issues/285

Gradle build that has dependency to org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm/1.4.1 and id("io.spring.dependency-management") version "1.0.10.RELEASE" plugin fails with exception on gradle 6.8-rc1
Expected Behavior

Success build (it's success on previous gradle 6.7.1)
Current Behavior

> Task :compileKotlin FAILED
Errors occurred while build effective model from /Users/morph/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm/1.4.1/936067d1e0195f638396f60e71da745bb14a35ca/kotlinx-coroutines-core-jvm-1.4.1.jar:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileKotlin'.
> java.lang.NullPointerException (no error message)

Context

Steps to Reproduce

Create a project via spring initializr with options ( shared ):

Gradle
Kotlin
2.4.0
Java 8
Add Spring Reactive Web

Upgrade gradle version via:
./gradlew wrapper --gradle-version=6.8-rc-1
Execute the build:
./gradlew build
Your Environment

Build scan URL:
macOS 10.15.7
gradle wrapper distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-rc-1-bin.zip
$JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home

Some more details:
Detailed full stack trace:
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':compileKotlin'.
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:38)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:411)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:398)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:391)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:377)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: java.lang.NullPointerException
        at io.spring.gradle.dependencymanagement.internal.maven.MavenPomResolver.createPom(MavenPomResolver.java:135)
        at io.spring.gradle.dependencymanagement.internal.maven.MavenPomResolver.createPoms(MavenPomResolver.java:128)
        at io.spring.gradle.dependencymanagement.internal.maven.MavenPomResolver.resolvePomsLeniently(MavenPomResolver.java:79)
        at io.spring.gradle.dependencymanagement.internal.ExclusionResolver.resolveExclusions(ExclusionResolver.java:78)
        at io.spring.gradle.dependencymanagement.internal.ExclusionConfiguringAction.findExcludedDependencies(ExclusionConfiguringAction.java:137)
        at io.spring.gradle.dependencymanagement.internal.ExclusionConfiguringAction.applyMavenExclusions(ExclusionConfiguringAction.java:86)
        at io.spring.gradle.dependencymanagement.internal.ExclusionConfiguringAction.execute(ExclusionConfiguringAction.java:81)
        at io.spring.gradle.dependencymanagement.internal.ExclusionConfiguringAction.execute(ExclusionConfiguringAction.java:50)
        at org.gradle.configuration.internal.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:100)
        at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:95)
        at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:83)
        at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:43)
        at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:245)
        at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:157)
        at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:61)
        at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:346)
        at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:249)
        at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:141)
        at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
        at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
        at com.sun.proxy.$Proxy47.beforeResolve(Unknown Source)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.performPreResolveActions(DefaultConfiguration.java:756)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$400(DefaultConfiguration.java:148)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$1.call(DefaultConfiguration.java:635)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$1.call(DefaultConfiguration.java:628)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired(DefaultConfiguration.java:628)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.lambda$resolveExclusively$4(DefaultConfiguration.java:608)
        at org.gradle.api.internal.project.DefaultProjectStateRegistry$CalculatedModelValueImpl.update(DefaultProjectStateRegistry.java:376)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveExclusively(DefaultConfiguration.java:605)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveToStateOrLater(DefaultConfiguration.java:592)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$1900(DefaultConfiguration.java:148)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$SelectedArtifactsProvider.getValue(DefaultConfiguration.java:1302)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$SelectedArtifactsProvider.getValue(DefaultConfiguration.java:1292)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getSelectedArtifacts(DefaultConfiguration.java:1359)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.visitContents(DefaultConfiguration.java:1351)
        at org.gradle.api.internal.file.AbstractFileCollection.getFiles(AbstractFileCollection.java:126)
        at org.gradle.api.internal.file.AbstractFileCollection.iterator(AbstractFileCollection.java:172)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.iterator(DefaultConfiguration.java:491)
        at org.jetbrains.kotlin.gradle.utils.FileUtilsKt.toSortedPathsArray(fileUtils.kt:59)
        at org.jetbrains.kotlin.gradle.internal.AbstractKotlinCompileArgumentsContributor.setupPlugins$kotlin_gradle_plugin(CompilerArgumentsContributor.kt:75)
        at org.jetbrains.kotlin.gradle.internal.AbstractKotlinCompileArgumentsContributor.contributeArguments(CompilerArgumentsContributor.kt:71)
        at org.jetbrains.kotlin.gradle.internal.KotlinJvmCompilerArgumentsContributor.contributeArguments(CompilerArgumentsContributor.kt:97)
        at org.jetbrains.kotlin.gradle.internal.KotlinJvmCompilerArgumentsContributor.contributeArguments(CompilerArgumentsContributor.kt:80)
        at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.setupCompilerArgs(Tasks.kt:491)
        at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.setupCompilerArgs(Tasks.kt:455)
        at org.jetbrains.kotlin.gradle.internal.CompilerArgumentAware$DefaultImpls.setupCompilerArgs$default(CompilerArgumentAware.kt:40)
        at org.jetbrains.kotlin.gradle.internal.CompilerArgumentAwareKt.prepareCompilerArguments(CompilerArgumentAware.kt:44)
        at org.jetbrains.kotlin.gradle.internal.CompilerArgumentAwareKt.prepareCompilerArguments$default(CompilerArgumentAware.kt:43)
        at org.jetbrains.kotlin.gradle.internal.CompilerArgumentAware$DefaultImpls.getFilteredArgumentsMap(CompilerArgumentAware.kt:37)
        at org.jetbrains.kotlin.gradle.internal.CompilerArgumentAwareWithInput$DefaultImpls.getFilteredArgumentsMap(CompilerArgumentAware.kt:61)
        at org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompileTool.getFilteredArgumentsMap(Tasks.kt:57)
        at org.jetbrains.kotlin.gradle.tasks.KotlinCompile_Decorated.getFilteredArgumentsMap(Unknown Source)
        at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$BeanPropertyValue$1$1.create(AbstractNestedRuntimeBeanNode.java:77)
        at org.gradle.internal.deprecation.DeprecationLogger.whileDisabled(DeprecationLogger.java:236)
        at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$BeanPropertyValue$1.get(AbstractNestedRuntimeBeanNode.java:73)
        at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:167)
        at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$BeanPropertyValue.call(AbstractNestedRuntimeBeanNode.java:133)
        at org.gradle.api.internal.tasks.properties.AbstractValidatingProperty.validate(AbstractValidatingProperty.java:39)
        at org.gradle.api.internal.tasks.properties.DefaultTaskProperties.validate(DefaultTaskProperties.java:193)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.validate(ExecuteActionsTaskExecuter.java:431)
        at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:50)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:88)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:88)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
        at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:46)
        at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:34)
        at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:43)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution$3.withWorkspace(ExecuteActionsTaskExecuter.java:286)
        at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:43)
        at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:33)
        at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:40)
        at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:30)
        at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:54)
        at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:40)
        at org.gradle.internal.execution.impl.DefaultExecutionEngine.execute(DefaultExecutionEngine.java:41)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:183)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:183)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:173)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:411)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:398)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:391)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:377)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)

In gradle debugger found more details:
io.spring.gradle.dependencymanagement.org.apache.maven.model.building.ModelBuildingException: 1 problem was encountered while building the effective model
[FATAL] Non-parseable POM /Users/morph/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm/1.4.1/936067d1e0195f638396f60e71da745bb14a35ca/kotlinx-coroutines-core-jvm-1.4.1.jar: only whitespace content allowed before start tag and not P (position: START_DOCUMENT seen P... @1:1)  @ line 1, column 1

	at io.spring.gradle.dependencymanagement.org.apache.maven.model.building.DefaultModelProblemCollector.newModelBuildingException(DefaultModelProblemCollector.java:195)
	at io.spring.gradle.dependencymanagement.org.apache.maven.model.building.DefaultModelBuilder.readModel(DefaultModelBuilder.java:499)
	at io.spring.gradle.dependencymanagement.org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:261)
	at io.spring.gradle.dependencymanagement.org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:232)
	at io.spring.gradle.dependencymanagement.internal.maven.EffectiveModelBuilder.buildModel(EffectiveModelBuilder.java:68)
	at io.spring.gradle.dependencymanagement.internal.maven.MavenPomResolver.createPom(MavenPomResolver.java:134)
	at io.spring.gradle.dependencymanagement.internal.maven.MavenPomResolver.createPoms(MavenPomResolver.java:128)
	at io.spring.gradle.dependencymanagement.internal.maven.MavenPomResolver.resolvePomsLeniently(MavenPomResolver.java:79)
	at io.spring.gradle.dependencymanagement.internal.ExclusionResolver.resolveExclusions(ExclusionResolver.java:78)
	at io.spring.gradle.dependencymanagement.internal.ExclusionConfiguringAction.findExcludedDependencies(ExclusionConfiguringAction.java:137)
	at io.spring.gradle.dependencymanagement.internal.ExclusionConfiguringAction.applyMavenExclusions(ExclusionConfiguringAction.java:86)
	at io.spring.gradle.dependencymanagement.internal.ExclusionConfiguringAction.execute(ExclusionConfiguringAction.java:81)
	at io.spring.gradle.dependencymanagement.internal.ExclusionConfiguringAction.execute(ExclusionConfiguringAction.java:50)
	at org.gradle.configuration.internal.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:100)
	at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:95)
	at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:83)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:43)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:245)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:157)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:61)
	at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:346)
	at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:249)
	at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:141)
	at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at com.sun.proxy.$Proxy36.beforeResolve(Unknown Source)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.performPreResolveActions(DefaultConfiguration.java:756)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$400(DefaultConfiguration.java:148)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$1.call(DefaultConfiguration.java:635)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$1.call(DefaultConfiguration.java:628)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired(DefaultConfiguration.java:628)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.lambda$resolveExclusively$4(DefaultConfiguration.java:608)
	at org.gradle.api.internal.project.DefaultProjectStateRegistry$CalculatedModelValueImpl.update(DefaultProjectStateRegistry.java:376)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveExclusively(DefaultConfiguration.java:605)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveToStateOrLater(DefaultConfiguration.java:592)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$1900(DefaultConfiguration.java:148)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$SelectedArtifactsProvider.getValue(DefaultConfiguration.java:1302)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$SelectedArtifactsProvider.getValue(DefaultConfiguration.java:1292)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getSelectedArtifacts(DefaultConfiguration.java:1359)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.visitContents(DefaultConfiguration.java:1351)
	at org.gradle.api.internal.file.AbstractFileCollection.getFiles(AbstractFileCollection.java:126)
	at org.gradle.api.internal.file.AbstractFileCollection.iterator(AbstractFileCollection.java:172)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.iterator(DefaultConfiguration.java:491)
	at org.jetbrains.kotlin.gradle.utils.FileUtilsKt.toSortedPathsArray(fileUtils.kt:59)
	at org.jetbrains.kotlin.gradle.internal.AbstractKotlinCompileArgumentsContributor.setupPlugins$kotlin_gradle_plugin(CompilerArgumentsContributor.kt:75)
	at org.jetbrains.kotlin.gradle.internal.AbstractKotlinCompileArgumentsContributor.contributeArguments(CompilerArgumentsContributor.kt:71)
	at org.jetbrains.kotlin.gradle.internal.KotlinJvmCompilerArgumentsContributor.contributeArguments(CompilerArgumentsContributor.kt:97)
	at org.jetbrains.kotlin.gradle.internal.KotlinJvmCompilerArgumentsContributor.contributeArguments(CompilerArgumentsContributor.kt:80)
	at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.setupCompilerArgs(Tasks.kt:491)
	at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.setupCompilerArgs(Tasks.kt:455)
	at org.jetbrains.kotlin.gradle.internal.CompilerArgumentAware$DefaultImpls.setupCompilerArgs$default(CompilerArgumentAware.kt:40)
	at org.jetbrains.kotlin.gradle.internal.CompilerArgumentAwareKt.prepareCompilerArguments(CompilerArgumentAware.kt:44)
	at org.jetbrains.kotlin.gradle.internal.CompilerArgumentAwareKt.prepareCompilerArguments$default(CompilerArgumentAware.kt:43)
	at org.jetbrains.kotlin.gradle.internal.CompilerArgumentAware$DefaultImpls.getFilteredArgumentsMap(CompilerArgumentAware.kt:37)
	at org.jetbrains.kotlin.gradle.internal.CompilerArgumentAwareWithInput$DefaultImpls.getFilteredArgumentsMap(CompilerArgumentAware.kt:61)
	at org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompileTool.getFilteredArgumentsMap(Tasks.kt:57)
	at org.jetbrains.kotlin.gradle.tasks.KotlinCompile_Decorated.getFilteredArgumentsMap(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$BeanPropertyValue$1$1.create(AbstractNestedRuntimeBeanNode.java:77)
	at org.gradle.internal.deprecation.DeprecationLogger.whileDisabled(DeprecationLogger.java:236)
	at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$BeanPropertyValue$1.get(AbstractNestedRuntimeBeanNode.java:73)
	at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:167)
	at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$BeanPropertyValue.call(AbstractNestedRuntimeBeanNode.java:133)
	at org.gradle.api.internal.tasks.properties.AbstractValidatingProperty.validate(AbstractValidatingProperty.java:39)
	at org.gradle.api.internal.tasks.properties.DefaultTaskProperties.validate(DefaultTaskProperties.java:193)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.validate(ExecuteActionsTaskExecuter.java:431)
	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:50)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:88)
	at java.util.Optional.orElseGet(Optional.java:267)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:88)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
	at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:46)
	at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:34)
	at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:43)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution$3.withWorkspace(ExecuteActionsTaskExecuter.java:286)
	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:43)
	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:33)
	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:40)
	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:30)
	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:54)
	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:40)
	at org.gradle.internal.execution.impl.DefaultExecutionEngine.execute(DefaultExecutionEngine.java:41)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:183)
	at java.util.Optional.orElseGet(Optional.java:267)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:183)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:173)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:411)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:398)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:391)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:377)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
	at java.lang.Thread.run(Thread.java:748)```

Investigated it a bit more. The mistake is somewhere around `MavenPomResolver.resolvePomsLeniently`. The call `createConfiguration(pomReferences).getResolvedConfiguration()` returns set of dependencies, that contains duplicated artifact: one is pom, another is jar. Jar is not expected in `DefaultModelBuilder`, that's why there is an exception about bad XML:
![Screen Shot 2020-11-26 at 19 57 33](https://user-images.githubusercontent.com/2844909/100377139-c3163a80-3021-11eb-9f88-b2a936c23ab6.png)

Investigated it a bit more. The mistake is somewhere around MavenPomResolver.resolvePomsLeniently. The call createConfiguration(pomReferences).getResolvedConfiguration() returns set of dependencies, that contains duplicated artifact: one is pom, another is jar. Jar is not expected in DefaultModelBuilder, that's why there is an exception about bad XML:

Thanks for trying out RCs and for doing such an analysis already. It should help identify the root cause.

This issue is caused by the fix for #14017 done in #14447.
The fix is applied to widely. It should not follow dependencies when the request is for a specific artifact.

Works fine now, thanks

authors: ljacomet seregamorph

repo: gradle/gradle


text:
Fix Software Model LanguageSourceSet.generatedBy

Expected Behavior

The proposed solution has 2 step:
1- Change the generatedBy method signature to take a task path and remove the finalize rule that automatically set the set source directories. It leaves the synchronization of the source set directories (both headers and sources) with the task to the user.
2- Add a rule to automatically transpose the source set directories (both headers and sources) to the task. It is the opposite of what is currently done with minor differences and complication.
Current Behavior

Right now, generatedBy takes a Task instance [1] which is where the problem comes from in the model [2]. The generator task is handled in the finalize rule configureGeneratedSourceSets inside NativeComponentModelRule [3]. This rule takes information from the task (properties sourceDir and headerDir) and assign them to the source set for the source and header directories. Hence why a Task instance is needed.
Context

See gradle-dev message: https://groups.google.com/d/topic/gradle-dev/4qOhHw14Eso/discussion
Open Issues

Step 1 could introduce a breaking change. There is a way we could have both solutions work at the same time, but there would have two different behavior. We could introduce a deprecation warning to help with the migration the new solution which would prevent breaking the build. What should be the goal: deprecation or breaking change?
Step 2 is potentially complex to implement because of the corner cases. A source set is more complex as it can contain several sources and header directories. Those doesn't map well with the current generator task idea where you only have one directory for each type (source and header). We could:

Limit source set with a generator task to only a single source and header directory which should work in most case, but I can see that some build out there may not be strictly following this practice.
Map all every source and header directories inside the generator task and let the user deal with this which could potentially be annoying.
Only do step 1 and leave the synchronization between the source set and the generator task to the user.

Reference
[1] https://github.com/gradle/gradle/blob/master/subprojects/platform-base/src/main/java/org/gradle/language/base/LanguageSourceSet.java#L38
[2] https://discuss.gradle.org/t/limitation-of-generatedby-in-native-software-model/17321
[3] https://github.com/gradle/gradle/blob/master/subprojects/platform-native/src/main/java/org/gradle/nativeplatform/plugins/NativeComponentModelPlugin.java#L187

No additional work will be done on the software model plugins unless it's a blocker for current users. This is not a blocker so I'm closing this issue. Reopen on gradle/gradle-native.


text:
Error on publishing in artifactory When root composite project refers to included builds

Expected Behavior

When run gradle command :core:DeployDevelop should publish lib on artifactory
Current Behavior

We received the follow error: Included build /Documents/native-sdk-android/core has build path :core-architecture which is the same as included build /Documents/native-sdk-android/core
Context

We are not allow to publish libraries in artifactory

When we update gradle 5.4.1 to 6.6.1 and Gradle-Build-info-Extractor: 4.7.5 to 4.20.0. Our gradle script stop to work
Steps to Reproduce

Your Environment
artifactoryTasks.txt
deployTasks (1).txt

Build scan URL:

Thank you for your interest in Gradle!
This issue lacks information and/or a reproducer to track down the problem. Unless you provide that information over the next 7 days, this issue will be closed.

Did you follow the upgrade guide?

authors: BrenoJorri ljacomet