Translations needed for <IP_ADDRESS>

Thank you to the awesome folks who submitted initial translations - this is a call out for more translation work, if you're available!

French from @Shi974
Italian from @Rudolfet
Czech from @SniperKittenCZ

The latest build (<IP_ADDRESS>) includes the ability to change all settings that are available in-game via the General Settings menu, which is then stored in a savegame-specific file.
This bug update (which will be <IP_ADDRESS> when it goes to ModHub means that all of the "description" that is here in the README file and inside the defaultConfig.xml file all need to be translated over to those languages also for a complete translation to be included in the next release. Using the l10n_en.xml as an example, I'd love to see translations added by the folks tagged above for the languages they submitted.
If it comes down to the wire, I'll have to google-translate anything that's missing.
ETA for submission of <IP_ADDRESS> to ModHub is the end of the 2024 (~15 days from the date this issue is being posted)

:fr: Pull request for French : #27
Thanks for your work !

Hi @GMNGjoy, i translate all in Italian's language, so you can add them on your mod in official's way 👍🏻 Please check up and verify syntax for avoid eventually errors.
l10n_it.txt

German:  pr #29

l10n_ru.txt
Russian

Hi @GMNGjoy, i add also an ITA's translation of modDesc 👍🏻
modDesc.txt


Devtools seem to break reduxs observable support

Redux implemented support for observables since v3.5.0. When I attach an observable to the store, I will receive the devtools state instead of my application state.
A quick example:
import {Observable} from 'rxjs';
import {createStore, compose, applyMiddleware} from 'redux';
import thunk from 'redux-thunk';

const store = createStore(rootReducer, compose(
    applyMiddleware(thunk),
    window["devToolsExtension"] ? window["devToolsExtension"]() : f => f
));

Observable.from(store).map(state => console.log(state));

Will log something like Object {monitorState: Object, actionsById: Object, nextActionId: 1, stagedActionIds: Array[1], skippedActionIds: Array[0]…} when the store updates.
When I disable the redux devtools in Chrome, I get the expected state instance.

Out in 3.3.0.


Unable to access private build status on gitlab

Are you experiencing an issue with...
My own instance of shields
🐞 Description
Hi,
I'm running an instance via Docker on my server which is working perfectly.
But when I want to add a status from a private repo from gitlab I get a inaccessible badge.
Here my setup:
Docker tag: server-2022-12-01
Docker-config service:
shields:     image: shieldsio/shields:server-2022-12-01     container_name: Shields     environment:       - PORT=80       - GITLAB_ORIGINS=https://gitlab.com       - GITLAB_TOKEN=glpat-sometokenkeyhere
I checked the token is valid and grant all access (for testing purpose)
At the same time sometimes 8n the logs of Shields docker I got this error:
Shields    |<PHONE_NUMBER> Error: Token pool is exhausted Shields    |     at TokenPool._nextBatch (file:///usr/src/app/core/token-pooling/token-pool.js:268:11) Shields    |     at TokenPool.next (file:///usr/src/app/core/token-pooling/token-pool.js:305:20) Shields    |     at GithubApiProvider.tokenForUrl (file:///usr/src/app/services/github/github-api-provider.js:147:33) Shields    |     at GithubApiProvider.fetch (file:///usr/src/app/services/github/github-api-provider.js:160:22) Shields    |     at GithubForks._request (file:///usr/src/app/core/base-service/base.js:234:40) Shields    |     at GithubForks._requestGraphql (file:///usr/src/app/core/base-service/base-graphql.js:74:35) Shields    |     at GithubForks._requestGraphql (file:///usr/src/app/services/github/github-auth-service.js:66:18) Shields    |     at GithubForks.handle (file:///usr/src/app/services/github/github-forks.service.js:57:29) Shields    |     at Function.invoke (file:///usr/src/app/core/base-service/base.js:407:45)
I don't know if it's related.
Thanks in advance.
🔗 Link to the badge
No response
💡 Possible Solution
No response

The GitHub token pool errors are unrelated.
I can't see anything obviously wrong with your settings from what you've posted.
I think the next thing I would try is: If you SSH into your server, you should be able to run npm run badge <url to your badge> e.g: npm run badge https://img.shields.io/npm/v/badge-maker and that should spit out some information about the request sent/response received to help you debug this.

So I tried what you said but it seems it tries to relaunch the server which is obviously already running so I get this error:
0103180655 Server is starting up: http://localhost:80/ (node:45) [DEP0111] DeprecationWarning: Access to process.binding('http_parser') is deprecated. (Use node --trace-deprecation ...` to show where the warning was created)
node:events:491
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use <IP_ADDRESS>:80
at Camp.setupListenHandle [as _listen2] (node:net:1463:16)
at listenInCluster (node:net:1511:12)
at GetAddrInfoReqWrap.doListen [as callback] (node:net:1660:7)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:111:8)
Emitted 'error' event on Camp instance at:
at emitErrorNT (node:net:1490:8)
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
code: 'EADDRINUSE',
errno: -98,
syscall: 'listen',
address: '<IP_ADDRESS>',
port: 80
}`

Ah, yes.
In that case can you try starting you container with TRACE_SERVICES=true in your env vars, and then request the badge you're having trouble with through a browser (or curl, or whatever). TRACE_SERVICES=true should make the container output debug info to stdout, or wherever you are sending your logs to :crossed_fingers:

Ok I did it the log is really huge ca not find the problem in it:

Shields    |  Service class  👩🍳
Shields    |  GitlabPipelineStatus
Shields    |  Named params  🎫
Shields    |  { project: 'Tartempion34/manta-admin' }
Shields    |  Query params  🖍
Shields    |  {
Shields    |   branch: 'master',
Shields    |   color: undefined,
Shields    |   colorA: undefined,
Shields    |   colorB: undefined,
Shields    |   gitlab_url: undefined,
Shields    |   label: undefined,
Shields    |   labelColor: undefined,
Shields    |   link: undefined,
Shields    |   logo: undefined,
Shields    |   logoColor: undefined,
Shields    |   logoPosition: undefined,
Shields    |   logoWidth: undefined,
Shields    |   style: undefined
Shields    | }
Shields    |  Query params after validation  🛁
Shields    | { branch: 'master', gitlab_url: undefined }
Shields    |  Query params after validation  🖍
Shields    |  {
Shields    |   branch: 'master',
Shields    |   color: undefined,
Shields    |   colorA: undefined,
Shields    |   colorB: undefined,
Shields    |   gitlab_url: undefined,
Shields    |   label: undefined,
Shields    |   labelColor: undefined,
Shields    |   link: undefined,
Shields    |   logo: undefined,
Shields    |   logoColor: undefined,
Shields    |   logoPosition: undefined,
Shields    |   logoWidth: undefined,
Shields    |   style: undefined
Shields    | }
Shields    |  Request  🏹
Shields    |  https://gitlab.com/Tartempion34/manta-admin/badges/master/pipeline.svg
Shields    | {
Shields    |   "headers": {
Shields    |     "Accept": "image/svg+xml"
Shields    |   }
Shields    | }
Shields    |  Response status code  🎯
Shields    |  503
Shields    |  Handled error  🙅
Shields    |  Error: Got status code 503 (expected 200)
Shields    |     at file:///usr/src/app/core/base-service/check-error-response.js:14:26
Shields    |     at GitlabPipelineStatus._request (file:///usr/src/app/core/base-service/base.js:237:45)
Shields    |     at runMicrotasks ()
Shields    |     at processTicksAndRejections (node:internal/process/task_queues:96:5)
Shields    |     at async GitlabPipelineStatus._requestSvg (file:///usr/src/app/core/base-service/base-svg-scraping.js:75:24)
Shields    |     at async GitlabPipelineStatus.handle (file:///usr/src/app/services/gitlab/gitlab-pipeline-status.service.js:92:18)
Shields    |     at async Function.invoke (file:///usr/src/app/core/base-service/base.js:407:23)
Shields    |     at async Object.handler (file:///usr/src/app/core/base-service/base.js:453:31) {
Shields    |   prettyMessage: 'inaccessible',
Shields    |   response: <ref *1> IncomingMessage {
Shields    |     _readableState: ReadableState {
Shields    |       objectMode: false,
Shields    |       highWaterMark: 16384,
Shields    |       buffer: BufferList { head: null, tail: null, length: 0 },
Shields    |       length: 0,
Shields    |       pipes: [],
Shields    |       flowing: false,
Shields    |       ended: true,
Shields    |       endEmitted: true,
Shields    |       reading: false,
Shields    |       constructed: true,
Shields    |       sync: false,
Shields    |       needReadable: false,
Shields    |       emittedReadable: false,
Shields    |       readableListening: true,
Shields    |       resumeScheduled: false,
Shields    |       errorEmitted: false,
Shields    |       emitClose: true,
Shields    |       autoDestroy: true,
Shields    |       destroyed: true,
Shields    |       errored: null,
Shields    |       closed: true,
Shields    |       closeEmitted: true,
Shields    |       defaultEncoding: 'utf8',
Shields    |       awaitDrainWriters: null,
Shields    |       multiAwaitDrain: false,
Shields    |       readingMore: false,
Shields    |       dataEmitted: true,
Shields    |       decoder: null,
Shields    |       encoding: null,
Shields    |       [Symbol(kPaused)]: false
Shields    |     },
Shields    |     _events: [Object: null prototype] {
Shields    |       end: [Function: responseOnEnd],
Shields    |       aborted: [Function],
Shields    |       error: [Function],
Shields    |       readable: [Function (anonymous)],
Shields    |       [Symbol(events.errorMonitor)]: [Function]
Shields    |     },
Shields    |     _eventsCount: 5,
Shields    |     _maxListeners: undefined,
Shields    |     socket: TLSSocket {
Shields    |       _tlsOptions: [Object],
Shields    |       _secureEstablished: true,
Shields    |       _securePending: false,
Shields    |       _newSessionPending: false,
Shields    |       _controlReleased: true,
Shields    |       secureConnecting: false,
Shields    |       _SNICallback: null,
Shields    |       servername: 'gitlab.com',
Shields    |       alpnProtocol: false,
Shields    |       authorized: true,
Shields    |       authorizationError: null,
Shields    |       encrypted: true,
Shields    |       _events: [Object: null prototype],
Shields    |       _eventsCount: 10,
Shields    |       connecting: false,
Shields    |       _hadError: false,
Shields    |       _parent: null,
Shields    |       _host: 'gitlab.com',
Shields    |       _closeAfterHandlingError: false,
Shields    |       _readableState: [ReadableState],
Shields    |       _maxListeners: undefined,
Shields    |       _writableState: [WritableState],
Shields    |       allowHalfOpen: false,
Shields    |       _sockname: null,
Shields    |       _pendingData: null,
Shields    |       _pendingEncoding: '',
Shields    |       server: undefined,
Shields    |       _server: null,
Shields    |       ssl: null,
Shields    |       _requestCert: true,
Shields    |       _rejectUnauthorized: true,
Shields    |       parser: null,
Shields    |       _httpMessage: [ClientRequest],
Shields    |       _peername: [Object],
Shields    |       [Symbol(res)]: [TLSWrap],
Shields    |       [Symbol(verified)]: true,
Shields    |       [Symbol(pendingSession)]: null,
Shields    |       [Symbol(async_id_symbol)]: 10350,
Shields    |       [Symbol(kHandle)]: null,
Shields    |       [Symbol(lastWriteQueueSize)]: 0,
Shields    |       [Symbol(timeout)]: null,
Shields    |       [Symbol(kBuffer)]: null,
Shields    |       [Symbol(kBufferCb)]: null,
Shields    |       [Symbol(kBufferGen)]: null,
Shields    |       [Symbol(kCapture)]: false,
Shields    |       [Symbol(kSetNoDelay)]: false,
Shields    |       [Symbol(kSetKeepAlive)]: false,
Shields    |       [Symbol(kSetKeepAliveInitialDelay)]: 0,
Shields    |       [Symbol(kBytesRead)]: 10585,
Shields    |       [Symbol(kBytesWritten)]: 180,
Shields    |       [Symbol(connect-options)]: [Object],
Shields    |       [Symbol(RequestTimeout)]: undefined
Shields    |     },
Shields    |     httpVersionMajor: 1,
Shields    |     httpVersionMinor: 1,
Shields    |     httpVersion: '1.1',
Shields    |     complete: true,
Shields    |     rawHeaders: [
Shields    |       'Date',
Shields    |       'Tue, 03 Jan 2023 19:08:07 GMT',
Shields    |       'Content-Type',
Shields    |       'text/html; charset=UTF-8',
Shields    |       'Transfer-Encoding',
Shields    |       'chunked',
Shields    |       'Connection',
Shields    |       'close',
Shields    |       'Cross-Origin-Embedder-Policy',
Shields    |       'require-corp',
Shields    |       'Cross-Origin-Opener-Policy',
Shields    |       'same-origin',
Shields    |       'Cross-Origin-Resource-Policy',
Shields    |       'same-origin',
Shields    |       'Permissions-Policy',
Shields    |       'accelerometer=(),autoplay=(),camera=(),clipboard-read=(),clipboard-write=(),fullscreen=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()',
Shields    |       'Referrer-Policy',
Shields    |       'same-origin',
Shields    |       'X-Frame-Options',
Shields    |       'SAMEORIGIN',
Shields    |       'Cache-Control',
Shields    |       'private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0',
Shields    |       'Expires',
Shields    |       'Thu, 01 Jan 1970 00:00:01 GMT',
Shields    |       'Report-To',
Shields    |       '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=Nk7Mcts%2FCnwr6k%2BSM3q5s9zgqw3plJfvngeFzWk%2FwisnQxX9JCsIqv6tGjiKayzhRtfjGoEPC1AqfFhs0TR5OToBN1oHH96POh0wNv19K92LmjyfvWNAcuFXO1E%3D"}],"group":"cf-nel","max_age":604800}',
Shields    |       'NEL',
Shields    |       '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}',
Shields    |       'Vary',
Shields    |       'Accept-Encoding',
Shields    |       'Strict-Transport-Security',
Shields    |       'max-age=31536000',
Shields    |       'X-Content-Type-Options',
Shields    |       'nosniff',
Shields    |       'Server',
Shields    |       'cloudflare',
Shields    |       'CF-RAY',
Shields    |       '783e05704a34d540-CDG'
Shields    |     ],
Shields    |     rawTrailers: [],
Shields    |     aborted: false,
Shields    |     upgrade: false,
Shields    |     url: 'https://gitlab.com/users/sign_in',
Shields    |     method: null,
Shields    |     statusCode: 503,
Shields    |     statusMessage: 'Service Temporarily Unavailable',
Shields    |     client: TLSSocket {
Shields    |       _tlsOptions: [Object],
Shields    |       _secureEstablished: true,
Shields    |       _securePending: false,
Shields    |       _newSessionPending: false,
Shields    |       _controlReleased: true,
Shields    |       secureConnecting: false,
Shields    |       _SNICallback: null,
Shields    |       servername: 'gitlab.com',
Shields    |       alpnProtocol: false,
Shields    |       authorized: true,
Shields    |       authorizationError: null,
Shields    |       encrypted: true,
Shields    |       _events: [Object: null prototype],
Shields    |       _eventsCount: 10,
Shields    |       connecting: false,
Shields    |       _hadError: false,
Shields    |       _parent: null,
Shields    |       _host: 'gitlab.com',
Shields    |       _closeAfterHandlingError: false,
Shields    |       _readableState: [ReadableState],
Shields    |       _maxListeners: undefined,
Shields    |       _writableState: [WritableState],
Shields    |       allowHalfOpen: false,
Shields    |       _sockname: null,
Shields    |       _pendingData: null,
Shields    |       _pendingEncoding: '',
Shields    |       server: undefined,
Shields    |       _server: null,
Shields    |       ssl: null,
Shields    |       _requestCert: true,
Shields    |       _rejectUnauthorized: true,
Shields    |       parser: null,
Shields    |       _httpMessage: [ClientRequest],
Shields    |       _peername: [Object],
Shields    |       [Symbol(res)]: [TLSWrap],
Shields    |       [Symbol(verified)]: true,
Shields    |       [Symbol(pendingSession)]: null,
Shields    |       [Symbol(async_id_symbol)]: 10350,
Shields    |       [Symbol(kHandle)]: null,
Shields    |       [Symbol(lastWriteQueueSize)]: 0,
Shields    |       [Symbol(timeout)]: null,
Shields    |       [Symbol(kBuffer)]: null,
Shields    |       [Symbol(kBufferCb)]: null,
Shields    |       [Symbol(kBufferGen)]: null,
Shields    |       [Symbol(kCapture)]: false,
Shields    |       [Symbol(kSetNoDelay)]: false,
Shields    |       [Symbol(kSetKeepAlive)]: false,
Shields    |       [Symbol(kSetKeepAliveInitialDelay)]: 0,
Shields    |       [Symbol(kBytesRead)]: 10585,
Shields    |       [Symbol(kBytesWritten)]: 180,
Shields    |       [Symbol(connect-options)]: [Object],
Shields    |       [Symbol(RequestTimeout)]: undefined
Shields    |     },
Shields    |     _consuming: true,
Shields    |     _dumped: true,
Shields    |     req: ClientRequest {
Shields    |       _events: [Object: null prototype],
Shields    |       _eventsCount: 8,
Shields    |       _maxListeners: undefined,
Shields    |       outputData: [],
Shields    |       outputSize: 0,
Shields    |       writable: true,
Shields    |       destroyed: true,
Shields    |       _last: true,
Shields    |       chunkedEncoding: false,
Shields    |       shouldKeepAlive: false,
Shields    |       maxRequestsOnConnectionReached: false,
Shields    |       _defaultKeepAlive: true,
Shields    |       useChunkedEncodingByDefault: false,
Shields    |       sendDate: false,
Shields    |       _removedConnection: false,
Shields    |       _removedContLen: false,
Shields    |       _removedTE: false,
Shields    |       strictContentLength: false,
Shields    |       _contentLength: 0,
Shields    |       _hasBody: true,
Shields    |       _trailer: '',
Shields    |       finished: true,
Shields    |       _headerSent: true,
Shields    |       _closed: false,
Shields    |       socket: [TLSSocket],
Shields    |       _header: 'GET /users/sign_in HTTP/1.1\r\n' +
Shields    |         'user-agent: shields (self-hosted)/server-2022-12-01\r\n' +
Shields    |         'accept: image/svg+xml\r\n' +
Shields    |         'accept-encoding: gzip, deflate, br\r\n' +
Shields    |         'Host: gitlab.com\r\n' +
Shields    |         'Connection: close\r\n' +
Shields    |         '\r\n',
Shields    |       _keepAliveTimeout: 0,
Shields    |       _onPendingData: [Function: nop],
Shields    |       agent: [Agent],
Shields    |       socketPath: undefined,
Shields    |       method: 'GET',
Shields    |       maxHeaderSize: undefined,
Shields    |       insecureHTTPParser: undefined,
Shields    |       path: '/users/sign_in',
Shields    |       _ended: true,
Shields    |       res: [Circular *1],
Shields    |       aborted: false,
Shields    |       timeoutCb: null,
Shields    |       upgradeOrConnect: false,
Shields    |       parser: null,
Shields    |       maxHeadersCount: null,
Shields    |       reusedSocket: false,
Shields    |       host: 'gitlab.com',
Shields    |       protocol: 'https:',
Shields    |       timings: [Object],
Shields    |       [Symbol(kCapture)]: false,
Shields    |       [Symbol(kBytesWritten)]: 0,
Shields    |       [Symbol(kEndCalled)]: true,
Shields    |       [Symbol(kNeedDrain)]: false,
Shields    |       [Symbol(corked)]: 0,
Shields    |       [Symbol(kOutHeaders)]: [Object: null prototype],
Shields    |       [Symbol(kUniqueHeaders)]: null,
Shields    |       [Symbol(reentry)]: true,
Shields    |       [Symbol(kError)]: undefined
Shields    |     },
Shields    |     timings: {
Shields    |       start:<PHONE_NUMBER>069,
Shields    |       socket:<PHONE_NUMBER>069,
Shields    |       lookup:<PHONE_NUMBER>070,
Shields    |       connect:<PHONE_NUMBER>075,
Shields    |       secureConnect:<PHONE_NUMBER>081,
Shields    |       upload:<PHONE_NUMBER>081,
Shields    |       response:<PHONE_NUMBER>093,
Shields    |       end:<PHONE_NUMBER>094,
Shields    |       error: undefined,
Shields    |       abort: undefined,
Shields    |       phases: [Object]
Shields    |     },
Shields    |     requestUrl: URL {
Shields    |       href: 'https://gitlab.com/Tartempion34/manta-admin/badges/master/pipeline.svg',
Shields    |       origin: 'https://gitlab.com',
Shields    |       protocol: 'https:',
Shields    |       username: '',
Shields    |       password: '',
Shields    |       host: 'gitlab.com',
Shields    |       hostname: 'gitlab.com',
Shields    |       port: '',
Shields    |       pathname: '/Tartempion34/manta-admin/badges/master/pipeline.svg',
Shields    |       search: '',
Shields    |       searchParams: URLSearchParams {},
Shields    |       hash: ''
Shields    |     },
Shields    |     redirectUrls: [ [URL] ],
Shields    |     request: Request {
Shields    |       _readableState: [ReadableState],
Shields    |       _events: [Object: null prototype],
Shields    |       _eventsCount: 14,
Shields    |       _maxListeners: undefined,
Shields    |       _writableState: [WritableState],
Shields    |       allowHalfOpen: true,
Shields    |       constructor: undefined,
Shields    |       _noPipe: true,
Shields    |       options: {
Shields    |         request: undefined,
Shields    |         agent: { http: undefined, https: undefined, http2: undefined },
Shields    |         h2session: undefined,
Shields    |         decompress: true,
Shields    |         timeout: {
Shields    |           connect: undefined,
Shields    |           lookup: undefined,
Shields    |           read: undefined,
Shields    |           request: undefined,
Shields    |           response: undefined,
Shields    |           secureConnect: undefined,
Shields    |           send: undefined,
Shields    |           socket: undefined
Shields    |         },
Shields    |         prefixUrl: '',
Shields    |         body: undefined,
Shields    |         form: undefined,
Shields    |         json: undefined,
Shields    |         cookieJar: undefined,
Shields    |         ignoreInvalidCookies: false,
Shields    |         searchParams: undefined,
Shields    |         dnsLookup: undefined,
Shields    |         dnsCache: undefined,
Shields    |         context: {},
Shields    |         hooks: {
Shields    |           init: [],
Shields    |           beforeRequest: [],
Shields    |           beforeError: [],
Shields    |           beforeRedirect: [],
Shields    |           beforeRetry: [],
Shields    |           afterResponse: []
Shields    |         },
Shields    |         followRedirect: true,
Shields    |         maxRedirects: 10,
Shields    |         cache: undefined,
Shields    |         throwHttpErrors: false,
Shields    |         username: '',
Shields    |         password: '',
Shields    |         http2: false,
Shields    |         allowGetBody: false,
Shields    |         headers: {
Shields    |           'user-agent': 'shields (self-hosted)/server-2022-12-01',
Shields    |           accept: 'image/svg+xml',
Shields    |           'accept-encoding': 'gzip, deflate, br'
Shields    |         },
Shields    |         methodRewriting: false,
Shields    |         dnsLookupIpVersion: undefined,
Shields    |         parseJson: [Function: parse],
Shields    |         stringifyJson: [Function: stringify],
Shields    |         retry: {
Shields    |           limit: 0,
Shields    |           methods: [ 'GET', 'PUT', 'HEAD', 'DELETE', 'OPTIONS', 'TRACE' ],
Shields    |           statusCodes: [
Shields    |             408, 413, 429, 500,
Shields    |             502, 503, 504, 521,
Shields    |             522, 524
Shields    |           ],
Shields    |           errorCodes: [
Shields    |             'ETIMEDOUT',
Shields    |             'ECONNRESET',
Shields    |             'EADDRINUSE',
Shields    |             'ECONNREFUSED',
Shields    |             'EPIPE',
Shields    |             'ENOTFOUND',
Shields    |             'ENETUNREACH',
Shields    |             'EAI_AGAIN'
Shields    |           ],
Shields    |           maxRetryAfter: undefined,
Shields    |           calculateDelay: [Function: calculateDelay],
Shields    |           backoffLimit: Infinity,
Shields    |           noise: 100
Shields    |         },
Shields    |         localAddress: undefined,
Shields    |         method: 'GET',
Shields    |         createConnection: undefined,
Shields    |         cacheOptions: {
Shields    |           shared: undefined,
Shields    |           cacheHeuristic: undefined,
Shields    |           immutableMinTimeToLive: undefined,
Shields    |           ignoreCargoCult: undefined
Shields    |         },
Shields    |         https: {
Shields    |           alpnProtocols: undefined,
Shields    |           rejectUnauthorized: undefined,
Shields    |           checkServerIdentity: undefined,
Shields    |           certificateAuthority: undefined,
Shields    |           key: undefined,
Shields    |           certificate: undefined,
Shields    |           passphrase: undefined,
Shields    |           pfx: undefined,
Shields    |           ciphers: undefined,
Shields    |           honorCipherOrder: undefined,
Shields    |           minVersion: undefined,
Shields    |           maxVersion: undefined,
Shields    |           signatureAlgorithms: undefined,
Shields    |           tlsSessionLifetime: undefined,
Shields    |           dhparam: undefined,
Shields    |           ecdhCurve: undefined,
Shields    |           certificateRevocationLists: undefined
Shields    |         },
Shields    |         encoding: undefined,
Shields    |         resolveBodyOnly: false,
Shields    |         isStream: false,
Shields    |         responseType: 'text',
Shields    |         url: URL {
Shields    |           href: 'https://gitlab.com/users/sign_in',
Shields    |           origin: 'https://gitlab.com',
Shields    |           protocol: 'https:',
Shields    |           username: '',
Shields    |           password: '',
Shields    |           host: 'gitlab.com',
Shields    |           hostname: 'gitlab.com',
Shields    |           port: '',
Shields    |           pathname: '/users/sign_in',
Shields    |           search: '',
Shields    |           searchParams: URLSearchParams {},
Shields    |           hash: ''
Shields    |         },
Shields    |         pagination: {
Shields    |           transform: [Function: transform],
Shields    |           paginate: [Function: paginate],
Shields    |           filter: [Function: filter],
Shields    |           shouldContinue: [Function: shouldContinue],
Shields    |           countLimit: Infinity,
Shields    |           backoff: 0,
Shields    |           requestLimit: 10000,
Shields    |           stackAllItems: false
Shields    |         },
Shields    |         setHost: true,
Shields    |         maxHeaderSize: undefined,
Shields    |         signal: undefined,
Shields    |         enableUnixSockets: true
Shields    |       },
Shields    |       response: [Circular *1],
Shields    |       requestUrl: [URL],
Shields    |       redirectUrls: [Array],
Shields    |       retryCount: 0,
Shields    |       _stopRetry: [Function: noop],
Shields    |       _downloadedSize: 9319,
Shields    |       _uploadedSize: 0,
Shields    |       _stopReading: true,
Shields    |       _pipedServerResponses: Set(0) {},
Shields    |       _request: [ClientRequest],
Shields    |       _responseSize: 9319,
Shields    |       _bodySize: 0,
Shields    |       _unproxyEvents: [Function (anonymous)],
Shields    |       _isFromCache: false,
Shields    |       _cannotHaveBody: true,
Shields    |       _triggerRead: true,
Shields    |       _cancelTimeouts: [Function: cancelTimeouts],
Shields    |       _removeListeners: [Function: noop],
Shields    |       _nativeResponse: [Circular *1],
Shields    |       _flushed: true,
Shields    |       _aborted: false,
Shields    |       _requestInitialized: true,
Shields    |       _jobs: [],
Shields    |       _requestOptions: [Object],
Shields    |       flush: [AsyncFunction (anonymous)],
Shields    |       [Symbol(kCapture)]: false
Shields    |     },
Shields    |     isFromCache: false,
Shields    |     ip: '<IP_ADDRESS>',
Shields    |     retryCount: 0,
Shields    |     ok: false,
Shields    |     rawBody: <Buffer 3c 21 44 4f 43 54 59 50 45 20 68 74 6d 6c 3e 0a 3c 68 74 6d 6c 3e 0a 3c 68 65 61 64 3e 0a 20 20 3c 6d 65 74 61 20 63 6f 6e 74 65 6e 74 3d 22 77 69 64 ... 9269 more bytes>,
Shields    |     body: '\n' +
Shields    |       '\n' +
Shields    |       '\n' +
Shields    |       '  \n' +
Shields    |       '  Checking your Browser - GitLab\n' +
Shields    |       '  \n' +
Shields    |       '\n' +
Shields    |       '\n' +
Shields    |       '\n' +
Shields    |       '\n' +
Shields    |       '  \n' +
Shields    |       '    \n' +Shields    |       '  \n' +
Shields    |       '  \n' +
Shields    |       '    \n' +
Shields    |       '    \n' +
Shields    |       '        Please turn JavaScript on and reload the page.\n' +
Shields    |       '    \n' +
Shields    |       '    \n' +
Shields    |       '        \n' +
Shields    |       '            \n' +
Shields    |       '            \n' +
Shields    |       '            \n' +
Shields    |       '        \n' +
Shields    |       '        Checking your browser before accessing gitlab.com.\n' +
Shields    |       '        \n' +
Shields    |       '            Please enable Cookies and reload the page\n' +
Shields    |       '        \n' +
Shields    |       '        This process is automatic. Your browser will redirect to your requested content shortly.\n' +
Shields    |       '        Please allow up to 5 seconds...\n' +
Shields    |       '        Redirecting...\n' +
Shields    |       '    \n' +
Shields    |       '    \n' +
Shields    |       '        \n' +
Shields    |       '        \n' +
Shields    |       '    \n' +
Shields    |           <div id="trk_jschal_js" style="display:none;background-image:url('/cdn-cgi/images/trace/jsch/nojs/transparent.gif?ray=783e05704a34d540')"></div>\n +
Shields    |       '    \n' +
Shields    |       '\n' +
Shields    |       '\n' +
Shields    |       '\n' +
Shields    |       '    \n' +
Shields    |       '  \n' +
Shields    |       '\n' +
Shields    |       '',
Shields    |     [Symbol(kCapture)]: false,
Shields    |     [Symbol(kHeaders)]: {
Shields    |       date: 'Tue, 03 Jan 2023 19:08:07 GMT',
Shields    |       'content-type': 'text/html; charset=UTF-8',
Shields    |       'transfer-encoding': 'chunked',
Shields    |       connection: 'close',
Shields    |       'cross-origin-embedder-policy': 'require-corp',
Shields    |       'cross-origin-opener-policy': 'same-origin',
Shields    |       'cross-origin-resource-policy': 'same-origin',
Shields    |       'permissions-policy': 'accelerometer=(),autoplay=(),camera=(),clipboard-read=(),clipboard-write=(),fullscreen=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()',
Shields    |       'referrer-policy': 'same-origin',
Shields    |       'x-frame-options': 'SAMEORIGIN',
Shields    |       'cache-control': 'private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0',
Shields    |       expires: 'Thu, 01 Jan 1970 00:00:01 GMT',
Shields    |       'report-to': '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=Nk7Mcts%2FCnwr6k%2BSM3q5s9zgqw3plJfvngeFzWk%2FwisnQxX9JCsIqv6tGjiKayzhRtfjGoEPC1AqfFhs0TR5OToBN1oHH96POh0wNv19K92LmjyfvWNAcuFXO1E%3D"}],"group":"cf-nel","max_age":604800}',
Shields    |       nel: '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}',
Shields    |       vary: 'Accept-Encoding',
Shields    |       'strict-transport-security': 'max-age=31536000',
Shields    |       'x-content-type-options': 'nosniff',
Shields    |       server: 'cloudflare',
Shields    |       'cf-ray': '783e05704a34d540-CDG'
Shields    |     },
Shields    |     [Symbol(kHeadersCount)]: 38,
Shields    |     [Symbol(kTrailers)]: null,
Shields    |     [Symbol(kTrailersCount)]: 0,
Shields    |     [Symbol(RequestTimeout)]: undefined
Shields    |   },
Shields    |   buffer: '\n' +
Shields    |     '\n' +
Shields    |     '\n' +
Shields    |     '  \n' +
Shields    |     '  Checking your Browser - GitLab\n' +
Shields    |     '  \n' +
Shields    |     '\n' +
Shields    |     '\n' +
Shields    |     '\n' +
Shields    |     '\n' +
Shields    |     '  \n' +
Shields    |     '    \n' +
Shields    |     '  \n' +
Shields    |     '  \n' +
Shields    |     '    \n' +
Shields    |     '    \n' +
Shields    |     '        Please turn JavaScript on and reload the page.\n' +
Shields    |     '    \n' +
Shields    |     '    \n' +
Shields    |     '        \n' +
Shields    |     '            \n' +
Shields    |     '            \n' +
Shields    |     '            \n' +
Shields    |     '        \n' +
Shields    |     '        Checking your browser before accessing gitlab.com.\n' +
Shields    |     '        \n' +
Shields    |     '            Please enable Cookies and reload the page\n' +
Shields    |     '        \n' +
Shields    |     '        This process is automatic. Your browser will redirect to your requested content shortly.\n' +
Shields    |     '        Please allow up to 5 seconds...\n' +
Shields    |     '        Redirecting...\n' +
Shields    |     '    \n' +
Shields    |     '    \n' +
Shields    |     '        \n' +
Shields    |     '        \n' +
Shields    |     '    \n' +
Shields    |         <div id="trk_jschal_js" style="display:none;background-image:url('/cdn-cgi/images/trace/jsch/nojs/transparent.gif?ray=783e05704a34d540')"></div>\n +
Shields    |     '    \n' +
Shields    |     '\n' +
Shields    |     '\n' +
Shields    |     '\n' +
Shields    |     '    \n' +
Shields    |     '  \n' +
Shields    |     '\n' +
Shields    |     ''
Shields    | }
Shields    |  Service data  🛡
Shields    |  { isError: true, message: 'inaccessible', color: 'lightgray' }

Right, yes. I see the issue now.
You should find all the other gitlab badges (license, issues, releases, contributors, etc) work fine for your private repos but pipeline status and coverage don't - right?
The reason why pipeline status and coverage don't work is because they don't get their data from the GitLab API. They are basically "scrapers" for the GitLab native badges which allow them to be re-styled with the shields formatting options. These badges were added a long time ago when GitLab's API rate limits were still really restrictive. Because they don't use the API, they can't pass an auth token. They'll only work for public repos.
To solve this, we'll need to rewrite those to get their data from the API like the other GitLab badges.

Fair enough that's quite clear. Didn't check the other badges. I will wait if one day the other method is implemented. Thanks a lot for your help.

If anyone wants to pick this up

Extending GitLabBase will automatically pass the auth header if token is configured
The relevant GitLab API will be https://docs.gitlab.com/ee/api/pipelines.html
There may be some nuances to consider to exactly match the behaviour of the current badges. For example:

What do we show when a build is in progress for the specified branch: In progress, or the status of the last complete build?
What do we show if there is no complete build on the specified branch
etc


Allow text-based seeds

This uses Daniel J. Bernstein's djb2 non-cryptographic string hashing algorithm in order to generate an integer from a string, to enable text-based seeds in seeds.txt. This allows users to 'name' their seeds the way many of them expect in a similar fashion to various other randomizers/games. The seed is only transformed into a hash if the contents of the file are not able to be interpreted as a number, so this is completely backwards compatible with old seeds and will not behave any different if it doesn't need to.

Good stuff


Add support for Language parameter in TextToSpeach API endpoint

Feature Request
Is your feature request related to a problem? Please describe.
The new Eleven Labs API supports now optional language parameter for model Turbo V2.5
https://elevenlabs.io/docs/api-reference/text-to-speech
From documentation
language_code: string

Language code (ISO 639-1) used to enforce a language for the model. Currently only Turbo v2.5 supports language enforcement. For other models, an error will be returned if language code is provided.

Describe the solution you'd like

It would be nice to add parameter for language code to TextToSpeechRequest so we could use full potential of Turbo V2
Maybe please add error if the parameter is added in combination with some other model.

Wonderful! Any estimation when you release the new version? Thanks for all your effort!

maybe this weekend, but don't give your hope up 😅


use new to instantiate all buffers

Using Buffer without new will soon stop working. It will throw
A deprecation warning in Node v7.

lgtm

btw, this pull request fixes #76.

Bump

I can't see any problem with this.

Can we please get a bugfix release for this? That would be nice.

This doesn't fix anything.

It fixes issue #76, "annoying warning showing up in logs".

Also don't see what the problem is with releasing a patch version in this case. Yes no logic changed, but having no deprecation warnings is a good thing.
/cc @zertosh

This shouldn't have been merged.

@substack we reverted on core. LMK if you would like me to submit a revert PR to browser-pack


pylint not found

Description
What steps will reproduce the problem?

I'm running this on a very restricted notebook by 'START "Spyder" pythonw C:\Users\xxx\AppData\Roaming\Python\Python39\site-packages\spyder\app\start.py' as spyder.exe is blocked to start.
The main reason for using spyder is the implemented code evaluation with pylint and flake.
The basic editing I usually do with any text editor installed on the device.
Would be really great if we can get pylint and flake working for me :-)

Thanks for the reply @teodias, have you tried to use one of our dedicated installers: https://github.com/spyder-ide/spyder/releases/download/v5.3.1/Spyder_64bit_full.exe they fix all of our dependency issues such as this one, while keeping your environment intact. Please let me know if they work for you

Hi andfoy,
many thanks for your answer.
Unfortunately I do not have full access to my client (see my answer above)  so I cannot install anything.
Also the Windows AppLocker function will interfere with any portable solution.
For now I found a way to run pylint and flake8 with 'python -m pylint file.py' also 'python -m flake8 file.py'.
So we can close this ticket as it's a very special case.
Regards,
Teo


Update Makefile

Changelog

Added pyc removal
Moved .Phony

Please add clean-pyc to .PHONY
.PHONY should now be
.PHONY: init install test clean-pyc
This way make will know that clean-pyc is not a target file in file system but a static target.

Sorry for the confusion due to relocation of .PHONY


Migrate to eclipse temurin 17 image

What and why?
This PR updates the docker image from jdk-17-slim openjdk:17-slim to eclipse-temurin:17-jre-alpine. The package management command has also been updated to work with the new image.
How to test?

Run tests (local and acceptance)
check image size is smaller than previous image.

Jira
https://jira.ons.gov.uk/secure/RapidBoard.jspa?rapidView=1493&projectKey=RAS&view=detail&selectedIssue=RAS-968

/deploy scorfs


Dynamically change button names

With regard to the subject, i want to be able to change the step button names according to the step. E.g. In step 1, button.next should be changed and in step 2, another name likewise. Is this possible?

This is now easily possible due to #226.


allowplayerstep lets folks run up sharper angles than normal.

That should be off by default.

I guess that makes sense? I'd complain about breaking defaults but actually the editors probably save out the current settings, so it's not like anyone's game will suddenly start behaving differently.


Document using multiple scheduler profiles

kubernetes/enhancements#1451
Documents the use of multiple scheduling profiles through the component config API.
Also makes the distinction with the old scheduling Policy API.

/check-cla

@alculquicondor as this looks like a placeholder PR for the moment, I will:
/retitle [WIP] Add instructions for using multiple profiles

/sig scheduling

/milestone 1.18

For clarity, I'd like to
/retitle [WIP] Document using multiple scheduler profiles

👋 Please rebase this PR on dev-1.18 in order to avoid merge conflicts.
Feel free to /hold cancel after you've rebased.
/hold

Hi, @alculquicondor today is the deadline for docs placeholder PR to be ready for review state. I see the status of the doc as still TODO Can I know by when can i expect all the docs be ready for review state?

cc @ahg-g @Huang-Wei

This is now ready for review.

/lgtm

/hold cancel

/hold for squash
Latest changes are included in the last commit

Tide does a squash merge by default in this repo, so if you do your own squash that's helpful but not essential.

/hold cancel

Following https://github.com/kubernetes/website/pull/19172#issuecomment-596783535:
/lgtm
@kbhawkey this might be one you'd like to have a look at—I know you have an eye for detail.

Page preview:
https://deploy-preview-19172--kubernetes-io-vnext-staging.netlify.com/docs/concepts/scheduling/kube-scheduler/

Hi @alculquicondor
Today is the docs deadline for 1.18 docs to be ready to merge state. Can I know the status of these docs? I still see some pending review comments. Can you address them asap?

I've glanced at the markup. I think it makes sense to merge this and then if anything else needs to change, do that in a follow-up PR.
@VineethReddy02 FYI:
/approve

OK, now it needs an /lgtm

Sorry, I just pushed the latest fixes.

Drawing on https://github.com/kubernetes/website/pull/19172#issuecomment-596783535
/lgtm

Hope that's OK
(if this went in too early, I'll help sort out any tidying / revert)


[Bug Report] clicks on buttons to expand tree nodes, sometimes triggering node-click events, and sometimes nothing

Element UI version
1.3.3
OS/Browsers version
windows 7/ chrome
Vue version
2.3.3
Reproduction Link
https://jsfiddle.net/2j5jg6yp/
Steps to reproduce
点击 不同展开按钮图标，有时会alert出 数据，有时候正常
What is Expected?
点击展开按钮图标不会触发node-click事件，即不会弹出数据
What is actually happening?
点击 展开按钮图标，有时会alert出 数据，有时候正常

没人遇到这种问题么，比如做下拉树的时候？ 点击 图标有时会触发 node-click 事件

I did some test clicks in your demo and node-click does not trigger when the triangle icon itself is clicked.

@Leopoldthecoder
i just try it，it does trigger when the triangle icon itself is clicked 。
windows 7 / chrome 58.0.3029.110 (64-bit)


Nothing is fired on Android where there is no LinkedIn installed

Hi,
I have this simple call to login, but when executed nothing is fired, nor the catch nor the then.
async loginWithLinkedin() {
   console.log('Login with Linkedin (1) - OK');
   try {
     console.log('Login with Linkedin (2) - Ok until here');
     this.linkedin.login(this.linkedinScopes, true).then(response => {
       console.log('Login with Linkedin (3) - not printed ');
       console.log(JSON.stringify(response));
     }).catch(error => {
       console.log('Login with Linkedin (4) - not printed');
       console.log(JSON.stringify(error));
     });
   } catch (error) {
     this.global.showError('LinkedIn Error', error);
     console.log("LinkedIn Error: " + JSON.stringify(error));
   }
 }

The LinkedIn app is not installed on this device, I want my app prompts and ask to install.
Any ideas?

Install the Linked In App on the Device, and then these issues will be fixed. I did that and now i am seeing the Login Permisison Prompt.

@Wolf00Bomber I installed LinkedIn App and now the "response" returns "OK" but just that, I need at least email, name and picture. Is that normal?

This seems like a bug in the plugin (or in the ionic wrapper). It should return a response even if the app is not installed (the response could be an error in such a case).

any update on this ? I am also receiving similar error..it does not throw any error or any prompt to install..


Error encoding with Nvidia.h.265

Hi there
unable to encode with Nvidia.h.265 /NVEncC (avcuvid cuda).
Used to work like a charm...
Tried both 2.07v2 and 3.01 version...
Tried both newest release and <IP_ADDRESS>-test - same result.
Error Encoding using NVEncC 2.07v2 x64
Encoding using NVEncC 2.07v2 x64 failed with exit code: 1 (0x1)
The exit code might be a system error code: STATUS_WAIT_1
The exit code might be a system error code: Incorrect function.
avcuvid: codec
avcuvid: unable to decode by cuvid.
Failed to open input file.
StaxRip.ErrorAbortException: Encoding using NVEncC 2.07v2 x64 failed with exit code: 1 (0x1)
The exit code might be a system error code: STATUS_WAIT_1
The exit code might be a system error code: Incorrect function.
avcuvid: codec
avcuvid: unable to decode by cuvid.
Failed to open input file.
at StaxRip.Proc.Start() in D:\Projekte\VS\VB\StaxRip\General\Proc.vb:line 240
at StaxRip.NVIDIAEncoder.Encode() in D:\Projekte\VS\VB\StaxRip\Encoding\NVIDIAEncoder.vb:line 80
at StaxRip.MainForm.Encode() in D:\Projekte\VS\VB\StaxRip\Forms\MainForm.vb:line 2220
at StaxRip.MainForm.RunJobRecursive() in D:\Projekte\VS\VB\StaxRip\Forms\MainForm.vb:line 3462
/cheers

Same error

At that point I was using newest release of nvidia drivers. Waited for next release and after updating the drivers the problem was gone!


How to install

Hiow to install with using Composer?

As you can see at https://packagist.org/packages/digitv/yii2bootstrap4
composer require digitv/yii2bootstrap4


[RE] feature/Claudia-4395

Reviewers
@jesuspg,  @hmunfru
Description
Rename the name property of the pom files: CLAUDIA-4395
Testing
Locally

Coverage increased (+0.06%) to 46.24% when pulling dc17a8690dba41180bcb47be2c78ae7971c5fc75 on flopezag:feature/CLAUDIA-4395 into e66de986e0a565ff531b72e0b6c489a077ac7e62 on telefonicaid:develop.

package name should be always written in all-lowercase

it looks ok, mainly you have change the group id and the package name. I have already assembly the project and it seems it works.
Check about Jesus' comment regarding package name should be all-lowercase

Coverage increased (+0.11%) to 46.29% when pulling 41e3a727741694260862aecfc662e58c78f14eed on flopezag:feature/CLAUDIA-4395 into e66de986e0a565ff531b72e0b6c489a077ac7e62 on telefonicaid:develop.

LGTM


Avoid stale state with a timer event.

Closes #5. It's not the prettiest solution, but it seems to do the job.

Ugly indeed but I'm happy to see the issue closed. I'd definitely want to come back to it with a more robust solution.


Mod-Tap, implementation

https://zmk.dev/docs/behaviors/mod-tap
https://github.com/davebrny/long-press.git
This page has an example of the behavior I want to achieve, for example:
When i click "a" it outputs "a"
I hold for a determined time the key "a", let's say 100ms, it outputs "A"
I don't need the repeating "aaaaaa", I want to use the hold a key instead of the shift key.
I can achieve this behavior with this app?

Unfortunately this is not supported in the current version.
That's an interesting use case. I'll leave this open as an item for consideration in future versions.

I put together a prototype version of the long press on inputs and will further develop it: https://github.com/nhmkdev/KeyCap/releases/tag/v.<IP_ADDRESS>
One major issue is that the timing for the long press is currently 1 second (way more than 100ms as you mentioned). I hope to make the value customizable in a future version.

1s is really a long time in this kind of functionality. 200ms is a time i'll use in my custom keyboard.
A customizable delay is really inportant, because people are different.
🖖

I saw that you implemented! And with independent custom timing!
I'm testing it, and really loved the work.
Many thanks!

Edit, I found that it interferes with the keyboard shortcuts eg: Ctrl+C. Maybe if Ctrl or Shift is pressed, ignore the custom delay.

It should be ignoring shift/alt/control for long press. It definitely could be a bug though. Here's an example of what I tried out:

Is that the same general setup you are trying?
I am using notepad and was able to use c and v to produce the uppercase characters. Holding ctrl+c and ctrl+v seemed to work as expected (copying/pasting).
I was able to produce an odd case that might be the issue (doesn't always happen):

Pressed ctrl and then c (both held)
Released ctrl and then c (almost immediately after)
The timing appears to be just enough for KeyCap to think that c was pressed (technically it was down for a moment without ctrl)

I'll see if there's something that can be done. It might be a tough one.

For me ctrl+c copies the value, but replaces the selection with an c
ctrl+a selects all then replaces all with an a
I press ctrl then c and let go.

There's a new version that may make this slightly better:
https://github.com/nhmkdev/KeyCap/releases/tag/v.<IP_ADDRESS>
I compared this and the prior version and there's definitely more tolerance after releasing the ctrl key between the two versions. If you keep c held down you'll definitely run into trouble!


Allow Link formatting via chat.postMessage

As discussed in #36, Slack's RTM messages don't support link formatting or complex messages such as those with attachments.
Inspired by a quick fork @jaisonerick did a few days ago, this branch sends any message that a) is not a string or b) contains <.*> to the API's chat.postMessage endpoint.
It seems to work well for the simple case of link formatting, but I'm open to any thoughts on whether there's a different way to do the split.

Thank you for the PR! I'm going to be implementing adapter-specific functionality in a different way, but it's coming very soon.


Expose module Cardano.Chain.Update.Vote

If one imports Cardano.Chain.Update (annotation), the field annotation of AVote conflicts with that of AProposal.
Needed for https://github.com/input-output-hk/ouroboros-network/pull/999

I could also add Cardano.Chain.Update.Vote as an exposed module to get around this :man_shrugging:.

I could also add Cardano.Chain.Update.Vote as an exposed module to get around this :man_shrugging:.

Ohhh, now I see why you can't import Vote qualified.
Yeah, I'd prefer to expose Vote and use it qualified. But I'm fine either way.

@dnadales:

Yeah, I'd prefer to expose Vote and use it qualified. But I'm fine either way.

Decided to go this route.

bors r+

bors r+

bors r+

I've got no idea what the problem is here.

bors r+


Problem with user session variables

Seems like it's impossible to create user session variables.
This code snippet:
from chainlit import user_session
user_session.set("chat_history", "a b c")
print(f"Chat History: {user_session.get('chat_history')}")

produces: Chat History: None

You have to be in a chainlit context to use user session. Meaning calling that code in on_chat_start or langchain_factory or action_callback. Any context will do.

Sorry, but it is still a bit unclear to me how to do that... I've tried running this code
@cl.on_chat_start
def init_session():
    user_session.set('chat_history', [])
    print("chat_history: ", user_session.get('chat_history'))
    user_session.set('path_out', create_output_path())
    print("path_out: ", user_session.get('path_out'))

But I see that this code is being called several times when launching the app.

This is the right way to use the user_session.
Do you have multiple tabs/windows of the chainlit app opened? If that is the case each tab/window is going to connect and trigger on_chat_start. Each will have its own user session.

Ah great, indeed, I had a few unused tabs opened. I didn't know that they could get reactivated like this. Thanks for the insight!


Scrcpy facing issues with shared libraries

My system shut down unexpectedly while scrcpy was active and now the following error text is shown-
scrcpy
/snap/scrcpy/386/usr/local/bin/scrcpy: error while loading shared libraries: /snap/scrcpy/386/usr/lib/x86_64-linux-gnu/libthai.so.0: ELF file's phentsize not the expected size
I have tried removing scrcpy and reinstalling it, but for some reason it still does not jump.

I suggest to try a non-snap version.


Allow backtrace cleaner to be configured

Rather than defaulting to Rails.backtrace_cleaner for cleaning the backtrace before persisting it in Run#persist_error, it would be nice if this could be configured. In Shopify/shopify, I need to add some silencers to remove lines related to our job infra / instrumentation from the backtrace, so I'd like to specify a new backtrace cleaner to be used by the gem for cleaning up Task backtraces.
I think it makes sense to expose this as a config option -- users might have job-related lines that they want to include in traces as part of their default Rails.backtrace_cleaner, but want to exclude from traces the gem shows.

Thanks @gmcgibbon, I was hoping there was a better way to do that! ❤


Documentation is unavailable on the site

Hey there. Thanks for such a great tool!
The problem with the documentation - it is not displayed on the site and it is missing from the GitHub
It's hard without documentation. Please, make documentation alive again :)
Thanks in advance!

Thank you! Fixed!

Some pages of documentation doesn't working now.
For example the page https://xdsoft.net/jodit/doc/options/disablePlugins/
Error in console: "ReferenceError: codeStyle is not defined"

Still is broken!
Example: https://xdsoft.net/jodit/doc/options/theme/


Is 0 alloc UB?

I've been playing with 0 allocs (After reading https://doc.rust-lang.org/stable/nomicon/exotic-sizes.html#zero-sized-types-zsts I was expecting it to give me null pointers) but I kept getting seg faults. Asking in the rust discord, someone told me 0 allocs are UB (And they only may return null pointers). If so, I think clarifying that they're UB a bit more might be a good idea.
I'm having a great time reading the book by the way, great job :+1:

This is strictly speaking documented here: https://doc.rust-lang.org/nomicon/vec-zsts.html
And is documented on the actual allocator APIs: https://doc.rust-lang.org/alloc/alloc/trait.GlobalAlloc.html#safety
It's not within the scope of the nomicon to document all UB in all random library methods, so I think we're doing a fine job already.


Removed yaourt aur helper from readme

Yaourt is not recommended anymore, because it isn't maintained for almost 2 years.
See this article: https://itsfoss.com/best-aur-helpers/
Yaourt is also removed from the aur itself.

Thank you! Merged. Is yay the best/most popular AUR helper? Are there any others which might be good to link to?

yay is probably the most popular and best AUR helper.
I think this reddit post shows it: https://www.reddit.com/r/archlinux/comments/a3ozkz/which_aur_helper_is_currently_the_best_choice/

Sweet, thanks!


Implemented API for multilayer perceptron CV

Description
Implemented an API for defining a collective variable defined as a feedforward neural network with single output and having other collective variables as inputs.

Codecov Report

Merging #18 (8e2c56a) into main (069d46d) will decrease coverage by 2.89%.
The diff coverage is 47.36%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files

Closing this PR to the main branch, opening a new one to the multilayer_perceptron branch.


Update missing permissions.

Update missing permissions that caused errors / illegal state exception during boot process:
08-14 15:55:22.359  1468  1468 E Zygote  : java.lang.IllegalStateException: Signature|privileged permissions not in privapp-permissions whitelist: {com.android.systemui: android.permission.NAVIGATION_EDITOR, org.omnirom.omnistyle: android.permission.CHANGE_OVERLAY_PACKAGES, com.android.systemui: android.permission.PACKAGE_USAGE_STATS, com.android.settings: android.permission.ACCESS_FONT_MANAGER, com.android.settings: android.permission.NAVIGATION_EDITOR, com.android.systemui: android.permission.FORCE_STOP_PACKAGES, com.android.launcher3: android.permission.STATUS_BAR}

Actually, I see this should go in /vendor/rr/config..... Closing this commit to put it in the right place.


[styles] Remove react-jss dependency

This change is part of the effort to make Material-UI styles engine invariant (JSS, styled-components, emotion, etc). I think that it will help the package size too. https://packagephobia.now.sh/result?p=react-jss but I'm unsure, we will see.

I'm suspecting many people are using react-jss without installing it, relying on us to have it. It's bad, however, to minimize the noise of us removing it, I think that we should do is in a minor instead of a patch, hence the v3.2.0 milestone.

A good job is it means now we can use styled-components instead of Jss?

You have been able to use styled components since day. Does the interoperability section in the documentation help?

amazing,,,  sorry I Did not pay attention to the new interoperability section

@oliviertassinari but react-jss is still needed if you want to use tyled-components instead of Jss, because you need to change the CSS injection order

@bogdansoare It's still needed, it's just not needed by default. You can manually install it.


Azure DevOps

Do these alerts also report issues with Azure DevOps?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 4361b185-8181-891f-bf59-7365aa84427c
Version Independent ID: 083d5ddb-5d02-34bc-246a-ac23c6a8e4f6
Content: Receive activity log alerts on Azure service notifications
Content Source: articles/service-health/alerts-activity-log-service-notifications.md
Service: service-health
GitHub Login: @stephbaron
Microsoft Alias: stbaron

Azure DevOps services are onboarded to Service Health:

Thanks for your comment. We are actively investigating and will get back to you shortly. Thanks for your patience.

We will now close this issue. If there are further questions regarding this matter, please reply and we will gladly continue the discussion.


Enhance camera features

Closing this despite of the red CI. this run was green, except for missing depthai-shared clangformat.


Flow installation time

I am trying to measure the time of installing flow rules into an OVS switch flow table using Pox controller. To measure the time, I generate packets at different rates and send them through the OVS switch. To forward each packet the switch needs to ask the controller (send a packet_in to the controller). I measure the time between the packet arriving at one port of the switch and the time it leaves the switch through another port (using wireshark). However, surprisingly as I increase the packet generation rate, the time needed to forward packet becomes shorter (I would expected to get longer). Please see below my results. Does anyone have any explanation about it or have some hint why this is happening

?

Try running POX with --unthreaded-sh and see if your results are more in line with your expectations.

Thank you for your response,
The result got better but when I increase the forwarding rate to 70,000 packets per minutes, the pox gives the following error:
ERROR:core:Exception while handling Connection!PacketIn...Traceback (most recent call last):  File "pox/lib/revent/revent.py", line 241, in raiseEventNoErrors    return self.raiseEvent(event, *args, **kw)  File "pox/lib/revent/revent.py", line 291, in raiseEvent    rv = event._invoke(handler, *args, **kw)  File "pox/lib/revent/revent.py", line 166, in _invoke    return handler(self, *args, **kw)  File "sourcerouting.py", line 153, in _handle_PacketIn    self.routing(packet, packet_in,switch_id,in_port,dst_ip)  File "sourcerouting.py", line 124, in routing    self.insertion(packet_in, route, in_port, dst_ip,packet)  File "sourcerouting.py", line 88, in insertion    self.connection.send(msg)  File "pox/openflow/of_01.py", line 848, in send    data = data.pack()  File "pox/openflow/nicira.py", line 365, in pack    po = ofp_packet_out(data=self.data)NameError: global name 'ofp_packet_out' is not defined
Do you know the reason?
On Wednesday, January 6, 2016 11:18 PM, Murphy<EMAIL_ADDRESS>wrote:

Try running POX with --unthreaded-sh and see if your results are more in line with your expectations.—
Reply to this email directly or view it on GitHub.

Looks like a bug.  It should probably be of.ofp_packet_out (the "of." prefix is missing).

Thank you for your response.
Actually, I still have some problems with my figure. Although the result got better, the setup time is still decreasing. I tried to profile Pox using cProfile, but I couldn't find any significant changes in different rates.
I was wondering if there is any explanation for that.
On Tuesday, January 12, 2016 11:13 PM, Murphy<EMAIL_ADDRESS>wrote:

Looks like a bug. It should probably be of.ofp_packet_out (the "of." prefix is missing).—
Reply to this email directly or view it on GitHub.


remove Duplication between ParquetFormat and ParquetReadOptions is confusing

Draft as it builds on https://github.com/apache/arrow-datafusion/pull/2985
Which issue does this PR close?
Closes https://github.com/apache/arrow-datafusion/issues/2987
Rationale for this change
The duplication was confusing.
However, I am not sure about this change as now the different formats are treated differently, whereas before the formats all had a uniform implementation
What changes are included in this PR?
Move shared options into a ParquetFormatOptions shared structure
Are there any user-facing changes?
This is backards incompatible for anyone who manipulated the configuration fields directly. If they used the builder API it will be fine.

🤔  now that I see how this looks I am not convinced it saves much duplication

Codecov Report

Merging #2988 (a0274a1) into master (3d1de15) will increase coverage by 0.00%.
The diff coverage is 91.66%.

@@           Coverage Diff           @@
##           master    #2988   +/-   ##
=======================================
  Coverage   85.78%   85.78%
=======================================
  Files         281      282    +1
  Lines       51580    51656   +76
=======================================
+ Hits        44246    44313   +67
- Misses       7334     7343    +9

Impacted Files
Coverage Δ

benchmarks/src/bin/tpch.rs
39.52% <0.00%> (ø)

datafusion/core/tests/sql/mod.rs
98.26% <ø> (ø)

datafusion/core/tests/sql/parquet.rs
100.00% <ø> (ø)

datafusion/proto/src/logical_plan.rs
17.42% <0.00%> (ø)

datafusion/core/src/execution/options.rs
59.45% <77.77%> (+0.03%)
:arrow_up:

...afusion/core/src/datasource/file_format/parquet.rs
85.20% <83.33%> (-0.70%)
:arrow_down:

datafusion/core/tests/sql/parquet_schema.rs
98.79% <98.79%> (ø)

...tafusion/core/src/physical_plan/file_format/mod.rs
97.36% <100.00%> (ø)

datafusion/expr/src/window_frame.rs
92.43% <0.00%> (-0.85%)
:arrow_down:

... and 2 more

Help us with your feedback. Take ten seconds to tell us how you rate us.

I don't think this is worth pursuing at the current time


Support rails 6

Ticket: https://www.notion.so/chaos-theory/Upgrade-gaming-engine-and-gaming-api-to-Rails-6-6be7a2d8895448b09d9add8ee8d4f3aa

@ianl the gaming engine pr (https://github.com/bitgaming/gaming_engine/pull/3905) is green with this latest hash, please review again so i can merge.


Variables not found in tf 2.5 when calling fit()

System information

Have I written custom code (as opposed to using a stock example script
provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Google Colab run on Windows 10
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue
happens on a mobile device: N/A
TensorFlow installed from (source or binary):  *
TensorFlow version (use command below):  2.5
Python version: 3.7.10
Bazel version (if compiling from source): *
GCC/Compiler version (if compiling from source): *
CUDA/cuDNN version: *
GPU model and memory: *
Exact command to reproduce: see below

*: For all such information, I am using Google Colab as is, without any modification.
Description of the problem
I believe this is a problem with tf 2.5, as I was running all codes with no issue for the past few months with tf 2.4.1. The problem happened all of sudden and I came to notice a sudden change in the tf version to 2.5. As the later is the only change, I beleive it must be the reason.
I am building a training model using keras api, everything is straightforward, with Adam chosen as an optimizer. The error happens once I call mdl.fit()
Source code:
For reference, this is a VAE model. To reproduce, create a colab file and paste the following code as is.
seq_shape = (34,4,1)
batch_size = 512
latent_dim = 2

input_seq = keras.Input(shape=seq_shape)
x = layers.Conv2D(80, (5,1),activation='relu')(input_seq)
shape_before_flattening = K.int_shape(x)
x = layers.Flatten()(x)

x = layers.Dense(80,activation='relu')(x)
x = layers.Dense(40,activation='relu')(x)
dense3 = layers.Dense(latent_dim)
z_mean = dense3(x)
z_log_var = layers.Dense(latent_dim)(x)
z = layers.Lambda(sampling)([z_mean, z_log_var])

decoder_input = layers.Input(K.int_shape(z)[1:])
x = layers.Dense(40,activation='relu')(decoder_input)
x = layers.Dense(80,activation='relu')(x)
x = layers.Dense(np.prod(shape_before_flattening[1:]),activation='relu')(x)
x = layers.Reshape(shape_before_flattening[1:])(x)
x = layers.Conv2DTranspose(1, (5,1),activation='sigmoid')(x)
decoder = Model(decoder_input, x)

z_decoded = decoder(z)
vae = Model(input_seq, z_decoded)

vae.compile(optimizer='adam',loss=[vae_loss])
x = np.ones((100,34,4,1))
vae.fit(x=x,y=x,batch_size=batch_size,shuffle=True,epochs=100)

To run the above, the following two functions are needed:
def vae_loss(x, z_decoded):
    x = K.flatten(x)
    z_decoded = K.flatten(z_decoded)
    xent_loss =  keras.metrics.binary_crossentropy(x, z_decoded)
    kl_loss =  1e-3 * -0.5 * K.mean(
    1 + z_log_var - K.square(z_mean) - K.exp(z_log_var), axis=-1)
    return K.mean(xent_loss + kl_loss)

def sampling(args):
    z_mean, z_log_var = args
    epsilon = K.random_normal(shape=(K.shape(z_mean)[0], latent_dim),
    mean=0., stddev=1.)
    return z_mean + K.exp(z_log_var) * epsilon

These are all the needed imports:
import tensorflow.compat.v1.keras.backend as K
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
import keras
from keras import layers
from keras import backend as K
from keras.models import Model
import numpy as np

Logs
This is the error message I get:

FailedPreconditionError: 2 root error(s) found.
(0) Failed precondition: Could not find variable training_4/Adam/learning_rate. This could mean that the variable has been deleted. In TF1, it can also mean the variable is uninitialized. Debug info: container=localhost, status=Not found: Resource localhost/training_4/Adam/learning_rate/N10tensorflow3VarE does not exist.
[[{{node training_4/Adam/Identity/ReadVariableOp}}]]
(1) Failed precondition: Could not find variable training_4/Adam/learning_rate. This could mean that the variable has been deleted. In TF1, it can also mean the variable is uninitialized. Debug info: container=localhost, status=Not found: Resource localhost/training_4/Adam/learning_rate/N10tensorflow3VarE does not exist.
[[{{node training_4/Adam/Identity/ReadVariableOp}}]]
[[_arg_input_15_0_0/_359]]
0 successful operations.
0 derived errors ignored.

Lastly, I noticed that the reported error changes every time I call vae.fit(). The shown log reports not finding leraning_rate, in other instances it was beta_1, beta_2, or the iteration number.
Things I already tried:

Using 'rmsprop' instead of 'adam': did not work. Gives the same error, with differences in the details.
from tensorflow.keras.optimizers import Adam: The error persists

Thanks,

@AhmadObeid
Could you please share the colab gist to reproduce the issue reported here.Thanks

@UsharaniPagadala,
here is the link:
https://colab.research.google.com/drive/1APeQKLFdSczi6FcXnwnOpObocHN4CIM_?usp=sharing
Thank you

@AhmadObeid
I was able to reproduce the code shared with minimal changes in the imports.Please find the gist here and let us know if it helps.Thanks

@benyeoh  and @UsharaniPagadala,
I confirm that changing some imports as suggested in both of your answers fixes the problem, even with tensorflow 2.5.
Thank you very much for your help.


where is DQN?

this project include DQN, DDPG, PPO, SAC, A2C, TD3, etc.I want to do some reach in DQN.whre is the DQN model scipts.if I want to train a DQN.what parameter should I pass.

@xjdbie96 I'm not a contributor but; /finrl/model.py. You should look at that script. You can pass your parameters there. Models are actually comes from "stable_baseline3".

@xjdbie96 I'm not a contributor but; /finrl/model.py. You should look at that script. You can pass your parameters there. Models are actually comes from "stable_baseline3".

@xjdbie96 I'm not a contributor but; /finrl/model.py. You should look at that script. You can pass your parameters there. Models are actually comes from "stable_baseline3".

thank you for reply.I have found this from stable_baseline3. Actually ,I want to find the action space script for all the RL algorithm. And I not sure this project action space or stock position is [-1,0,1].I want to define stock position as [0,1].Also ,I want to improve the reward function.

@xjdbie96 I'm not a contributor but; /finrl/model.py. You should look at that script. You can pass your parameters there. Models are actually comes from "stable_baseline3".

thank you for reply.I have found this from stable_baseline3. Actually ,I want to find the action space script for all the RL algorithm. And I not sure this project action space or stock position is [-1,0,1].I want to define stock position as [0,1].Also ,I want to improve the reward function.

Please joint the clack channel for discussing detailed parameter settings.

Please joint the clack channel for discussing detailed parameter settings.

Please joint the clack channel for discussing detailed parameter settings.

Please joint the clack channel for discussing detailed parameter settings.

Again  ,thank you  for  reply .I am a new guy for github .how to  join this channel ?.looking  forward to your reply

Please joint the clack channel for discussing detailed parameter settings.

Please joint the clack channel for discussing detailed parameter settings.

Again  ,thank you  for  reply .I am a new guy for github .how to  join this channel ?.looking  forward to your reply

Try this link: https://app.slack.com/client/T01GYDU6KB6/D01GL7D8N94

Try this link: https://app.slack.com/client/T01GYDU6KB6/D01GL7D8N94

Try this link: https://app.slack.com/client/T01GYDU6KB6/D01GL7D8N94
Awesome !Thank you very  much . Pretty noce guys !

Try this link: https://app.slack.com/client/T01GYDU6KB6/D01GL7D8N94
Awesome !Thank you very  much . Pretty noce guys !


[vx.dev] implements #184

[vx.dev] This PR implements #184, created by vx.dev.

[vx.dev]: Based on the image provided, it appears to be a dashboard interface with a navigation sidebar on the left and a main content area displaying cards in a grid layout. Each card seems to represent a course or a subject with some metadata like the academic year, number of likes, and a button to interact with the course. The top bar includes a search input and user-related options.
Below is a Vue component that attempts to recreate the interface shown in the image. The component uses a combination of UI components such as Button, Input, Avatar, and custom styles to achieve the layout and design.
Please note that this code is a starting point and may require further customization to match the exact design and functionality of the provided image. The courses array should be populated with actual data, and additional UI components may be needed to fully replicate the interface.


added aśvalalita

I've added this to prosodicPatterns as kaw-Latn. according to Zoetmulder, the name is also attested in Indian sources but I don't find it in Apte. anyhow, I suppose the san-Latn equivalent would need to end in -ā. please check and add to EGD.

I've tidied it in prosodicPatterns and added it to the EGD. The Sanskrit name ends in -a (there are many that do). I've added caesurae to the conventional and XML prosodic patterns. The caesura marker in combination with your bars separating the gaṇas looks really unwieldy - I'm really hoping I can persuade you to get rid of those bars.
The metre is not in Part I of Apte's appendix, the one with the detailed description of relatively common metres, but it is there in the "classified list" which is Part II of the appendix. He drew the definition from the Mandāramaranda.
To be able to refer to this, I've put the following in the file:
<bibl><ptr target="bib:Apte1890_01"/><citedRange unit="appendix">A: Sanskrit Prosody</citedRange><citedRange unit="section">II.23</citedRange></bibl>
I did not use item because the individual metres are not numbered in this part; to find aśvalalita, one has to go to section II.23 and go to na-ja-bha-ja-bha-ja-bha-la-ga in the alphabetical list there.
Please let me know if you would prefer a different way of referring to metres in Apte's Classified List.
Furthermore, in accordance with the above "section II.23", I've changed the existing references as follows:
<bibl><ptr target="bib:Apte1890_01"/><citedRange unit="appendix">A: Sanskrit Prosody</citedRange><citedRange unit="page">4</citedRange><citedRange unit="item">I.A.11.5</citedRange></bibl>
that is to say, I've made the item numbers "I.A.whatever" instead of the previous "A.whatever".
Again, please let me know if you disagree.
Otherwise, please close this thread when you've seen this.
As of this moment I have not yet pushed my edits back to GitHub; will do shortly after I've had a look at your abhikṛti.

thanks a lot. I endorse all your changes.
sorry, I am inserting vertical bars only because they help me in the data entry process. I was intending to ask you to watch out for any sjch bars that I forget to remove again after I am done noting the patterns. I have now removed those bars from the <seg type="prosody"> of aśvalalita and pushed the file back to GitHub. I'll try to be less forgetful from now on, but please watch over my shoulders. please also feel free to remove any such bars that you find anywhere else.
closing this thread.

It's OK if you leave it to me to remove the bars. I just wanted to be sure you are OK with me removing them before doing so.


Raising an issue for practice

this is only for practice please ignore

Please use your own repo

sorry, will do that next time


utils.inspect should be allowed to take a single arg (I think)

https://nodejs.org/api/util.html#util_util_inspect_object_options
I think this shows that the second arg is optional.

Fixed


crypto/x509: distributionPointName not compliant with RFC 5280

Please answer these questions before submitting your issue. Thanks!

What version of Go are you using (go version)?
1.7

What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/Zhengping/Documents/nsrg"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/c6/vwt_07cd62b102ynhmn2n7pm0000gn/T/go-build736045736=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"

What did you do?
The x509 distributionPointName struct in x509.go is defined as

type distributionPointName struct {
FullName     asn1.RawValue    asn1:"optional,tag:0"
RelativeName pkix.RDNSequence asn1:"optional,tag:1"
}
But in RFC 5280, it is defined as
DistributionPointName ::= CHOICE {
fullName                [0]     GeneralNames,
nameRelativeToCRLIssuer [1]     RelativeDistinguishedName }
Clearly DistributionPointName is a choice, FullName and RelativeName cannot be present at the same time. Please consider making the struct contain one asn1.RawValue element to fix this issue.
type distributionPointName struct {
Name asn1.RawValue
}

crypto/x509 attempts to cover the subset of X.509 that is used in the web PKI. In practice, the CRLDP is just a URL and the RFC is hugely over engineered. []string is perhaps even too general here and it should just have been a string or a url.URL.
When more detailed dissection of X.509 structures is needed it's more appropriate to handle that in the package where it's needed. (For which I apologise for encoding/asn1, which was a mistaken design. You might well want to build a simple, imperative DER parser.)


Contact note fields should have a vocabulary of valid values.

@heyitsolivia @jamesturk @mileswwatkins
See https://github.com/openstates/new-openstates.org/issues/55.  I've struggled with this too, bemoaning the messiness of the note values.  IMHO, the set of valid values should be in an object somewhere, and set on a contact instance by a reference to an object property (contactNoteValues.districtOffice), not as a string literal.
I could take this on, if it seems right.
Where would be the right place for the vocabulary object to live?  Does it even belong in openstates, or in pupa?  Should the
Should I wait till after scraper season has wound down (~February) to avoid merges?

current values
Forney Office
capitol
District Address
District Office Phone
Physical Office
District Phone
Business Phone
District Office
Capitol office
District Office Fax
District Office #3
Capitol Office Phone
County Office
Capitol Office #1
District Email
Home Phone
Capitol Office
District Office #1
Capitol Address
Athens Office
E-mail
district
Springs Office
District Office #2
Senate Office

proposed normalized list:
District Office
Business Office
Home
Capitol Office

after looking at the actual cases of Business & Home, we can consolidate down to District & Capitol, doing this first, will introduce follow up in #226


connecting to an instance connects to original tool as well

probably a problem with the copy() part

better to just create a new tool with same id
see if fusion cares that there are no inputs


S3 ListParts returns wrong types

Hi,
I'm calling https://github.com/aws-beam/aws-elixir/blob/db4014af3aae07ef9685e33c8a72a0ac2933b9a6/lib/aws/generated/s3.ex#L5445 and realized the response Parts ETags and PartNumbers are kind of double encoded strings. This led to a subtle bug that was very hard to debug, before I landed on the below code. Notice the weird string unwrapping at the end:
    AWS.S3.list_parts(client, bucket, key, nil, nil, upload_id)
    |> case do
      {:ok,
       %{
         "ListPartsResult" => %{
           "IsTruncated" => "false",
           "Part" => parts
         }
       }, _resp} ->
        # parts are shaped like
        # [
        # %{"ETag" => "\"fa1d4ddd9daf8c27abb9491155a4df8d\"", "LastModified" => "2024-01-30T10:56:35.000Z", "PartNumber" => "1", "Size" => "5242880"},
        #  ...
        # ]
        parts
        |> Enum.map(fn %{"ETag" => etag, "PartNumber" => part_number} ->
          %{
            "ETag" => String.replace(etag, "\"", ""),
            "PartNumber" => String.to_integer(part_number)
          }
        end)
        |> then(&{:ok, &1})

The docs at https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html#API_ListParts_ResponseSyntax says the partnumber should be an integer at least.
CreateMultipartUpload does not suffer from the same issue:
https://github.com/aws-beam/aws-elixir/blob/db4014af3aae07ef9685e33c8a72a0ac2933b9a6/lib/aws/generated/s3.ex#L826
From this repo's readme:
# Create the multipart request
{:ok,
 %{
   "InitiateMultipartUploadResult" => %{
     "UploadId" => upload_id
   }
 }, _} = AWS.S3.create_multipart_upload(client, bucket, filename, %{})

upload_id is not double encoded like etag above.

I had a quick little fiddle with this and even the aws cli returns the ETags in it's funny little way 😢 See also: https://github.com/aws/aws-sdk-net/issues/815 which includes: https://github.com/aws/aws-sdk-net/issues/815#issuecomment-729056677 as a "resolution".
See the raw JSON output from a aws s3api list-parts output:
{
    "Parts": [
        {
            "PartNumber": 1,
            "LastModified": "2024-01-31T09:58:28.758Z",
            "ETag": "\"6af8307c2460f2d208ad254f04be4b0d\"",
            "Size": 9
        }
    ],
    "ChecksumAlgorithm": null,
    "Initiator": null,
    "Owner": null,
    "StorageClass": "STANDARD"
}

Dealing with the broken ETag might be tricky as I'd really like to avoid adding a String:replace/2 over every element for the sake of ETag handling and risk exploding things in other unknown places.
The integers could easily be solved by changing: https://github.com/aws-beam/aws-elixir/blob/01ab90fd75df1815fbb259a249ac2044eefa07d2/lib/aws/xml.ex#L129-L132
to: (or any other alternative to your liking, happy to accept the PR if you'd like to go ahead with such a change at least 👍)
defp hook_fun(text, global_state) when Record.is_record(text, :xmlText) do
  text = xmlText(text, :value)

  try do
    {:erlang:list_to_integer(text), global_state}
  catch
    _type, _reason ->
      {:unicode.characters_to_binary(text), global_state}
  end
end

We'd have to do something similar in aws-erlang but that's easy enough 😄
I'm tempted to close this issue seeing as aws-sdk-net isn't fixing this, I'm not convinced we should handle the ETag in any special way either. So besides the integer fix, I'm not convinced we should deviate from the official SDK(s).
@Doerge What's your thoughts? :-)

Yikes. Even in the HTTP header response the ETag is double-quotes wrapped.

There is probably a good reason for that. Just tripped me up tremendously😬
I'm now a bit unsure if it is then safe to attempt to decode everything that looks like an integer too? Maybe there are similar scenarios where AWS would return "123" instead of 123 for some reason?

Then let's agree to leave this as is. I'm also a bit concerned as to existing code that already performs similar type of parsing of responses that you wrote that would suddenly have to change by us doing integer conversions on the aws-{elixir,erlang} side but I'd be open to the idea.
For now, let's simply leave this be and have this issue serve as a history for someone who encounters it 👍 If we want to pick up integer conversion later on, we can 👍

Hmm..
The type info is in the json file that is used to generate these modules:
https://github.com/aws/aws-sdk-go/blob/3e2c844a50e888261e19e7d4c0991346580c2b98/models/apis/s3/2006-03-01/api-2.json#L6313
However I see that AWS is deprecating the aws-sdk-go package anyway, and the aws-sdk-go-v2 https://github.com/aws/aws-sdk-go-v2/blob/main/codegen/sdk-codegen/aws-models/s3.json format is way different:
        "com.amazonaws.s3#PartNumber": {
            "type": "integer"
        },
        "com.amazonaws.s3#PartNumberMarker": {
            "type": "string"
        },

If any effort is put in, it should probably be in the migration to the new go package.

That's been on my TODO for some time to investigate but that's going to be quite a spectacular effort unfortunately... 😅 Thanks for reminding me of the mountain of work ahead 😅

Sorry! Wasn't meant like that! 😬 I immensely appreciate these packages! 🙏
Was just curious if the types were even documented anywhere, so I dug into where the type info came from, and saw the deprecation notice!

No worries 😄 I know it's gonna be a big thing and it's been on my todo to look into but something keeps getting in my way to really sit down a weekend to dive into this.


[Module Addition] SVG To CSS

Reference: https://devutils.com/demo/#svg2css

Hello i would like to contribute to this i have a rough idea to convert the svg to a data encoded format and then pass it through the background uri .

There is already a module which converts image to base64, check it out here.

Scrapping upcoming hackathons and events.
@pratyushtiwary I want to work on this issue under hacktober fest.


Support geometry scale

At a simple level: maybe just a setter on Geometry that all subclasses can use?
At a higher level: it's slightly a pain to have to modify this python interface to support many of these trivial fields when all it's really doing is providing some abstractions for making the right JSON messages. Would it work to have a generic way to give SceneElements named fields with trivially-serializable values, and have those added to the return dict in lower()? Would that be too much power / be too weird?

So, I actually thought we had this already, but it turns out I only exposed it in the Julia wrapper. The javascript side already supports an additional command named set_property, which...sets properties. If we add support for that in the Python client, then you should be able to set any of these trivial properties without needing any other code modifications.
The set_property command is pretty simple: it just needs a path, a property name, and a value. The lowering code in Julia is just: https://github.com/rdeits/MeshCat.jl/blob/dc2ce73979bae39928e30eb8898d716956de61e1/src/lowering.jl#L258-L265 and it's also documented in the MeshCat readme: https://github.com/rdeits/meshcat#programmatic-api .
The only weirdness is that you need the /<object> suffix to get the "actual" object instead of the group that holds it.

I just got scale support by applying a scale transform to my object:
vis['reference'].set_transform(tfms.scale_matrix(0.001))

And it works great!


Dos2 content updates address and duns

Updates that complete these two stories:

https://www.pivotaltracker.com/story/show/131735889
(Add DUNS number in declaration)
https://www.pivotaltracker.com/story/show/131616225
(Split address over three fields)

Plus a bunch of other minor things, including adding "2" to the end of the framework name in a lot of places.

This looks good I think 👍
Nice work on using non breaking spaces too!


UserPresenter not found

Describe the bug
After updating from Laravel 6 -> 7 and therefore Orchid 6 -> 7, I'm getting an error.
Class 'App\Orchid\Presenters\UserPresenter' not found
To Reproduce
Steps to reproduce the behavior:

Make a new laravel project (version 6) and install orchid
Upgrade project to Laravel 7 and update Orchid.
Attempt to access dashboard

Expected behavior
Either an upgrade guide of some sort, or no errors when updating.
Desktop (please complete the following information):

OS: MacOS Catalina 10.15.5
Browser: Chrome
Version 83

Server (please complete the following information):

Platform Version: 7.7.1
Laravel Version: 7.14.1
PHP Version:  7.4
Database:  MySQL
Database Version:  5.7

Additional context
I would like to see some upgrade guides when making new major versions instead of having that box on the dashboard "shouting" at users to update your package...

Hey @mwkcoding .

Class 'App\Orchid\Presenters\UserPresenter' not found

You need to add this class yourself. You can take it from the standard delivery and change as you wish. The work of the presentation classes can be found at the following link.

Either an upgrade guide of some sort, or no errors when updating.

Thanks for this suggestion. I think we will definitely do it for 8.0

I would like to see some upgrade guides when making new major versions instead of having that box on the dashboard "shouting" at users to update your package...

I hope this was said with good intentions. Notification that a new version has been released is not intended for your users. It is intended only for you as a developer! (Suddenly you installed the old version of laravel/orchid) The output of this die is on your screen and you can remove it.

This question has remained unanswered for a long time.
I hope that all is well with you. Feel free to rediscover it.


form-control-static makes a long text of textarea input to overflow

If
.form-group-sm .form-control-static {
    height: 30px;
}

was
.form-group-sm .form-control-static {
    min-height: 30px;
}

instead, then there would be no problem.
html:

            Nazwa

                Opis at g sr g

            Adres

                Opis at g sr g

            Description

                Opis awer aerter t ert er tsrt g sr gOpis awer aerter t ert er tsrt g sr gOpis awer aerter t ert er tsrt g sr gOpis awer aerter t ert er tsrt g sr gOpis awer aerter t ert er tsrt g sr gOpis awer aerter t ert er tsrt g sr gOpis awer aerter t ert er tsrt g sr gOpis awer aerter t ert er tsrt g sr gOpis awer aerter t ert er tsrt g sr gOpis awer aerter t ert er tsrt g sr gOpis awer aerter t ert er tsrt g sr gOpis awer aerter t ert er tsrt g sr g

                <button class="btn btn-primary" name="submit" type="submit">Zapisz organizację</button>

Hi all,
I have tested this on my local and can reproduce it. This same issue also appears when using form-group-lg.
In terms of the fix it seems that the min height is already there for both these cases. The height just needs to be removed though which would solve the issue.
.form-group-lg .form-control-static {
    /* height: 46px; */
    min-height: 38px;
    padding: 11px 16px;
    font-size: 18px;
    line-height: 1.3333333;
}

.form-group-sm .form-control-static {
    /* height: 30px; */
    min-height: 32px;
    padding: 6px 10px;
    font-size: 12px;
    line-height: 1.5;
}

    Description

                Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam ipsam asperiores neque, porro doloribus omnis, repellat expedita! Possimus eos, hic, earum ipsam, officia at sint expedita fugit modi, repudiandae eligendi!

      <button class="btn btn-primary" name="submit" type="submit">Zapisz organizację</button>

    Description

                Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam ipsam asperiores neque, porro doloribus omnis, repellat expedita! Possimus eos, hic, earum ipsam, officia at sint expedita fugit modi, repudiandae eligendi!

      <button class="btn btn-primary" name="submit" type="submit">Zapisz organizację</button>

I will have a go on this one. But since this would be my first contribution to any project I will not assign it to myself. If someone feels the need to do this before me then be my guest :) Might take some time for me. Will fork and get the process started. Let me know if I have misunderstood or missed something.
Cheers,
Per

Closing as a won't fix since this class is largely meant to be used as a replacement for <input>s, not <textareas>.

@perrosen You are correct, same goes with form-group-lg
@mdo The output text of an input can also possibly wrap to multiple lines, plus the html structure of textarea and input is exactly the same.
I don't see how this solution can be only for inputs.

@mdo So, what is the correct solution to align long static text with a label in a form? Any long text that wraps suffers from this issue.  I just updated from v3.3.1 to v3.3.6 and was impacted by this.

FWIW, .form-control-static.form-control-sm in Bootstrap v4 doesn't suffer from this bug.


Cannot destroy and reinitialize.

tooltipster v4.1.6
I initialize tooltipster on a click event with:
$('.tooltip').tooltipster({
theme: 'tooltipster-noir',
animation: 'fade',
animationDuration: 100,
delay: 0,
trigger: 'hover',
distance: 6,
interactive: true
});

There are multiple instances of .tooltip.
When I try and destroy all tooltips with:
$('.tooltip').tooltipster('destroy');
And then re-initialise with:
$('.tooltip').tooltipster({
theme: 'tooltipster-noir',
animation: 'fade',
animationDuration: 100,
delay: 0,
trigger: 'hover',
distance: 6,
interactive: true
});

The tooltips do not display again.
How do I properly destroy all tooltips so that they can be re-initialized again?

Hmm, it seems the issue is that my html looks like this:

And after instantiation, that html is actually removed from index.html, so I need to repopulate it before re-instantiating.

Check out the restoration option.


Emit sync-state event after calling SyncApi.start() and SyncApi.stop()?

Description
Been working with the sync api in application code and I'm noticing that calling the start() and stop() methods will not trigger a sync-state event if they meaningfully change the state.data.syncing (i.e. not in the idempotent case). The payload for that event is directly affected by mutations in those methods so I would expect the event to fire to notify listeners of the updated value.
The mutations of interest in each method:
https://github.com/digidem/mapeo-core-next/blob/30e637ba74168d106e17d7b3de349abd97f51c74/src/sync/sync-api.js#L137
https://github.com/digidem/mapeo-core-next/blob/30e637ba74168d106e17d7b3de349abd97f51c74/src/sync/sync-api.js#L125
Part of the payload is derived by the mutations above:
https://github.com/digidem/mapeo-core-next/blob/30e637ba74168d106e17d7b3de349abd97f51c74/src/sync/sync-api.js#L74
A more practical example of what I would expect:
// 1. Add listener
project.$sync.on('sync-state', (state) => {
  console.log(state.data.syncing)
})

// 2. Start/enable data sync
// `state.data.syncing` changes from false to true, should cause listener to log `true`
project.$sync.start()

// Idempotent, should not emit event
project.$sync.start()

// 3. Stop/disable data sync
// `state.data.syncing` changes from true to false, should cause listener to log `false`
project.$sync.stop()

// Idempotent, should not emit event
project.$sync.stop()

Without this behavior, I have to implement some complicated code to set up a wrapped version of start() and stop() that eventually call getState() afterwords in order to get the most updated state and trigger a reactive change

Yeah, seems like a big, we should emit at the end of each of those functions. I can add it tomorrow, and figure out a test to add.


'view source' should toggle

at the moment hitting view source from edit mode doesn't seem to toggle between definition and dashboard edit

Done

sweet, thanks @aalpern !