bdib is returning a spurious value

Code Sample, a copy-pastable example if possible
# Your code here, this should be a minimal reproducible example, see
import pdblp
import pandas
import datetime

con = pdblp.BCon(debug=False, port=8194, timeout=10000)
con.start()
df = con.bdib('IBOXUMAE MKIT Curncy', '2018-12-27T01:00:00', datetime.datetime.today() + datetime.timedelta(hours=15), 'TRADE',  1)[['close']]

This code returns as the last ticker a value that makes no sense. Current market is trading at 67.55 as of 15:43 pm GMT but the query returns as the most recent tick a value from the future at 19.22 GMT and a spread value of 62.
Expected Output
Expected output should include as the most recent tick a timestamp that is less than current time at GMT, not from the future
Version Information
0.1.8

I am not sure what the issue is but in bdib the end_datetime is a str but you are passing a datetime in your example. In addition, by posting an example with datetime.datetime.today() this becomes challenging to reproduce since it is dependent on the specific time a user has run this code. In addition you have not defined freq in your snippet
It would be helpful for you to display the minimal amount of information required to reproduce the issue, i.e. for intraday data only the most recent few bars instead of additional data back to 2018-12-27. In addition actually showing the small amount of data in df that looks spurious to you. Also setting debug=True can be helpful to get some idea about what the underlying blpapi messages look like, to ascertain whether this looks like an issue with blpapi or pdblp

Ok, I'll work on producing the proper Post in a few hours :)

