Make magic links single-use and add confirmation page

Context
Magic links currently last for one hour, with no limit on their use
during that time. A recent pentest recommended that we make magic links
single-use.
This is a continuation of https://github.com/DFE-Digital/apply-for-teacher-training/pull/2695 .

Changes proposed in this pull request

Change magic links so that they point to a sign in confirmation page.
When the user clicks 'Continue' from this page, expire their token and
sign them in.
Amend the copy on the expired token page to reflect the new behaviour.

Guidance to review

Any changes needed to content on the confirmation page?
Per-commit review recommended
May be easier to test multiple sign ins locally
Do the spec changes make sense?

Link to Trello card

https://trello.com/c/aNcIaroP
Things to check

[x] This code does not rely on migrations in the same Pull Request
[x] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[x] API release notes have been updated if necessary
[x] New environment variables have been added to the Azure config

Would it be possible to redirect straight to the application dashboard skipping the confirm sign in page?

Yep, that seems sensible. Will update.

If the link is expired, can we present the user immediately with the "The link you clicked has expired" page?


Pattern synonym haddocks sometimes get randomly associated with the wrong objects.

I have a module that exports several hundred pattern synonyms, often associated with data types.
However, I'm finding something very odd happening.
After a few dozen a large subset of the rest start getting their documentation associated with random other objects in the haddock!

