401/404 error codes, even if the videos are available

Hello, it's a couple of days I am getting errors like this (see verbose down below). The videos are available on Microsoft stream and I can access the manually. I don't understand what has changed , it always worked without problems.
[VERBOSE] Using ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers

Access token still good for 51 minutes.

[VERBOSE] Session and API info
	 API Gateway URL: https://euno-1.api.microsoftstream.com/api/
	 API Gateway version: 1.4-private

Parsing input file

[WARNING] Line 10 is empty, skipping..

[VERBOSE] List of GUIDs and corresponding output directory
	https://web.microsoftstream.com/video/653f27e6-924b-4700-9b87-cafd224f35b5 => videos
	https://web.microsoftstream.com/video/c0e75495-c62f-40ec-bdcf-cbb5473b8642 => videos
	https://web.microsoftstream.com/video/62c02302-77c1-4b1d-a785-5b3d54e375b9 => videos
	https://web.microsoftstream.com/video/e470dacd-15d7-4805-b2a3-db012689816d => videos
	https://web.microsoftstream.com/video/d9f70b50-8fd5-4bdd-8532-c9b2f78fe16a => videos
	https://web.microsoftstream.com/video/133bf16e-f5f9-46d0-933a-3142b6fd7b69 => videos
	https://web.microsoftstream.com/video/2d4616b8-1fa2-4cae-90f2-1ec430085a8a => videos
	https://web.microsoftstream.com/video/4fc4d953-894f-40af-acab-6b89c15e877d => videos
	https://web.microsoftstream.com/video/a6f93806-0d67-448b-8ba5-004f0c2bc791 => videos

Fetching videos info...

[WARNING] Got HTTP code 404. Retrying request...

[VERBOSE] Here is the error message:
 '[object Object]

[ERROR] Error: Request failed with status code 404
    at createError (/home/carmine/destreamer-UniPi/node_modules/axios/lib/core/createError.js:16:15)
    at settle (/home/carmine/destreamer-UniPi/node_modules/axios/lib/core/settle.js:17:12)
    at IncomingMessage.handleStreamEnd (/home/carmine/destreamer-UniPi/node_modules/axios/lib/adapters/http.js:236:11)
    at IncomingMessage.emit (events.js:203:15)
    at endReadableNT (_stream_readable.js:1145:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)

Using ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers

Video URLs:
[ 'list.txt' ]

Access token still good for 3 minutes.

Video GUIDs:
[ 'c0e75495-c62f-40ec-bdcf-cbb5473b8642',
  '62c02302-77c1-4b1d-a785-5b3d54e375b9',
  'e470dacd-15d7-4805-b2a3-db012689816d',
  'd9f70b50-8fd5-4bdd-8532-c9b2f78fe16a',
  '133bf16e-f5f9-46d0-933a-3142b6fd7b69',
  '2d4616b8-1fa2-4cae-90f2-1ec430085a8a',
  '4fc4d953-894f-40af-acab-6b89c15e877d',
  'a6f93806-0d67-448b-8ba5-004f0c2bc791' ]