Ok, so I incorporated all the remarks and ran the code. I know it looks awful but this is the output for the last day:
C:\Users\GFloresGonzalez\AppData\Local\Continuum\anaconda3\pythonw.exe C:/Users/GFloresGonzalez/.PyCharm2018.3/config/scratches/scratch.py
pdblp.pdblp:INFO:Event Type: 'SESSION_STATUS'
pdblp.pdblp:INFO:Message Received:
SessionConnectionUp = {
server = "localhost:8194"
encryptionStatus = "Clear"
}
pdblp.pdblp:INFO:Event Type: 'SESSION_STATUS'
pdblp.pdblp:INFO:Message Received:
SessionStarted = {
initialEndpoints[] = {
initialEndpoints = {
address = "localhost:8194"
}
}
}
pdblp.pdblp:INFO:Event Type: 'SERVICE_STATUS'
pdblp.pdblp:INFO:Message Received:
ServiceOpened = {
serviceName = "//blp/refdata"
}
pdblp.pdblp:INFO:Event Type: 'SERVICE_STATUS'
pdblp.pdblp:INFO:Message Received:
ServiceOpened = {
serviceName = "//blp/exrsvc"
}
pdblp.pdblp:INFO:Sending Request:
IntradayBarRequest = {
security = "IBOXUMAE MKIT Curncy"
eventType = TRADE
interval = 1
startDateTime = 2019-02-10T01:00:00
endDateTime = 2019-02-11T20:00:00
}
pdblp.pdblp:INFO:Event Type: 'RESPONSE'
pdblp.pdblp:INFO:Message Received:
IntradayBarResponse = {
barData = {
eidData[] = {
}
barTickData[] = {
barTickData = {
time = 2019-02-11T12:01:00.000
open = 65.076000
high = 67.267000
low = 65.076000
close = 67.267000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:03:00.000
open = 67.172000
high = 67.230000
low = 67.172000
close = 67.230000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:05:00.000
open = 67.209000
high = 67.209000
low = 67.179000
close = 67.179000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:08:00.000
open = 67.174000
high = 67.174000
low = 67.168000
close = 67.168000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:09:00.000
open = 67.163000
high = 67.163000
low = 67.156000
close = 67.156000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:10:00.000
open = 67.150000
high = 67.150000
low = 67.144000
close = 67.144000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:16:00.000
open = 67.138000
high = 67.138000
low = 67.046000
close = 67.046000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:19:00.000
open = 67.058000
high = 67.058000
low = 67.045000
close = 67.045000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:20:00.000
open = 67.033000
high = 67.033000
low = 66.989000
close = 66.989000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:21:00.000
open = 66.973000
high = 66.973000
low = 66.956000
close = 66.956000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:23:00.000
open = 66.963000
high = 66.969000
low = 66.963000
close = 66.969000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:26:00.000
open = 66.963000
high = 66.963000
low = 66.956000
close = 66.956000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:27:00.000
open = 66.959000
high = 66.966000
low = 66.959000
close = 66.966000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:28:00.000
open = 66.973000
high = 66.979000
low = 66.973000
close = 66.979000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:30:00.000
open = 66.990000
high = 66.993000
low = 66.990000
close = 66.993000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:31:00.000
open = 66.983000
high = 66.983000
low = 66.973000
close = 66.973000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:33:00.000
open = 66.970000
high = 66.970000
low = 66.967000
close = 66.967000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:35:00.000
open = 66.964000
high = 66.964000
low = 66.961000
close = 66.961000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:36:00.000
open = 66.977000
high = 66.989000
low = 66.977000
close = 66.989000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:38:00.000
open = 66.995000
high = 67.049000
low = 66.995000
close = 67.049000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:39:00.000
open = 67.055000
high = 67.061000
low = 67.055000
close = 67.061000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:40:00.000
open = 67.088000
high = 67.109000
low = 67.088000
close = 67.109000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:42:00.000
open = 67.115000
high = 67.121000
low = 67.115000
close = 67.121000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:46:00.000
open = 67.116000
high = 67.116000
low = 67.111000
close = 67.111000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:47:00.000
open = 67.106000
high = 67.106000
low = 67.101000
close = 67.101000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:51:00.000
open = 67.095000
high = 67.095000
low = 67.089000
close = 67.089000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:53:00.000
open = 67.068000
high = 67.068000
low = 67.046000
close = 67.046000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:54:00.000
open = 67.040000
high = 67.043000
low = 67.034000
close = 67.037000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:55:00.000
open = 67.020000
high = 67.020000
low = 67.003000
close = 67.003000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T12:57:00.000
open = 67.003000
high = 67.004000
low = 67.003000
close = 67.004000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:00:00.000
open = 67.005000
high = 67.005000
low = 66.993000
close = 66.993000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:01:00.000
open = 66.994000
high = 66.995000
low = 66.994000
close = 66.995000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:04:00.000
open = 66.985000
high = 66.985000
low = 66.975000
close = 66.977000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:06:00.000
open = 66.972000
high = 66.972000
low = 66.967000
close = 66.967000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:07:00.000
open = 66.956000
high = 66.956000
low = 66.945000
close = 66.950000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:08:00.000
open = 66.941000
high = 66.941000
low = 66.932000
close = 66.932000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:09:00.000
open = 66.928000
high = 66.928000
low = 66.925000
close = 66.925000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:13:00.000
open = 66.899000
high = 66.899000
low = 66.880000
close = 66.880000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:14:00.000
open = 66.875000
high = 66.875000
low = 66.870000
close = 66.870000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:15:00.000
open = 66.850000
high = 66.850000
low = 66.830000
close = 66.830000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:16:00.000
open = 66.825000
high = 66.825000
low = 66.820000
close = 66.820000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:20:00.000
open = 66.810000
high = 66.810000
low = 66.800000
close = 66.800000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:21:00.000
open = 66.795000
high = 66.797000
low = 66.788000
close = 66.788000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:23:00.000
open = 66.776000
high = 66.776000
low = 66.763000
close = 66.763000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:24:00.000
open = 66.755000
high = 66.755000
low = 66.747000
close = 66.747000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:26:00.000
open = 66.728000
high = 66.728000
low = 66.719000
close = 66.719000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:27:00.000
open = 66.708000
high = 66.708000
low = 66.691000
close = 66.691000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:31:00.000
open = 66.695000
high = 66.699000
low = 66.695000
close = 66.699000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:33:00.000
open = 66.703000
high = 66.707000
low = 66.700000
close = 66.700000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:34:00.000
open = 66.696000
high = 66.706000
low = 66.691000
close = 66.706000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:35:00.000
open = 66.718000
high = 66.730000
low = 66.718000
close = 66.730000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:38:00.000
open = 66.731000
high = 66.731000
low = 66.730000
close = 66.730000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:39:00.000
open = 66.722000
high = 66.722000
low = 66.714000
close = 66.714000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:44:00.000
open = 66.716000
high = 66.717000
low = 66.716000
close = 66.717000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:45:00.000
open = 66.721000
high = 66.724000
low = 66.721000
close = 66.724000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:46:00.000
open = 66.736000
high = 66.749000
low = 66.736000
close = 66.749000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:48:00.000
open = 66.753000
high = 66.768000
low = 66.753000
close = 66.768000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:49:00.000
open = 66.770000
high = 66.772000
low = 66.770000
close = 66.772000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:50:00.000
open = 66.769000
high = 66.782000
low = 66.769000
close = 66.782000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:51:00.000
open = 66.777000
high = 66.802000
low = 66.777000
close = 66.802000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:52:00.000
open = 66.793000
high = 66.793000
low = 66.785000
close = 66.785000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:53:00.000
open = 66.775000
high = 66.775000
low = 66.762000
close = 66.762000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:54:00.000
open = 66.767000
high = 66.767000
low = 66.746000
close = 66.746000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:57:00.000
open = 66.741000
high = 66.741000
low = 66.723000
close = 66.723000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T13:59:00.000
open = 66.716000
high = 66.716000
low = 66.710000
close = 66.710000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:01:00.000
open = 66.718000
high = 66.720000
low = 66.715000
close = 66.718000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:02:00.000
open = 66.723000
high = 66.728000
low = 66.723000
close = 66.728000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:04:00.000
open = 66.733000
high = 66.738000
low = 66.733000
close = 66.738000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:05:00.000
open = 66.737000
high = 66.740000
low = 66.737000
close = 66.740000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:06:00.000
open = 66.741000
high = 66.741000
low = 66.740000
close = 66.740000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:11:00.000
open = 66.742000
high = 66.744000
low = 66.742000
close = 66.744000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:14:00.000
open = 66.747000
high = 66.754000
low = 66.747000
close = 66.754000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:16:00.000
open = 66.760000
high = 66.766000
low = 66.760000
close = 66.766000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:18:00.000
open = 66.769000
high = 66.771000
low = 66.769000
close = 66.771000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:21:00.000
open = 66.763000
high = 66.778000
low = 66.763000
close = 66.778000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:24:00.000
open = 66.788000
high = 66.804000
low = 66.786000
close = 66.786000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:25:00.000
open = 66.794000
high = 66.814000
low = 66.794000
close = 66.814000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:31:00.000
open = 66.833000
high = 66.851000
low = 66.833000
close = 66.851000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:33:00.000
open = 66.865000
high = 66.879000
low = 66.865000
close = 66.879000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:35:00.000
open = 66.893000
high = 66.906000
low = 66.893000
close = 66.906000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:39:00.000
open = 66.944000
high = 66.981000
low = 66.944000
close = 66.981000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:40:00.000
open = 66.990000
high = 66.999000
low = 66.990000
close = 66.999000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:41:00.000
open = 67.005000
high = 67.011000
low = 67.005000
close = 67.011000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:44:00.000
open = 67.005000
high = 67.005000
low = 66.999000
close = 66.999000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:46:00.000
open = 66.995000
high = 66.995000
low = 66.991000
close = 66.991000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:50:00.000
open = 66.980000
high = 66.980000
low = 66.980000
close = 66.980000
volume = 0
numEvents = 2
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:51:00.000
open = 66.982000
high = 66.995000
low = 66.982000
close = 66.990000
volume = 0
numEvents = 9
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:53:00.000
open = 66.981000
high = 66.990000
low = 66.981000
close = 66.990000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:56:00.000
open = 67.018000
high = 67.063000
low = 67.018000
close = 67.063000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T14:57:00.000
open = 67.048000
high = 67.048000
low = 67.040000
close = 67.040000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:00:00.000
open = 67.046000
high = 67.055000
low = 67.042000
close = 67.042000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:01:00.000
open = 67.047000
high = 67.072000
low = 67.047000
close = 67.072000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:03:00.000
open = 67.094000
high = 67.158000
low = 67.094000
close = 67.158000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:04:00.000
open = 67.210000
high = 67.287000
low = 67.210000
close = 67.287000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:07:00.000
open = 67.312000
high = 67.410000
low = 67.312000
close = 67.410000
volume = 0
numEvents = 12
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:09:00.000
open = 67.398000
high = 67.398000
low = 67.385000
close = 67.385000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:10:00.000
open = 67.382000
high = 67.382000
low = 67.380000
close = 67.380000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:12:00.000
open = 67.386000
high = 67.393000
low = 67.386000
close = 67.393000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:13:00.000
open = 67.407000
high = 67.407000
low = 67.399000
close = 67.399000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:14:00.000
open = 67.409000
high = 67.419000
low = 67.409000
close = 67.419000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:15:00.000
open = 67.423000
high = 67.424000
low = 67.423000
close = 67.424000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:17:00.000
open = 67.429000
high = 67.434000
low = 67.417000
close = 67.417000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:19:00.000
open = 67.425000
high = 67.441000
low = 67.417000
close = 67.417000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:22:00.000
open = 67.421000
high = 67.421000
low = 67.402000
close = 67.413000
volume = 0
numEvents = 9
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:24:00.000
open = 67.397000
high = 67.400000
low = 67.397000
close = 67.400000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:26:00.000
open = 67.385000
high = 67.385000
low = 67.370000
close = 67.370000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:27:00.000
open = 67.360000
high = 67.360000
low = 67.326000
close = 67.326000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:28:00.000
open = 67.331000
high = 67.336000
low = 67.331000
close = 67.336000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:30:00.000
open = 67.346000
high = 67.356000
low = 67.346000
close = 67.356000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:32:00.000
open = 67.366000
high = 67.420000
low = 67.366000
close = 67.420000
volume = 0
numEvents = 9
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:33:00.000
open = 67.444000
high = 67.467000
low = 67.444000
close = 67.467000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:34:00.000
open = 67.491000
high = 67.515000
low = 67.491000
close = 67.515000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:38:00.000
open = 67.528000
high = 67.540000
low = 67.528000
close = 67.540000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:40:00.000
open = 67.549000
high = 67.558000
low = 67.549000
close = 67.557000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:41:00.000
open = 67.566000
high = 67.575000
low = 67.566000
close = 67.575000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:42:00.000
open = 67.575000
high = 67.575000
low = 67.560000
close = 67.560000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:43:00.000
open = 67.555000
high = 67.555000
low = 67.550000
close = 67.550000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:45:00.000
open = 67.539000
high = 67.539000
low = 67.519000
close = 67.519000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:46:00.000
open = 67.517000
high = 67.529000
low = 67.517000
close = 67.529000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:48:00.000
open = 67.523000
high = 67.523000
low = 67.516000
close = 67.516000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:49:00.000
open = 67.521000
high = 67.526000
low = 67.521000
close = 67.526000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:52:00.000
open = 67.521000
high = 67.521000
low = 67.495000
close = 67.495000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:53:00.000
open = 67.487000
high = 67.487000
low = 67.473000
close = 67.481000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:55:00.000
open = 67.489000
high = 67.493000
low = 67.485000
close = 67.493000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:56:00.000
open = 67.496000
high = 67.560000
low = 67.496000
close = 67.560000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T15:57:00.000
open = 67.576000
high = 67.593000
low = 67.576000
close = 67.592000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:01:00.000
open = 67.608000
high = 67.613000
low = 67.608000
close = 67.613000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:02:00.000
open = 67.595000
high = 67.600000
low = 67.588000
close = 67.600000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:04:00.000
open = 67.601000
high = 67.638000
low = 67.601000
close = 67.637000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:05:00.000
open = 67.631000
high = 67.631000
low = 67.625000
close = 67.625000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:08:00.000
open = 67.629000
high = 67.644000
low = 67.629000
close = 67.638000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:09:00.000
open = 67.641000
high = 67.644000
low = 67.641000
close = 67.644000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:10:00.000
open = 67.669000
high = 67.694000
low = 67.669000
close = 67.694000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:12:00.000
open = 67.689000
high = 67.689000
low = 67.684000
close = 67.684000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:14:00.000
open = 67.679000
high = 67.679000
low = 67.674000
close = 67.674000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:15:00.000
open = 67.686000
high = 67.722000
low = 67.686000
close = 67.722000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:16:00.000
open = 67.717000
high = 67.717000
low = 67.712000
close = 67.712000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:18:00.000
open = 67.692000
high = 67.692000
low = 67.672000
close = 67.672000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:19:00.000
open = 67.677000
high = 67.682000
low = 67.677000
close = 67.682000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:20:00.000
open = 67.663000
high = 67.663000
low = 67.644000
close = 67.644000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:21:00.000
open = 67.639000
high = 67.639000
low = 67.634000
close = 67.634000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:23:00.000
open = 67.628000
high = 67.640000
low = 67.628000
close = 67.640000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:27:00.000
open = 67.623000
high = 67.630000
low = 67.623000
close = 67.630000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:28:00.000
open = 67.638000
high = 67.647000
low = 67.638000
close = 67.647000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:29:00.000
open = 67.612000
high = 67.612000
low = 67.577000
close = 67.577000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:30:00.000
open = 67.602000
high = 67.627000
low = 67.602000
close = 67.627000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:31:00.000
open = 67.643000
high = 67.677000
low = 67.643000
close = 67.677000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:32:00.000
open = 67.705000
high = 67.733000
low = 67.705000
close = 67.733000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:35:00.000
open = 67.737000
high = 67.737000
low = 67.712000
close = 67.712000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:36:00.000
open = 67.703000
high = 67.703000
low = 67.688000
close = 67.688000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:38:00.000
open = 67.684000
high = 67.684000
low = 67.661000
close = 67.661000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:39:00.000
open = 67.668000
high = 67.674000
low = 67.668000
close = 67.674000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:40:00.000
open = 67.695000
high = 67.716000
low = 67.695000
close = 67.716000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:41:00.000
open = 67.729000
high = 67.741000
low = 67.729000
close = 67.741000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:42:00.000
open = 67.735000
high = 67.735000
low = 67.729000
close = 67.729000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:44:00.000
open = 67.723000
high = 67.723000
low = 67.716000
close = 67.716000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:45:00.000
open = 67.706000
high = 67.706000
low = 67.684000
close = 67.684000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:47:00.000
open = 67.671000
high = 67.671000
low = 67.659000
close = 67.659000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:48:00.000
open = 67.653000
high = 67.653000
low = 67.646000
close = 67.646000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:49:00.000
open = 67.653000
high = 67.659000
low = 67.653000
close = 67.659000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:50:00.000
open = 67.650000
high = 67.650000
low = 67.641000
close = 67.641000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:51:00.000
open = 67.632000
high = 67.636000
low = 67.624000
close = 67.636000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:54:00.000
open = 67.649000
high = 67.661000
low = 67.649000
close = 67.661000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:56:00.000
open = 67.655000
high = 67.676000
low = 67.649000
close = 67.676000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T16:57:00.000
open = 67.690000
high = 67.704000
low = 67.690000
close = 67.691000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:01:00.000
open = 67.679000
high = 67.679000
low = 67.666000
close = 67.666000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:02:00.000
open = 67.640000
high = 67.640000
low = 67.614000
close = 67.614000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:03:00.000
open = 67.588000
high = 67.588000
low = 67.561000
close = 67.561000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:05:00.000
open = 67.549000
high = 67.549000
low = 67.536000
close = 67.536000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:08:00.000
open = 67.530000
high = 67.530000
low = 67.524000
close = 67.524000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:11:00.000
open = 67.493000
high = 67.493000
low = 67.461000
close = 67.461000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:14:00.000
open = 67.456000
high = 67.456000
low = 67.441000
close = 67.441000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:20:00.000
open = 67.448000
high = 67.539000
low = 67.448000
close = 67.539000
volume = 0
numEvents = 9
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:22:00.000
open = 67.545000
high = 67.551000
low = 67.545000
close = 67.551000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:26:00.000
open = 67.545000
high = 67.576000
low = 67.539000
close = 67.554000
volume = 0
numEvents = 9
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:27:00.000
open = 67.543000
high = 67.543000
low = 67.531000
close = 67.531000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:30:00.000
open = 67.512000
high = 67.512000
low = 67.494000
close = 67.494000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:31:00.000
open = 67.500000
high = 67.506000
low = 67.500000
close = 67.506000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:32:00.000
open = 67.501000
high = 67.501000
low = 67.496000
close = 67.496000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:33:00.000
open = 67.491000
high = 67.491000
low = 67.486000
close = 67.486000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:38:00.000
open = 67.482000
high = 67.482000
low = 67.479000
close = 67.479000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:39:00.000
open = 67.475000
high = 67.475000
low = 67.471000
close = 67.471000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:41:00.000
open = 67.440000
high = 67.440000
low = 67.407000
close = 67.407000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:44:00.000
open = 67.410000
high = 67.419000
low = 67.410000
close = 67.419000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:48:00.000
open = 67.414000
high = 67.414000
low = 67.409000
close = 67.409000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:49:00.000
open = 67.417000
high = 67.417000
low = 67.408000
close = 67.408000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:50:00.000
open = 67.400000
high = 67.400000
low = 67.393000
close = 67.393000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:51:00.000
open = 67.385000
high = 67.386000
low = 67.378000
close = 67.386000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:53:00.000
open = 67.382000
high = 67.382000
low = 67.378000
close = 67.378000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:56:00.000
open = 67.377000
high = 67.377000
low = 67.376000
close = 67.376000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T17:57:00.000
open = 67.375000
high = 67.375000
low = 67.374000
close = 67.374000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:00:00.000
open = 67.370000
high = 67.370000
low = 67.369000
close = 67.369000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:02:00.000
open = 67.374000
high = 67.395000
low = 67.374000
close = 67.395000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:03:00.000
open = 67.403000
high = 67.411000
low = 67.403000
close = 67.411000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:08:00.000
open = 67.392000
high = 67.396000
low = 67.379000
close = 67.379000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:10:00.000
open = 67.373000
high = 67.373000
low = 67.366000
close = 67.366000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:11:00.000
open = 67.373000
high = 67.379000
low = 67.373000
close = 67.379000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:12:00.000
open = 67.385000
high = 67.391000
low = 67.385000
close = 67.391000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:14:00.000
open = 67.397000
high = 67.434000
low = 67.397000
close = 67.434000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:15:00.000
open = 67.449000
high = 67.464000
low = 67.449000
close = 67.464000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:16:00.000
open = 67.477000
high = 67.477000
low = 67.466000
close = 67.466000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:18:00.000
open = 67.471000
high = 67.476000
low = 67.471000
close = 67.476000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:20:00.000
open = 67.478000
high = 67.480000
low = 67.478000
close = 67.480000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:21:00.000
open = 67.482000
high = 67.484000
low = 67.482000
close = 67.484000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:26:00.000
open = 67.499000
high = 67.542000
low = 67.499000
close = 67.542000
volume = 0
numEvents = 9
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:28:00.000
open = 67.547000
high = 67.552000
low = 67.547000
close = 67.552000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:30:00.000
open = 67.557000
high = 67.562000
low = 67.557000
close = 67.562000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:32:00.000
open = 67.570000
high = 67.619000
low = 67.570000
close = 67.619000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:36:00.000
open = 67.625000
high = 67.631000
low = 67.625000
close = 67.631000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:38:00.000
open = 67.635000
high = 67.646000
low = 67.635000
close = 67.646000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:41:00.000
open = 67.653000
high = 67.659000
low = 67.653000
close = 67.659000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:44:00.000
open = 67.664000
high = 67.669000
low = 67.664000
close = 67.669000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:45:00.000
open = 67.674000
high = 67.679000
low = 67.674000
close = 67.679000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:46:00.000
open = 67.691000
high = 67.704000
low = 67.691000
close = 67.704000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:50:00.000
open = 67.711000
high = 67.734000
low = 67.711000
close = 67.734000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:56:00.000
open = 67.740000
high = 67.746000
low = 67.731000
close = 67.731000
volume = 0
numEvents = 6
value = 0.000000
}
barTickData = {
time = 2019-02-11T18:57:00.000
open = 67.724000
high = 67.724000
low = 67.716000
close = 67.716000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T19:00:00.000
open = 67.710000
high = 67.710000
low = 67.704000
close = 67.704000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T19:02:00.000
open = 67.710000
high = 67.716000
low = 67.710000
close = 67.716000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T19:08:00.000
open = 67.715000
high = 67.715000
low = 67.714000
close = 67.714000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T19:09:00.000
open = 67.713000
high = 67.713000
low = 67.711000
close = 67.711000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T19:10:00.000
open = 67.705000
high = 67.705000
low = 67.699000
close = 67.699000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T19:11:00.000
open = 67.693000
high = 67.693000
low = 67.686000
close = 67.686000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T19:12:00.000
open = 67.674000
high = 67.674000
low = 67.661000
close = 67.661000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T19:14:00.000
open = 67.655000
high = 67.655000
low = 67.609000
close = 67.609000
volume = 0
numEvents = 9
value = 0.000000
}
barTickData = {
time = 2019-02-11T19:16:00.000
open = 67.611000
high = 67.611000
low = 67.608000
close = 67.608000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T19:20:00.000
open = 67.618000
high = 67.628000
low = 67.618000
close = 67.628000
volume = 0
numEvents = 3
value = 0.000000
}
barTickData = {
time = 2019-02-11T19:22:00.000
open = 62.912000
high = 62.912000
low = 62.912000
close = 62.912000
volume = 0
numEvents = 2
value = 0.000000
}
}
}
}
                  close