Not sure if this is some interaction with the {-# line #-} directives produced by hsc2hs or some other artifact.

Wow! What a spectacular bug. Is there any chance you could link to the code (or some loosely stripped down version of it)? Also, which version of Haddock are you using to produce this?

Likely to be related to https://github.com/haskell/haddock/issues/1069


Add a host

Describe your issue here
I could not add a host successfully.

Useful
Info

Versions
Rancher v1.6.12 Cattle: v0.183.30 UI: v1.6.30

Access
Disabled

Orchestration
Cattle

Route
stacks.index

We need a little more info, how are you adding a host, what logging is present in the rancher/server and rancher/agent container?


User/Sender ID is int

The number of telegram users is most likely to reach 2^31 in a year or two, and the int type is the 32-bit signed int on 32-bit machines (if someone still uses those). Should we start worrying already?

official API reference: https://core.telegram.org/bots/api#chat

id  | Unique identifier for this chat. This number may be greater than 32  bits and some programming languages may have difficulty/silent defects  in interpreting it. But it is smaller than 52 bits, so a signed 64 bit  integer or double-precision float type are safe for storing this  identifier.

please consider refactoring to int64

official API reference: https://core.telegram.org/bots/api#chat

id  | Unique identifier for this chat. This number may be greater than 32  bits and some programming languages may have difficulty/silent defects  in interpreting it. But it is smaller than 52 bits, so a signed 64 bit  integer or double-precision float type are safe for storing this  identifier.

please consider refactoring to int64

I second this issue. Looks like Telebot uses int types a bit everywhere, including for message IDs.
32-bit machines are fairly common in the ARM world, e.g. Raspberry Pi's.

Really important

Viable workaround
import (
	"gopkg.in/tucnak/telebot.v2"
	"unsafe"
)

func MustTgUserId64() {
	var u telebot.User
	if unsafe.Sizeof(u.ID) < 8 {
		panic("this application should run only on 64-bit architecture")
	}
}

func init() {
	MustTgUserId64()
}

func main() {
// ...
}

@ofstudio I wouldn't call that a "workaround" but more like enforcing a requirement. Anyways that's what I've added to my code too. Here's another option that doesn't require the unsafe package:
if int64(int(1<<60)) != int64(1<<60) {
	panic("This app should only be executed on a 64-bit system")
}

https://github.com/tucnak/telebot/commit/8f725d434e5137851faa7674214ff8421a5434cd


Restrict interaction with GitHub repo to users who have had an account for X amount of time

Component
Other (please describe) - Also would be nice to add a 'meta' tag for these sorts of issues
Describe the feature you would like
Restrict interaction with GitHub repo to users who have had an account for X amount of time. I have seen 3 issues with user accounts that are bots. Head off the spam now, as this will invariably be a target as foundry is crypto-related so it's even at a higher risk than normal popular repos.
Additional context
Solution: docs.github.com/en/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository
or alt. create a github action similar to github.com/marketplace/actions/faceless-issues but without the comment disclosing about the avatar check and an additional check to see how many repos, commits or whatever other heuristic is relevant

Can you link the spam issues? I haven't seen any and I'd rather not restrict before it becomes an issue (if it does) mostly because we also have to account for people that create accounts on GitHub to file issues on Foundry (who are not bots).

Can you link the spam issues? I haven't seen any and I'd rather not restrict before it becomes an issue (if it does) mostly because we also have to account for people that create accounts on GitHub to file issues on Foundry (who are not bots).

Accounts that comment on the repo without having any history are harvesting data. I can provide examples later not at my workstation.
Also, anyone using foundry has a github account, alternatively they can post in telegram and someone can report it for them, though this is the exceptional case.
Thanks for creating the meta label too

Meta label has existed it's just not surfaced in the forms :smile: I still think this would be premature action since I haven't seen any spam myself. As for harvesting data, you don't really need a bot for that since all of this is public, so it's not a concern to me in this case

Closing this as per above, we can discuss on Telegram in the Foundry channel if you want to, but I haven't seen any spam issues and I don't think it's a good assumption at this point that everyone has a GitHub account

Closing this as per above, we can discuss on Telegram in the Foundry channel if you want to, but I haven't seen any spam issues and I don't think it's a good assumption at this point that everyone has a GitHub account

https://twitter.com/stephenlacy/status/1554697086158876674

Does not matter if we block them or not. They can clone the repository without an account, create a GitHub account and do the exact same thing. Restricting them from being here does not ban them off of GitHub. Please don't necro issues for unrelated reasons


The request cannot be fulfilled because of the state of another resource. - Can't Reorder Assets after Submission appScreenshots

Hi,
I am trying to upload my macOS build of my MacCatalyst app to Itunes Connect using fastlane but I get the following error
The request cannot be fulfilled because of the state of another resource. - Can't Reorder Assets after Submission appScreenshots
while running upload_to_app_store(submit_for_review: true)
This is my lane
platform :macOS do
  desc "Push a new MACOS release build to the App Store"
  lane :release do
    increment_build_number(
      build_number: app_store_build_number + 1,
      xcodeproj: "Das Gedenken.xcodeproj"
    )

    snapshot(skip_open_summary: true)

    build_app(
      workspace: "Das Gedenken.xcworkspace",
      scheme: "Das Gedenken"
    )

    upload_to_app_store(submit_for_review: true)
  end

  desc "Push a new MACOS release build to the App Store"
  lane :releaseW do
    increment_build_number(
      build_number: app_store_build_number + 1,
      xcodeproj: "Das Gedenken.xcodeproj"
    )

    upload_to_app_store(submit_for_review: true)
  end
end

Output:
......
[17:23:16]: HTML file confirmed...
[17:23:21]: Will begin uploading metadata for '1.4.5' on App Store Connect
[17:23:21]: Release type will not be set because neither `automatic_release` nor `auto_release_date` were provided. Please explicitly set one of these options if you need a release type set
[17:23:21]: Uploading metadata to App Store Connect for version
[17:23:25]: Uploading metadata to App Store Connect for localized version 'ar-SA'
[17:23:25]: Uploading metadata to App Store Connect for localized version 'en-US'
[17:23:25]: Uploading metadata to App Store Connect for localized version 'de-DE'
[17:23:27]: Uploading metadata to App Store Connect for localized info 'en-US'
[17:23:27]: Uploading metadata to App Store Connect for localized info 'de-DE'
[17:23:27]: Uploading metadata to App Store Connect for localized info 'ar-SA'
[17:23:32]: Uploading app review information to App Store Connect
[17:23:38]: Will begin uploading snapshots for '1.4.5' on App Store Connect
[17:23:38]: Starting with the upload of screenshots...
[✔] Waiting for all the screenshots to finish being processed...
[17:23:40]: Successfully uploaded all screenshots
[⠴] Sorting screenshots uploaded... #<Thread:0x00007fd9d42b13c0 /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/fastlane_core/lib/fastlane_core/queue_worker.rb:37 run> terminated with exception (report_on_exception is true):
/usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/api_client.rb:199:in `handle_response': The request cannot be fulfilled because of the state of another resource. - Can't Reorder Assets after Submission appScreenshots (Spaceship::UnexpectedResponse)
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/api_client.rb:135:in `patch'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/tunes/tunes.rb:522:in `patch_app_screenshot_set_screenshots'
	from /usr/local/Cellar/ruby/3.0.2_1/lib/ruby/3.0.0/forwardable.rb:238:in `patch_app_screenshot_set_screenshots'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb:156:in `reorder_screenshots'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/deliver/lib/deliver/upload_screenshots.rb:242:in `block in sort_screenshots'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/fastlane_core/lib/fastlane_core/queue_worker.rb:40:in `block (2 levels) in start'
#<Thread:0x00007fd9d42b16b8 /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/fastlane_core/lib/fastlane_core/queue_worker.rb:37 run> terminated with exception (report_on_exception is true):
/usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/api_client.rb:199:in `handle_response': The request cannot be fulfilled because of the state of another resource. - Can't Reorder Assets after Submission appScreenshots (Spaceship::UnexpectedResponse)
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/api_client.rb:135:in `patch'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/tunes/tunes.rb:522:in `patch_app_screenshot_set_screenshots'
	from /usr/local/Cellar/ruby/3.0.2_1/lib/ruby/3.0.0/forwardable.rb:238:in `patch_app_screenshot_set_screenshots'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb:156:in `reorder_screenshots'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/deliver/lib/deliver/upload_screenshots.rb:242:in `block in sort_screenshots'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/fastlane_core/lib/fastlane_core/queue_worker.rb:40:in `block (2 levels) in start'
#<Thread:0x00007fd9d42b15a0 /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/fastlane_core/lib/fastlane_core/queue_worker.rb:37 run> terminated with exception (report_on_exception is true):
/usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/api_client.rb:199:in `handle_response': The request cannot be fulfilled because of the state of another resource. - Can't Reorder Assets after Submission appScreenshots (Spaceship::UnexpectedResponse)
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/api_client.rb:135:in `patch'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/tunes/tunes.rb:522:in `patch_app_screenshot_set_screenshots'
	from /usr/local/Cellar/ruby/3.0.2_1/lib/ruby/3.0.0/forwardable.rb:238:in `patch_app_screenshot_set_screenshots'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb:156:in `reorder_screenshots'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/deliver/lib/deliver/upload_screenshots.rb:242:in `block in sort_screenshots'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/fastlane_core/lib/fastlane_core/queue_worker.rb:40:in `block (2 levels) in start'
+---------------------+----------------+
|             Lane Context             |
+---------------------+----------------+
| DEFAULT_PLATFORM    | ios            |
| PLATFORM_NAME       | macOS          |
| LANE_NAME           | macOS releaseW |
| LATEST_BUILD_NUMBER | 37             |
| LATEST_VERSION      | 1.4.4          |
| BUILD_NUMBER        | 38             |
+---------------------+----------------+
[⠦] Sorting screenshots uploaded... [17:23:41]: The request cannot be fulfilled because of the state of another resource. - Can't Reorder Assets after Submission appScreenshots

+------+------------------------+-------------+
|              fastlane summary               |
+------+------------------------+-------------+
| Step | Action                 | Time (in s) |
+------+------------------------+-------------+
| 1    | default_platform       | 0           |
| 2    | app_store_build_number | 8           |
| 3    | increment_build_number | 1           |
| 💥   | upload_to_app_store    | 42          |
+------+------------------------+-------------+

[17:23:41]: fastlane finished with errors

Looking for related GitHub issues on fastlane/fastlane...

[⠙] Sorting screenshots uploaded... Found no similar issues. To create a new issue, please visit:
https://github.com/fastlane/fastlane/issues/new
Run `fastlane env` to append the fastlane environment to your issue
/usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/api_client.rb:199:in `handle_response': \e[31m[!] The request cannot be fulfilled because of the state of another resource. - Can't Reorder Assets after Submission appScreenshots\e[0m (Spaceship::UnexpectedResponse)
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/api_client.rb:135:in `patch'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/tunes/tunes.rb:522:in `patch_app_screenshot_set_screenshots'
	from /usr/local/Cellar/ruby/3.0.2_1/lib/ruby/3.0.0/forwardable.rb:238:in `patch_app_screenshot_set_screenshots'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb:156:in `reorder_screenshots'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/deliver/lib/deliver/upload_screenshots.rb:242:in `block in sort_screenshots'
	from /usr/local/Cellar/fastlane/2.198.1/libexec/gems/fastlane-2.198.1/fastlane_core/lib/fastlane_core/queue_worker.rb:40:in `block (2 levels) in start'

✅ fastlane environment ✅
Stack

Key
Value

OS
12.0.1

Ruby
3.0.2

Bundler?
false

Git
git version 2.31.1

Installation Source
/usr/local/Cellar/fastlane/2.198.1/libexec/bin/fastlane

Host
macOS 12.0.1 (21A559)

Ruby Lib Dir
/usr/local/Cellar/ruby/3.0.2_1/lib

OpenSSL Version
OpenSSL 1.1.1l  24 Aug 2021

Is contained
false

Is homebrew
true

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
13.1

Swift Version
5.5.1

System Locale

Variable
Value

LANG
de_DE.UTF-8
✅

LC_ALL

LANGUAGE

fastlane files:
`./fastlane/Fastfile`
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
#     https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
#     https://docs.fastlane.tools/plugins/available-plugins
#

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane

default_platform(:ios)

platform :ios do
  desc "Push a new release build to the App Store"
  lane :release do
    increment_build_number(
      build_number: app_store_build_number + 1,
      xcodeproj: "Das Gedenken.xcodeproj"
    )

    snapshot(skip_open_summary: true)

    build_app(
      workspace: "Das Gedenken.xcworkspace",
      scheme: "Das Gedenken"
    )

    upload_to_app_store(submit_for_review: true)
  end

  lane :updateScreenshots do
    #snapshot(skip_open_summary: true)

    deliver(overwrite_screenshots: true, skip_binary_upload: true)
  end
end

platform :watchOS do
  lane :screenshots do
    snapshot(scheme: "GedenkenWatchOSUITests")
  end
end

platform :mac do
  desc "Push a new MACOS release build to the App Store"
  lane :release do
    increment_build_number(
      build_number: app_store_build_number + 1,
      xcodeproj: "Das Gedenken.xcodeproj"
    )

    snapshot(skip_open_summary: true)

    build_app(
      workspace: "Das Gedenken.xcworkspace",
      scheme: "Das Gedenken"
    )

    upload_to_app_store(submit_for_review: true)
  end

  desc "Push a new MACOS release build to the App Store"
  lane :releaseW do
    increment_build_number(
      build_number: app_store_build_number + 1,
      xcodeproj: "Das Gedenken.xcodeproj"
    )

    upload_to_app_store(submit_for_review: true)
  end
end

fastlane gems

Gem
Version
Update-Status

fastlane
2.198.1
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.5.0

atomos
0.1.3

rexml
3.2.5

CFPropertyList
3.0.5

claide
1.0.3

colored2
3.1.2

nanaimo
0.3.0

xcodeproj
1.21.0

rouge
2.0.7

xcpretty
0.3.0

terminal-notifier
2.0.0

unicode-display_width
1.8.0

terminal-table
1.8.0

plist
3.6.0

public_suffix
4.0.6

addressable
2.8.0

multipart-post
2.0.0

word_wrap
1.0.0

optparse
0.1.1

tty-screen
0.8.1

tty-cursor
0.7.1

tty-spinner
0.9.3

artifactory
3.0.15

babosa
1.0.4

colored
1.2

highline
2.0.3

commander
4.6.0

excon
0.88.0

faraday-em_http
1.0.0

faraday-em_synchrony
1.0.0

faraday-excon
1.1.0

faraday-httpclient
1.0.1

faraday-net_http
1.0.1

faraday-net_http_persistent
1.2.0

faraday-patron
1.0.0

faraday-rack
1.0.0

ruby2_keywords
0.0.5

faraday
1.8.0

unf_ext
0.0.8

unf
0.1.4

domain_name
0.5.20190701

http-cookie
1.0.4

faraday-cookie_jar
0.0.7

faraday_middleware
1.2.0

fastimage
2.2.5

gh_inspector
1.1.3

mini_magick
4.11.0

naturally
2.2.1

rubyzip
2.3.2

security
0.1.3

xcpretty-travis-formatter
1.0.1

dotenv
2.7.6

bundler
2.2.22

simctl
1.6.8

jwt
2.3.0

uber
0.1.0

declarative
0.0.20

trailblazer-option
0.1.2

representable
3.1.1

retriable
3.1.2

mini_mime
1.1.2

memoist
0.16.2

multi_json
1.15.0

os
1.1.4

signet
0.16.0

googleauth
1.1.0

httpclient
2.8.3

webrick
1.7.0

google-apis-core
0.4.1

google-apis-playcustomapp_v1
0.6.0

google-apis-androidpublisher_v3
0.13.0

google-cloud-env
1.5.0

google-cloud-errors
1.2.0

google-cloud-core
1.6.0

google-apis-iamcredentials_v1
0.8.0

google-apis-storage_v1
0.9.0

rake
13.0.6

digest-crc
0.6.4

google-cloud-storage
1.34.1

emoji_regex
3.2.3

tsort
0.1.0

uri
0.10.1

set
1.0.1

json
2.6.1

aws-eventstream
1.2.0

aws-sigv4
1.4.0

aws-partitions
1.534.0

jmespath
1.4.0

aws-sdk-core
3.123.0

aws-sdk-kms
1.51.0

aws-sdk-s3
1.107.0

forwardable
1.3.2

logger
1.4.3

pathname
0.1.0

shellwords
0.1.0

cgi
0.2.0

date
3.1.0

timeout
0.1.1

stringio
3.0.0

openssl
2.2.0

io-nonblock
0.1.0

ipaddr
1.2.2

io-wait
0.1.0

zlib
1.1.0

resolv
0.2.0

securerandom
0.1.0

digest
3.0.0

time
0.1.0

open-uri
0.1.0

mutex_m
0.1.1

net-protocol
0.1.0

ostruct
0.3.1

english
0.7.1

erb
2.2.0

strscan
3.0.0

abbrev
0.1.0

io-console
0.5.7

tempfile
0.1.1

delegate
0.2.0

fileutils
1.5.0

tmpdir
0.1.2

base64
0.1.0

singleton
0.1.1

net-http
0.1.1

open3
0.1.1

nkf
0.1.0

prettyprint
0.1.0

pp
0.1.0

find
0.1.0

yaml
0.1.1

psych
3.3.0

generated on: 2021-11-30


optstats derive for min()/max() agg function

Proposed changes
the column stats for min(A) agg function is estimated as column stats of A.
in current version, min(A).ndv is 1, this is not error-prone.


Move highcharts-more and highcharts-solid-gauge into separate packages?

Why don't we move these into separate packages that just require this package as a dependency. That way we can ensure that users that only want the core of highcharts are able to get it without adding any extra functionality that they don't need. @jhuenges thoughts?

Yep, sounds good

I guess this can be closed


Create v1.2.0.md

Adding RNs for v1.2.0 release

[x] Add issues with the highlight label

[x] Add issues with the kind/bug|priority/0 label

[x] Add issues with the require/release-note label

[ ] Review issues with the highlight label

[ ] Review issues with the kind/bug|priority/0 label

[ ] Review issues with the require/release-note label

Note: Adding  to sections or issues that need follow up. I'll remove these as the section/issue is approved.

close as this is included in the PR https://github.com/harvester/release-notes/pull/23, thanks for the help Lucas!


Is this API header key example fiction?

https://github.com/SAP-samples/teched2021-developer-keynote/blob/main/section/cap/srv/cat-service.js#L23
I'd expect OAuth 2.0 SAML bearer assertion is used to authenticate with the SF OData API, but I cannot see any traces of this in the sample. For this you'd need to include the sap-successfactors-extensibility service in the project and I would like to see what is needed for CAP to propagate the req.user.id to the external service using OAuth 2.0 SAML bearer assertion.
Could the sample be updated so that it's designed to work with the production destination 'sfsfDest' (in the cds.env) in the first place?

Well if you were running in production you would bind to a destination named sfsfDest which would be an SAP BTP Destination
https://github.com/SAP-samples/teched2021-developer-keynote/blob/main/section/cap/package.json#L63
https://cap.cloud.sap/docs/guides/consuming-services#btp-destinations
Or if you were using Kyma as you suggested with the sap-successfactors-extensibility service this would be name of the extensibility service instance. https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/f371f81d06c64a0fb507307c9ad24646.html

I would add that the API Key portion of the example is necessary if you want to test with the API Hub Sandbox; which many people that might not have access to a SuccessFactors instance might want to do.

Thanks @jung-thomas. I now played around a little with the external service and got it working. I think I was just thrown off a little too much seeing that API header in the service implementation 😛


Broken Base After Migration

This happens after base is migrated.
Upon login from any users.
Server stops.
On click "Adjust Slot" after selecting the migrated base as the target base, we get the following error in console:
Exception in Tkinter callback
Traceback (most recent call last):
  File "tkinter\__init__.py", line 1948, in __call__
  File "palworld_server_toolkit\editor.py", line 1875, in adjust_base_slot_count
KeyError: palworld_save_tools.archive.UUID('71c75e4c-4476-bd1d-7fdb-c5bc91ecfdab')

Below is Diagnostics.txt after server crashed:
Generating report for minidump

Application version <IP_ADDRESS>
 ... built from changelist 0

OS version Linux 6.1.0-18-cloud-amd64 (network name: instance.asia-northeast1-a.c.loyal-bounty-412213.internal)
Running 2 x86_64 processors (4 logical cores)
Exception was "SIGSEGV: invalid attempt to read memory at address 0x0000000000000080"

<SOURCE START>
<SOURCE END>

<CALLSTACK START>
PalServer-Linux-Test!UPalBaseCampWorkerDirector::OnTickInServer_WaitForLoadingAround() [G:/works/repos/Pal_SVN/Pal-UE-App/Source/Pal/PalBaseCampWorkerDirector.cpp:1641]
PalServer-Linux-Test!UPalBaseCampModel::TickByManager(float) [G:/works/repos/Pal_SVN/Pal-UE-App/Source/Pal/PalBaseCampModel.cpp:205]
PalServer-Linux-Test!UPalBaseCampManager::Tick_ServerInternal(float) [G:/works/repos/Pal_SVN/Pal-UE-App/Source/Pal/PalBaseCampManager.cpp:505]
PalServer-Linux-Test!FTickableGameObject::TickObjects(UWorld*, int, bool, float) [C:/works/Pal-UE-EngineSource/Engine/Source/./Runtime/Engine/Private/Tickable.cpp:150]
PalServer-Linux-Test!UWorld::Tick(ELevelTick, float) [C:/works/Pal-UE-EngineSource/Engine/Source/./Runtime/Engine/Private/LevelTick.cpp:1606]
PalServer-Linux-Test!UGameEngine::Tick(float, bool) [C:/works/Pal-UE-EngineSource/Engine/Source/./Runtime/Engine/Private/GameEngine.cpp:1775]
PalServer-Linux-Test!FEngineLoop::Tick() [C:/works/Pal-UE-EngineSource/Engine/Source/./Runtime/Launch/Private/LaunchEngineLoop.cpp:5363]
PalServer-Linux-Test!GuardedMain(char16_t const*) [C:/works/Pal-UE-EngineSource/Engine/Source/./Runtime/Launch/Private/Launch.cpp:204]
PalServer-Linux-Test!CommonUnixMain(int, char**, int (*)(char16_t const*), void (*)()) [C:/works/Pal-UE-EngineSource/Engine/Source/Runtime/Unix/UnixCommonStartup/Private/UnixCommonStartup.cpp:269]
libc.so.6!UnknownFunction(0x27249)
libc.so.6!__libc_start_main(+0x84)
PalServer-Linux-Test!_start()

<CALLSTACK END>

0 loaded modules

Report end!


Search autocomplete not working

I was merging repositories and notice this line was removed.
https://github.com/vitorfs/bootcamp/blob/master/bootcamp/templates/base.html#L116
How it was before:
$(function() {
  $("#searchInput").autocomplete({
      source: "{% url 'search:suggestions' %}",
      minLength: 2
  });
});

I do have to implement this block again. The AJAX call needs improvement.


Update Support App Configuration Sample.mobileconfig

This converts the example profile from the legacy MCX type and instead sets the PayloadType directly.

Thanks @kevinmcox!


Add video timeline and playback controls

Right a user can only play their video. It would be nice to be able to see a timeline of the video and be able to scrub through it backwards and forwards.
These are the features I would like to see:

[ ] Timeline of the video
[ ] Back 1 frame button
[ ] Forward 1 frame button
[ ] Scrub through the video by clicking and dragging mouse/finger (wont support touch)

I struck the touch support from the list, because I don't think this tool is useful on a touch device.


I love Files, but it's a bit slow compared to the native windows explorer.

What's the Problem?
I'm used to files and folders responding very quickly. Opening folders in "Files" can be a bit sluggish and sometimes doesn't register double clicks.
Is there any way to speed up the application at my end? Are you planning to optimize the application for responsiveness?
Solution/Idea
GPU acceleration, faster animation transitions etc.
Alternatives
Single click to open folders.
Priorities

Capability
Priority

Increased responsiveness
Must

Configurations to control graphics settings, animations etc.
Should

Use GPU acceleration
Could

Nyan Cat theme
Won't

Files Version
Version: <IP_ADDRESS>
Windows Version
Windows OS Version: 10.0.19043.1526
Comments
No response

It currently beeing done and is tracked in #4180

We're excited to share that startup performance will be significantly improved in the upcoming release of version 3. You can download the preview version from our website https://files.community/download.


Some classes don't fit in list on small page sizes

When the homepage viewport is reduced to smaller sizes, some of the class names pop out of their containers.

A quick fix to this would be to use Bootstrap's overflow class for the smaller viewports (we might even just be able to apply it generally?).
The better fix would be to have the explainer be a column which moves below the classes on smaller viewports, but my guess is that could be more work?
Are you considering an update to bootstrap as part of your big refactoring?  If so the quicker fix might be a better choice given the layout engine has changed a couple of times in the major version bumps.

The better fix would be to have the explainer be a column which moves below the classes on smaller viewports, but my guess is that could be more work?

That would probably be enough. Another thing that would work at this size (tablet-ish... larger than mobile) would be to reduce the width of the text column, and expand the others.

Are you considering an update to bootstrap as part of your big refactoring?

Besides needing a few small tweaks, I think this version of bootstrap is holding up pretty well, so if I can avoid that for the moment, I will. The nav-bar might be frustrating to fix though. I think there's room for a discussion about a complete re-design, but I'd like to handle that after the refactor.


Will flows created in the old environment be deleted?

Will flows and apps created in the previous version of CDS be deleted automatically if no action is taken before March 2019? Is an update necessary to keep the flows?

Closing this issue as the product this issue is about is no longer supported/exists.


Test incoming pull requests for git signoff

We'd like commits to be signed off via git signoff, and we should test whether any signoff exists for commits on incoming PRs.

@mbestavros I'm not sure if this is still something we're looking to do for Enarx patches, but if it is, please re-open this in our main enarx/enarx repo


Jaeger is OOMKilled when use badger as storage

version: all-in-one:1.18.1
issue:
when i use badge as storage, Jaeger requests much more memory than in-memory storage and it keeps OOMKiller.
At the beginning Jaeger requests just hundred MB memory when it uses in-memory storage. But it requests over 5Gi memory when changed to Badge.
Jaeger yaml:
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: tracing-jaeger
  namespace: kyma-system
spec:
  agent:
    config: {}
    options: {}
    resources: {}
  allInOne:
    config: {}
    image: eu.gcr.io/kyma-project/external/jaegertracing/all-in-one:1.18.1
    options:
      log-level: info
    resources: {}
  annotations:
    sidecar.istio.io/inject: "true"
    sidecar.istio.io/rewriteAppHTTPProbers: "true"
  collector:
    config: {}
    options: {}
    resources: {}
  ingester:
    config: {}
    options: {}
    resources: {}
  ingress:
    enabled: false
    openshift: {}
    options: {}
    resources: {}
    security: none
  query:
    options: {}
    resources: {}
  resources:
    limits:
      cpu: 500m
      memory: 8Gi
    requests:
      cpu: 200m
      memory: 6Gi
  sampling:
    options: {}
  storage:
    cassandraCreateSchema: {}
    dependencies:
      resources: {}
      schedule: 55 23 * * *
    elasticsearch:
      nodeCount: 3
      redundancyPolicy: SingleRedundancy
      resources:
        limits:
          memory: 16Gi
        requests:
          cpu: "1"
          memory: 16Gi
      storage: {}
    esIndexCleaner:
      numberOfDays: 7
      resources: {}
      schedule: 55 23 * * *
    esRollover:
      resources: {}
      schedule: 0 0 * * *
    options:
      badger:
        directory-key: /badger/key
        directory-value: /badger/data
        ephemeral: false
        span-store-ttl: 24h
        truncate: true
      cassandra:
        keyspace: jaeger_v1_datacenter3
        servers: cassandra.default.svc
      es:
        server-urls: http://elasticsearch-client.default.svc:9200
      memory:
        max-traces: 10000
    type: badger
  strategy: allinone
  ui:
    options:
      dependencies:
        menuEnabled: true
      menu:
      - items:
        - label: Documentation
          url: https://www.jaegertracing.io/docs/latest
        label: About Jaeger
      - items:
        - label: Documentation
          url: https://kyma-project.io/docs/components/tracing/
        label: About Kyma
  volumeMounts:
  - mountPath: /badger
    name: data
  volumes:
  - name: data
    persistentVolumeClaim:
      claimName: jaeger-pvc

we really want to have persistent data for the tracing.
Do you have any suggestion or kind of wordaround for Badger?
Yeah, please also point me the code. Thanks!

we really want to have persistent data for the tracing.

You can use Cassandra or Elasticsearch for that, which are actually recommended if you need to scale your deployment...
In any case, here's the badger code: https://github.com/jaegertracing/jaeger/tree/master/plugin/storage/badger

This should have been fixed by #3096. If you are still experiencing this, feel free to reopen.

I still have this behavior with all in one image v1.49, weird thing is the OOM happens at startup with no load at all (probably when badger is getting reopened).


portfolio: 0.53.1 -> 0.54.1

Motivation for this change
Update portfolio.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes

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

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 131597 at cd17e5e6 run on x86_64-linux 1

1 package built successfully:

portfolio

1 suggestion:

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/applications/office/portfolio/default.nix:45:3:
   |
45 |   installPhase = ''
   |   ^


I still don't see "Hosted by"

I have looked at how you have done it in the start.js file. I added that to my project, but when I start a giveaway I get this:

@SGAHJDGAJHDGSA did you update your config file?

@Androz2091 you have not added in the config file too.

Uh. You're right. Added.

Yes I have added "hostedBy" in my config and this is what I get

This is what is in my config:
{     "token" : "my token",     "prefix" : "o!",     "everyoneMention": false,     "hostedBy": true }

You also have to update discord-giveaways. Run npm install discord-giveaways.

ah i see

Does it appear now?

@SGAHJDGAJHDGSA  PLEASE CLOSE THE ISSUE IT IS SOLVED NOW. THANK YOU


Handling dates

First of all, PScript is awesome. I love transpiling Python programs into Javascript programs that just work, like this: https://gist.github.com/riziles/87888bd508f1471a5feea1eb36d69cbb . Any suggestions as to how to handle dates easily? It seems like I'm spending a lot of time re-writing Python date functions in Javascript.

Use the JS date system, which is pretty good: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

Thanks! I actually start using Piotr Dabkowski's package Js2Py (it has an implementation of the JS Date class) in conjunction with PScript so my code works both in Python and JS:
import js2py
import pscript

def Date(*args):
    if len(args) >= 1:
        if isinstance(args[0],str):
            return js2py.eval_js(f'new Date("{args[0]}")')
        else:
            instr = str(args[0])
            for x in args[1:]:
                instr += ',' + str(x)
            return js2py.eval_js(f'new Date({instr})')
    return js2py.eval_js(f'new Date()')

print(Date('2022-07-31T06:00:00Z').toISOString())
print(Date(2022,6,31).toISOString())
print(Date().toISOString())

print(pscript.py2js("""
print(Date('2022-07-31T06:00:00Z').toISOString())
"""))

pscript.evalpy("""
print(Date('2022-07-31T06:00:00Z').toISOString())
""")

returns:
2022-07-31T06:00:00.00Z
2022-07-31T06:00:00.00Z
2022-07-01T00:51:28.638Z
console.log((((new Date("2022-07-31T06:00:00Z")).toISOString)()));
'2022-07-31T06:00:00.000Z'


feat: api migration

Migration API endpoints from the RG API plugin to the edx-platform upstream.

Thanks for the pull request, @volodymyr-chekyrta! Please note that it may take us up to several weeks or months to complete a review and merge your PR.
Feel free to add as much of the following information to the ticket as you can:

supporting documentation
Open edX discussion forum threads
timeline information ("this must be merged by XX date", and why that is)
partner information ("this is a course on edx.org")
any other information that can help Product understand the context for the PR

All technical communication about the code itself will be done via the GitHub pull request interface. As a reminder, our process documentation is here.
Please let us know once your PR is ready for our review and all tests are green.

@miankhalid Is @saeedbashir available from Axinite side to review PRs or maybe @shafqat-muneer could do it? Thank you

@miankhalid Is @saeedbashir available from Axinite side to review PRs or maybe @shafqat-muneer could do it? Thank you

@rnr Sure, I will review from Axinite side.

This endpoint is giving 404 error and not able to load course details:
https://raccoonapis.sandbox.edx.org/api/mobile/v3/course_info/course-v1:edx+1+2023/info

Screenshot

This endpoint is giving 404 error and not able to load course details:
https://raccoonapis.sandbox.edx.org/api/mobile/v3/course_info/course-v1:edx+1+2023/info

Got the same feedback on the Android PR.
Can you make sure you've got the latest changes from upstream?
https://github.com/openedx/edx-platform/pull/33646
Works fine on my env.

Got the same feedback on the Android PR.
Can you make sure you've got the latest changes from upstream? openedx/edx-platform#33646
Works fine on my env.

@volodymyr-chekyrta Our build pipeline is currently under code freeze, so, new changes might not have been deployed to our stage and prod environments
as for the https://raccoonapis.sandbox.edx.org/ sandbox that we use, our backend team will need to push the latest changes once they are back on Monday

Upon tapping the logout button, the application crashes and displays an error:
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value

Upon tapping the logout button, the application crashes and displays an error:
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value

Thank you! I've merged the develop branch into this one and resolved the issue.

Got the same feedback on the Android PR.
Can you make sure you've got the latest changes from upstream? openedx/edx-platform#33646
Works fine on my env.

@volodymyr-chekyrta Our build pipeline is currently under code freeze, so, new changes might not have been deployed to our stage and prod environments as for the https://raccoonapis.sandbox.edx.org/ sandbox that we use, our backend team will need to push the latest changes once they are back on Monday

@shafqat-muneer hi!
Do you have any updates regarding the latest changes? Has your backend team pushed them?

Got the same feedback on the Android PR.
Can you make sure you've got the latest changes from upstream? openedx/edx-platform#33646
Works fine on my env.

@volodymyr-chekyrta Our build pipeline is currently under code freeze, so, new changes might not have been deployed to our stage and prod environments as for the https://raccoonapis.sandbox.edx.org/ sandbox that we use, our backend team will need to push the latest changes once they are back on Monday

@shafqat-muneer hi! Do you have any updates regarding the latest changes? Has your backend team pushed them?

Something weird is going on as only this API isn’t working on our end while the Enrollments v3 API (/api/mobile/v3/users/{username}/course_enrollments/) is working just fine, even though both have been deployed on our sandboxes.
our backend team is looking into this issue. in the meanwhile, @volodymyr-chekyrta do you know of any waffle flags or configurations that need to be done on the discovery service’s side for this API to work?

Got the same feedback on the Android PR.
Can you make sure you've got the latest changes from upstream? openedx/edx-platform#33646
Works fine on my env.

@volodymyr-chekyrta Our build pipeline is currently under code freeze, so, new changes might not have been deployed to our stage and prod environments as for the https://raccoonapis.sandbox.edx.org/ sandbox that we use, our backend team will need to push the latest changes once they are back on Monday

@shafqat-muneer hi! Do you have any updates regarding the latest changes? Has your backend team pushed them?

Something weird is going on as only this API isn’t working on our end while the Enrollments v3 API (/api/mobile/v3/users/{username}/course_enrollments/) is working just fine, even though both have been deployed on our sandboxes.
our backend team is looking into this issue. in the meanwhile, @volodymyr-chekyrta do you know of any waffle flags or configurations that need to be done on the discovery service’s side for this API to work?

Got it, thank you!
I think there are no additional waffle flags or configurations for this endpoint if /api/mobile/v3/users/{username}/course_enrollments/ is already working fine.

@volodymyr-chekyrta On our prod environment, the api https://courses.edx.org/api/mobile/v3/users/rtester2/course_enrollments/?page=1  is returning data, but that data is not being parsed properly, hence the empty Dashboard screen.

Got the same feedback on the Android PR.
Can you make sure you've got the latest changes from upstream? openedx/edx-platform#33646
Works fine on my env.

@volodymyr-chekyrta Our build pipeline is currently under code freeze, so, new changes might not have been deployed to our stage and prod environments as for the https://raccoonapis.sandbox.edx.org/ sandbox that we use, our backend team will need to push the latest changes once they are back on Monday

@shafqat-muneer hi! Do you have any updates regarding the latest changes? Has your backend team pushed them?

Something weird is going on as only this API isn’t working on our end while the Enrollments v3 API (/api/mobile/v3/users/{username}/course_enrollments/) is working just fine, even though both have been deployed on our sandboxes.
our backend team is looking into this issue. in the meanwhile, @volodymyr-chekyrta do you know of any waffle flags or configurations that need to be done on the discovery service’s side for this API to work?

Got it, thank you! I think there are no additional waffle flags or configurations for this endpoint if /api/mobile/v3/users/{username}/course_enrollments/ is already working fine.

@shafqat-muneer The API has been changed and PR is now ready for review

@volodymyr-chekyrta On our prod environment, the api https://courses.edx.org/api/mobile/v3/users/rtester2/course_enrollments/?page=1 is returning data, but that data is not being parsed properly, hence the empty Dashboard screen.

@saeedbashir It's working well on my end.
Could you please attach some logs so I can fix the parsing issue?

@volodymyr-chekyrta The following piece of code is failing
public extension Data {
    func mapResponse<NewSuccess>(_ decodableType: NewSuccess.Type) throws -> NewSuccess where NewSuccess: Decodable {
        do {
            let baseResponse = try JSONDecoder().decode(NewSuccess.self, from: self)

            return baseResponse
        } catch {
            print(error)
            throw APIError.parsingError
        }
    }
}

with the error
GET https://courses.edx.org/api/mobile/v3/users/rtester2/course_enrollments/?page=1 (200)
dataCorrupted(Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "enrollments", intValue: nil),
CodingKeys(stringValue: "results", intValue: nil), _JSONKey(stringValue: "Index 1", intValue: 1), CodingKeys(stringValue:
"course_modes", intValue: nil), _JSONKey(stringValue: "Index 0", intValue: 0), CodingKeys(stringValue: "sku", intValue: nil)],
debugDescription: "Cannot initialize Mode from invalid String value AEFC8E0", underlyingError: nil))

@volodymyr-chekyrta The following piece of code is failing
public extension Data {
    func mapResponse<NewSuccess>(_ decodableType: NewSuccess.Type) throws -> NewSuccess where NewSuccess: Decodable {
        do {
            let baseResponse = try JSONDecoder().decode(NewSuccess.self, from: self)

            return baseResponse
        } catch {
            print(error)
            throw APIError.parsingError
        }
    }
}

with the error
GET https://courses.edx.org/api/mobile/v3/users/rtester2/course_enrollments/?page=1 (200)
dataCorrupted(Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "enrollments", intValue: nil),
CodingKeys(stringValue: "results", intValue: nil), _JSONKey(stringValue: "Index 1", intValue: 1), CodingKeys(stringValue:
"course_modes", intValue: nil), _JSONKey(stringValue: "Index 0", intValue: 0), CodingKeys(stringValue: "sku", intValue: nil)],
debugDescription: "Cannot initialize Mode from invalid String value AEFC8E0", underlyingError: nil))

Got it; there is an unknown value for the SKU enum.
As the application is not currently using these SKU fields, I can remove them for now.
Alternatively, if you can provide me with the original JSON data, I can attempt to add this value to the enum.

@volodymyr-chekyrta It would be nice if you can add that, here is the sample json response for an enrollment
{
  "audit_access_expires": null,
  "created": "2023-09-26T04:41:52Z",
  "mode": "verified",
  "is_active": true,
  "course": {
    "id": "course-v1:HarvardX+ECD01+1T2023",
    "name": "Early Childhood Development: Global Strategies for Implementation",
    "number": "ECD01",
    "org": "HarvardX",
    "start": "2023-02-22T12:00:00Z",
    "start_display": "Feb. 22, 2023",
    "start_type": "timestamp",
    "end": "2024-02-21T12:00:00Z",
    "dynamic_upgrade_deadline": null,
    "subscription_id": "course_MNXXK4TTMUWXMMJ2JBQXE5TBOJSFQK2FINCDAMJLGFKDEMBSGM______",
    "courseware_access": {
      "has_access": true,
      "error_code": null,
      "developer_message": null,
      "user_message": null,
      "additional_context_user_message": null,
      "user_fragment": null
    },
    "media": {
      "course_image": {
        "uri": "/asset-v1:HarvardX+ECD01+1T2023+type<EMAIL_ADDRESS>        "name": "Course Image"
      }
    },
    "course_image": "/asset-v1:HarvardX+ECD01+1T2023+type<EMAIL_ADDRESS>    "course_about": "https://www.edx.org/course/early-childhood-development-global-strategies-for-implementation-course-v1-harvardx-ecd01-1t2023",
    "course_sharing_utm_parameters": {
      "facebook": "utm_medium=social&utm_campaign=social-sharing-db&utm_source=facebook",
      "twitter": "utm_medium=social&utm_campaign=social-sharing-db&utm_source=twitter"
    },
    "course_updates": "https://courses.edx.org/api/mobile/v3/course_info/course-v1:HarvardX+ECD01+1T2023/updates",
    "course_handouts": "https://courses.edx.org/api/mobile/v3/course_info/course-v1:HarvardX+ECD01+1T2023/handouts",
    "discussion_url": "https://courses.edx.org/api/discussion/v1/courses/course-v1:HarvardX+ECD01+1T2023",
    "video_outline": null,
    "is_self_paced": true
  },
  "certificate": {

  },
  "course_modes": [
    {
      "slug": "audit",
      "sku": "100C6E8",
      "android_sku": null,
      "ios_sku": null
    },
    {
      "slug": "verified",
      "sku": "87701A8",
      "android_sku": null,
      "ios_sku": "mobile.ios.87701a8"
    }
  ]
}

@saeedbashir I've fixed the issue. Can you please retest it?

@saeedbashir I've fixed the issue. Can you please retest it?

@volodymyr-chekyrta I'm still getting the following error
dataCorrupted(Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "enrollments", intValue: nil),
CodingKeys(stringValue: "results", intValue: nil), _JSONKey(stringValue: "Index 2", intValue: 2), CodingKeys(stringValue:
"course_modes", intValue: nil), _JSONKey(stringValue: "Index 1", intValue: 1), CodingKeys(stringValue: "slug", intValue: nil)],
debugDescription: "Cannot initialize Mode from invalid String value verified", underlyingError: nil))

mode

@volodymyr-chekyrta I've figured out the issue. You need add verified in the Mode enum.
enum Mode: String, Codable {
        case audit
        case honor
        case verified
    }

@saeedbashir I've fixed the issue. Can you please retest it?

@volodymyr-chekyrta I'm still getting the following error
dataCorrupted(Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "enrollments", intValue: nil),
CodingKeys(stringValue: "results", intValue: nil), _JSONKey(stringValue: "Index 2", intValue: 2), CodingKeys(stringValue:
"course_modes", intValue: nil), _JSONKey(stringValue: "Index 1", intValue: 1), CodingKeys(stringValue: "slug", intValue: nil)],
debugDescription: "Cannot initialize Mode from invalid String value verified", underlyingError: nil))

Fixed. Please try now

@volodymyr-chekyrta It's working now. Is it possible to make the parsing a bit lenient so that if an unknown value comes up, it will get ignored?
Now I'm getting 404 for the API Response: GET https://courses.edx.org/api/mobile/v1/users/rtester2/course_status_info/course-v1:EC-Council+DFE-112-53+3T2022 (404)
Response:
{"has_access":false,"error_code":"audit_expired","developer_message":"User rtester2 had access to
<CourseBlockWithMixins @4BC5 license=None, parent=None, name=None, tags=[], display_name='Digital Forensics
Essentials (DFE)', course_edit_method='Studio', days_early_for_beta=None, due=None, edxnotes=False,
edxnotes_visibility=True, giturl=None, graceperiod=datetime.timedelta(0), graded=False, group_access={},
in_entrance_exam=False, matlab_api_key=None, max_attempts=None, relative_weeks_due=None, rerandomize='never',
self_paced=True, show_correctness='always', show_reset_button=False, showanswer='finished',
start=datetime.datetime(2023, 1, 19, 6, 30, tzinfo=<bson.tz_util.FixedOffset object at 0x7f517c9768e0>),
static_asset_path='', use_latex_compiler=False, user_partitions=[], video_auto_advance=False, video_bumper={},
video_speed_optimizations=True, visible_to_staff_only=False, xqa_key=None, chrome=None, default_tab=None,
format=None, hide_from_toc=False, source_file=None, children=[BlockUsageLocator(CourseLocator('EC-Council', 'DFE-
112-53', '3T2022', None, None), 'chapter', 'dd520dc51f1f455daabff367407ce06f'), BlockUsageLocator(CourseLocator('EC-
Council', 'DFE-112-53', '3T2022', None, None), 'chapter', 'f67c4fdff6d946a7ab3931339dee60ff'),
BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None, None), 'chapter',
'8db154fc3a0741c7aa956d265522a4c4'), BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None,
None), 'chapter', 'd54cb1e875074f5f8e2381333972b412'), BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53',
'3T2022', None, None), 'chapter', '24c138a330c64ad596064db4f5321235'), BlockUsageLocator(CourseLocator('EC-
Council', 'DFE-112-53', '3T2022', None, None), 'chapter', '8ada2783a1564fdd9b7cc34545d160ee'),
BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None, None), 'chapter',
'989c98dba47949cb9536e6a82980532f'), BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None,
None), 'chapter', '8f4c812c1b164418b37ba5933ddf7a44'), BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53',
'3T2022', None, None), 'chapter', '620abe5a14bc4463bc1f348b4f47b42f'), BlockUsageLocator(CourseLocator('EC-
Council', 'DFE-112-53', '3T2022', None, None), 'chapter', '5b8bc39124b24aca9f709847e949203b'),
BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None, None), 'chapter', 'a11df613290145319e870559804545df'), BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None, None), 'chapter', '8b9c9f69ca83418bb7863a53b0add79b'), BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None, None), 'chapter', '8488d0834de5431b8ce4776f64474d76'), BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None, None), 'chapter', 'e376d6d8e98e4f07bb8e9b493f3ff40f')], default_time_limit_minutes=None, exam_review_rules='', hide_after_due=False, is_entrance_exam=False, is_onboarding_exam=False, is_practice_exam=False, is_proctored_enabled=False, is_time_limited=False, position=None, xml_attributes={}, advanced_modules=['lti_consumer'], advertised_start=None, allow_anonymous=True, allow_anonymous_to_peers=False, allow_proctoring_opt_out=False, allow_public_wiki_access=False, allow_unsupported_xblocks=False, announcement=None, banner_image='images_course_image.jpg', catalog_visibility='both', ccx_connector='', cert_html_view_enabled=True, cert_html_view_overrides={}, cert_name_long='', cert_name_short='', certificate_available_date=None, certificates={'certificates': [{'course_title': '', 'name': 'Name of the certificate', 'description': 'Description of the certificate', 'version': 1, 'is_active': True, 'editing': False, 'signatories': [{'name': 'Jay Bavisi', 'title': 'President and Chief Executive Officer', 'organization': 'EC-Council', 'signature_image_path': '/asset-v1:EC-Council+DFE-112-53+3T2022+type<EMAIL_ADDRESS>'certificate': None, 'id': 256576954}], 'id': 68069528}]}, certificates_display_behavior='end', certificates_show_before_end=False, cohort_config={}, cosmetic_display_price=0, course_image='course_image.jpg', course_survey_name=None, course_survey_required=False, course_visibility='private', course_wide_css=[], course_wide_js=[], create_zendesk_tickets=True, css_class='', disable_progress_graph=False, discussion_blackouts=[], discussion_link=None, discussion_topics={'General': {'id': 'course'}}, discussions_settings={'enable_in_context': True, 'enable_graded_units': False, 'unit_level_visibility': True}, display_coursenumber='', display_organization=None, due_date_display_format=None, enable_ccx=False, enable_proctored_exams=False, enable_subsection_gating=False, enable_timed_exams=True, end=datetime.datetime(2025, 11, 25, 6, 30, tzinfo=<bson.tz_util.FixedOffset object at 0x7f517c9768e0>), end_of_course_survey_url=None, enrollment_domain=None, enrollment_end=None, enrollment_start=None, entrance_exam_enabled=False, entrance_exam_id=None, entrance_exam_minimum_score_pct=65, force_on_flexible_peer_openassessments=False, grading_policy={'GRADER': [{'type': 'Quiz', 'min_count': 59, 'drop_count': 0, 'short_label': 'Quiz', 'weight': 0.44}, {'type': 'Lab', 'min_count': 11, 'drop_count': 0, 'short_label': 'Lab', 'weight': 0.56}], 'GRADE_CUTOFFS': {'Pass': 0.6}}, hide_progress_tab=None, highlights_enabled_for_messaging=False, html_textbooks=[], instructor_info={'instructors': []}, invitation_only=False, is_new=None, language='en', learning_info=[], lti_passports=['EC Council - Edx - LTI 1.1:cb6a0576-c3cc-43b5-9666-c30650a3632c:dffae861-0772-400a-b2bf-85e63ffd1f9b'], max_student_enrollments_allowed=None, minimum_grade_credit=0.8, mobile_available=False, no_grade=False, other_course_settings={}, pdf_textbooks=[], pre_requisite_courses=[], proctoring_escalation_email=None, proctoring_provider='software_secure', remote_gradebook={}, show_calculator=False, show_timezone=True, social_sharing_url=None, tabs=[<lms.djangoapps.courseware.tabs.CoursewareTab object at 0x7f5177112730>, <lms.djangoapps.courseware.tabs.ProgressTab object at 0x7f5186e5e820>, <lms.djangoapps.courseware.tabs.DatesTab object at 0x7f517de8fac0>, <lms.djangoapps.discussion.plugins.DiscussionTab object at 0x7f517de8fd30>, <lms.djangoapps.course_wiki.tab.WikiTab object at 0x7f5195820d30>, <lms.djangoapps.courseware.tabs.TextbookTabs object at 0x7f517c976460>], teams_configuration=<TeamsConfig default_max_team_size=50 teamsets=[] enabled=False>, textbooks=[], video_sharing_options='per-video', video_thumbnail_image='images_course_image.jpg',
video_upload_pipeline={}, wiki_slug='DFE-112-53'> until 2023-11-06 06:47:34+00:00","user_message":"Access expired on
Nov 06, 2023","additional_context_user_message":"Access to Digital Forensics Essentials (DFE) expired on Nov 06,
2023","user_fragment":null}

@volodymyr-chekyrta It's working now. Is it possible to make the parsing a bit lenient so that if an unknown value comes up, it will get ignored?
Now I'm getting 404 for the API Response: GET https://courses.edx.org/api/mobile/v1/users/rtester2/course_status_info/course-v1:EC-Council+DFE-112-53+3T2022 (404)
Response:
{"has_access":false,"error_code":"audit_expired","developer_message":"User rtester2 had access to
<CourseBlockWithMixins @4BC5 license=None, parent=None, name=None, tags=[], display_name='Digital Forensics
Essentials (DFE)', course_edit_method='Studio', days_early_for_beta=None, due=None, edxnotes=False,
edxnotes_visibility=True, giturl=None, graceperiod=datetime.timedelta(0), graded=False, group_access={},
in_entrance_exam=False, matlab_api_key=None, max_attempts=None, relative_weeks_due=None, rerandomize='never',
self_paced=True, show_correctness='always', show_reset_button=False, showanswer='finished',
start=datetime.datetime(2023, 1, 19, 6, 30, tzinfo=<bson.tz_util.FixedOffset object at 0x7f517c9768e0>),
static_asset_path='', use_latex_compiler=False, user_partitions=[], video_auto_advance=False, video_bumper={},
video_speed_optimizations=True, visible_to_staff_only=False, xqa_key=None, chrome=None, default_tab=None,
format=None, hide_from_toc=False, source_file=None, children=[BlockUsageLocator(CourseLocator('EC-Council', 'DFE-
112-53', '3T2022', None, None), 'chapter', 'dd520dc51f1f455daabff367407ce06f'), BlockUsageLocator(CourseLocator('EC-
Council', 'DFE-112-53', '3T2022', None, None), 'chapter', 'f67c4fdff6d946a7ab3931339dee60ff'),
BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None, None), 'chapter',
'8db154fc3a0741c7aa956d265522a4c4'), BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None,
None), 'chapter', 'd54cb1e875074f5f8e2381333972b412'), BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53',
'3T2022', None, None), 'chapter', '24c138a330c64ad596064db4f5321235'), BlockUsageLocator(CourseLocator('EC-
Council', 'DFE-112-53', '3T2022', None, None), 'chapter', '8ada2783a1564fdd9b7cc34545d160ee'),
BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None, None), 'chapter',
'989c98dba47949cb9536e6a82980532f'), BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None,
None), 'chapter', '8f4c812c1b164418b37ba5933ddf7a44'), BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53',
'3T2022', None, None), 'chapter', '620abe5a14bc4463bc1f348b4f47b42f'), BlockUsageLocator(CourseLocator('EC-
Council', 'DFE-112-53', '3T2022', None, None), 'chapter', '5b8bc39124b24aca9f709847e949203b'),
BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None, None), 'chapter', 'a11df613290145319e870559804545df'), BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None, None), 'chapter', '8b9c9f69ca83418bb7863a53b0add79b'), BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None, None), 'chapter', '8488d0834de5431b8ce4776f64474d76'), BlockUsageLocator(CourseLocator('EC-Council', 'DFE-112-53', '3T2022', None, None), 'chapter', 'e376d6d8e98e4f07bb8e9b493f3ff40f')], default_time_limit_minutes=None, exam_review_rules='', hide_after_due=False, is_entrance_exam=False, is_onboarding_exam=False, is_practice_exam=False, is_proctored_enabled=False, is_time_limited=False, position=None, xml_attributes={}, advanced_modules=['lti_consumer'], advertised_start=None, allow_anonymous=True, allow_anonymous_to_peers=False, allow_proctoring_opt_out=False, allow_public_wiki_access=False, allow_unsupported_xblocks=False, announcement=None, banner_image='images_course_image.jpg', catalog_visibility='both', ccx_connector='', cert_html_view_enabled=True, cert_html_view_overrides={}, cert_name_long='', cert_name_short='', certificate_available_date=None, certificates={'certificates': [{'course_title': '', 'name': 'Name of the certificate', 'description': 'Description of the certificate', 'version': 1, 'is_active': True, 'editing': False, 'signatories': [{'name': 'Jay Bavisi', 'title': 'President and Chief Executive Officer', 'organization': 'EC-Council', 'signature_image_path': '/asset-v1:EC-Council+DFE-112-53+3T2022+type<EMAIL_ADDRESS>'certificate': None, 'id': 256576954}], 'id': 68069528}]}, certificates_display_behavior='end', certificates_show_before_end=False, cohort_config={}, cosmetic_display_price=0, course_image='course_image.jpg', course_survey_name=None, course_survey_required=False, course_visibility='private', course_wide_css=[], course_wide_js=[], create_zendesk_tickets=True, css_class='', disable_progress_graph=False, discussion_blackouts=[], discussion_link=None, discussion_topics={'General': {'id': 'course'}}, discussions_settings={'enable_in_context': True, 'enable_graded_units': False, 'unit_level_visibility': True}, display_coursenumber='', display_organization=None, due_date_display_format=None, enable_ccx=False, enable_proctored_exams=False, enable_subsection_gating=False, enable_timed_exams=True, end=datetime.datetime(2025, 11, 25, 6, 30, tzinfo=<bson.tz_util.FixedOffset object at 0x7f517c9768e0>), end_of_course_survey_url=None, enrollment_domain=None, enrollment_end=None, enrollment_start=None, entrance_exam_enabled=False, entrance_exam_id=None, entrance_exam_minimum_score_pct=65, force_on_flexible_peer_openassessments=False, grading_policy={'GRADER': [{'type': 'Quiz', 'min_count': 59, 'drop_count': 0, 'short_label': 'Quiz', 'weight': 0.44}, {'type': 'Lab', 'min_count': 11, 'drop_count': 0, 'short_label': 'Lab', 'weight': 0.56}], 'GRADE_CUTOFFS': {'Pass': 0.6}}, hide_progress_tab=None, highlights_enabled_for_messaging=False, html_textbooks=[], instructor_info={'instructors': []}, invitation_only=False, is_new=None, language='en', learning_info=[], lti_passports=['EC Council - Edx - LTI 1.1:cb6a0576-c3cc-43b5-9666-c30650a3632c:dffae861-0772-400a-b2bf-85e63ffd1f9b'], max_student_enrollments_allowed=None, minimum_grade_credit=0.8, mobile_available=False, no_grade=False, other_course_settings={}, pdf_textbooks=[], pre_requisite_courses=[], proctoring_escalation_email=None, proctoring_provider='software_secure', remote_gradebook={}, show_calculator=False, show_timezone=True, social_sharing_url=None, tabs=[<lms.djangoapps.courseware.tabs.CoursewareTab object at 0x7f5177112730>, <lms.djangoapps.courseware.tabs.ProgressTab object at 0x7f5186e5e820>, <lms.djangoapps.courseware.tabs.DatesTab object at 0x7f517de8fac0>, <lms.djangoapps.discussion.plugins.DiscussionTab object at 0x7f517de8fd30>, <lms.djangoapps.course_wiki.tab.WikiTab object at 0x7f5195820d30>, <lms.djangoapps.courseware.tabs.TextbookTabs object at 0x7f517c976460>], teams_configuration=<TeamsConfig default_max_team_size=50 teamsets=[] enabled=False>, textbooks=[], video_sharing_options='per-video', video_thumbnail_image='images_course_image.jpg',
video_upload_pipeline={}, wiki_slug='DFE-112-53'> until 2023-11-06 06:47:34+00:00","user_message":"Access expired on
Nov 06, 2023","additional_context_user_message":"Access to Digital Forensics Essentials (DFE) expired on Nov 06,
2023","user_fragment":null}

I'm a bit confused. A 404 response with a body.
Can you please attach the log from XCode to help me identify the exact error?

@saeedbashir, this endpoint is not related to this PR. Can we address this issue in a separate PR?

It seems the issue is with the courseware_access. When the user doesn't have access to the courseware, then the course content API's behavior is broken.
Examples:
Response: GET https://courses.edx.org/api/course_home/v1/dates/course-v1:HarvardX+PH125.8x+1T2023 (403)

https://courses.edx.org/api/discussion/v1/course_topics/course-v1:HarvardX+PH125.8x+1T2023 (404)
{"developer_message":"Course not found."}

Can you please handle the case and add a full-screen error on the course dashboard screen? and don't hit any API like blocks, etc if the user doesn't have access.
Here is the sample response for courseware_access where the user does not have access.
"courseware_access": {
"has_access": false,
"error_code": "audit_expired",
"developer_message": "User rtester2 had access to course-v1:EC-Council+DFE-112-53+3T2022 until 2023-11-06 06:47:34+00:00",
"user_message": "Access expired on Nov 06, 2023",
"additional_context_user_message": "Access to Digital Forensics Essentials (DFE) expired on Nov 06, 2023",
"user_fragment": null
},

Could you please confirm which endpoint we are referring to?
Also, is this issue related to any of the new endpoints?

Could you please confirm which endpoint you are referring to?

The enrollments API/api/mobile/v3/users/\(username)/course_enrollments is returning the courseware_access. We are parsing it but not using it further.
The parsing of the enrollment API is also not working for a course ccx-v1:HarvardX+MCB64.1x+2T2016+ccx@28 because the server is returning string for start_type and known values to the codebase are empty and timestamp.
It's very hard to put all the data values in the parsing list until we get all possible values for each key from the server, which seems impossible for now, and even a new value can be added in the future. We need to come up with a way to ignore the unknown values.

I got it, thank you.
It seems like a new behavior for an application that hasn't been implemented before and is unrelated to changing URLs.
I agree that this is very important behavior to handle access to courses; what if we create a ticket and handle this case in a separate PR, since this PR focuses on API switching but not on adding new functionality?

I agree that this is very important behavior to handle access to courses; what if we create a ticket and handle this case in a separate PR, since this PR focuses on API switching but not on adding new functionality?

Yes, we can handle this under a separate ticket.
But I guess we need to handle the parsing for unknown values because the app behavior breaks on receiving an unknown value.

I agree that this is very important behavior to handle access to courses; what if we create a ticket and handle this case in a separate PR, since this PR focuses on API switching but not on adding new functionality?

Yes, we can handle this under a separate ticket.
But I guess we need to handle the parsing for unknown values because the app behavior breaks on receiving an unknown value.

Yes, I completely agree with that.
Can you help me understand specifically where the parsing issue lies? Function name or endpoint?

It's failing for /api/mobile/v3/users/\(username)/course_enrollments. For fixing it what you can do is you can remove a know value from enum for example  you can remove timestamp from the StartType enum and make it working by ignoring the value.
enum StartType: String, Codable {
        case empty
        case timestamp
    }```

It's failing for /api/mobile/v3/users/\(username)/course_enrollments. For fixing it what you can do is you can remove a know value from enum for example you can remove timestamp from the StartType enum and make it working by ignoring the value.
enum StartType: String, Codable {
        case empty
        case timestamp
    }```

Got it, thank you!
I have an idea, give me a few minutes to try 😄

@saeedbashir I've added a fallback to the enum; please try now, it should works

@volodymyr-chekyrta if all is well, then can you please merge this PR?

@volodymyr-chekyrta 🎉 Your pull request was merged!  Please take a moment  to answer a two question survey so we can improve your experience in the future.


Add support for shortcodes in html files

{{% figure src="/assets/img/foo.png" %}} is outputting
HUGOSHORTCODE-1
 in a static content page (/content/about/index.html). However it seems to work fine in all my blog (archetype) posts?
$  hugo version
Hugo Static Site Generator v0.13-DEV buildDate: 2014-11-24T18:04:18-05:00

It worked fine in v0.12-DEV

+1 for enabling shortcodes in html content files. I have a use case where internal Confluence documentation space is exported to a set of html files that I want to process as a part of a static site created using Hugo. Due to lack of shortcodes ("relref" specifically) links between documentation pages are broken. (I'm still new with Hugo so not sure if there's another way to do this.)

@spf13 any fresh thoughts on this one?

+1 for enabling shortcodes in html content files.
In my particular case I have created a drag and drop content builder which writes the generated html file to the content directory. Instead of generating the html for the object types (images, calendar, etc) inside the content file i would like that only their shortcodes are used and hugo will process them.
If any object's html needs to be changed all i need to do is modify the shortcode html rather than regenerating all content files through the builder with the newly applied changes.
Can anyone confirm that changing the file extension to .md would be enough to serve case?
Thanks

@spf13 any fresh thoughts on this one?

An easy way to achieve this functionality today would be to name the file about.html.md. Then the markdown processor would hand it and since html is valid markdown it would just work.

unfortunately it's not quite this easy.  I'm transitioning from pyblosxom to hugo, and copying my posts into content/post/<file>.<ext>.  (with modified header to be in hugo format of course), if i use .md as extension, then it doesn't just treat html as html; it treats html as html and also interprets as markdown. meaning if you have something like
\n, the
 will be applied because it's html but also the newline gets converted to
. worse, 2
\n become empty paragraphs (

), this creates way too much whitespace
so anyway, big +1 to supporting shortcodes in html content, so i can store my posts as html (but have processing applied for syntax highlighting etc)

OK, mr @spf13 says this is a good idea, so I'm adding shortcode support for HTML files ... Now.

This is now added. Good if someone could take this for a spin ...

works for me. all my html posts have syntax highlighting now :) thanks!

I am still confused, can you please explain how to use shortcodes in HTML file which is in the content folder.
I am using .html files in content folder instead if .md files in content folder

I'm trying to use a custom shortcode on my home page, defined in file {my-project-dir}/layouts/index.html without success.
parse failed: template: index.html:7: unexpected "<" in command

The documentation for this is rather unclear as to if shortcodes are supported in anything besides markdown. I was glad to find this issue stating that yes, they in fact are.
In particular I was wanting to use ref and relref in html pages. I was unable to find any other method for dynamically setting the proper resolved urls for links in html templates or content pages. It wouldn't be that practical to have to redo all the links to a particular page if the url was changed in the target page's metadata.


Change image to precise so we can use postgres

Resolves #29
Proposed Changes:

Fixed Travis builds

DCO1.1 Signed-off-by: Thomas Boop<EMAIL_ADDRESS>

Hi boopt2,
Thanks for submitting this pull request!
I can confirm that the DCO1.1 sign-off has been included. It is okay to process this pull request.
dco-bot


File coloring based on type.

Is it possible to change the color of files based on their extension?

I am using Iterm2 + Solarized Dark theme. Can't get highlighting based on file type to work. I tried all variations including
autocmd VimEnter * call NERDTreeHighlightFile('jade', 'green', 'none', 'green', '#151515')
Tried the one in vim-devicons FAQ as well

" NERDTress File highlighting
function!

For anyone looking for this, I created this: https://github.com/tiagofumo/vim-nerdtree-syntax-highlight
Take a look at the screenshots and see if you like it. You can use it with vim-devicons or not. If you don't want to use it with vim-devicons, add the following line to your .vimrc:
let g:NERDTreeFileExtensionHighlightFullName = 1

@tiagofumo wow, that looks amazing! Thanks for sharing :)

What does everyone here think? With @tiagofumo's NERDTree plugin, can we consider this issue closed?

I just tested it out and it makes the cursor navigation really slow when you have a medium amount of dirs! 🤕

Yes I just tested it and I agree with @cmcginty it makes my cursor navigation slower. I am testing it using a production project that has quite a few directories.

FYI, related solutions: https://github.com/ryanoasis/vim-devicons/issues/158

Here a basic syntax file I got working for nerdtree colors. Make sure you put in after/syntax/ dir. https://github.com/cmcginty/dotfiles/blob/master/vim/vim/after/syntax/nerdtree.vim

"Plugin 'tiagofumo/vim-nerdtree-syntax-highlight' SUPER SLOWS down NERD tree. Do not use!

@atoder,
you can configure to use the plugin only for the extensions/rules that you need, and that can make scrolling a little bit faster. In the README file, it is stated:

Warning: This is sort of a hack and has some limitations.

I would love to merge a pull request with a fix for this performance issue. Feel free to contribute.

I am going to close this issue. @tiagofumo's plugin is a good start. Good luck to those who choose to tackle improving its performance.

It would be rather easy to strip the color from the dircolors file since relevant lines would like like .mp3 00;36. The problem then becomes finding a good translation between ANSI and vim color. I do know that some scripts for this have already been made.

Any update on this part? I'd love to integrate LS_COLORS or ~/.dircolors seamlessly into NERDTree.

I've not heard of anyone tackling the .dircolors integration. As NERDTree is already quite bloated, this would be a perfect candidate to be written as a separate plugin, like @tiagofumo has done.


task resource usage stats

We often want to know how many resources a task is using. docker stats provides this information, so we could think about polling that command and generating events for resource usage.

This is beyond Funnel's scope. It would compete with, and is better provided by something like Prometheus/Grafana.


Add product labels to jira_active_users_gauge metric

Hi @AndreyVMarkelov ,
I'm not sure if it is the best way to get the active users by products, but the numbers are correct.
Please merge into the mainline.
Thanks.

Hi @AndreyVMarkelov ,
can you please comment something here if the PR is fine for you or if something has to be changed. I'd really like to see my changes in the leading repo. Thanks again for your time and your great work on the this plugin.

Hi. Today will do
вт, 20 авг. 2019 г. в 08:48, Christoph Papke<EMAIL_ADDRESS>
Hi @AndreyVMarkelov https://github.com/AndreyVMarkelov ,
can you please comment something here if the PR is fine for you or if
something has to be changed. I'd really like to see my changes in the
leading repo. Thanks again for your time and your great work on the this
plugin.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/AndreyVMarkelov/jira-prometheus-exporter/pull/55?email_source=notifications&email_token=AAPXM4BSBRTO3LD735XK3SDQFOATBA5CNFSM4IGA4ZGKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4VEHBQ#issuecomment-522863494,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPXM4AZ7WF7BBHYO6VB6FTQFOATBANCNFSM4IGA4ZGA
.

--
-- Andrey Markelov

Hi @AndreyVMarkelov did you have a chance to look at the PR? If it will not get merged I have to create a company fork of the repo to make sure that the add-on will not be accidentally updated on all of our systems.
You can also decline the PR if you want and integrate the logic in a way that is more suitable for you. The important thing for us is that the license metrics are exported in the correct way.
Thanks again for your time and great work on this add-on.

Hi
I will merge today
I have check
It wrong data on dev license but correct for other
пт, 6 сент. 2019 г. в 22:59, Christoph Papke<EMAIL_ADDRESS>
Hi @AndreyVMarkelov https://github.com/AndreyVMarkelov did you have a
chance to look at the PR? If it will not get merged I have to create a
company fork of the repo to make sure that the add-on will not be
accidentally updated on all of our systems.
You can also decline the PR if you want and integrate the logic in a way
that is more suitable for you. The important thing for us is that the
license metrics are exported in the correct way.
Thanks again for your time and great work on this add-on.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/AndreyVMarkelov/jira-prometheus-exporter/pull/55?email_source=notifications&email_token=AAPXM4AZIPTXYDS4B4DVQRTQIKZCFA5CNFSM4IGA4ZGKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6D46CQ#issuecomment-528994058,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPXM4FMDENZNSVBOIVX2ATQIKZCFANCNFSM4IGA4ZGA
.

--
-- Andrey Markelov


Detect running Ruby version and fail early

See discussion and reasoning https://github.com/supermarin/xcpretty/commit/91c766f4c82541564297e958254ba5d920166cf5#commitcomment-20673493

signed

I signed it!

😂

I signed it!

best PR


Suggestion: list Msys2 dependency packages that need to be installed for successful build

Hey.  So, like the subject states, there is not an issue with the repo itself.  I wanted to recommend that you update the readme to include a list of all the msys2 packages that the build is dependent on.  I have re-run this build at least 5 times now because it will get to a certain point, only to fail because the "make" command is missing.  So I go and install the package, re-run the build, and then the build errors out with the "patch" command is missing.  Go through the same process and then I am missing a Python interpreter.  Just makes trying to run this build very trial and error when it doesn't have to be.  Furthermore, we also have to guess which msys2 package will satisfy the dependency that the build is looking for.  Take the missing Python interpreter error message.  The error message tells me that I need to install some kind of Python msys2 package.  When I search for all of the packages related to Python, the list is massive.  How do I know which of these packages will satisfy the dependency the build is looking for?  The only choices I have are to install all of the packages related to Python, install groups of packages and retry running the build, or attempt to make educated guesses and install one package at a time and retry running the build.  Each of these scenarios has its pros and cons, but we wouldn't have a problem to resolve at all if you would list the packages out for us.   Just a thought.

Hello.
I agree that a list of all required MSYS2 packages should be added to the README file. The problem is that I just don't have this list at the moment. Some or most packages that are needed to build cURL and its dependencies I probably had installed already. And those that I installed specifically for cURL (or some of it's dependencies) I didn't write down. So, yeah, I'd have to start from a "fresh" MSYS2 environment and go through the "trial-and-error" method myself. Maybe I will do this at some point...
Regards.

Please see:
https://github.com/lordmulder/cURL-build-win32?tab=readme-ov-file#detailed-install-instructions
Regards.


Use README header image compatible with light/dark mode

Also centers the logo and badges, adds proper links to the badges, and fixes use of non-https image URLs.

Codecov Report

Merging #393 (bdae94f) into main (52d5636) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #393   +/-   ##
=======================================
  Coverage   47.53%   47.53%
=======================================
  Files         109      109
  Lines        8764     8764
=======================================
  Hits         4166     4166
  Misses       4598     4598


On iOS, decode WebP images directly into a buffer Core Animation likes

Without this change, the images we output aren't compatible with the GPU and so CA has to copy them all on the main thread at commit time, which means stutters. Plus memory bloat.
The difference here is so substantial that you may seriously want to consider re-running a WebP experiment if you did in the past and bailed on it.
CA::copy_image before:

After:

Yes I am too lazy to figure out how to do this on macOS, and for that I am sorry. Desktops are fast anyway!

Also updated the PR to attempt to use CGImageSource – which supports WebP at least as of iOS 14 – before trying our own manual WebP decoding.

Looks like the CI failure is a config issue unrelated to the CL.
WDYT about the change @garrettmoon ? Also hi! Long time no code.

Long time no code!
I think the CI issue is real?
    - WARN  | [PINRemoteImage/WebP] xcodebuild:  /Users/runner/work/PINRemoteImage/PINRemoteImage/Source/Classes/Categories/PINImage+WebP.m:15:13: warning: unused function 'releaseData' [-Wunused-function]
I think the releaseData method needs to be ifdef'd out for iOS?
My only concern about this PR is the bit rot that will happen on macOS… Any chance you can try and unify some of the code for macOS in a follow up?

OK updated – lmk


Make sure metrics work with column-wise distributed training

This is mostly moving things around so that we can test the metrics under distributed training, for both CPU and GPU, row split and column split.

@trivialfis I'll follow up with some refactoring to make the logic for row vs. column split, and horizontal vs vertical federated learning more encapsulated.