Fetching metadata...
Got HTTP 404. Retrying request...
{ Error: Request failed with status code 404
    at createError (/home/carmine/destreamer-unipi/node_modules/axios/lib/core/createError.js:16:15)
    at settle (/home/carmine/destreamer-unipi/node_modules/axios/lib/core/settle.js:17:12)
    at IncomingMessage.handleStreamEnd (/home/carmine/destreamer-unipi/node_modules/axios/lib/adapters/http.js:236:11)
    at IncomingMessage.emit (events.js:203:15)
    at endReadableNT (_stream_readable.js:1145:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  config:
   { url:
      'videos/2d4616b8-1fa2-4cae-90f2-1ec430085a8a?api-version=1.4-private',
     method: 'get',
     headers:
      { Accept: 'application/json, text/plain, */*',
        'User-Agent': 'destreamer/2.0 (Hammer of Dawn)',
        Authorization:
         'Bearer eyJ0 [...] ' },
     baseURL: 'https://euno-1.api.microsoftstream.com/api/',
     transformRequest: [ [Function: transformRequest] ],
     transformResponse: [ [Function: transformResponse] ],
     timeout: 7000,
     adapter: [Function: httpAdapter],
     xsrfCookieName: 'XSRF-TOKEN',
     xsrfHeaderName: 'X-XSRF-TOKEN',
     maxContentLength: -1,
     validateStatus: [Function: validateStatus],
     'axios-retry': { retryCount: 0, lastRequestTime:<PHONE_NUMBER>473 },
     data: undefined },
  request:
   ClientRequest {
     _events:
      [Object: null prototype] {
        socket: [Array],
        abort: [Function],
        aborted: [Function],
        error: [Function],
        timeout: [Array],
        prefinish: [Function: requestOnPrefinish] },
     _eventsCount: 6,
     _maxListeners: undefined,
     output: [],
     outputEncodings: [],
     outputCallbacks: [],
     outputSize: 0,
     writable: true,
     _last: true,
     chunkedEncoding: false,
     shouldKeepAlive: false,
     useChunkedEncodingByDefault: false,
     sendDate: false,
     _removedConnection: false,
     _removedContLen: false,
     _removedTE: false,
     _contentLength: 0,
     _hasBody: true,
     _trailer: '',
     finished: true,
     _headerSent: true,
     socket:
      TLSSocket {
        _tlsOptions: [Object],
        _secureEstablished: true,
        _securePending: false,
        _newSessionPending: false,
        _controlReleased: true,
        _SNICallback: null,
        servername: 'euno-1.api.microsoftstream.com',
        alpnProtocol: false,
        authorized: true,
        authorizationError: null,
        encrypted: true,
        _events: [Object],
        _eventsCount: 8,
        connecting: false,
        _hadError: false,
        _handle: [TLSWrap],
        _parent: null,
        _host: 'euno-1.api.microsoftstream.com',
        _readableState: [ReadableState],
        readable: true,
        _maxListeners: undefined,
        _writableState: [WritableState],
        writable: false,
        allowHalfOpen: false,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: undefined,
        _server: null,
        ssl: [TLSWrap],
        _requestCert: true,
        _rejectUnauthorized: true,
        parser: null,
        _httpMessage: [Circular],
        timeout: 7000,
        [Symbol(res)]: [TLSWrap],
        [Symbol(asyncId)]: 119,
        [Symbol(lastWriteQueueSize)]: 0,
        [Symbol(timeout)]:
         Timeout {
           _called: false,
           _idleTimeout: 7000,
           _idlePrev: [TimersList],
           _idleNext: [TimersList],
           _idleStart: 6864,
           _onTimeout: [Function: bound ],
           _timerArgs: undefined,
           _repeat: null,
           _destroyed: false,
           [Symbol(unrefed)]: true,
           [Symbol(asyncId)]: 129,
           [Symbol(triggerId)]: 127 },
        [Symbol(kBytesRead)]: 0,
        [Symbol(kBytesWritten)]: 0,
        [Symbol(connect-options)]: [Object] },
     connection:
      TLSSocket {
        _tlsOptions: [Object],
        _secureEstablished: true,
        _securePending: false,
        _newSessionPending: false,
        _controlReleased: true,
        _SNICallback: null,
        servername: 'euno-1.api.microsoftstream.com',
        alpnProtocol: false,
        authorized: true,
        authorizationError: null,
        encrypted: true,
        _events: [Object],
        _eventsCount: 8,
        connecting: false,
        _hadError: false,
        _handle: [TLSWrap],
        _parent: null,
        _host: 'euno-1.api.microsoftstream.com',
        _readableState: [ReadableState],
        readable: true,
        _maxListeners: undefined,
        _writableState: [WritableState],
        writable: false,
        allowHalfOpen: false,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: undefined,
        _server: null,
        ssl: [TLSWrap],
        _requestCert: true,
        _rejectUnauthorized: true,
        parser: null,
        _httpMessage: [Circular],
        timeout: 7000,
        [Symbol(res)]: [TLSWrap],
        [Symbol(asyncId)]: 119,
        [Symbol(lastWriteQueueSize)]: 0,
        [Symbol(timeout)]:
         Timeout {
           _called: false,
           _idleTimeout: 7000,
           _idlePrev: [TimersList],
           _idleNext: [TimersList],
           _idleStart: 6864,
           _onTimeout: [Function: bound ],
           _timerArgs: undefined,
           _repeat: null,
           _destroyed: false,
           [Symbol(unrefed)]: true,
           [Symbol(asyncId)]: 129,
           [Symbol(triggerId)]: 127 },
        [Symbol(kBytesRead)]: 0,
        [Symbol(kBytesWritten)]: 0,
        [Symbol(connect-options)]: [Object] },
     _header:
      'GET /api/videos/2d4616b8-1fa2-4cae-90f2-1ec430085a8a?api-version=1.4-private HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nUser-Agent: destreamer/2.0 (Hammer of Dawn)\r\nAuthorization: Bearer eyJ0 [...] \r\nHost: euno-1.api.microsoftstream.com\r\nConnection: close\r\n\r\n',
     _onPendingData: [Function: noopPendingOutput],
     agent:
      Agent {
        _events: [Object],
        _eventsCount: 1,
        _maxListeners: undefined,
        defaultPort: 443,
        protocol: 'https:',
        options: [Object],
        requests: {},
        sockets: [Object],
        freeSockets: {},
        keepAliveMsecs: 1000,
        keepAlive: false,
        maxSockets: Infinity,
        maxFreeSockets: 256,
        maxCachedSessions: 100,
        _sessionCache: [Object] },
     socketPath: undefined,
     timeout: undefined,
     method: 'GET',
     insecureHTTPParser: undefined,
     path:
      '/api/videos/2d4616b8-1fa2-4cae-90f2-1ec430085a8a?api-version=1.4-private',
     _ended: true,
     res:
      IncomingMessage {
        _readableState: [ReadableState],
        readable: false,
        _events: [Object],
        _eventsCount: 3,
        _maxListeners: undefined,
        socket: [TLSSocket],
        connection: [TLSSocket],
        httpVersionMajor: 1,
        httpVersionMinor: 1,
        httpVersion: '1.1',
        complete: true,
        headers: [Object],
        rawHeaders: [Array],
        trailers: {},
        rawTrailers: [],
        aborted: false,
        upgrade: false,
        url: '',
        method: null,
        statusCode: 404,
        statusMessage: 'Not Found',
        client: [TLSSocket],
        _consuming: false,
        _dumped: false,
        req: [Circular],
        responseUrl:
         'https://euno-1.api.microsoftstream.com/api/videos/2d4616b8-1fa2-4cae-90f2-1ec430085a8a?api-version=1.4-private',
        redirects: [] },
     aborted: undefined,
     timeoutCb: [Function: emitRequestTimeout],
     upgradeOrConnect: false,
     parser: null,
     maxHeadersCount: null,
     _redirectable:
      Writable {
        _writableState: [WritableState],
        writable: true,
        _events: [Object],
        _eventsCount: 2,
        _maxListeners: undefined,
        _options: [Object],
        _redirectCount: 0,
        _redirects: [],
        _requestBodyLength: 0,
        _requestBodyBuffers: [],
        _onNativeResponse: [Function],
        _currentRequest: [Circular],
        _currentUrl:
         'https://euno-1.api.microsoftstream.com/api/videos/2d4616b8-1fa2-4cae-90f2-1ec430085a8a?api-version=1.4-private' },
     [Symbol(isCorked)]: false,
     [Symbol(outHeadersKey)]:
      [Object: null prototype] {
        accept: [Array],
        'user-agent': [Array],
        authorization: [Array],
        host: [Array] } },
  response:
   { status: 404,
     statusText: 'Not Found',
     headers:
      { 'cache-control': 'no-cache',
        pragma: 'no-cache',
        'content-length': '70',
        'content-type': 'application/json; charset=utf-8',
        'content-language': 'en',
        expires: '-1',
        'x-ms-request-id': 'd23f9fb5-6bc7-48b9-82c6-d557df585697',
        'access-control-expose-headers': 'x-ms-request-id',
        'strict-transport-security': 'max-age=31536000; includeSubDomains',
        date: 'Thu, 12 Nov 2020 09:11:21 GMT',
        connection: 'close' },
     config:
      { url:
         'videos/2d4616b8-1fa2-4cae-90f2-1ec430085a8a?api-version=1.4-private',
        method: 'get',
        headers: [Object],
        baseURL: 'https://euno-1.api.microsoftstream.com/api/',
        transformRequest: [Array],
        transformResponse: [Array],
        timeout: 7000,
        adapter: [Function: httpAdapter],
        xsrfCookieName: 'XSRF-TOKEN',
        xsrfHeaderName: 'X-XSRF-TOKEN',
        maxContentLength: -1,
        validateStatus: [Function: validateStatus],
        'axios-retry': [Object],
        data: undefined },
     request:
      ClientRequest {
        _events: [Object],
        _eventsCount: 6,
        _maxListeners: undefined,
        output: [],
        outputEncodings: [],
        outputCallbacks: [],
        outputSize: 0,
        writable: true,
        _last: true,
        chunkedEncoding: false,
        shouldKeepAlive: false,
        useChunkedEncodingByDefault: false,
        sendDate: false,
        _removedConnection: false,
        _removedContLen: false,
        _removedTE: false,
        _contentLength: 0,
        _hasBody: true,
        _trailer: '',
        finished: true,
        _headerSent: true,
        socket: [TLSSocket],
        connection: [TLSSocket],
        _header:
         'GET /api/videos/2d4616b8-1fa2-4cae-90f2-1ec430085a8a?api-version=1.4-private HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nUser-Agent: destreamer/2.0 (Hammer of Dawn)\r\nAuthorization: Bearer eyJ0 [...] \r\nHost: euno-1.api.microsoftstream.com\r\nConnection: close\r\n\r\n',
        _onPendingData: [Function: noopPendingOutput],
        agent: [Agent],
        socketPath: undefined,
        timeout: undefined,
        method: 'GET',
        insecureHTTPParser: undefined,
        path:
         '/api/videos/2d4616b8-1fa2-4cae-90f2-1ec430085a8a?api-version=1.4-private',
        _ended: true,
        res: [IncomingMessage],
        aborted: undefined,
        timeoutCb: [Function: emitRequestTimeout],
        upgradeOrConnect: false,
        parser: null,
        maxHeadersCount: null,
        _redirectable: [Writable],
        [Symbol(isCorked)]: false,
        [Symbol(outHeadersKey)]: [Object] },
     data: { error: [Object] } },
  isAxiosError: true,
  toJSON: [Function] }

Unhandled error!
Timeout or fatal error, please check your downloads directory and try again

Strange. Very nice piece of work. I am following regardless
On Thu., Nov. 12, 2020, 4:07 a.m. carminoski<EMAIL_ADDRESS>wrote:

Hello, it's a couple of days I am getting errors like this (see verbose
down below). The videos are available on Microsoft stream and I can access
the manually. I don't understand what has changed , it always worked
without problems.
[VERBOSE] Using ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
Access token still good for 51 minutes.
[VERBOSE] Session and API info
API Gateway URL: https://euno-1.api.microsoftstream.com/api/
API Gateway version: 1.4-private
Parsing input file
[WARNING] Line 10 is empty, skipping..
[VERBOSE] List of GUIDs and corresponding output directory
https://web.microsoftstream.com/video/653f27e6-924b-4700-9b87-cafd224f35b5 => videos
https://web.microsoftstream.com/video/c0e75495-c62f-40ec-bdcf-cbb5473b8642 => videos
https://web.microsoftstream.com/video/62c02302-77c1-4b1d-a785-5b3d54e375b9 => videos
https://web.microsoftstream.com/video/e470dacd-15d7-4805-b2a3-db012689816d => videos
https://web.microsoftstream.com/video/d9f70b50-8fd5-4bdd-8532-c9b2f78fe16a => videos
https://web.microsoftstream.com/video/133bf16e-f5f9-46d0-933a-3142b6fd7b69 => videos
https://web.microsoftstream.com/video/2d4616b8-1fa2-4cae-90f2-1ec430085a8a => videos
https://web.microsoftstream.com/video/4fc4d953-894f-40af-acab-6b89c15e877d => videos
https://web.microsoftstream.com/video/a6f93806-0d67-448b-8ba5-004f0c2bc791 => videos
Fetching videos info...
[WARNING] Got HTTP code 404. Retrying request...
[VERBOSE] Here is the error message:
'[object Object]
[ERROR] Error: Request failed with status code 404
at createError (/home/carmine/destreamer-UniPi/node_modules/axios/lib/core/createError.js:16:15)
at settle (/home/carmine/destreamer-UniPi/node_modules/axios/lib/core/settle.js:17:12)
at IncomingMessage.handleStreamEnd (/home/carmine/destreamer-UniPi/node_modules/axios/lib/adapters/http.js:236:11)
at IncomingMessage.emit (events.js:203:15)
at endReadableNT (_stream_readable.js:1145:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/snobu/destreamer/issues/277, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACH2AAJ2JRLAMGR5YBW6I33SPOQTTANCNFSM4TTAJJVA
.

hello, I also have the same problem. it happen when I try to download a Microsoft group or text file.
The only way i can download is link by link.

I tried installing the "original" destreamer instead of the forked destreamer-unipi and I am getting the same error message.
I used a text file, now I will try to pass directly the links one by one

maybe something has changed in the authentication procedure

now it is making the same thing even with a single video link

Fixed the verbose logging and got this:
[WARNING] Got HTTP code 400. Retrying request...

[VERBOSE] Here is the error message:
{
  error: {
    code: 'BadRequest',
    message: 'The requested $top value is too large. The maximum supported value is 100.'
  }
}

So there's pagination now added to to the API, i added quick workaround, only the first 100 videos will be downloaded for a group.
Fix is now applied to both master (destreamer 2.0) and aria2c_forRealNow (3.0).
You'll need to git pull to merge changes then npm run build.

now it seems to work with single video links, but unfortunately not with a text file list
In any case, you did a good job !

Not sure what would be different about a text file as input, is it the same exact error message?
'The requested $top value is too large. The maximum supported value is 100.'


Rust/WinRT fails when referencing two authored components - "Class not registered"

When two components are 'consumed' by a Rust component, at runtime one of them will fail with "Class not registered".

The runtime error I see is: { code: 0x8007007E, message: "The specified module could not be found." }

Thank you both for logging this. Let me know if I can do some specific test to help.

Here is an example of calling two C#/WinRT components in Rust which we can use to validate:  https://github.com/angelazhangmsft/rust-cswinrt-authoring/tree/angzhang/twocomponents

Should validate this with fix from #922

I made a rust project that uses two cswinrt components here - https://github.com/j0shuams/rust-cswinrt-authoring/tree/two-references
This built and ran no problem, so closing this.


Annotations support

What does this do?
Improved support for Annotations in the InformationPanel component.

See this example IIIF Manifest to view initial support for IIIF Annotations with motivation values beyond "supplementing".
public/manifest/newspaper/newspaper_issue_1.json
The interactive "annotation" component rendered in the UI will be determined by the body.format value of the annotation item.  For example, if a Manifest's canvas.annotations[0].items[0] looks like:
         {
              "id": "http://localhost:3000/manifest/newspaper/newspaper_issue_1-anno_p1.json-1",
              "type": "Annotation",
              "motivation": "highlighting",
              "body": {
                "type": "TextualBody",
                "format": "text/plain",
                "language": "de",
                "value": "Berliner"
              },
              "target": "http://localhost:3000/manifest/newspaper/canvas/i1p1#xywh=839,3259,118,27"
            }

...the UI will cue off of  it'sbody.format value, or "text/plain".
In this PR, the UI supports values:

text/plain
text/html
text/vtt
any type of image, image/*

Also, once merged I can package up a release candidate, and we can sanity check some installations?

Also, once merged I can package up a release candidate, and we can sanity check some installations?

@adamjarling Did you figure out what was causing the bug of canvas not changing when people use the drop down menu to change items in a collection? That bug can be dealt with in a separate PR.

Also, once merged I can package up a release candidate, and we can sanity check some installations?

@adamjarling Did you figure out what was causing the bug of canvas not changing when people use the drop down menu to change items in a collection? That bug can be dealt with in a separate PR.

@wykhuh Yea, I think the root cause of the behavior is still duplicate canvas ids.  The canvas id value, "https://iiif.io/api/cookbook/recipe/0068-newspaper/canvas/p1", is duplicated across the 2 manifests in the Collection for Recipe 0068:

https://iiif.io/api/cookbook/recipe/0068-newspaper/newspaper_issue_1-manifest.json
https://iiif.io/api/cookbook/recipe/0068-newspaper/newspaper_issue_2-manifest.json

Because we're parsing IIIF resources with vault library, vault tracks it's state with id values as keys and the parsing becomes inaccurate in certain situations with duped keys/ids.
In a production environment, seems these values should be unique, and dereferencable.   Chatted briefly with @mathewjordan on it, and yea if this is a real issue, let's create a new PR for it.

@wykhuh Yea, I think the root cause of the behavior is still duplicate canvas ids. The canvas id value, https://iiif.io/api/cookbook/recipe/0068-newspaper/canvas/p1, is duplicated across the 2 manifests in the Collection for Recipe 0068:

https://iiif.io/api/cookbook/recipe/0068-newspaper/newspaper_issue_1-manifest.json
https://iiif.io/api/cookbook/recipe/0068-newspaper/newspaper_issue_2-manifest.json

Because we're parsing IIIF resources with the vault library, vault tracks it's state with id values as keys. The parsing becomes inaccurate in certain situations with duped keys/ids.
In a production environment, seems these values should be unique, and dereferencable. Chatted briefly with @mathewjordan on it, and yea if this is a real issue, let's create a new PR for it.

@adamjarling  I checked Mirador, Universal Viewer and Annona. They can switch between newspaper issues despite the non-unique ids. I don't know if this is a case of the other viewers being too lax or the vault being too strict about unique ids.   I don't think CollectiveAccess needs to use the drop down menu in Clover to switch between issues, so this bug isn't a high priority for us. I'll let y'all decide to either leave things as is or deal with the issue.

@wykhuh Yea, I think the root cause of the behavior is still duplicate canvas ids. The canvas id value, https://iiif.io/api/cookbook/recipe/0068-newspaper/canvas/p1, is duplicated across the 2 manifests in the Collection for Recipe 0068:

https://iiif.io/api/cookbook/recipe/0068-newspaper/newspaper_issue_1-manifest.json
https://iiif.io/api/cookbook/recipe/0068-newspaper/newspaper_issue_2-manifest.json

Because we're parsing IIIF resources with the vault library, vault tracks it's state with id values as keys. The parsing becomes inaccurate in certain situations with duped keys/ids.
In a production environment, seems these values should be unique, and dereferencable. Chatted briefly with @mathewjordan on it, and yea if this is a real issue, let's create a new PR for it.

@adamjarling I checked Mirador, Universal Viewer and Annona. They can switch between newspaper issues despite the non-unique ids. I don't know if this is a case of the other viewers being too lax or the vault being too strict about unique ids. I don't think CollectiveAccess needs to use the drop down menu in Clover to switch between issues, so this bug isn't a high priority for us. I'll let y'all decide to either leave things as is or deal with the issue.

@wykhuh Noted, and thanks for the clarifying.  For future reference, one eventual solution/fix might be to provide more unique key values on Viewer components, used to trigger re-renders.  Maybe something like:
<SomeComponentNotRerendering key={MANIFEST_ID_AND_CANVAS_ID} />


Update SameSite doc

Fixes #17001
Internal review URL

Just one thing, can we get the 2.2 samples under samples, so people can see it with MVC as well (I know it's the same, but it'll reassure folks). There doesn't seem a way to point to the runnable/downloaded samples/solution so that'd be good to have.

@blowdart  I can move the sample download links later in the article if you like.

Wow I missed them right at the top. Maybe duplicate that table under additional resources as well or give it a heading so it shows under In This Article?

@blowdart  great idea. I added an H2 AND listed them at the bottom


fix: optimize read queries, display amounts with correct decimals

Still pending: COUNT optimization

:tada: This PR is included in version 1.0.0-brc-20.16 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


JBPM-6892 - Remove spacing between table results and controls (#988)

@bsremac cherry pick from master.


geolocator.getCurrentPosition take a long time to return position on IOS

getCurrentPosition is working really fine on Android, but on IOS it took so much time to execute. Can you check it? Thank you
Platform:

[ x] :iphone: iOS
[ ] :robot: Android

Experiencing same issue. Not found what's causing the slowdown so far but using Last Known Position as temporary work around for my case...

check if your Info.plist have 3 keys
NSLocationAlwaysUsageDescription
your description
NSLocationWhenInUseUsageDescription
your description
NSLocationAlwaysAndWhenInUseUsageDescription
your description

Same problem here. Had to downgrade to 4.0.3 version. Every version after that is very slow to respond in iOS, on the initial install of the app. If shut down the app and restart, it's fine.
And yes, @paulobreim I have all the required strings in Info.plist, otherwise it would not respond at all.

Using desiredAccuracy: LocationAccuracy.high is very slow, sometimes more than 9 seconds, desiredAccuracy: LocationAccuracy.medium seems fast.
Is there an option to just use last location?

I use Location plugin for getting the current location. It works fine on both Android and IOS.

@hungtran2492 I'm also using Location plugin, it's much faster than this.
@StijnWoerkom what's the reason for closing? This is a legitimate bug that is causing developers issues on the main locational library for Flutter.

@ollydixon I tested this issue on multiple IOS devices and concluded that the problem was more with the device than with the code. I can re-open the issue, but I don't see any trouble occurring with this issue.

@StijnWoerkom if it helps I did a live app demo with 4 users and it was slow on all their mobiles. (All iOS). Was a little embarrising for me cause the simulator works fine it's only on the device it's extremely slow.
I used another library and it was fine (Location for Flutter).

Version 4.0.3 works just fine. I actually downgraded to that version on my app. So it's got to be something in the library itself. Did tests with different iPhones, it's consistent, so I doubt it's the device.

@ollydixon Thank you for your response. I'm sorry for your failure with the demo. I re-opened the issue and will look further into this. Can you tell me what version you were using?

Any version after 4.0.3 has the problem. So it must be something introduced in 5.0.0.

@babaosoftware In the 5.0.0 version, we converted the IOS version from Swift to Objective-C, reducing the size of the final binary considerably, as well as solve some compatibility issues with other objective-c based plugins.

@StijnWoerkom I am not questioning the necessity of the conversion, just saying that it created this problem, and giving a hint to where someone might start looking into it.

I noticed that you told me yesterday that the problems started with version 5.0.0. I am looking into all the features we added with the version to determine what the cause of the issue is.

Let me suggest an alternative to isolating the problem, if it really exists.
We can make a small program with the geolocator.getCurrentPosition function only, and everyone can test this program and measure the time it executes.
what do you think?

@paulobreim I was going to do exactly that tonight (USA Eastern time). I will post my result as soon as I will have them.

I did the following test:
The app:
import 'package:flutter/foundation.dart';
import 'package:geolocator/geolocator.dart';
void main(){
DateTime start = DateTime.now();
getCurrentPosition().then((pos){
DateTime end = DateTime.now();
debugPrint("time span = ${end.difference(start).inMilliseconds} ms");
});
}
Future getCurrentPosition() async {
return await Geolocator().getCurrentPosition();
}
in pubspec.yaml I have
geolocator: ^4.0.3 # Don't upgrade - it's very slow to respond on startup.
for the first test, and
geolocator: ^5.1.4
for the second test.
I tested using an iPhone 6S, but before I used newer devices too, so I don't think the device makes a difference.
The first test, with version 4.0.3 showed a response time of about 100ms
The second test, with version 5.1.4. showed a response time of about 10 s - that is seconds, not ms
There you go.

I am trying to test it in my Motorola Z2 Play and an iPhone, but I got the error below and don know what to do.
Launching lib/main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':app:preDebugBuild'.

Android dependency 'androidx.core:core' has different version for the compile (1.0.0) and runtime (1.0.2) classpath. You should manually set the same version via DependencyResolution

I know there are no relations with geolocator, but i don know to fix it.

'androidx.core:core' has different version for the compile (1.0.0) and runtime (1.0.2) classpath

Check this:
https://github.com/flutter/flutter/issues/27254

Here is my test for Android.
I put a floatingActionButton and pressed 10 times
FIRST TEST geolocator: ^4.0.3
Launching lib/main.dart on Moto Z2 Play in debug mode...
Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...
Built build/app/outputs/apk/debug/app-debug.apk.
Syncing files to device Moto Z2 Play...
I/flutter (11197): time span = 1006 ms
I/flutter (11197): time span = 1626 ms
I/flutter (11197): time span = 965 ms
I/flutter (11197): time span = 6024 ms
I/flutter (11197): time span = 991 ms
I/flutter (11197): time span = 971 ms
I/flutter (11197): time span = 6022 ms
I/zygote  (11197): Do partial code cache collection, code=62KB, data=51KB
I/zygote  (11197): After code cache collection, code=62KB, data=51KB
I/zygote  (11197): Increasing code cache capacity to 256KB
I/flutter (11197): time span = 7866 ms
I/flutter (11197): time span = 940 ms
I/flutter (11197): time span = 6091 ms
SECOND TEST geolocator: ^5.1.4
Launching lib/main.dart on Moto Z2 Play in debug mode...
Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...
Built build/app/outputs/apk/debug/app-debug.apk.
Syncing files to device Moto Z2 Play...
I/flutter (11471): time span = 1043 ms
I/flutter (11471): time span = 5927 ms
I/flutter (11471): time span = 8876 ms
I/flutter (11471): time span = 1052 ms
I/flutter (11471): time span = 5987 ms
I/flutter (11471): time span = 6316 ms
I/flutter (11471): time span = 5948 ms
I/zygote  (11471): Do partial code cache collection, code=62KB, data=50KB
I/zygote  (11471): After code cache collection, code=62KB, data=50KB
I/zygote  (11471): Increasing code cache capacity to 256KB
I/flutter (11471): time span = 934 ms
I/flutter (11471): time span = 6012 ms
I/flutter (11471): time span = 954 ms
THIRD TEST geolocator: ^5.1.4
(WHITOUT await in geolocator pressing button 10 times quick
Launching lib/main.dart on Moto Z2 Play in debug mode...
Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...
Built build/app/outputs/apk/debug/app-debug.apk.
Installing build/app/outputs/apk/app.apk...
Syncing files to device Moto Z2 Play...
I/flutter (16122): time span = 1020 ms
I/flutter (16122): time span = 159 ms
I/flutter (16122): time span = 584 ms
I/flutter (16122): time span = 544 ms
I/flutter (16122): time span = 99 ms
I/flutter (16122): time span = 536 ms
I/flutter (16122): time span = 82 ms
I/zygote  (16122): Do partial code cache collection, code=62KB, data=50KB
I/zygote  (16122): After code cache collection, code=62KB, data=50KB
I/zygote  (16122): Increasing code cache capacity to 256KB
I/flutter (16122): time span = 504 ms
I/flutter (16122): time span = 1381 ms
I/flutter (16122): time span = 946 ms

While I didn't check the problem on Android myself, as the title states, this issue was opened for iOS. Nonetheless, your tests show pretty inconsistent results, and I'm not sure what the third test does without await on the geolocator call. Maybe  posting your app's code would clarify that.
In any case, I'm staying with the version 4.0.3 of the library for now. As a matter of fact I released my app on the apple store just recently. You might want to check it out at
http://apps.apple.com/us/app/apple-store/id1469322424

Here is my test for IOS 12.4.4 iPhone 6
FIRST TEST geolocator: ^4.0.3
Launching lib/main.dart on iPhone PCB in debug mode...
Signing iOS app for device deployment using developer identity: "iPhone Developer: Paulo Breim (Y34R2HBJ59)"
Running pod install...
Running Xcode build...
Xcode build done.                                           23,7s
Installing and launching...
Syncing files to device iPhone PCB...
flutter: time span = 230 ms
flutter: time span = 92 ms
flutter: time span = 74 ms
flutter: time span = 80 ms
flutter: time span = 95 ms
flutter: time span = 87 ms
flutter: time span = 199 ms
flutter: time span = 58 ms
flutter: time span = 73 ms
flutter: time span = 70 ms
SECOND TEST geolocator: ^5.1.4
Launching lib/main.dart on iPhone PCB in debug mode...
Signing iOS app for device deployment using developer identity: "iPhone Developer: Paulo Breim (Y34R2HBJ59)"
Running pod install...
Running Xcode build...
Xcode build done.                                           22,6s
Installing and launching...
Syncing files to device iPhone PCB...
flutter: time span = 12383 ms
flutter: time span = 10033 ms
flutter: time span = 10027 ms
flutter: time span = 10026 ms
flutter: time span = 10031 ms
flutter: time span = 10029 ms
flutter: time span = 10032 ms
flutter: time span = 10032 ms
flutter: time span = 10028 ms
flutter: time span = 10029 ms
babaosoftware, let me know if you need more tests

@paulobreim thanks for your effort. Apparently confirms what we've been saying all along, and the results are consistent. Versions of geolocator library, starting with 5.0.0 have an unacceptable response time of about 10 seconds for calls to getCurrentPosition on iOS platform.
The results on Android are inconsistent, but some show response times of over 8 seconds, which is also worrisome.
@StijnWoerkom I think there's enough evidence that something is very wrong with the library upgrade and requires some effort to isolate and fix.

@babaosoftware Thank you for your effort. I tested the same issue and got to the same conclusion as you did. We will work on this issue and keep you posted when there is a solution to this issue.

Same happening here on iOS 13.1.3 iPhone XR with latest version of GeoLocator. It takes between 8-10 seconds to get current position

For those of you who have trouble with slow getPosition in iOS (e.g. takes 10+s to get position information), you can use this alternative package as it has been said before in the earlier thread.
https://github.com/Lyokone/flutterlocation
It loads position information extremely fast both in Android as well as in iOS. (<1s).

I'm experiencing the same lag using the latest version. Are there any issues/down sides with sticking with version 4.0.3?

me too :(
i'm using ^5.1.5
getCurrentPosition() so slow both Android, IOS

some update?

me too
iam using ^5.3.0
IOS 12.4 Iphone 5s.

I have same problem, on iOS 13.4 beta iPhone XR
Works fine on any android OS devices.

same issue still, works fine on the virtual device but 10 sec delay on physical device

Experiencing the same issue on my iPhone 7, iOS 13.4

Same issue in iPhone 7 and IPhone X, IOS 13

Hello, same issue in a real iPhone X device, iOS 13
Our startup time was 10+ seconds because of this issue, going back to 4.0.3 works

Same here, iPhone 5s iOS 12.4.

Also in iPhone 6s iOS 13.4

I'm experiencing this issue as well. iPhone 6s iOS 13.4

Same problem on a physical device, iPhone 8 iOS 13.4. getLastKnownLocation works fine.

+1

Same here using ^5.3.1 Geolocator's version on iPhone Xs and iOS 13.3. I've downgraded it to 4.0.3 and its very fast! 🚀

Having same slowly results, in the IOS simulator it works like a charm, then I tried on real phone an takes about 10 seconds on every different address, I walked around few houses and the first time is always slow, if you retry then it loads fast.

I also tried 4.0.3 and is working fine, but I see many fixes from 4.0.3 to ^5.3.1. any plan to fix this up in the main branch?
I noticed 4.0.3 is not as accurate as 5.3.1

I also had this same issue. Downgrading to 4.0.3 resolved the issue for me. It worked fine on the ios simulator but was taking an age on my physical ios device (iPhone SE 2nd Gen).
How has this issue not gained more traction? Surely this is a production level plugin breaking issue. It simply can't be used in a live environment past v4.0.3.

Reproes here as well, iPhone 8.
First acquisition is 20+ seconds on actual hardware on 5.3.1.
Same hardware, same location, first acquisition is ~2 secs on 4.0.3.

Having same slowly results, in the IOS simulator it works like a charm, then I tried on real phone an takes about 10 seconds on every different address, I walked around few houses and the first time is always slow, if you retry then it loads fast.

Guy I have used 4.0.3 version for best result in simulator and device iOS (iPhone 6s - 8)

I have same issue and moving to 4.0.3 was not simple because I would have to back-down versions and I have already upgraded to Androidx.  I used the flutter location plugin instead, much faster.

Similar to what other folks are saying, I'm seeing ~10 second (almost on the dot) delays on a physical iOS device, but none in the simulator. This slowdown was seen on multiple devices across my team.
Is there any intention to implement a fix for newer versions?

could you try to change the accuracy? this one worked for me:
await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.medium)

await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.medium)
worked for me.

I was at 5.3.2+2 and noted that this plugin was much slower than the location plugin. Based on the recommendation here, I downgraded to 4.0.3 and the speed was much improved.

Also had the same problem as above, when running in Simulator v11.5 on mac.
The location of the Simulator IOS device is not set by default which causes the exception, this can be set by clicking in the top menu bar
Features -> Location -> Select an option
I used custom location which gives San Francisco Long/Lat

also had to downgrade to 4.03 due to the performance on actual iOS devices.

Same here, extremely slow.

I had the same problem using version 5.3.1.
It took about 10 seconds to get the location on almost any version of iPhone, iPad.
Changing the LocationAccuracy (from best to medium), seems to solve the problem.

same here, tested on multiple iPhones from 6S and upwards, version 5.3.2 - takes 5-10 secs to get the location

Same here iPhone 8 takes 5 seconds to determine location

Maybe my solution was hidden in the text:
When I changed the LocationAccuracy (from best to medium), , shorten the delay for less than a second, and on sometimes the response was instantaneous (at least on all the machines that I tested it).
Please note, that LocationAccuracy  of "good" was not good enough.

It is taking upto 100sec (seconds) on my iPhoneSE to get current Position. Sometime it takes less than a second and the next time it takes upto 100. I also tried to use the Location package but the same issue persisted. I cannot downgrade to 4.0.4 as another package I am using depends on the higher versions. :(

We are working hard on a new release which should solve these issues. See also issue #430 with more details on it progress.

recently had this issue using geolocator: ^5.3.1
to fix I upgraded to  geolocator: ^5.3.2+2
set :
compileSdkVersion 28
and eventually did
flutter upgrade
that seems to have fixed the issue.

await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.medium)
worked for me.
Geolocator() class is now deprecated in the latest release of ^6.0.0, how am i supposed to use PlaceMarker

@mannnish, the geocoding functionality has been moved to its own (dedicated) plugin called geocoding.

@mannnish, the geocoding functionality has been moved to its own (dedicated) plugin called geocoding.

Thanks worked

How to Get Device Lat Long in Flutter

I updated to the newest version, fixed the problem for me 👍👍👍

I updated to the newest version, fixed the problem for me 👍👍👍

I updated to the newest version, fixed the problem for me 👍👍👍

Indeed, upgrading to the ^6.1.14 helped me too.

I updated to the newest version, fixed the problem for me 👍👍👍

Indeed, upgrading to the ^6.1.14 helped me too.

I updated to the newest version, fixed the problem for me 👍👍👍

Indeed, upgrading to the ^6.1.14 helped me too.

its not working for me .................do tell steps i need to follow

I updated to the newest version, fixed the problem for me 👍👍👍

Indeed, upgrading to the ^6.1.14 helped me too.

its not working for me .................do tell steps i need to follow

I updated to the newest version, fixed the problem for me 👍👍👍

Indeed, upgrading to the ^6.1.14 helped me too.

its not working for me .................do tell steps i need to follow

hm, I just updated my pubspec.yaml, maybe you also need to delete pubpec.lock?

I updated to the newest version, fixed the problem for me 👍👍👍

Indeed, upgrading to the ^6.1.14 helped me too.

its not working for me .................do tell steps i need to follow

hm, I just updated my pubspec.yaml, maybe you also need to delete pubpec.lock?

should be re-opened using version 5.3.2+2

Anyone have idea for issue ?
The first time around 7-10s,
the next time, about 3-5s.
But sometimes jump to 7-10s for the next time.
i used version 7.1.1 and LocationAccuracy = best.

If you are not able to find a solution you may want to consider using the flutter location plugin.  I was able to refactor to the flutter location plugin in less than a day.  https://pub.dev/packages/location

anyone know it when i make by geolocator : ^7.4.0. it slown to get location after install an apps. it makes duration until 16 seconds to get location with setting .high. but in emulator, i got location only 3-5 second. anyone know else?

@michaelsof47, today we have updated the geolocator (to version 7.6.0) to include a bug fix with the getCurrentPosition method.
In the past this method contained a bug which caused the method to return a cached location (which most of the times is not the real location). After the bug fix it will retrieve the real location however the first time this might take several seconds since the device needs to connect with the different available location services (network, GPS, WiFi, etc...).
This is also documented in the CHANGELOG.md. Suggested method of working is to first call the getLastKnownPosition and update the value later with the outcome of the getCurrentPosition method.

wow, it's works. after i tried install an apps. it makes only 3-4 seconds within LocationAccuracy.medium. but, it not works on LocationAccuracy.high when relogin and i try access it. it makes 28 seconds to get current location

@michaelsof47 which platform are you using (iOS or Android)?

wow, it's works. after i tried install an apps. it makes only 3-4 seconds within LocationAccuracy.medium. but, it not works on LocationAccuracy.high when relogin and i try access it. it makes 28 seconds to get current location.
i'm really thank you about new update version. you're saving my time sir

I am also facing same issue with 7.7.1 version with real device, but it works fine with simulator.

i am also facing delay in iphone . in android it is working perfectly

@sandeepgurram, @MuraliThangavel, this is expected behaviour and explained in more detail in issue #887. Older versions (pre-7.6.0) of the geolocator actually contained a bug when fetching the current position (see issue #629) which was fixed in version 7.6.0.

@mvanbeusekom , i am using 7.7.1 . but still it takes 10 seconds to fetch the location. what is the exact solution for this ? please help me

@MuraliThangavel as mentioned this is expected behaviour. More information in issue #887 I suggest you read it carefully.

same for me, IOS 14, and location package last version. How can i fix this error.

@obolorhuu please read the comments above:

https://github.com/Baseflow/flutter-geolocator/issues/320#issuecomment-908296930
https://github.com/Baseflow/flutter-geolocator/issues/320#issuecomment-972701940
https://github.com/Baseflow/flutter-geolocator/issues/320#issuecomment-972710347


Cannot compile gfx-macros

It is possible I am making some kind of obvious beginner mistake, but I've tried with the rustup stable, beta, and nightly channels and still get similar failures:
% cargo check --color=always --all --all-targets
   Compiling gfx_macros v0.1.10
   Compiling gfx_gl v0.5.0
   Compiling num-derive v0.2.2
    Checking env_logger v0.5.13
    Checking winit v0.17.2
    Checking rayon v1.0.2
error[E0432]: unresolved import `syntax::codemap`
  --> /Users/geoffw/.cargo/registry/src/github.com-1ecc6299db9ec823/gfx_macros-0.1.10/src/lib.rs:24:30
   |
24 | use syntax::{ast, attr, ext, codemap};
   |                              ^^^^^^^ no `codemap` in the root

error[E0432]: unresolved imports `syntax::abi`, `syntax::codemap`
  --> /Users/geoffw/.cargo/registry/src/github.com-1ecc6299db9ec823/gfx_macros-0.1.10/src/shader_param.rs:15:14
   |
15 | use syntax::{abi, ast, codemap, ext};
   |              ^^^       ^^^^^^^ no `codemap` in the root
   |              |
   |              no `abi` in the root

error[E0432]: unresolved import `syntax::ext::base::ItemDecorator`
  --> /Users/geoffw/.cargo/registry/src/github.com-1ecc6299db9ec823/gfx_macros-0.1.10/src/shader_param.rs:16:5
   |
16 | use syntax::ext::base::ItemDecorator;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `ItemDecorator` in `ext::base`

error[E0432]: unresolved import `syntax::owned_slice`
  --> /Users/geoffw/.cargo/registry/src/github.com-1ecc6299db9ec823/gfx_macros-0.1.10/src/shader_param.rs:18:13
   |
18 | use syntax::owned_slice::OwnedSlice;
   |             ^^^^^^^^^^^ Could not find `owned_slice` in `syntax`
...

Here is exactly what I have been using:
%rustup show
Default host: x86_64-apple-darwin

installed toolchains
--------------------

stable-x86_64-apple-darwin
beta-x86_64-apple-darwin
nightly-x86_64-apple-darwin (default)

active toolchain
----------------

nightly-x86_64-apple-darwin (default)
rustc 1.30.0-nightly (bb0896af1 2018-09-29)

The macros crate is experimental and not officially supported. If you want to just build/test everything, make is your friend. Trying to test everything with Cargo faces the fact that no single platform supports all the backends we have.

Okay, I was under the impression the correct way to work define projects was to use Cargo.  So you're saying that the only way to use gfx-rs is to reference its source directly?

@gawashburn the current gfx-rs source tree (master branch) isn't published on Crates.io yet, so there is no other way than referencing the source tree.


Get openshift_master_default_subdomain from cluster config in install.sh

Don't require user to set this env var

resolved by https://github.com/kabanero-io/kabanero-operator/pull/385


Handle pagination

IMO the API should help to handle pagination where it is used and return a complete data structure to the caller.

RIP localbitcoins


Minor optimization to DefaultRoleService bootstrapAdminUser

Resolve possible bootstrapAdminUser setting once, on init, and log if active.
Simplify getRolesForUser accordingly - this can get called in hot loops with permission checks, want to do anything we can to keep it lean and mean.

Apologies for the whitespace changes - that's my IDE, promise I am not spending (that much) time fiddling with spacing braces...

@amcclain -- love this clarity


Expose multimask_output in EfficientSam.forward

This would involve adding the optional parameter to EfficientSam.forward, and then passing it to EfficientSam.predict_masks.
    def forward(
        self,
        batched_images: torch.Tensor,
        batched_points: torch.Tensor,
        batched_point_labels: torch.Tensor,
        scale_to_original_image_size: bool = True,
        multimask_output: bool = True
    ) -> Tuple[torch.Tensor, torch.Tensor]:
        """
        Predicts masks end-to-end from provided images and prompts.
        If prompts are not known in advance, using SamPredictor is
        recommended over calling the model directly.

        Arguments:
          batched_images: A tensor of shape [B, 3, H, W]
          batched_points: A tensor of shape [B, num_queries, max_num_pts, 2]
          batched_point_labels: A tensor of shape [B, num_queries, max_num_pts]
          multimask_output: If True, generate multiple masks for each query. Otherwise, generate one mask per query.

        Returns:
          A list tuples of two tensors where the ith element is by considering the first i+1 points.
            low_res_mask: A tensor of shape [B, 256, 256] of predicted masks
            iou_predictions: A tensor of shape [B, max_num_queries] of estimated IOU scores
        """
        batch_size, _, input_h, input_w = batched_images.shape
        image_embeddings = self.get_image_embeddings(batched_images)
        return self.predict_masks(
            image_embeddings,
            batched_points,
            batched_point_labels,
            multimask_output=multimask_output,
            input_h=input_h,
            input_w=input_w,
            output_h=input_h if scale_to_original_image_size else -1,
            output_w=input_w if scale_to_original_image_size else -1,
        )

I'm happy to make a PR for this, but I figure it may be easier to just throw this in as part of the ongoing updates you all are making.
Thanks for releasing this code and updating it so frequently!
Edit: I tried the code above, and using multimask_output=False seems to be giving me broken masks, so I'm probably missing something and this may be more involved than I'd thought. The bug could also be in my postprocessing code.
For the dog example image and points, this is what I get with, and without multimask:

The predicted IOU for the single-mask mode masks tends to be very low (1e-5), so I don't think the problem is how I'm unpacking the masks.
I also tried using bounding box prompts instead of point prompts, since the original SAM paper says single mask mode was designed for multi prompt mask generation, but this still gave me the diffuse, grid-like masks that the point prompts gave me.

I'm experiencing the same problem. When I set multimask_output=False to get a single mask, the mask results are very poor!


[cxx-interop] NFC: move unsafe iterator types to a separate file

Since the unsafe iterator types are now used throughout the overlay, not just by CxxSequence and CxxRandomAccessCollection, let's move them to a separate file.

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please smoke test


refactor lib to allow support for other Okta applications

Hello @nickatsegment
We've been looking at other Okta integrations, in particular Kubernetes with Implicit OIDC, with some refactoring the OktaClient could be re-used for these other auth flows.
What are your thoughts about a new major release that would have a more clear boundary between Okta auth and AWS SAML app auth flows?
I'm thinking a structure like:
                                      <ExecCmd>
                                          |
                                  [AwsSamlProvider]
                                          |
                                    [OktaClient]

Where ExecCmd (or any other command using the provider) would remain mostly unchanged, AwsSamlProvider would be responsible for all of the AWS SAML specific logic and for caching aws credentials.
OktaClient would be responsible for authenticating the Okta session via api/v1/authn and any MFA support. The client would also be responsible for caching the Okta session credentials.
We have some development time set aside for this work and are happy to make the changes. I would appreciate your design input so that the changes can be part of the aws-okta in future releases.

I am really into the idea of a refactor and have been thinking about it for a very long time. I have many thoughts.
Considering we're still pre-v1, according to golang compatibility guidelines, we can technically change the API however we want. That said, I've been a stickler in the past about changing the API unnecessarily, because it always should prompt a new release and it means rebasing any PRs in flight. In this case though, a breaking change seems pretty necessary. I think we should stick with v0.x until we are dead certain that the API is good and stable, and then release a v1.
I think this would be a lot easier if we versioned the client separately from the libs. If we're introducing a new consumer of the lib API that might have changes that wouldn't affect the CLI, then it'd be nice to not have to cut CLI releases for those versions. I've been reading up on multi-module go repos, but haven't taken the plunge to actually use them and don't know how well they work. It might be safer to have the lib in its own separate repo, but that will probably be annoying. Thoughts?
It would be nice if we could do the development of the new lib in parallel. Here's how I'd propose doing that:

Create a new package/dir lib2 (this is a bad name; real name TBD). This might be many packages.
Copy existing lib code into lib2/internal/lib_orig
In lib2, gradually expose/refactor new API, importing lib_orig as necessary.

Gradually push the CLI to using these new APIs. The CLI should not change functionally, so new releases should not need to be made, but we could cut pre-releases. Ultimately, we want to do exactly 1 minor release of the client to start using lib2 in its entirety.
When nothing is referencing a symbol in lib, we can mark it as deprecated, and it will be removed in v1.
Simultaneously, you can start consuming lib2 in your new code to make sure it's fit to purpose.

Once all of lib is present in lib2, we can mark lib as entirely deprecated and cut a minor release of the CLI.
At some point in the future, release v1.0 and remove all of lib, leaving only  lib2. This probably won't require a new CLI release, but it might feel good to do so :)

The main idea here is to minimize coordination and backporting efforts. We don't want this refactoring effort to impede bugfixes or features on the existing codebase. And we also don't want the work to languish on a branch that drifts from master. Does this make sense? Or seem too fiddly?

Your suggested approach sounds like the best way forward to get these changes in use.
The only item that I don't understand is

Copy existing lib code into lib2/internal/lib_orig

Could you elaborate more on the benefits of doing this?
We have some ideas on the changes to the provider and client. Is there anything else that you wanted to refactor before we make the new packages in lib2 public?
Once the refactor is public we can start using it to create our own client for authenticating k8s via oidc/okta.
We'll PR the provider and client changes by the end of the week.

Could you elaborate more on the benefits of doing this?

It's probably not essential actually. It would just show more clearly how much of the codebase has been migrated to lib2.

Is there anything else that you wanted to refactor before we make the new packages in lib2 public?

I don't really like the looseness of the pervasive Profiles type; it should probably be nicely typed structs.
And in general, the business logic and UI are too intertwined: e.g., there are CLI prompts and env var lookups happening in the lib code.
If you're intending to use this from an automated client you probably would have had to clean those up anyway, so maybe those are obvious points.
I realize we have almost 0 automated tests currently, but adding some to show that things work the way they should would be very much appreciated :) Also docstrings.
I had a thought on the CLI vs API versioning: maybe we use the top-level module to mean the CLI and then the (new) API would be a sub go module, so tags would look like v0.27.0 (meaning the version of the aws-okta CLI) and libs2/v0.1.0 would mean the API. This might require some playing around to get the CI right.

I've pinned this and #236 to increase visibility. Hopefully this will make the refactor smoother, and avoid extensive rebasing.


Change syslog dependency to Recommends

Description
While a syslog daemon is required for full desired Ops Agent functionality, our previous reliance on the presence of a syslog daemon was provided by the dependency specified in the google-compute-engine package, which is a Recommends dependency.
This PR changes the syslog daemon dependency in the Ops Agent deb package to Recommends instead of Depends.
Related issue
b/339061751
How has this been tested?
Manually tested the workflow where we install Ops Agent without installing rsyslog:
make build to get a local deb package.
Created a new Debian 12 GCE VM.
Remove rsyslog from the VM:
sudo apt purge rsyslog

Copied the deb package to the VM. Install it without installing Recommended packages:
sudo apt install --no-install-recommends ./google-cloud-ops-agent_2.49.0~debian12_amd64.deb

rsyslog was not installed, verified with:
dpkg -l | grep rsyslog

Checklist:

Unit tests

[x] Unit tests do not apply.
[ ] Unit tests have been added/modified and passed for this PR.

Integration tests

[x] Integration tests do not apply.
[ ] Integration tests have been added/modified and passed for this PR.

Documentation

[x] This PR introduces no user visible changes.
[ ] This PR introduces user visible changes and the corresponding documentation change has been made.

Minor version bump

[ ] This PR introduces no new features.
[x] This PR introduces new features, and there is a separate PR to bump the minor version since the last release already.
[ ] This PR bumps the version.

Debian 11 failure is a flake. The rest of the failures are expected.
@igorpeshansky do you think this should be merged now or should we wait til those CI failures are resolved? This is slated for 2.49.0 but so are the fixes causing the CI failures in the PR anyway.


How to validate if the correct packages have been installed?

I have a basic test framework working for pip, and I am now debugging the results.
One thing I am immediately confused on, is I expected that "expected" would give the success conditions for each scenario. But looking at example.json: https://github.com/astral-sh/packse/blob/main/scenarios/example.json this is not the case. Expected includes "b": "3.0.0", but the success criteria would be "b" equal to "2.0.0".
Is this just a bug in this example or am I misreading the scenarios?

All the scenarios have their version encoded in <module>.__version__ or you can use importlib metadata to retrieve it.
The example is indeed incorrect, I can fix that. We do not use that example in any of our tests. All the other scenarios should be correct.

Ah, I started with example because it was the simplest and assumed it would be a correct example! Feel free to close this issue.
I am now going through the whole test suite and filing other issues as I find them. Hope that is appreciated.

It's definitely appreciated! I'll respond as I can, although I may not get to them all until Monday.

It's definitely appreciated! I'll respond as I can, although I may not get to them all until Monday.

No worries, I work on OSS in my free time not during my work hours! I don't expect quick turn arounds, most OSS projects might take days or weeks to respond...


Prevent next-translate from using getInitialProps because of HoC in _app.ts

Currently, next-translate is using the getInitalProps strategy in my app, because I'm using a HoC in my _app.ts, but that HoC is not adding any getInitalProps to _app.ts.
How can I force next-translate to use the preferred getStaticProps strategy instead? My _app.ts looks like this:
import { withTRPC } from './trcp';
import { SessionProvider } from 'next-auth/react';
import { AppProps } from 'next/app';
import Head from 'next/head';
import './styles.css';

function CustomApp({ Component, pageProps }: AppProps) {
  return (
    <SessionProvider session={pageProps?.session}>
      <Head>
        <title>Welcome to web!</title>
      </Head>
      <main className="app">
        <Component {...pageProps} />
      </main>
    </SessionProvider>
  );
}

const WrappedApp = withTRPC(CustomApp);

export default WrappedApp;

Adding an empty getStaticProps on your _app.js should fix this:
export let getStaticProps = undefined

Adding an empty getStaticProps on your _app.js should fix this:
export let getStaticProps = undefined

If add that line then this kind of problem occures:
"common:profile" is missing in current namespace configuration. Try adding "profile" to the namespace "common"

Adding an empty getStaticProps on your _app.js should fix this:
export let getStaticProps = undefined

If add that line then this kind of problem occures: "common:profile" is missing in current namespace configuration. Try adding "profile" to the namespace "common"

sorry, the problem was in next.config.js, my webpack config was overriding next-translate's one i guess.
My config was defined like:
const nextConfig = nextTranslate({
  webpack(config, ctx) {
  ...

changing it to:
const nextConfig = nextTranslate({
  webpack: (config, ctx) => {
  ...

fixed it


brakes bug

If you activate engine and after this turn on brakes game will crash

small update: you need 2 or more transitions to it to work


fix: allow mercurius 14 as peer dependency

thx for the review. I just would like to ask when do you plan to merge and publish a new version of the lib?

thx


feat: add validation check for input

Added a validation check to ensure that the input string is alphanumeric.

Thanks! I can't believe that I haven't noticed this pull request.


Initial Challenge Setup - Multisend

The setup is like this; eth-tech-tree is a CLI for downloading, submitting and managing which challenges a user has completed. The repo that houses all the challenges in called eth-tech-tree-challenges. Each challenge is a new branch on that repo.
Follow the example left by the Token Wrapper WETH challenge and see how that challenge is configured in the challenges.json file in the eth-tech-tree repo.
{
    "type": "challenge",
    "level": 1,
    "name": "token-wrapper-weth", // Branch name
    "label": "Token Wrapper - WETH",
    "repo": "https://github.com/escottalexander/scaffold-eth-2",
    "testHash":"cdef2b9c0051c45a8ce2c1ec14a7446419496a018a6dc114735cce9de3a4f249",
    "testFileName":"WrappedETH.t.sol",
    "tags": ["DeFi"]
  },

Here are the steps for adding a new challenge:
Creating a new challenge

Fork and download the eth-tech-tree-challenges repo
Create a new branch based on the main branch (which is set up to be a template for any challenge) with the name of the challenge e.g. 'multisend'
Write out a solution to the challenge in solidity using best industry standards as generically as possible by editing Challenge.sol and changing it's name to match the challenge
Write tests that cover the most common pitfalls and guarantee the contract operates as expected (Challenge.t.sol) - change it's name to match the contract
Update README in your challenge to give the user clarity about what they must accomplish and also any helpful resources (see the token-wrapper-weth challenge for an example)
Commit and push your changes to your remote repo, creating a new branch on your remote git push
Submit a PR to the main eth-tech-tree-challenges repo pointed to the branch that matches your challenge name e.g. 'multisend'

Adding the new challenge to eth-tech-tree CLI app

Edit challenges.json (in eth-tech-tree) to have proper values for each property

name: should match your branch name
repo: should be your repository
testName: should be the name of the test file
testHash: should be the hash of the test file. Use console.log to get this when taking the "submit challenge" action on your challenge when running eth-tech-tree CLI

Test downloading and submitting the challenge using the eth-tech-tree CLI yarn build && yarn cli
Commit and push changes to the eth-tech-tree in your own fork and branch called 'adding-[challenge branch name]' and submit a PR to the main repo 🎉

Later, in another task, we will erase your specific solution code from the git history for your new branch in eth-tech-tree-challenges.

Multisend challenge specifics
This challenge will require the user to build a contract that is capable of sending tokens or ETH to multiple provided addresses. I would go about this by creating two separate methods, one for sending ETH and one for sending any ERC20 token. Each method will be provided an array of addresses and an array of amounts. The ERC20 method will also receive the token address. Let me know if you have any questions or ideas to make this more instructional for the end user.
It already has an object in challenges.json which has the name field 'multisend'.

I can take a crack at this. I will likely have clarification questions but can start with stubbing out a solidity contract with pseudo code. I'm thinking of taking on #2, #5, or #6 as well.

PR #31 closes this issue :)


Shortcut capture not working correctly under macOS

Hi, Thank you for this great terminal.
When I capture a shortcut in macOS, Terminus captures that shortcut with macOS characters like '⌘-Shift-E. These shortcuts work fine for local shortcuts like next-tab or previous-tab. But they don't work for global shortcuts like toggle-window.
If I capture a shortcut like in the following gif:

That shortcut doesn't work. I cannot use it for toggling Terminus window. But it works correctly if I replace ⌘ with Command in the config file:
hotkeys:
  next-tab:
    - - '⌘-Shift-]'
  previous-tab:
    - - '⌘-Shift-['
  toggle-window:
    - - Command-`
    - - Command-Shift-E

The problem also occurs with the ⌥ character. But it works fine for Ctrl. I think you should somehow make exceptions for global shortcuts and record modifier names instead of macOS specific characters.

It seems that some keys are not working too for global hotkeys.
For example, Ctrl+Space works, but Ctrl+@ doesn't.
While Ctrl+@ is working for a local shortcut.

Any news on this? I'm still not using Terminus because of that.
There is multiple issues on macOS for global shortcuts:

⌘ and ⌥ symbols need to be replaced with Command and Alt in config file.

When using ⌥ key, the alternative character is registered. For example, if I press ⌥+Z, hotkey will be set to ⌥-∑ and will not work even by when replacing ⌥. (∑ needs to be replaced too, with Z).

When using another keyboard layout, we need to press the matching key of the English layout. For example, on a french AZERTY layout, pressing Ctrl+Z will register the hotkey as Ctrl-Z but will respond to Ctrl+W.

Some characters simply doesn't work, mainly all "special chars" (almost all chars that are not A to Z)

This doesn't work for CTRL+SPACE. please fix


cprof can't handle Khepri?

I'm not sure if that's a bug in Khepri, a side effect of how Khepri transactions work or perhaps a limitation/bug in cprof but they don't like each other. While I don't need to profile khepri:info/0, I'm a bit concerned that some tooling may struggle with Khepri (fprof seems fine so far though)
1> cprof:start().
51988
(rabbit@mkuratczyk-a01)2> khepri:info().
Running stores:
  metadata_store
ok
(rabbit@mkuratczyk-a01)3> cprof:stop().
51988
(rabbit@mkuratczyk-a01)4> cprof:analyze().
** exception error: undefined function 'ktx__rabbit_vhost__-with_in_khepri/2-fun-0-__106331979':module_info/1
     in function  cprof:analyse/2 (cprof.erl, line 196)
     in call from cprof:'-analyse/1-lc$^0/1-0-'/2 (cprof.erl, line 178)
     in call from cprof:'-analyse/1-lc$^0/1-0-'/2 (cprof.erl, line 178)
     in call from cprof:analyse/1 (cprof.erl, line 178)

module_info/{0,1} are added automatically by the Erlang compiler to all modules when it prepares the Beam assembly.
After talking with Loïc, we decided that the module_info/{0,1} were not that useful to everyday uses and they would double the generated module size (and footprint in Ra commands and WAL) for simple transactions. That's why the module generated while extracting a transaction function does not have them.
It's easy to add them back, but we have to make a compromise somewhere. What do you think?

Sounds reasonable. I wasn't aware that this was a known limitation and an explicit trade-off.


Fix/broken images

Fix missing images for multiple podcasts by sswitching to rss data import.

Hey @frederic-klein 👋
Thanks for helping me with this, I've added you as a contributor to this repo.
Can you switch to rss all the images? 🙂

Awesome, thanks for the invite. Sure, will update the PR later today.

@frederic-klein
Can you write me an email to<EMAIL_ADDRESS>please?

@iRaul the lazy loading of the RSS data is pretty slow. Working on a google cloud function that will periodically and triggered by a merge into master branch update the rss data and provide all the data in a single REST call. This will give us a much faster time to reactive and a more or less zero maintenance update pipeline. Can you have a look at the truncated titles (hover for full title)?


Fix Invalidate/Reconnect behavior

We need to fix Invalidate/Reconnect action behavior eventually (see #1885 #3415 )
It will close tunnel/db connection and won't try to check whether the connection is alive. This should dramatically reduce invalidation time in some cases.

Let's celebrate Usability Day together ;)


Specify carbon-components version

Changes
Fixes #870
Implementation details

Following guidance from the Carbon team, commented here
Specified the version in head template

How to read this PR

See how we specify carbon-components v 10.56.0
See branch and notice the type/spacing is correct

Screenshots (back to normal)

Wow! Why we use unpkg.com CND instead of an npm dependency?

@abdonrd - good question. I don't remember how this came about, but maybe @vabarbosa might have an idea. I'm down for using npm if that can work.


Breakup plant_inventory.js

I think it would be easier to deal with the farm designer's left panel if the code in plant_inventory.js was broken up into different files such as: plant_inventory.js, group_inventory.js, and zone_inventory.js
What do you think @RickCarlino?

Agreed. Was just lumped together while prototyping. I can start separating it out on Monday, but feel free to break it apart and submit a PR if you have time. I think there are a couple other files that haven't been separated out yet, also (can't remeber file names off the top of my head).
Typically, I like to keep one class per file, and name the file after the class it defines.

Cool. I'll wait for you to do it on Monday because there is some logic in there with the routing and such that I don't want to break.

PS, the app is looking pretty refined! :)

Thanks! It's coming along bit by bit.
Sent from a mobile device. Please excuse my brevity.
On Nov 28, 2015 11:21 PM, "Rory Aronson"<EMAIL_ADDRESS>wrote:

PS, the app is looking pretty refined! :)
—
Reply to this email directly or view it on GitHub
https://github.com/FarmBot/farmbot-web-frontend/issues/8#issuecomment-160372708
.

Ended up figuring it out for the most part!
Lots of styling ready to be reviewed and merged when you get a chance :)


[GCB] Improvements to remote build

Things done:

Use machine with multiple CPUs and high memory
Remove copying .git step as the bug is now fixed
Improve ids
Disable crashlytics plugin for non-release builds
Update save cache step to only cache relevant files

This also introduced < 1 min queue time as now the build depends on availability of high configuration machines.
But this gap is more than compensated by the fact that each gradle step is now 8 times faster.
@gino-m PTAL?

Build started failing after I cleared the remote gradle cache.

ngExternalLibArtifactTransform: /workspace/.gradle/caches/transforms-2/files-2.1/43c831dc0f2e5955188d8a23a85dca6b/jetified-play-services-base-17.5.0-runtime.jar.
Step #4 - "Assemble debug apks": 2021-06-19T06:21:01.272+0000 [DEBUG] [org.gradle.internal.file.impl.DefaultDeleter] Deleting /workspace/.gradle/caches/transforms-2/files-2.1/926a923a54c8acd83c074ca094f87d82
Step #4 - "Assemble debug apks": 2021-06-19T06:21:04.049+0000 [LIFECYCLE] [org.gradle.process.internal.health.memory.DefaultMemoryManager]
Step #4 - "Assemble debug apks": 2021-06-19T06:21:04.049+0000 [DEBUG] [org.gradle.process.internal.health.memory.DefaultMemoryManager] 412653568 memory requested, 33206272 free
Step #4 - "Assemble debug apks": 2021-06-19T06:21:04.054+0000 [DEBUG] [org.gradle.workers.internal.WorkerDaemonExpiration] Will attempt to release 393 of memory
Step #4 - "Assemble debug apks": 2021-06-19T06:21:04.092+0000 [DEBUG] [org.gradle.process.internal.health.memory.DefaultMemoryManager] 412653568 memory requested, 0 released, 33206272 free
Step #4 - "Assemble debug apks": 2021-06-19T06:21:04.703+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
Step #4 - "Assemble debug apks": 2021-06-19T06:21:04.714+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
Step #4 - "Assemble debug apks": 2021-06-19T06:21:04.725+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
Step #4 - "Assemble debug apks": 2021-06-19T06:21:04.727+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
Step #4 - "Assemble debug apks": 2021-06-19T06:21:04.727+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
Step #4 - "Assemble debug apks": 2021-06-19T06:21:04.728+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.

@gino-m This is ready for you review!

@mmisim With this change we'll need to update the build and deploy docs to build the release build instead of debug. I'll make those changes directly in the doc for your review next time I cut a release for the pilot.
@shobhitagarwal1612 Thanks for the change, excited to see it's working now!


Support for custom tags

Hi,
I'm using your parser to parse this feed: http://rss.cnn.com/rss/edition.rss
It's working well in general, but this feed uses the media:group tag (with different media:content elements for different resolutions) for the articles' images. This tag does not seem to be supported currently. Is it in any way possible to add custom tags to get parsed additionally?

Thanks for your feedback. I have also thought about adding support for custom tags, but i haven't done any implementation yet. If you have any ideas, feel free to add them here or add a pull request. Otherwise i will think about it and try to add something to this project.

I've run into a similar need, the feeds I'm using have article images in media:thumbnail tags. Is there a way to parse them at the moment?


Version 0.9.1 causes infinite recomposition.

I have not yet debugged what causes this, but in 0.9.1 reading the rememberReorderableLazyListState from the lazycolumn will cause infinite recomposition.
    val reorderState = rememberReorderableLazyListState(
        listState = lazyListState,
        onDragEnd = { from, to ->  },
        onMove = { from, to ->  }
    )

    LazyColumn(
        state = reorderState.listState,
        contentPadding = PaddingValues(bottom = 8.dp),
        modifier = Modifier.reorderable(state = reorderState)
    ) {
        item {
            header()
        }
        itemsIndexed(items = playlistEntriesItems, key = { _, item -> item.id }) { index, item ->
            ReorderableItem(reorderState, item.id) { isDragging ->
}
}
}

No issue with 0.9.0

Thx for reporting this


Skynet and Substrate Integration

Grant Application Checklist

[x] The application template has been copied, renamed ( project_name.md) and updated.
[x] A BTC or Ethereum (DAI) address for the payment of the milestones is provided inside the application.
[x] I have read and acknowledged the Terms and Conditions.
[x] The software delivered for this grant will be released under an open-source license specified in the application.
[x] The total funding amount of the project is below USD $30k for initial grant applications and $100k for follow-up grants.
[x] The initial PR contains only one commit (squash if needed before submitting your PR).
[x] The grant will only be announced once the first milestone has been accepted.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hey @dghelm, could you give another update on the project?

Hey @dghelm, could you give another update on the project?

Absolutely. When working with off-chain workers pallets, the two devs we have on the project have run into lots of issues running documentation examples, and blocking issues have delayed us a bit. Dan Shields and other folks have gotten us moving again though, and we are now modifying the off-chain worker example pallet with the Substrate code from the repo above and hope to see few issues getting Skynet interaction working, and will publish it alongside documentation when completed.

Thanks for the update, Daniel. Great to hear. I'm familiar with the pain of things moving too quickly for documentation (or oneself for that matter) to keep up. Please keep us in the loop. If the delivery is moving towards February, it'd be best to submit an amendment with an updated timeline. Other than that, keep going. :)

@dghelm checking in again, any progress? The repo hasn't really been touched since October. Are you still interested? As Sebastian mentioned, it's probably time to submit an amendment.

We've made steady progress, but have been slowed down by tooling issues and the project being handed off to another engineer internally. We've got a clear plan towards wrapping up though and should have more code to share soon.
Happy to submit an amendment. Would this just be for the timeline, since we're not looking to alter the scope at the moment? And I can just make a new PR that modifies this file? If you or @semuelle have suggestions, please let me know, and thanks for your patience with the project.

That's great to hear. Yes, in that case you can just update the timeline by opening a PR.

@dghelm friendly reminder.

@dghelm friendly reminder.

Thanks. Should be pushing the Grant Milestone Delivery by end-of-day. Will follow up here when submitted.

I've submitted an update explaining time delay and updating company name, emails & payout method in #845
@alxs


Angular 2 Components

Hey,
I am using this admin for angular2 app, and will create repo with reusable components. Are you interested in translating this to angular2?

Sure, create your own repo and translate it so we can add it on the list of https://github.com/puikinsh/gentelella#gentellela-for-other-platforms-and-frameworks

hey dszmaj.. did you have any success integrating the template into angular2?

I've actually just published new repo where I converted the core of gentelella to Angular2.  The link is here:  https://github.com/kmkatsma/angular2-webpack-starter-gentelella
I used the angular2-webpack-starter as the basis, so you have some cool stuff for that.  I haven't converted all the pages there, but all the core is there, with index.html and inbox.html as available content items.
I'm working on a similar conversion to Aurelia, built off of their typescript webpack skeleton.


[KYUUBI #1958] Fix flaky test: statement redact for engine tab

Why are the changes needed?

close #1958
How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

can we use connection share level  instead ?

can we use connection share level instead ?

We may not, this is to start KyuubiSparkEngine directly, not submitted through KyuubiServer.

I think they are same, we also use jdbc to do test at engine side. Can see an example ConnectionLevelSparkEngineSuite.

I think they are same, we also use jdbc to do test at engine side. Can see an example ConnectionLevelSparkEngineSuite.

@ulysses-you  got it, but we probably don't need a connection-level engine, can we just make EngineTabSuite extends WithDiscoverySparkSQLEngine?

seems it's trivial
thanks, merging to master


Drizzle's relational query builder not working with worker

I've setup pglite with idb and alternatively with opfs-ahp/worker and drizzle. Usually there should be a .query.* available for the drizzle client when you pass in the schema as secondary options argument, which is the case for indexeddb. But it's empty, when I initialize it with the worker.
This is my worker
import { PGlite } from '@electric-sql/pglite';
import { live } from '@electric-sql/pglite/live';
import { OpfsAhpFS } from '@electric-sql/pglite/opfs-ahp';
import { worker } from '@electric-sql/pglite/worker';

await worker({
	async init() {
		return await PGlite.create({
			extensions: { live },
			fs: new OpfsAhpFS('/dummy/abc'),
		});
	},
});

and this is the code for the client
import * as schema from '@/drizzle/pglite';
import { PGliteWorker } from '@electric-sql/pglite/worker';
import { drizzle } from 'drizzle-orm/pglite';
import { live } from '@electric-sql/pglite/live';

const pg = await PGliteWorker.create(
	new Worker(new URL('./worker/index.ts', import.meta.url), {
		type: 'module',
	}),
	{
		extensions: {
			live,
		},
	},
);

// @ts-expect-error should work
const db = drizzle(pg, { schema });

Then, later on
console.log(db.query) // empty object

however, when I use the indexeddb version
import { IdbFs, PGlite } from '@electric-sql/pglite';
import { live } from '@electric-sql/pglite/live';

const pgIdb = await PGlite.create({
	extensions: { live },
	fs: new IdbFs('pglite-db'),
});

const dbIdb = drizzle(pgIdb, { schema: dt });

// and later

console.log(dbIdb.query) // this contains my schema tables

query is properly set to reflect my schema.
Am I missing something or is this not supposed to work?
below is a screenshot of a console log where it's also obvious that the schema was not set

I would expect that to work. Is the PGliteWorker instance working in your setup without going via Drizzle?


Update django.yml

Codecov Report

Merging #2 (8717d8e) into main (5c2d451) will increase coverage by 1.75%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main       #2      +/-   ##
==========================================
+ Coverage   92.98%   94.73%   +1.75%
==========================================
  Files           4        4
  Lines          57       57
==========================================
+ Hits           53       54       +1
+ Misses          4        3       -1

Impacted Files
Coverage Δ

core/settings/base.py
96.77% <0.00%> (+3.22%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


latest or oldest

I'm a bit confused by using latest and oldest methods in same query . would you please explain this :
public function index($n)
	{
		return $this->model
		->with('post', 'user')
		->oldest('seen')
		->latest()
		->paginate($n);
	}

Because there are 2 orders, look at queries :
select count(*) as aggregate from `comments`
select * from `comments` order by `seen` asc, `created_at` desc limit 4 offset 0
select * from `posts` where `posts`.`id` in ('1', '2')
select * from `users` where `users`.`id` in ('2', '3')
select * from `users` where `users`.`id` = '1' limit 1


How can you display "actions" i.e. edit and delete buttons on the table ?

Please provide a code example of what you are currently doing and what you expect to happen.

Hi @TheRealVizard, from my understanding the table in constructed by using the model's fields, however sometimes you want to add plain html i.e. to trigger button actions.
Does the existing code, allows for abstract HTML to be passed on as table row (screenshot of such example)?

You can use the added_columns in your table declaration.
.....
    def html_content()->str:
        return '

'

    ......
    TableSort(
     ......
         added_columns=[
             (("extra_col", ""), html_content),
         ]
    )
    ......

once again thank you! thats really helpful :)

I have a follow up question on my previous issue I opened. The example you provided I cannot pass the "object" being edited/deleted" i.e. {% url 'delete' object.pk %}.
This is because we passing a simplehtml, that didn't go through the loop of the objects before being pass in to the Table.
If that can be done, can you explain how can I accomplish that? Thank you in advance.

Hi @helixaros the function you pass in the added_columns kwarg should have an instance arg this is the instance for the given row. Then you can use the reverse function to get the appropriate URL.
    def html_content(instance)->str:
        return f'Delete Instance'

    ......
    TableSort(
     ......
         added_columns=[
             (("extra_col", ""), html_content),
         ]
    )
    ......


Text view / Multiline text field

A multiline text field or a text view with a set/resizable size would be good

+1

I'll try and get this out tonight.

I now recall why I didn't do this in the first place - text views don't have placeholders, so I'll have to implement some alternative.

@mamaral You can use SZTextView

@pashikua Yeah, I'm aware of a few alternatives, although I'd prefer to not have any dependencies as I'm animating placeholders and stuff, so I'd rather have some more control over it. I'd like to roll my own - we'll see.

So, how to use textview in the MAFormViewController? Is enhancement done?

No, this hasn't been added and honestly likely won't be. I'm not sure how much more support will be kept on this library in the future. It's still TBD.

What a pity!
Control is a great!
Dmitry

On 05 Jan 2016, at 23:48, Mike Amaral<EMAIL_ADDRESS>wrote:
No, this hasn't been added and honestly likely won't be. I'm not sure how much more support will be kept on this library in the future. It's still TBD.
—
Reply to this email directly or view it on GitHub.


job config don't have default port

The job config should have a port list as default, if user don't set port in job config, assign a default value.

#61 fix this bug


⚠ ClamAV has degraded performance

In 3ec35c7, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 203 ms

Resolved: ClamAV performance has improved in 99adaa1.


Duration is in miliseconds

Hi there !
In the documentation we can see duration is in seconds but it seems to be in miliseconds.
src/Plugin.Maui.Audio/AudioPlayer/IAudioPlayer.cs

on Windows it works fine (shown in seconds), on Android it doesn't...

Good spot! Thanks for this


Loading screen customization

Dark mode is implemented. There are no other notable customization features for the client for now.

Dark mode is implemented. There are no other notable customization features for the client for now.


facing issue while creating react app

only  create package-lock.json file, too much time taken but app not created

this might occur because of network connection. your internet may have been disconnected for some time during installation process.

@Ajay-Babare Hello. Any updates on this issue? Try creating again to see if this happens again. If not, you can close this. Thank you.


Evaluate SwivelSecure as an MFA Provider

Resource: https://kb.swivelsecure.com/wiki/index.php/Java_Client

We have an existing implementation with CAS 3.x and CAS-MFA that looks very promising to adapt to CAS 5.x

Received courtesy of @dacurry-tns

This is done now.


'PokemonGoBot' object has no attribute '_player'

Traceback (most recent call last):
  File "pokecli.py", line 803, in <module>
    main()
  File "pokecli.py", line 239, in main
    report_summary(bot)
  File "pokecli.py", line 287, in report_summary
    metrics.capture_stats()
  File "P:\pokemon go\PokemonGo-Bot\pokemongo_bot\metrics.py", line 105, in capture_stats
    self.dust['latest'] = self.bot.stardust
  File "P:\pokemon go\PokemonGo-Bot\pokemongo_bot\__init__.py", line 72, in stardust
    return filter(lambda y: y['name'] == 'STARDUST', self._player['currencies'])[0]['amount']
AttributeError: 'PokemonGoBot' object has no attribute '_player'

@rawgni

same problem, could not start bot.

Follow that PR and add that line should work for now.

#5254 has been merged into dev, but not master. You will need to apply the fix yourself until merged to master (refer to the PR for details)

@alexyaoyang actually, the problem exist because the user was not able to login. Thus, bot having no player information. However, our code still wants to print report_summary on exit.

@rawgni I completely forgot about that. Thank you!

@cbogithub @avexus Was there an API error printed before that traceback?

Yes it does, but closing because there's fix in dev.


kubelet: refactor SyncPods for better readability

Eventually we would like to replace the all-encompassing SyncPods function with
more well-defined, smaller functions. This would not only help with the
readability and profiling of the code, it'd also set in motion the plans to
trigger pod worker individually based on the content of the pod updates.
This PR serves as the first step of that, while avoiding breaking all unit
tests by preserving the SyncPods function for the time being.

This is a simple PR that breaks code in SyncPods into separate functions.
/cc @vishh, who might be interested in reviewing.

LGTM


Thread Device's Channel, PAN ID, XPAN ID, and Network Name

Hi,
In Thread's documentation, it is written this (link):

If the device elects to join an existing network, it configures its Channel, PAN ID, XPAN ID, and Network Name to match that of the target network via Thread Commissioning, then goes through the MLE Attach process to attach as a Child (End Device). This process is used for Child-Parent links.

I'm wondering if we are doing it right because, in our implementation, we are setting those parameters of the Thread device (Channel, PAN ID, XPAN ID, and Network Name) BEFORE doing the commissioning (we set them to match the ones of the OTBR).
Is it normal to hardcode this information or shall we retrieve it during the commissioning?
How shall it work in a commercial product?
Let's say that we have a Thread network at home and that we buy a new Thread device. How will the Thread device get the parameters (Channel, PAN ID, XPAN ID, and Network Name) to use?
Thank you

Duplicate of:

#7854


Make command words case insensitive

Codecov Report

Merging #87 (215d462) into master (19b42cb) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##             master      #87   +/-   ##
=========================================
  Coverage     73.75%   73.75%
  Complexity      548      548
=========================================
  Files            90       90
  Lines          1772     1772
  Branches        193      193
=========================================
  Hits           1307     1307
  Misses          389      389
  Partials         76       76

Impacted Files
Coverage Δ

.../seedu/address/logic/parser/AddressBookParser.java
73.33% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


cyclops-tuples : Convert PTuples into a Heterogenous List with a max capacity of 10

Should be removed

Removed PTuples


Support Circle CI

Revised scripts/travis-install.sh to work on Circle CI. I also renamed the name because isn't appropriate since it's not specific for Travis CI anymore.

Thank you very much. I'm appreciate for your effort.


fix: update yarn.lock

This should resolve Axios<0.21.4 alerts.
#minor

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage remained the same at 84.548%

Files with Coverage Reduction
New Missed Lines
%

libraries/botbuilder-lg/src/templateExtensions.ts
1
84.48%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
19667

Relevant Lines:
22035

💛  - Coveralls


Fix: After initializing the game account

We should do a couple of things

Highlight the game account id (since this would need to be shared) and web socket url
Do not show the fail note consumption

Just to add this error seems recurrning, I'm not sure which notes it's trying to consume.

These notes are consumable by player account only, since you are using the same client, that's why it is being displayed here.

Hmm, we should take this to miden team sometime that get_consume_notes_id also returns our notes as well. Can we atleast somehow suppress the error (not show in logs)

Yes, will fix it.


app-scripts how to compile multiple scss to multiple dir

app-scripts how to compile multiple scss to multiple dir
1.I want to compile ionic v2 scss ( with ionic-components ) to a dir
2.and I want to compile my component scss file to anthor dir
3.I want to compile my component typescript files to a dir
I try to create myself ./config/sass.config.js  file , but my component`s scss always compile together with ionic library 's scss
What should I do ?

main.css and main.js  is too bigger (fileSize > 6M),so i want to split package
but i failed

This issue was moved to driftyco/ionic-app-scripts#432

Oh,oh,wasting 2 days ,Maybe I  reach it   by rewriting and compiling with  webpack2@beta ; The app-scripts is out of my controller and editing ./config/sth.config.js  is hard for me;  thanks for responsing me

Any solutions? I have the same issue, how to deal with the main.css too bigger problem


[csi-rdb] Mount snashopt in pod for backups, it is possible?

Hi, sorry, I have't found the info about my question.
I'll make a snapshot and then mount this snapshot in a pod, where I can create a backup of this data.
Can I mount the snapshot directly in a pod, without convert this to an image?

There is no way in CSI to allow a mount of a snapshot. The way the protocol is written is to only support mounting of created volumes. Thus, for the case of backup, a snapshot once taken needs to be converted to a volume and then mounted and backed up.
IOW, this yaml example in the code repository needs to be used to convert a snapshot taken to a volume, for use within a pod to backup the same.

@ShyamsundarR is right, snapshots are read-only so they are not intended for pod's consumption.

okay, thank you, then I close this "issue"


Shouldn't ul.button-group be display:inline-block?

Since it's supposed to appear as if it's one button, I don't understand why it's display property shouldn't be more suited to behave as if the entire group is just an ordinary button?
TL;DR:
Shouldn't we do .button-group { display: inline-block; }?

The buttons are already display: inline-block; The button-group class just creates the container which basically controls the borders and the float.

Except a <ul> is display block.

Honestly, I've sorta given up trying to get button-groups to look even half-respectable when my buttons have borders. I have no idea why they are this complicated. Bootstrap just wraps the whole darn thing in a span tag, tweaks some border-radius if/when necessary, and moves on with life. I don't think this component should be as complex as it currently is.

Totally get it - right now It'd be a breaking change. We are addressing this in the next version (Foundation 6)
Thanks!


Remove invenio-access dependency

Remove invenio-access dependency when invenio-files-rest is released.

@ntarocco this is related to https://github.com/inveniosoftware/invenio-files-rest/issues/134, which requests the removal of invenio-access from invenio-files-rest dependencies. After a short talk with Lars it is not going to happen.
I haven't removed the FIXME comment from the setup yet, to make sure we refer to the same thing.


set-output is deprecated, needs to be changed

https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
https://github.com/jenkins-x-plugins/jx-release-version/blob/a4539cf44b6d206c7ce3fb2340e240f2760dfcfe/hack/github-actions-entrypoint.sh#LL4C7-L4C7

thanks for reporting this issue! it should be fixed now in the latest release

wow, that was fast!
Thanks


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

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

HTTP code: 200
Response time: 2681 ms

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


"Gura Sărății", "Izvoru Dulce", "Lipia" and "Nenciulești" are listed in the drop-down menu

Description:
"Gura Sărății", "Izvoru Dulce", "Lipia" and "Nenciulești" are listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Gura Sărății" in the search bar.

Expected results
The location is listed in the drop-down menu as "Sat Gura Sărății, BUZĂU(Merei)".

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 3
Type "Izvoru Dulce" in the search bar.

Expected results
The location is listed in the drop-down menu as "Sat Izvoru Dulce, BUZĂU(Merei)".

Step 5
Type "Lipia" in the search bar.

Expected results
The location is listed in the drop-down menu as "Sat Lipia, BUZĂU(Merei)".

Step 6
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 7
Type "Nenciulești" in the search bar.

Expected results
The location is listed in the drop-down menu as "Sat Nenciulești, BUZĂU(Merei)".