time
2019-02-11 07:01:00  67.267
2019-02-11 07:03:00  67.230
2019-02-11 07:05:00  67.179
2019-02-11 07:08:00  67.168
2019-02-11 07:09:00  67.156
2019-02-11 07:10:00  67.144
2019-02-11 07:16:00  67.046
2019-02-11 07:19:00  67.045
2019-02-11 07:20:00  66.989
2019-02-11 07:21:00  66.956
2019-02-11 07:23:00  66.969
2019-02-11 07:26:00  66.956
2019-02-11 07:27:00  66.966
2019-02-11 07:28:00  66.979
2019-02-11 07:30:00  66.993
2019-02-11 07:31:00  66.973
2019-02-11 07:33:00  66.967
2019-02-11 07:35:00  66.961
2019-02-11 07:36:00  66.989
2019-02-11 07:38:00  67.049
2019-02-11 07:39:00  67.061
2019-02-11 07:40:00  67.109
2019-02-11 07:42:00  67.121
2019-02-11 07:46:00  67.111
2019-02-11 07:47:00  67.101
2019-02-11 07:51:00  67.089
2019-02-11 07:53:00  67.046
2019-02-11 07:54:00  67.037
2019-02-11 07:55:00  67.003
2019-02-11 07:57:00  67.004
...                     ...
2019-02-11 13:14:00  67.434
2019-02-11 13:15:00  67.464
2019-02-11 13:16:00  67.466
2019-02-11 13:18:00  67.476
2019-02-11 13:20:00  67.480
2019-02-11 13:21:00  67.484
2019-02-11 13:26:00  67.542
2019-02-11 13:28:00  67.552
2019-02-11 13:30:00  67.562
2019-02-11 13:32:00  67.619
2019-02-11 13:36:00  67.631
2019-02-11 13:38:00  67.646
2019-02-11 13:41:00  67.659
2019-02-11 13:44:00  67.669
2019-02-11 13:45:00  67.679
2019-02-11 13:46:00  67.704
2019-02-11 13:50:00  67.734
2019-02-11 13:56:00  67.731
2019-02-11 13:57:00  67.716
2019-02-11 14:00:00  67.704
2019-02-11 14:02:00  67.716
2019-02-11 14:08:00  67.714
2019-02-11 14:09:00  67.711
2019-02-11 14:10:00  67.699
2019-02-11 14:11:00  67.686
2019-02-11 14:12:00  67.661
2019-02-11 14:14:00  67.609
2019-02-11 14:16:00  67.608
2019-02-11 14:20:00  67.628
2019-02-11 14:22:00  62.912
[228 rows x 1 columns]
2019-02-11T20:00:00
Process finished with exit code 0

Okay this seems like a lot of data, again is it not possible to give minimal data and point to the exact piece of data you think is problematic? For example, if you have 2 minute bars and you think the data is bad at 2019-02-11T14:22:00 than maybe give a 10 minute interval around that time which would lead to 5 data points instead of 228 rows.

ok, I'm editing my post to include the last hour

It would be good to also edit your initial post to show the code that this (and make it reproducible by using a fixed string date time vs present moment)

It would be good to also edit your initial post to show the code that this (and make it reproducible by using a fixed string date time vs present moment)

I added to quote that produces always the same results regardless of the current time. The third tick is the spurious one

I'm not sure I follow. The response from Bloomberg is
        barTickData[] = {
            barTickData = {
                time = 2019-02-11T19:20:00.000
                open = 67.618000
                high = 67.640000
                low = 67.618000
                close = 67.640000
                volume = 0
                numEvents = 6
                value = 0.000000
            }
            barTickData = {
                time = 2019-02-11T19:21:00.000
                open = 67.646000
                high = 67.652000
                low = 67.646000
                close = 67.652000
                volume = 0
                numEvents = 3
                value = 0.000000
            }
            barTickData = {
                time = 2019-02-11T19:22:00.000
                open = 67.657000
                high = 67.662000
                low = 62.912000
                close = 62.912000
                volume = 0
                numEvents = 5
                value = 0.000000
            }
...

The third tick here is close = 62.912000. This corresponds to what is in the dataframe. What is the problem with this?
In addition, when I say minimal reproducible example here is what I mean
import pdblp

con = pdblp.BCon(debug=True)
con.start()

start_date = '2019-02-11T19:20:00'
end_date =  '2019-02-11T19:40:00'

df = con.bdib('IBOXUMAE MKIT Curncy', start_date, end_date,  'TRADE', 1)
print(df)

Changing the index data as done above is irrelevant and should not be included, it just complicates the matter. In addition using datetime.date.today() makes this example dependent on the day it was run.

ok, Agree on the unnecessary part for the index. And I will fix the call to make it not depend on today. However, all of that is circumstantial to the point in hand. As you said, the close for the 14:22 GMT time stamp matches what's in the Dataframe. But look at the open, it's 67. Also, let me try to give more detail. I call this code in the morning, when it was 13.00 GMT. If I did this:
start_date = '2019-02-11T01:00:00'
end_date =  '2019-02-11T19:40:00'

df = con.bdib('IBOXUMAE MKIT Curncy', start_date, end_date,  'TRADE', 1)

Then I would have received as the last entry:
barTickData = {
time = 2019-02-11T19:22:00.000
open = 62.912000
high = 62.912000
low = 62.912000
close = 62.912000
volume = 0
numEvents = 2
value = 0.000000
So it would have 'looked 6 hours into the future'. I kept observing this behavior throughout the day: if I asked for an end_date > 2019-02-11T19:22:00 I would recover this spurious 62.91 tick. Even now that the 19:22 GMT is part of the observed timestamps, it is still showing the 62.91 as the close, but it is clear it did not trade at that level whatsoever.

It seems like there is some confusion. The underlying messages that are logged to output when debug=True are blpapi messages (the Bloomberg library that I wrap)
I.e. requests of the form
IntradayBarRequest = {
    security = "IBOXUMAE MKIT Curncy"
    eventType = TRADE
    interval = 1
    startDateTime = 2019-02-10T01:00:00
    endDateTime = 2019-02-11T20:00:00
}

and responses of the form
        barTickData[] = {
            barTickData = {
                time = 2019-02-11T19:20:00.000
                open = 67.618000
                high = 67.640000
                low = 67.618000
                close = 67.640000
                volume = 0
                numEvents = 6
                value = 0.000000
            }
...

are coming from the Bloomberg library blpapi. If this data looks bad to you contact Bloomberg for support with blpapi. In particular how they handle timezone stuff is often dependent on your terminal configuration, but they would be better able to assist you with that.

I'm aware, I went with them first to check that their data was correct.  If you want to check, run this code:
import blpapi
import datetime
import pandas as pd

def ticks(ticker,event_types,start_date,start_time,end_date,end_time):

    results = []
    endReached = False
    valid_event_types = ['TRADE', 'BID', 'ASK', 'BID_BEST', 'ASK_BEST' , 'BID_YIELD' , 'ASK_YIELD', 'MID_PRICE', 'AT_TRADE', 'BEST_BID', 'BEST_ASK' , 'SETTLE']

    assert isinstance(ticker,str)  # Ticker should be a string
    for event_type in event_types:
        assert event_type in valid_event_types

    session = blpapi.Session()
    session.start()
    session.openService("//blp/refdata")
    refDataService = session.getService("//blp/refdata")
    request = refDataService.createRequest("IntradayTickRequest")
    request.set("includeConditionCodes", True)
    request.set("includeNonPlottableEvents",True)
    request.set("includeSubSecondTimestamps", True)
    request.set("security", ticker)

    for event_type in event_types:
        request.getElement("eventTypes").appendValue(event_type)

    Start = datetime.datetime.combine(start_date,start_time)
    request.set("startDateTime", Start)

    End = datetime.datetime.combine(end_date,end_time)
    request.set("endDateTime", End)

    session.sendRequest(request)

    while endReached == False:
        ev = session.nextEvent()
        if ev.eventType() == blpapi.Event.RESPONSE or ev.eventType() == blpapi.Event.PARTIAL_RESPONSE:
            for msg in ev:
                rows = msg.getElement("tickData").getElement("tickData").values()
                for row in rows:
                    results.append({str(field.name()): field.getValue() for field in row.elements()})
        if ev.eventType() == blpapi.Event.RESPONSE:
            endReached = True

    df = pd.DataFrame(results).set_index('time')

    return df

StartDate = datetime.datetime(2019,2,11)
StartTime = datetime.time(19,20,0)
EndDate = datetime.datetime(2019,2,11)
EndTime = datetime.time(19,25,0)

ticker = "IBOXUMAE Curncy"

data  = ticks(ticker,['TRADE'], StartDate,StartTime,EndDate,EndTime)
print(data)

Output:
2019-02-11 19:20:02     0  TRADE  67.657
2019-02-11 19:20:09     0  TRADE  67.654
2019-02-11 19:20:16     0  TRADE  67.655
2019-02-11 19:20:27     0  TRADE  67.651
2019-02-11 19:20:34     0  TRADE  67.652
2019-02-11 19:20:41     0  TRADE  67.652
2019-02-11 19:20:46     0  TRADE  67.652
2019-02-11 19:21:00     0  TRADE  67.653
2019-02-11 19:21:05     0  TRADE  67.660
2019-02-11 19:21:10     0  TRADE  67.670
2019-02-11 19:21:21     0  TRADE  67.683
2019-02-11 19:21:26     0  TRADE  67.692
2019-02-11 19:21:34     0  TRADE  67.693
2019-02-11 19:21:40     0  TRADE  67.699
2019-02-11 19:21:48     0  TRADE  67.712
2019-02-11 19:21:54     0  TRADE  67.719
2019-02-11 19:22:00     0  TRADE  67.729
2019-02-11 19:22:07     0  TRADE  67.728
2019-02-11 19:22:12     0  TRADE  67.740
2019-02-11 19:22:20     0  TRADE  67.741
2019-02-11 19:22:26     0  TRADE  67.742
2019-02-11 19:22:34     0  TRADE  67.745
2019-02-11 19:22:40     0  TRADE  67.758
2019-02-11 19:22:45     0  TRADE  67.752
2019-02-11 19:23:01     0  TRADE  67.759
2019-02-11 19:23:22     0  TRADE  67.761
2019-02-11 19:23:28     0  TRADE  67.759
2019-02-11 19:23:44     0  TRADE  67.761
2019-02-11 19:23:56     0  TRADE  67.774
2019-02-11 19:24:05     0  TRADE  67.774
2019-02-11 19:24:22     0  TRADE  67.776
2019-02-11 19:24:30     0  TRADE  67.775
2019-02-11 19:24:51     0  TRADE  67.775
2019-02-11 19:24:59     0  TRADE  67.788


[BUG] RKE2 imported cluster : windows-node-exporter deployment fails because rancher-wins is not installed on the windows node

Rancher Server Setup

Rancher version: v2.6.8
Installation option (Docker install/Helm Chart): Helm on cluster RKE1 v1.24.4
Proxy/Cert Details:

Information about the Cluster

Kubernetes version: v1.24.6+rke2r1
Cluster Type (Local/Downstream): Downstream, imported
3 masters (Linux Ubuntu 20.04)
3 workers (Linux Ubuntu 20.04)
3 workers (Windows 2019)

User Information

What is the role of the user logged in? Admin

Describe the bug
windows-node-exporter fails at check-wins-version
The wins binary seems not to be installed on windows nodes (maybe related to bug #39642):

wins.exe is not present in any directory (neither C:\windows, nor C:\etc\rancher)
there is no service rancher-wins present

To Reproduce

Import an existing RKE2 cluster with windows nodes in Rancher
deploy rancher-monitoring chart with global.cattle.windows.enabled set to true

Result
the windows-node-exporter deployment fails  at check-wins-version
Expected Result

Rancher-wins should be installed on windows nodes
windows-node-exporter should be deployed and running

@brandond any thought around this?
@benemart:
Monitoring V2 should be packaging the wins.exe binary within that the check-wins-version chart uses (see how the image is added and what that image is for reference), as shown in the Dockerfile. That's why whether or not the wins.exe file is on the hosts should not be relevant, to my understanding.
However, there is an expectation that two Named Pipes, one of which is used by the the wins client to communicate with a wins server via GRPC, should exist. This is normally created by the wins service running on the machine and is mounted onto the workload (shown here).
It was my understanding that these named pipes were created by an RKE2 directly via creating the wins service, as seen in the code in here. This should result in the creation of these named pipes.
However, as you indicated there is no service rancher-wins present, which seems like an RKE2 issue?

For context: check-wins-version just uses the local wins.exe binary to run wins cli app info, which as seen here is a GRPC client call to the running server.

@ronhorton could we test this?

I installed RKE2 on the windows nodes using the tarball method as described [here] (https://docs.rke2.io/install/windows_airgap) without any private registry.
There is no binary wins.exe or rancher-wins.exe neither in the tar.gz nor in any directory  (/var/lib/rancher/rke2/bin, /etc/rancher/rke2, /usr/local/bin, C;\Windows, C:\Windows/System32)) after the installation.
The cluster works perfectly so it seems RKE2 does not need wins.exe.
Maybe the code you mentionned is used only if the cluster is deployed through Rancher or after it is registered in Rancher through the system-upgrade (As i mentioned in #39642 the system-ugrade fails on the windows nodes because it does not have an image for the windows system) ?
Thanks for your help.

Furthermore, i checked the dockerfile for RKE2 : the binary wins.exe is not present : cf.  dockerfile

Assigning to QA to confirm the described behavior.Create RKE2 windows cluster. Install node exporter. Make sure you're using Windows 2019.


[Settings] Change handle dialog

Based on #5777
https://github.com/user-attachments/assets/35284427-db0c-4732-a7ba-08bc40f05aa5

I do love an em dash

Large font sizes make it quite hard to input a handle here, might need to adjust that.
Also note the "Cancel" button gets kinda messed up w/ the header.

Fixed by setting a maxwidth. I'll fix the header separately


rolling pin for flattening dough

About the PR
adds rolling pin to dinnerware vendor, can be used on dough to flatten it. flattened dough is probably unused so all you can do is eat it raw.
fire extinguisher drink cans and bottles can also be used to flatten dough, albeit slower than a real rolling pin
Why / Balance
one small step for man one giant leap for construction graph pizza
can also be used as a weapon
Technical details
no
Media

rolling dough

pizza time

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes
no
Changelog
:cl:

add: Pizza recipes now require flat dough. Get a rolling pin from the dinnerware vendor.

15 size is a little too much, 10 would make sense as it does the same damage as the crowbar

rolling pin in pocket real

all is right in the world

food construction real
also make all pizzas recipes requires flat dough

might as well...

Please review the Changelog guidelines. As it stands, this change is probably not significant enough to warrant a Changelog.

anyone that tries to make pizza will not know why its making bread this is important unless you really want to troll chefs

anyone that tries to make pizza will not know why its making bread this is important unless you really want to troll chefs

Earlier you had a PR description that said it changed nothing in the game. I see you have edited that now. Please remove the first "added" changelog entry because that is not significant enough, or figure out how to combine it into the second, e.g. "which are now available in the dinnerware"

gas tanks should be valid rolling pins (except the plasma one which is square)

gas tanks should be valid rolling pins (except the plasma one which is square)

And baseball bats?

Thank you for your contribution.


Everything gets matched against first line of CSV

I have a canonical list of law firm names, and I am trying to fuzzy match them against a column of messy, user-generated names in OpenRefine.
All seems to work with no errors, except that every single name in the OpenRefine column appears to be matching to the first line of the canonical list, even though there are exact matches present.
Here is the CSV file being read into reconcile-csv:
firm,key
Aaronson Rappaport,1
Adams Reese,2
Adelson Testan,3
Adler Pollock,4
Ahlers Cooney,5
Ahmuty Demers,6
Akerman,7
Akin Gump,8
Allen Kopet,9
Allen Matkins,10
Alston Bird,11
Alston Hunt,12
Alvarado Smith,13
Anderson Kill,14
Andrews Kurth,15
Archer Greiner,16
Archer Norris,17
Arent Fox,18
Armstrong Teasdale,19
Arnall Golden,20
Arnold Porter,21
Arnstein Lehr,22
Arthur Chapman,23

and here is some made-up data that I have in OpenRefine:
Akerman
Akin Gump Something Something Else
Whatsa
Allen Thingy
Alston Bird
Alston Hunter
Alvarado Gracioso
Anderson Killer
Andrews Girth
Archer Greiner
Archer Norris Joe & Bob
Aberrant Fox
Armstrong Teasdale
Arnall Golden Dawn
Arnold Porter

As you can see, this contains exact matches, various misspellings, "extra text", and complete non-matches.
I started reconcile-csv as java -Xmx2g -jar reconcile-csv-0.1.2.jar canonical.csv firm key, and after adding the local reconciliation service and running the reconciliation, the result looks like this:

It looks like everything is matching to "Aaronson Rappaport" (the first line of the CSV file).

This looks like an interesting but. As if reconcile can only read the first line. Which plattform are you running on?

MacOS 10.5.5


Add support for generating all missing chunks in a world within WorldBorder

Currently, there is no way for a plugin to "pre-generate" their world in order to improve performance for players. I suggest we add an option similar to the WorldBorder plugin for Bukkit that allowed a plugin to fill all missing chunks within a WorldBorder. More info can be found here
http://dev.bukkit.org/bukkit-plugins/worldborder/pages/commands-and-permissions/#w-the-fill-command
@DDoS can you add support for this?

Might not be a good idea, though... unless you change the border size, you'll end up having to generate 14 trillion chunks.

Good Idea.
@JBYoshi Adequate administrator will not allow this.

How about the function of removing existing chunks far enough that will not be loaded when the player is at the border?

@JBYoshi As @Azatik stated, the intended use is for admins that know what they are doing by setting a reasonable WorldBorder limit. A server that has no limit is asking for trouble.

I'll try and make this non-blocking with proper output to the console so the admin can shutdown the server normally, stoping the process, if he accidentally uses a border that is too large.

Isn't this something that could be handled by a plugin?
All that is needed is a generateChunk(x,z) method.

Many things in our API can be handled by a plugin but that doesn't mean it shouldn't be added.


Runtime default AppArmor profile gets applied to privileged containers

For privileged Kubernetes containers with the runtime/default AppArmor explicitly applied, there is a difference in behaviour between Docker and containerd.
On the one hand, dockershim translates the runtime/default profile into nil (i.e. no explicit profile set). In Docker (Moby), the AppArmor profile then only gets applied when the container is not privileged.
On the other hand, kuberuntime seems to pass whatever is in the AppArmor annotation and the containerd/cri generateApparmorSpecOpts function will not exclude privileged containers in this case (it will when no explicit profile is set).
I think the first behaviour makes the most sense for compatibility with Docker and dockershim, but it does mean that privileged containers will never get the runtime's default AppArmor profile applied (a workaround would be for the cluster operator to clone the default profile under a new name, and apply that instead).
Also, it could be argued that this is better fixed in the Kubelet's kuberuntime, similar to how dockershim works.

Fixed in https://github.com/containerd/cri/pull/1240


Custom branch naming for "Topic branch"

Allow users to set naming strategy for branches when using Start working on issue and checkout topic branch.

Turns out this is already possible

Turns out this is already possible

how?

In the settings there is an option "Github Issues: Issue branch title"


tunnelgraf: init at 0.6.1

Description of changes
Tool to manage SSH tunnel hops to many endpoints
https://github.com/denniswalker/tunnelgraf

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 298879 run on x86_64-linux 1

2 packages built:

tunnelgraf
tunnelgraf.dist


delete/change with a search show a lot of popups

Describe the bug
if you do delete/change with any search ex. d/{ or c/{ you got a lot of notifications with the search register so /{ in this example
i do got a popup with a text about a loop detect but the other popups move it out of view fast i don't know what it is saying
Which version of Neovim are you using?
Nightly
NVIM v0.9.0-dev-101-g9cb2a6903
Build type: RelWithDebInfo
To Reproduce
Steps to reproduce the behavior:

open a file nvim with the plugin install
make a delete search ex. d/{
see the popups for a few mins.

Expected Behavior
no or just 1 popup with the search register
Noice Log

Noice log

no text in the log...

Messages
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
E37: No write since last change
E162: No write since last change for buffer "noice://63/notify?filetype=notify"
fatal: not a git repository (or any of the parent directories): .git

Can't reproduce this. Can you check with the latest version?
If you still have this problem, then please create a minimal.lua https://github.com/folke/noice.nvim/wiki/Minimal-`init.lua`-to-Reproduce-an-Issue

yes this is not a problem after rebuild neovim and packersync


Prevent the same trivia question being sent twice

There are times when the same trivia questions will be sent twice in a game, this fixed that.
Closes #14

This looks good, except for one small problem: If the bot runs out of questions, it crashes. That's not great. Some sorta message would be better.

This looks good, except for one small problem: If the bot runs out of questions, it crashes. That's not great. Some sorta message would be better.

I'm pretty sure I have it set so that if there have been 100 unique questions sent then it will start resending questions. I'm not totally sure and I'm on vacation for my spring break so I can double check once I get home.


Implement Custom YOLO v5 Module

I am trying to create an environment that uses a simple custom yolov5 object detection model, the model is working on a stand-alone deep stream environment.
I have used the traffic meter sample as the baseline, however, I still have some issues implementing this example.
The main issue is that the .wts failed to load when loading the module, do you have any advice?

@maoztamir, hi!
Are you facing any issues with loading the weights when running the "traffic_meter" example?
Please provide an error log. If possible, attach the complete module log.

Closing due to no activity.


Allow more params

Please allow more params than just 5.

You might want to look into alternatives to multiple params:

feeding the plugin from STDIN
using environment variables
using a configuration file

Let us know how you get on!


mic record feature

This Feature is a Part of #2
Please Note: Merge this request first then ask people to pull and then add their features. The mic feature is built on existing code base. Also please test out the feature :)
Mic option have been separated

If User doesnt give permission to mic :)

#20 Web Cam Feature has also been integrated with Same pull request

good man :) which browser is that ? For chrome it isn't working

I think so much in a single dropdown menu is a boring one
If we create the UI like this ?

I tried in chrome its working for me, not sure we can connect on this whenever your free :)

I have added the Hacktoberfest label and tomorrow I will look into the code , GN

Submitted A bug Fix for Mic not working in MP4 with mic and Webm with MIC, hopefully this fixes the issue of prod :)

Let me know the error you are getting in chrome -
My Chrome Version is : Version 106.0.5249.119 (Official Build) (64-bit) running on Windows 10
Also can you try on other browsers and let me know if its the same issue. Thanks

Check nothing is working on my father's browser too
https://user-images.githubusercontent.com/70798495/195572624-c0252d37-18a7-4443-bf37-7266240c6df3.mp4

okay there is some code merge issue happening, will have to review the code base i worked on had never had naming the video part

also can you share what you are getting in console

I will be creating a new pull request based on the existing code in the repo.


changelog generator

use one. found research resulted in those 2 options:
https://coderwall.com/p/5cv5lg/generate-your-changelogs-with-git-log
https://skywinder.github.io/github-changelog-generator/

Using https://skywinder.github.io/github-changelog-generator/


Improve parser typing

Description
I have been collecting typing improvements. This PR contains those related to the parser. It does a number of this:

It removes many unused methods from the stubs so that there are no useless warnings on the stubs anymore
It adds typing to those that we use
It already contains a number of fixes in the parser/compiler code
I added a bit of an ugly hack to correct type what comes out of the parser by making the stubs import Statement

There are quite some warnings left related to str vs locatable string but I am not familiar enough with this part of the code.
Anyone can contribute improvements if they have any but this is not high priority.
Self Check:
Strike through any lines that are not applicable (~~line~~) then check the box

[ ] Attached issue to pull request
[ ] Changelog entry
[ ] Type annotations are present
[ ] Code is clear and sufficiently documented
[ ] No (preventable) type errors (check using make mypy or make mypy-diff)
[ ] Sufficient test cases (reproduces the bug/tests the requested feature)
[ ] Correct, in line with design
[ ] End user documentation is included or an issue is created for end-user documentation (add ref to issue here: )

Reviewer Checklist:

[ ] Sufficient test cases (reproduces the bug/tests the requested feature)
[ ] Code is clear and sufficiently documented
[ ] Correct, in line with design

Processing this pull request

Merged into branches master in 1a56228fedcae74458e4b2f66ca4af6520065556

Processing #3932.


Handle both pcie noc endpoints for BH

P100s use pcie endpoint (11,0) but P150s use (2,0). Need Metal runtime to support these two because translation is not enabled.
Once it is enabled then pcie selection can be board-type agnostic

Closing this with 58063dbf6c9107ffce0154b513a9d073e20a9af3
When we move to virtual coordinates we won't need the above commit


FFDC enhancement

Adding trace when we get the repo change event which indicates
did PLDM exchange between BMC and host happen (i.e. did BMC see
the "PDRs changed" event come in from host, and read out the PDRS).

Adding trace when we send repo change event back after
merging the PDRs which indicates did host come down and read
all the PDRs after BMC told it that the PDR repo changed.

printing the first and last record handle in bmc repo after each
PDR exchange.

Adding trace when we get a TerminusLocator PDR from host.

Solution for #SW548456
Signed-off-by: Pavithra Barithaya<EMAIL_ADDRESS>

Fixes SW548456


Inline base64 not working

The message is not sending when I added inlinebase64 even using the node-plugin-inline-base64

Hello @pluksd,
Currently this repo is not supported by SendGrid; however, I suggest you provide the relevant source code and specific error message so that you have a greater chance of receiving help from the community here.
With Best Regards,
Elmer


Browser library fails to load (and initialise)

There seem to be several issues with the browser client (did not verify in node env)
Steps to reproduce
(browser: firefox, also tested in chromium)
Clone repo, then
yarn install
yarn build
cd dist && [launch local HTTP server]

Results in: Uncaught Error: ES Modules may not assign module.exports or exports.*, Use ESM export syntax
(And TerminusClient is not defined)
Same problem when loading the (local) 'production-ready' UMD module in another HTML file, and also when using the CDN version.
This issue seems to occur from version v10.0.5 onwards; previous versions, e.g., 10.0.3 do not have the ES Modules problem.
The second error (TerminusClient is not defined) does however persist in previous versions (>v10) as well. I did not check below v10.
After a quick look into the src and the webpack config, I thought the main issue was that the exported library was named TerminusDBClient instead of TerminusClient, and indeed, this variable seems to be available (in the window) when loaded. However,  new TerminusDBClient.WOQLClient(...) gives a similar error.

I encounter the same problem in the browser.
The client (10.0.17)  seems to work properly in my pure node environment though.

fixed from version 10.0.18


Add virtual_column for Flavor cpus/cpu_cores

Add a virtual_column for the two aliases (cpus, cpu_cores) for backwards compatibility.  Without the virtual_column the automatically built service models in automate doesn't pick up on the alias.

@miq-bot cross-repo-tests ManageIQ/manageiq-automation_engine, ManageIQ/manageiq-content


launch folder/file missing for robotiq_s_model_visualization in indigo-devel

trying to roslaunch the 3 finger gripper in indigo-devel in the "robotiq_s_model_articulated_gazebo" folder and then it calls for a missing launch file "robotiq_gripper_upload.launch" in the "robotiq_s_model_visualization" folder.
tried to copy the one in the "groovy-devel" branch, which doesn't work for indigo-devel
can anyone help?
while processing /home/as/ros_industrial_ws/src/robotiq/robotiq_s_model_visualization/launch/robotiq_gripper_upload.launch: Invalid roslaunch XML syntax: [Errno 2] No such file or directory: u'/home/as/ros_industrial_ws/src/robotiq/robotiq_s_model_visualization/launch/robotiq_gripper_upload.launch'

It's odd that the file went missing. Do you know why the groovy version doesn't work?

sorry, first time running ros with robotiq 3 finger, do you know how to resolve this issue? thanks a lot

tried to trace the spcific folder commit back to a year ago and more, and this file seems to be missing for a long time...
as for the goovy version of the "robotiq_gripper_upload.launch", tried and the following message showed up
while processing /home/as/ros_industrial_ws/src/robotiq/robotiq_s_model_visualization/launch/robotiq_gripper_upload.launch: Invalid roslaunch XML syntax: not well-formed (invalid token): line 45, column 90 The traceback for the exception was written to the log file
then got lost in the line 45, column 90 of "robotiq_gripper_upload.launch" with the following code.
    <meta name="request-id" content="AF20923B:2DAC3:1333F407:5878D48E" data-pjax-transient>
am I examining the wrong roslaunch file, or what's wrong with it? thanks a lot

@gameofsong:

then got lost in the line 45, column 90 of "robotiq_gripper_upload.launch" with the following code.
    <meta name="request-id" content="AF20923B:2DAC3:1333F407:5878D48E" data-pjax-transient>

how did you download / install the files? That is not typical contents of a launch file.

@gavanderhoorn
just copied from the folder in the groovy version to the indigo version and roslaunch ...
from the message it seems it was only asking for the "robotiq_gripper_upload.launch" file in the "robotiq_s_model_visualization" folder ...
and the one in the groovy version is the only one i can find

But how did you get a copy of the files in the first place? Did you use git clone .., did you use apt-get or some other way?

@gavanderhoorn
just copied from the groovy-devel's repository and paste into my local folder

just copied from the groovy-devel's repository

which repository? Could you please be specific? A URL, a directory path?
Also: which exact steps did you take to get a copy of the "groovy-devel's" repository?

This does not directly address your original issue, but I'm pretty sure the launch file you have there is not as it should be, and I'm trying to figure out what caused this.

@gavanderhoorn
this very repository, under groovy branch, same folder
https://github.com/ros-industrial/robotiq/blob/groovy-devel/robotiq_s_model_visualization/launch/robotiq_gripper_upload.launch

And you opened groovy-devel/robotiq_s_model_visualization/launch, then right-clicked on robotiq_gripper_upload.launch and then Save Link As.., correct?
If so, you saved an HTML page, not the content of the launch file. For that, please use the raw link from groovy-devel/robotiq_s_model_visualization/launch/robotiq_gripper_upload.launch.

my bad, seems like I saved the html instead of the actual code ... my bad
will try again and update

The original issue of the file missing after groovy-devel still remains though.

That particular launch file was removed in 5d3be12280db37b87d6d28622121fb6528701d55 by @TheDash, as part of a clean-up of the packages in this repository.
It's curious, as the file is still referenced in at least robotiq_s_model_articulated_gazebo/launch/robotiq_gripper_empty_world.launch, which was added by @TheDash in cc6e7949750732a30348d3dd2a0c350605eb9df9.

the code in the groovy version refers to a missing/replaced file of "robotiq_hand.urdf.xacro"
and in the indigo-devel, seems to have quite a few files to be choose from, and only the "s-model_articulated.xacro" (partial) works.
by partially I mean, seems like there's some problem with the base reference or what, but the gripper is just freely laying on the floor ... not sure if this is intensional or by mistake ...
I'm new to robotiq but this is kind of an issue and hopefully someone more experienced with this repository could help to resolve this issue with the 3 finger in indigo ...

I should be able to get to this next week. Sorry it's not right. Thanks for reporting.

@ancorasir, I've taken a look at the gazebo sim (once I applied your fix).  The gripper lies on the floor because the URDF doesn't have a fixed link to the world, as described here.  Honestly, I'm not sure what the value of a gazebo sim is with just a single (un-attached) gripper.  Perhaps the package is just meant to test/demonstrate a physics sim of an articulated hand.
I'll submit a PR with your fix.  Please let me know if you have learned anything since your last comment.

@shaun-edwards , thank you very much for the clarification. I can fully understand if this package was originally meant for gazebo testing purpose (just a way of showing that gazebo CAN simulate robotiq gripper). Current robotiq software are mainly for industrial application, but not on robot simulation.
I thought such a powerful underactuated gripper should have been well developed for ROS/Gazebo simulation. I'm sure there's definitely a way to do it with currently packages, but unfortunately I'm not that skilled enough :(
I thought there should have been a need for such an integrated simulation matching actual hardware setup that includes arm + gripper for pick+place. @TheDash developed something similar with the Grizzly_ur10, but it remains a challenge to make it work in a simpler way, especially on the Robotiq gripper side of grasping simulation.
Thanks a lot for you guys' awesome work :)


less-loader dependency issue

With the newest update to v2.7.3, NPM now warns about how NPM 3+ will no longer automatically install peer dependencies. The top-level application has to manually define them in its own package.json. If this doesn't make enough sense, please try it out on your own on NPM v2.7.3 and read the warnings.
In the context of this repository, this expected breaking change particularly becomes an issue when the top-level application defines font-awesome-webpack and the newest less-loader simultaneously in its package.json. font-awesome-webpack expects<EMAIL_ADDRESS>which defines a peer dependency of<EMAIL_ADDRESS>Meanwhile, the top-level<EMAIL_ADDRESS>defines a peer dependency of<EMAIL_ADDRESS>Since NPM doesn't allow two versions of the same repository, the top-level application must choose either. But choosing either will break the other peer dependency, because ^1.5 and ^2.3.1 are incompatible.
My proposed solution to this problem is to have font-awesome-webpack expect<EMAIL_ADDRESS>instead of @~0.7.7. I just tested this solution in my fork, and things seem to work fine, probably because less-loader's API hasn't changed much.
Please correct me if there's anything wrong.
EDIT: added the word "simultaneously"

https://docs.npmjs.com/misc/faq#is-it-npm-or-npm-or-npm
Just saw this. Sorry for all the capitalizations! :P

Ping

+!

+1

Merged pull request.


Bug with Arrows on 1.13.2

The spells Arrow_ice,Arrow_fire,Arrow_blink,Arrow_bomb,Arrow_grapple,Arrow_poison and Arrow_shock could NOT spawn a flying arrow.
The arrow will hit the shooter.
Enviroment:
*paper 1.13.2 lastest
*Magic 7.6.18

Those spells are used by the Magic Bow, they don’t work with wands.


RBAC

[ ] Setup RBAC for authenticated users, anonymous users and clubs

Partially implemented through checking username with given request


Apply texture on filtered point cloud data

Required Info

Camera Model
D415

Firmware Version
<IP_ADDRESS>

Operating System & Version
Win (8.1) on Parallels VM on MacOS

Platform
PC

SDK Version
2.16.5

Language
C++

Issue Description
The same issue as https://github.com/IntelRealSense/librealsense/issues/2100
I am trying to view the textured filtered point cloud data using the code below. The point cloud data does not have the colored texture on it. Could you please explain what is wrong with my code?
#include <librealsense2/rs.hpp>
#include "example.hpp"

#include <algorithm>
#include <ctime>
#include <map>
int main(int argc, char * argv[])
{
	std::clock_t start;
	double duration;

	start = std::clock();

	if (argc != 4)
	{
		std::cout << "pointcloud.exe input.bag . time_btwn_frames_sec"
			<< std::endl;
		return 0;
	}

	std::string filename_bag = argv[1];
	std::string output_dir = argv[2];

	// min time between frames in sec
	float time_btwn_frames = std::atof(argv[3]);

	rs2::config cfg;
	cfg.enable_device_from_file(filename_bag, true);

	rs2::pipeline pipe;
	auto profile = pipe.start(cfg);
	auto device = pipe.get_active_profile().get_device();
	rs2::playback playback = device.as<rs2::playback>();
	playback.set_real_time(false);

	int c = 0;

	// Declare pointcloud object, for calculating pointclouds and texture mappings
	rs2::pointcloud pc;
	// We want the points object to be persistent so we can display the last cloud when a frame drops
	rs2::points points;

	auto frameNumber = 0ULL;
	float curTime = 0;
	float diff = 0;

	while (true)
	{
		playback.resume();
		// Wait for the next set of frames from the camera
		auto frames = pipe.wait_for_frames();
		playback.pause();

		auto depth = frames.get_depth_frame();
		if (frames[0].get_frame_number() < frameNumber) {
			break;
		}
		float t = float(playback.get_position()) / (10000 * 100000);
		if (t - curTime < time_btwn_frames)
		{
			continue;
		}
		curTime = t;
		//std::cout << curTime << std::endl;
		frameNumber = frames[0].get_frame_number();
		c += 1;
		if (c == 1)
			continue;

		rs2::decimation_filter dec_filter;  // Decimation - reduces depth frame density

		rs2::frame filtered = depth;
		filtered = dec_filter.process(filtered);

		points = pc.calculate(filtered); // Generate pointcloud from the depth data
		auto color = frames.get_color_frame();
		if (!color)
			continue;
		pc.map_to(color);

		std::string name = output_dir + "/" + std::to_string(c) + ".ply";

		points.export_to_ply(name, color);
	}
	duration = (std::clock() - start) / (double)CLOCKS_PER_SEC;

	std::cout << "printf: " << duration << '\n';

	return EXIT_SUCCESS;
}

[Realsense Customer Engineering Team Comment]
@nfadeeva Noticed that you're trying to read from *.bag file. How do you get this *.bag file? Please make sure the color streaming is enabled when recording to *.bag file if you want to see colored texture.

[Realsense Customer Engineering Team Comment]
@nfadeeva Noticed that you're trying to read from *.bag file. How do you get this *.bag file? Please make sure the color streaming is enabled when recording to *.bag file if you want to see colored texture.

This .bag file is the record from the sensor d415, the main point of this issue is the fact that without a filter (points = pc.calculate(depth)) I a get color cloud but when I apply decimation (points = pc.calculate(filtered);) - the cloud is totally black.

[Realsense Customer Engineering Team Comment]
@nfadeeva  Please configure playback.set_real_time to "true" to try again.
playback.set_real_time(true);

[Realsense Customer Engineering Team Comment]
@nfadeeva  And another point is that it costs time to save *.ply.  You can have a try with a short *.bag file to see if it's working.

[Realsense Customer Engineering Team Comment]
@nfadeeva Please configure playback.set_real_time to "true" to try again.
playback.set_real_time(true);

I've changed this row but the cloud is still totally black

[Realsense Customer Engineering Team Comment]
@nfadeeva Please configure playback.set_real_time to "true" to try again.
playback.set_real_time(true);

and also if I try to stream from the real sensor (not read from .bag) result is the same - totally black or gray clouds

[Realsense Customer Engineering Team Comment]
@nfadeeva Seen from the result I run here, your code will generate several *.ply files. The first ply file is black but the later files should have color.
BTW, the librealsense version I used is 2.17.0 and FW 5.10.6. The bag file was captured from realsenseviewer with depth and color 1280x720@30fps. And the total duration is 2 seconds.
Attached is a snapshot for 38.ply.

I've installed 2.17.0 and clouds have color after decimation, thank you, the issue is solved


getLanguages() and getShortTextLanguages() need documentation

Hi!
This file contains two methods getLanguages() and getShortTextLanguages():
https://github.com/optimaize/language-detector/blob/master/src/main/java/com/optimaize/langdetect/profiles/BuiltInLanguages.java
What's the difference between a language and a short text language?
Updated Javadocs would be nice, plus an answer right here of course :).
Regards /Johan

The "short" part refers to the length of the text being analyzed -- @shuyo generated those profiles using Twitter text as training data, where tweets are limited to 140 characters. So it takes into account the style of text used in Twitter, with a lot of abbreviations and a minimal writing style. The regular profiles, on the other hand, were generated using text from Wikipedia abstracts.

Added Javadoc:

/**
 * Returns the languages for which the library provides full profiles.
 * Full provides are generated from regular text, usually Wikipedia abstracts.
 * @return immutable
 */
public static List<LdLocale> getLanguages() {
    return languages;
}

/**
 * Returns the languages for which the library provides profiles created from short text.
 * Twitter was used as source by @shuyo.
 * Much less languages have short text profiles as of now.
 * @return immutable
 */
public static List<String> getShortTextLanguages() {
    return shortTextLanguages;
}


Remove Visual C++ Installer Dependency

Describe your issue
Remove the C++ distributable in the installer process.
In general, the VC++D isn't needed anymore (please correct me if I'm wrong), and is annoyance in the install. This also blocks some automated install methods like winget because the VC++D does not have a silent install switch.
OS and Chatterino Version
Windows 10, any Chatterino 2 version.

Elaborate further why it's "not needed" and link to a source please. Also the vcredist does have a silent switch IIRC.

Sorry I didn't provide more information.
I believe now you can statically link the application runtime in Visual Studio under Linker Options
https://t2a.io/blog/visual-c-runtime-and-static-linking-made-simple/
Although there may be an increase in the size of the binary, the install will be simpler, as the runtime is included with the files.
Is this something that could be implemented? This could be useful for automated install/upgrade methods

Not possible because of Qt licensing afaik

Qt licensing

Doesn't the Qt license only forbid statically linking against Qt specifically? Other libraries should fair game by my understanding (not a lawyer though, obviously)

The configuration script of Qt doesn't allow statically linking to the c++ library. If you find a way to get around that in a legal way feel free to make a pull request.

The configuration script of Qt doesn't allow statically linking to the c++ library.

Are you talking about the chatterino.pro project file? If so maybe CMake builds could get static vc runtime?

Bundling vcredists with the install is not an option. OBS have specifically opted against this due to the licensing issues. I don't understand what the big inconvenience is about it being there.

the VC++D isn't needed anymore ... and is annoyance in the install.

Other applications will also use the vcredists we suggest users install, won't installing something basic like this only serve to make their experience better?

This also blocks some automated install methods like winget because the VC++D does not have a silent install switch.

As per the Chatterino Chocolatey project, you can simply skip the vcredist step. In my case, I install it as a Chocolatey dependency: https://community.chocolatey.org/packages/chatterino#files

The configuration script of Qt doesn't allow statically linking to the c++ library.

Are you talking about the chatterino.pro project file? If so maybe CMake builds could get static vc runtime?

no, I mean the configuration script that you use when building Qt itself

well, it's not possible so I'm closing


Create stub for libsodium

https://github.com/jedisct1/libsodium-php/issues/77
As noted in the original version in Halite, I'm releasing this under WTFPL/CC0 but I will sign a contributor agreement too.

This would be pretty awesome.

@neuro159 Any particular reason this hasn't been merged? Thanks.

@paragonie-scott It looks like this doesn't include the latest constants like:
crypto_pwhash_ALG_DEFAULT
crypto_pwhash_SALTBYTES
crypto_pwhash_STRBYTES
crypto_pwhash_STRPREFIX
crypto_pwhash_OPSLIMIT_INTERACTIVE
crypto_pwhash_MEMLIMIT_INTERACTIVE
crypto_pwhash_OPSLIMIT_MODERATE
crypto_pwhash_MEMLIMIT_MODERATE
crypto_pwhash_OPSLIMIT_SENSITIVE
crypto_pwhash_MEMLIMIT_SENSITIVE

can you please move the stub into its separate folder (==module name)?
we're in the midst of the cleanup to simplify control over modules
(UI allowing per-project switching is also added)

+fixed naming / location


Allow transitioning to colour temp for tradfri

Description:
Adds transition time when changing colour of a tradfri light.
Related issue (if applicable): fixes #
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>
Example entry for configuration.yaml (if applicable):
tradfri:

Checklist:

[x] The code change is tested and works locally.
[ ] Local tests pass with tox. Your PR cannot be merged unless tests pass

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

Looks good, must have missed this when I did my refactoring. :crocodile:

I just upgraded to version 0.69. Transition is working for brightness but not for kelvin. Color changes instantly, brightness as expected. Any suggestions?


Fix: GetDonor2FeatVects heavy atoms confusion

Reference Issue

What does this implement/fix? Explain your changes.
Dear Greg,
First of all, as is the first time I write you, I want to present me. I am starting my PhD of bioinformatics in Barcelona, and I am using the RDKit library in some aspects of my work.
ConcreteIy, I am using the FeatDirUtilsRD to calculate the feature vectors of a feature and I have found some apparent mistakes in the function GetDonor2FeatVects.
I think that there is a confusion with the "nbrs" list. The first thing that the function does is to create a "hydrogens" list to use it after. But after the while loop, the list "nbrs" doesn't contain anymore the all neighbours (including hydrogens) of the donor, but only the heavy neighbour atoms. The "nbrs" list is used after the while with two meanings: as if it contained all the neighbours or only the heavy ones (I think here is the confusion).
I propose to change the "while" loop by a "for" one, creating a "heavy" list with the heavy neighbours atoms and keeping the meaning of "nbrs" list as all the neighbours (including hydrogens). After the loop, I have changed the "nbrs" list by the "heavy" one where I find that is correct.
I would be grateful if you could review my proposed changes and say me if I am right with these.
Many thanks,
José Emilio Sánchez
Any other comments?
I have created another pull request in rdkit-orig repository a few moments ago, but I realized that the good place was here. Sorry for the inconvenience.

Thanks!


Fix extracted budgets values

Values seem correct for Bordeaux 2019, but other cities/years are off.

It might be useful to check with this code if F/I status is correctly read.


check sampler type in as_bind_group derives

Objective
currently if we use an image with the wrong sampler type in a material, wgpu panics with an invalid texture format. turn this into a warning and fail more gracefully.
Solution
the expected sampler type is specified in the AsBindGroup derive, so we can just check the image sampler is what it should be.
i am not totally sure about the mapping of image sampler type to #[sampler(type)], i assumed:
    "filtering" => [ TextureSampleType::Float { filterable: true } ],
    "non_filtering" => [
        TextureSampleType::Float { filterable: false },
        TextureSampleType::Sint,
        TextureSampleType::Uint,
    ],
    "comparison" => [ TextureSampleType::Depth ],

@robtfm I'll merge this once the merge conflicts are resolved :)

apologies, i destroyed the history trying to rebase...

That's git for you ;) No worries, it gets squashed to the PR level anyways.


Use EffectFnX functions internally

To prevent issues like #27 from occurring again.

:+1:

From what i can tell, this issue is about using (what's now called) Effect.Uncurried (EffectFnX) instead of FnX and mkEffect. The use of mkEffect prevents things like #27 by my understanding, but it's still an old and convoluted way of doing things. Perhaps we could switch over to EffectFnX at the same time as changes for #19 are made.

I was thinking the same thing when I reviewed your other PR. We should be using EffectFnX now.

My intention when I created this was only to change the implementations internally, not to change the type signatures of any exported functions - I don't think we should use EffectFn in the exported functions in this library.

Agreed

I ran into a case where the current unsafe mkEffect util causes a runtime error when running this code through purescript-backend-optimizer.
I'd be happy to make this change if no one else is working on it at the moment.

I'm up for making this breaking change to this library outside of the normal ecosystem breakage. With the advent of purs-backend-es, some things can't be optimized without this.

This shouldn't be a breaking change - none of the values whose types are changing are exported, and the exported values all retain their same types.

This shouldn't be a breaking change - none of the values whose types are changing are exported, and the exported values all retain their same types.

Oh nice! I wasn't aware of that.


Research SQL Tracing

https://entgo.io/blog/2021/10/19/sqlcomment-support-for-ent

Make sure the solution here will work with pluggable DB backend


Nodejs/Composer Support

Nodejs and composer is getting popular on web development. It will be super if devilbox supports nodejs and composer environment "out of the box".
P.S. This project is so good that saved me a lot of time. Keep up the good work.

Hi @tony199555 . Nodejs and Composer are already included and supported.
You can work inside the php container:
# user
$ ./bash.sh

# as root
$ ./root_bash.sh

It already has the tools installed, including drush and drupal-console.

@tony199555 I will close this. If you have any questions about how to enter the php container and use nodejs/composer, simply write here again.

@cytopia (and other persons who ended up in this issue due an internet search machine)
Isn't it ./shell.sh  instead of  ./bash.sh (and afterwards running sudo su - for elevating to root) nowadays?

@tony199555

https://devilbox.readthedocs.io/en/latest/autostart/autostarting-nodejs-apps.html
https://devilbox.readthedocs.io/en/latest/examples/setup-reverse-proxy-nodejs.html

@cytopia Oh WOW! After almost 1 year of no activity, this is still gets taken care of. Thanks a lot.


Remove/Reduce Errant Waggle Movement

I forgot to mention this yesterday, but it would be nice if you required the player to move the controller a certain minimum distance before moving, at least if starting from a complete stop.
Right now I can simply 'waggle' the controller and begin moving...far from swinging arms. That being said, I can see where this could possibly be a problem, as I understand your system requires constant movement (outside of inertia...then again that might be sufficient).
At the very least it's worth a see, and it would be nice not to jostle when I waggle :stuck_out_tongue_winking_eye:

I'd be open to having a minimum movement to go from stopped to moving, but not a minimum amount of moving once moving.  Does that fulfill what you're thinking?

Well you tell me? I mean you shouldn't be able to merely 'waggle' the controller to register movement, especially when you may inadvertently press the grip button during play, and that incidental controller motion, no matter how slight, causes you to jitter/lurch.
So yea the system, as closely and reasonably as possible, should require the player to have to swing their arms to have comfortable (and ideally nausea free) movement. When you consider that if the player is clearly swinging their arms, the motion should be constant, just as you have it now.
To be objective here, I can see this not working simply because the immediacy of motion you get with your system might be gone. Right now, pressing the grip buttons and moving that little bit allows the player to move instantly. Waiting to break a distance threshold my induce perceived 'lag' in the system, so this could be tough


REPORTING_ISSUES.md: Initial page

This should help us during communication with issue reporters.

Thanks for reviews, @jsmeix and @michaelrsweet !


11

11

@MihaiDejeu this is your task now, please go ahead. Deadline (when this ticket should be closed) is 2020-12-16T12:53:12.325784.
Estimation here is 60 minutes, that's how much you will be paid.
Remember, you don't have to solve everything in this ticket - you can solve it partially and leave todo markers in the code, which will become future tasks.
If you have any questions don't ask me, I'm not a technical person. Open new tickets instead.

@MihaiDejeu please keep in mind that manual assignment of tickets is a bad practice and it is discouraged. Next time, please let me elect the assignee.

@MihaiDejeu Don't forget to close this ticket before the deadline (2020-12-16T12:53:12). You are past the first half of the allowed period.

@MihaiDejeu thank you for resolving this ticket. I've just added it to your active invoice. You can always check all your invoices and more on the Contributor Dashboard.


Register a cloned VM as a separate node.

Use case
Adding a Clone attribute to the node register to allow a cloned VM to be independently registered.
Description
I am working on making my headscale network secure by tunneling all internet access through a central gateway which includes certificate validations etc. This will include removing all external access with the firewall. There is a high chance I may lock myself out during testing and by cloning a VM it is a good way instead of snapshop etc or to fork a base image.
When a cloned vm is registered, it will have the same identifiers Headscale uses to register and will not be considered a unique or different node. By having the option to register the node as a clone, it will appear in the register list, have a unique Machine and Node key and IP and then allow Magic DNS to be used.
Contribution

[X] I can write the design doc for this feature
[ ] I can contribute this feature

How can it be implemented?
Happy to write the design doc. The simplest way I see this is by having a "cloned" attribute when running register or login command.
E.g. sudo tailscale up --login-server=[url] --accept-routes=true --accept-dns=true --force-reauth --clone
and headscale nodes register --user default --clone --key XXXXXXXXXXXXXX
This would identify the same machine and node key and add a flag to it such as [MvBR0-C] with C declaring it is cloned from the machine with same Key. This would not change the way the Machine key or Nodekey is generated as I understand it.

sudo tailscale up --login-server=[url] --accept-routes=true --accept-dns=true --force-reauth --clone

This sounds like it needs changes to the Tailscale client, which is out of scope for this.
I think we dont really have the capacity into venturing down into the path of handling this case, I think time is better spent automating joining the newly cloned node.

Valid point re Tailscale. I could suggest it for their client.


fix: make https redir public

Configure publishConfig and remove obsolete entries in changelog

:tada: This PR is included in version @kittgen/nestjs-https-redirect-v1.0.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @kittgen/nestjs-https-redirect-v1.0.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket: