How is the -r option supposed to be used?

I would like to create some markdown files freely in git, and have a CI pipeline automatically publish them to confluence with automatic creation of new pages.
I can see the following option in the docs:
-r ROOT_PAGE          Root Confluence page to create new pages. If omitted, will raise exception when creating new pages.

However when I run:
md2conf -d example.atlassian.net \
  -u<EMAIL_ADDRESS>  -a example \
  -s Example \
  -r<PHONE_NUMBER> \
  test.md

It throws:
2024-09-27 16:22:17,513 - INFO - _synchronize_page [80] - Synchronizing page: test.md
Traceback (most recent call last):
  File "/Users/rich/.local/bin/md2conf", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/Users/rich/.local/pipx/venvs/markdown-to-confluence/lib/python3.12/site-packages/md2conf/__main__.py", line 154, in main
    ).synchronize(args.mdpath)
      ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/rich/.local/pipx/venvs/markdown-to-confluence/lib/python3.12/site-packages/md2conf/application.py", line 36, in synchronize
    self.synchronize_page(path)
  File "/Users/rich/.local/pipx/venvs/markdown-to-confluence/lib/python3.12/site-packages/md2conf/application.py", line 43, in synchronize_page
    self._synchronize_page(page_path, {})
  File "/Users/rich/.local/pipx/venvs/markdown-to-confluence/lib/python3.12/site-packages/md2conf/application.py", line 81, in _synchronize_page
    document = ConfluenceDocument(page_path, self.options, page_metadata)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/rich/.local/pipx/venvs/markdown-to-confluence/lib/python3.12/site-packages/md2conf/converter.py", line 790, in __init__
    raise ValueError("missing Confluence page ID")
ValueError: missing Confluence page ID

I think i'm doing exactly what you are talking about wanting to do. I synchronize entire folders rather than individual files, but should operate in the same way. If you want to sync one file, you could always make a docs repo and just change the path that it looks in.
I.E
You can do this in two ways.

If you want to publish to a Space's root page. Go to the overview page, which the url will look something like https://xxx.atlassian.net/wiki/spaces/RJ93/overview, if you click edit the url will change to https://xxx.atlassian.net/wiki/spaces/RJ93/pages/edit-v2/123456. Where 123456 is your root page id.

You can navigate to an existing confluence, and grab the id out of the url which will look something like https://xxx.atlassian.net/wiki/spaces/RJ93/pages/4321/Foo, where 4321 is the root id.

Now that you have the root id, you can run the md2conf script like this python3 -m md2conf -r {YOUR_ROOT_ID} ./, or change your docs folder to  python3 -m md2conf -r {YOUR_ROOT_ID} ./docs.
Now the caveat is, at the time of writing this, the folder structure on the dev branch is more straightforward, so pick and choose on how you use this.

I have added a new section to the documentation on how to publish a directory and how md2conf recursively scans the directory hierarchy.


libShaderDebugger link error

Hi!
I'm trying to build the latest git on arch linux. It used to work well last time I tried (mid january) but now it look like libShaderDebugger fails to link.
Here is the full error :
[100%] Linking CXX executable bin/SHADERed
/usr/bin/ld : libs/ShaderDebugger/libShaderDebugger.a(CommonLibrary.cpp.o) : in function « sd::Common::lib_common_fma(bv_program_s*, unsigned char, bv_variable_s*) » :
CommonLibrary.cpp:(.text+0x61bf) : undefined reference to « glm::vec<4, float, (glm::qualifier)0> glm::fma<glm::vec<4, float, (glm::qualifier)0> >(glm::vec<4, float, (glm::qualifier)0> const&, glm::vec<4, float, (glm::qualifier)0> const&, glm::vec<4, float, (glm::qualifier)0> const&) »
collect2: erreur: ld a retourné le statut de sortie 1
make[2]: *** [CMakeFiles/SHADERed.dir/build.make:1144 : bin/SHADERed] Erreur 1

CommonLibrary.cpp, line 1445, glm::vec4 vecData = glm::fma(a, b, c); doesn't seem to accept glm::vec4 as parameters, I don't know why, but by commenting the first instance of glm::fma() the program build and run fine. I am running glm <IP_ADDRESS>.

It appears that GLM has changed FMA behavior in <IP_ADDRESS>: https://github.com/g-truc/glm/commit/95b1cdbbfed628a49fd00c4ab18fd0e4f59b8e9f
It will now use std::fma if it detects C++11 support. Old GLM behavior is trivial, and can be replaced with simple math.
glm::vec4 vecData = a * b + c;
/* glm::vec4 vecData = glm::fma(a, b, c); */
Sorry I didn't format this post in the GitHub style, I'm a very lazy person.

Thanks guys this is fixed!


Line serialization fixes

Proposed fix for https://github.com/synw/geopoint/issues/3
Also added serialization of line properties

@synw what about https://github.com/synw/geojson/pull/29?

yes thanks for your help. I will take care of the geojson package as soon as I can and merge your contribution. Please give me a little bit of time. I'll start with a Geopoint 0.8.0 with up to date dependencies


Instances: Support Tab

Need ZOHO endpoints to build out the interface
Todos

[ ] Create ticket api endpoint
[x] Fetch tickets api endpoint
[ ] Submit wireframe for UI development

list all tickets: fetch(https://desk.zoho.com/api/v1/tickets?departmentId={{dept_id}}&fields=cf_instance_zuid, { method: 'GET', headers:{"Authorization": "Zoho-oauthtoken " + zohoAccessJSON.access_token} })

list all tickets based on instance zuid:fetch( https://desk.zoho.com/api/v1/tickets/search?customField1=cf_instance_zuid%3A{{instance_zuid}}*, { method: 'GET', headers:{"Authorization": "Zoho-oauthtoken " + zohoAccessJSON.access_token} })`

search for contact by email: fetch(https://desk.zoho.com/api/v1/contacts/search?email={{user_email_encoded}}, { method: 'GET', headers:{"Authorization": "Zoho-oauthtoken " + zohoAccessJSON.access_token} })

get zoho contact by zoho contact id: fetch(https://desk.zoho.com/api/v1/contacts/${contact_id}/tickets`, { method: 'GET', headers:{"Authorization": "Zoho-oauthtoken " + zohoAccessJSON.access_token} })`

@giseleblair @bltarkany I added a todo for a wireframe, @bltarkany did you make one you can paste in here?


Go through DMCI workdir file-accumulation

Might be caused by postgis being down, should there be an automatic iteration of files in workdir older than X or should they just be removed?

We need to assure that they are ingested, then we can delete them

Test:

[ ] Push valid xml to dmci
[ ] Let file dist succeed but pycsw and solr dists fail
[ ] In this case, the file should be removed from workdir but added to rejected dir
[ ] Let all dists succeed
[ ] Then, the file should not be in workdir and not in rejected
[ ] Let all dists fail
[ ] The file should be in rejected and not in workdir

The workdir still often contains files, and seems to not be properly cleaned up. Maybe related to some issues in solr? See #240


0.72.9 break compatibility with ios 12.4

Old Version
0.72.8
New Version
0.72.9
Description
@cipollesch
I have tried to upgrade from 0.72.8 to 0.72.9, but ios minimum deployment target seems to have changed to 13.4 :
This commit  update min_ios_version_supported form 12.4 to 13.4, is it a mistake ?
Steps to reproduce

update project with platform :ios, '12.4' from react-native 0.72.8 to 0.72.9
Try to update pod

Affected Platforms
Runtime - iOS
Output of npx react-native info
System:
  OS: macOS 14.2.1
  CPU: (8) arm64 Apple M2
  Memory: 83.05 MB / 16.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 18.18.2
    path: /var/folders/s2/th11vwsn571g1hn8k2n257_r0000gn/T/yarn--1704818704154-0.10619672940231895/node
  Yarn:
    version: 1.22.19
    path: /var/folders/s2/th11vwsn571g1hn8k2n257_r0000gn/T/yarn--1704818704154-0.10619672940231895/yarn
  npm:
    version: 9.8.1
    path: ~/.nvm/versions/node/v18.18.2/bin/npm
  Watchman:
    version: 2<IP_ADDRESS>
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.14.3
    path: /opt/homebrew/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 23.2
      - iOS 17.2
      - macOS 14.2
      - tvOS 17.2
      - watchOS 10.2
  Android SDK: Not Found
IDEs:
  Android Studio: 2022.1 AI-221.6008.13.2211.9514443
  Xcode:
    version: 15.1/15C65
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: <IP_ADDRESS>
    path: /Users/x/.jenv/shims/javac
  Ruby:
    version: 2.6.10
    path: /usr/bin/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.72.9
    wanted: 0.72.9
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false

Stacktrace or Logs
$pod update
...
[!] CocoaPods could not find compatible versions for pod "React-debug":
  In Podfile:
    React-debug (from `../node_modules/react-native/ReactCommon/react/debug`)

Specs satisfying the `React-debug (from `../node_modules/react-native/ReactCommon/react/debug`)` dependency were found, but they required a higher minimum deployment target.

$pod install
...
[!] The platform of the target `ReproducerApp` (iOS 12.4) may not be compatible with `React-Codegen (0.72.9)` which has a minimum requirement of iOS 13.4.

[!] The platform of the target `ReproducerApp` (iOS 12.4) may not be compatible with `React-debug (0.72.9)` which has a minimum requirement of iOS 13.4.

Reproducer
https://github.com/RWanDev/reproducer-react-native
Screenshots and Videos
No response

Repro added

Yup this is a known problem because of one of the pick in 0.72.9. We're going to address it in the following minor version (0.72.10)

Yup this is a known problem because of one of the pick in 0.72.9. We're going to address it in the following minor version (0.72.10)

Hi! Any estimate as to when this minor version is available?

Hi! Any estimate as to when this minor version is available?

Sometime in the next weeks.
You can still use 0.72.8 if this is a blocking issue for you

RN 0.72.10 is out, and this issue has been resolved.


Writing to property fails if class isn't copyable.

Not sure if this is expected, but I don't see why it would be the case. I'm obviously not trying to copy the whole class just assign to a property.
Error: [string "..."]:3: sol: cannot write to this type: copy assignment/constructor not available
void uncopyable_class_test()
{
	using namespace sol;

	struct NoCopy
	{
		int get() const { return _you_can_copy_me; }
		void set(int val) { _you_can_copy_me = val; }

		int _you_can_copy_me;
		std::mutex _haha_you_cant_copy_me;
	};

	state lua;
	lua.new_usertype<NoCopy>("NoCopy", "val", property(&NoCopy::get, &NoCopy::set));

	lua.script(R"__(
nocopy = NoCopy.new()
nocopy.val = 5
			   )__");
}

Looks like a bug.

can confirm am bug

I'm having a hard time testing this because VC++ strangles both the copy and move constructor when std::mutex is a member. When I test by just having a type that I explicitly make noncopyable / movable, it works (with the recent tests I just added in test_usertypes.cpp).
I'm... thinking this is more or less okay now. I'll revisit it if you still have problems.

Hey. I'm currently having this exact issue with my own class. The test code given by the original asker throws the error for me, the error is only thrown when attempting to set the variable, reading from it is fine.
The error is solved for me as soon as I give my class a copy assignment operator,
Foo& operator=(const Foo&) { return *this; }
Alike OP, what the property returns / takes as an argument don't influence the output.
Thanks for your continued help.

I added a test for this specific case with OP's code. If this next commit passes all the tests, I'm going to drop a formal release for this and everything else I've worked on.

Confirmed fixed, release here: https://github.com/ThePhD/sol2/releases/tag/v2.8.0


Question about the training of LCL

Hi, thanks for the good work. I was confused after reading the paper about the LCL training process, i.e. sections 3.1 and 3.2. What are the inputs and outputs given to MLLM during LCL training? What does y_l in Eq. (1) refer to?
Very much looking forward to your answer as I would like to report on this paper at the group meeting tomorrow. QAQ.

Hi njucckevin,

During training, take 2-shots training for example the input would be "image 1, QA-pair 1, image 2, QA-pair 2, [Final Question]", and the target would be "[Answers to the Final question]".

The Eq. (1) refers to a standard autoregressive language modeling objective. For more information, you can refer to this blog.

By the way, good luck with your meeting. 💯

Thanks for the quick reply! Sorry for asking such a silly question 2, I mistakenly thought that y was related to the label to be predicted. 😂 For question 1, I'm somewhat familiar with (M)LLM and ICL, I was wondering how the context sample and the final sample are selected so that the model learns the capabilities of LCL. For example, in MetaICL[1], we just need the random select the sample for the same task as the context and final prediction. So in LCL training, what relations of context and final prediction samples enable MLLM to learn LCL capabilities. In paper, the S, C, T, N confused me a lot. [1] MetaICL: Learning to Learn In Context

Intuitively, we choose samples that are hard to distinguish as the support set for training, in order to force the model to 'take a look' at the support set during the prediction. Let's take 2-shots for example,  given two very similar classes: c1 and c2, we choose "img_c1_1" and "img_c2_1" as the support set, and choose "img_c1_2" and "img_c2_2" as the query set. Actually, the samples of the support set and query set in MetaICL are from different tasks.

That's an intuitive choice. Thanks for the explanation~

:)


Exec monitor

⚠ Please verify that this feature request has NOT been suggested before.

[X] I checked and didn't find similar feature request

🏷 Feature Request Type
New Monitor
🔖 Feature description
Please add a monitor which executes user provided programs and checks the exit code.
✔ Solution
The monitor executes programs with optional arguments as provided by the user and checks the exit code. Users of the docker image would need to mount a directory with static binaries and shell scripts in order to use them.
e.g calling gRPCurl to properly check if a gRPC services works. This is currently not possible and would mimic Kubernetes exec probe or Monits program status test.
❓ Alternatives
No response
📝 Additional Context
No response

I concur. I'd like to use something like this to monitor my various Syncthing/Restic backups, and show the results on my status page. That way at a glance I could see when the latest backup was without having to SSH into the storage box and check it by hand.
Straight exec or even a shell script (either or) would be great.

This would be great, I use Duplicati and would love to see that the backup completed.

+1 this feature request! Would help to migrate away from nagios for my custom checks

Just circling back to say the way I solved this for myself in the interim is having a scheduled job run in my Nomad cluster that hits a Push type monitor with a high heartbeat interval. I chose 90,000 seconds since it's a bit more than 24 hours (daily backups).

Then in Nomad I have a periodic batch job that just executes my desired task every morning - here it's PostgreSQL dumps to a folder that Restic picks up later (this could be a cronjob or scheduled Kubernetes task or whatever). After the task succeeds (or fails) I hit the Uptime Kuma push endpoint via wget with "up" (has to be status=up exactly) or "failed" (can be anything else) accordingly.
#!/bin/bash
umask 0077
timestamp=$(date "+%Y%m%d")

[[ range $db := .app.postgres.backup.databases ]]
output="/dump/$timestamp-[[ $db ]].sql"
echo -n "Backing up [[ $db ]] to: $output"
if pg_dump [[ $db ]] > "$output"; then
  echo " - success"
  wget -q -O /dev/null 'https://uptime.example.com/api/push/xxSZxxh5xx?status=up&msg=IT%27S%2012%20O%27CLOCK%20AND%20ALL%27S%20WELL%21'
else
  echo " - failed!"
  wget -q -O /dev/null 'https://uptime.example.com/api/push/xxSZxxh5xx?status=failed&msg=Postgres%20backups%20failed'
fi
[[ end ]]
exit 0

Not an exact solution, since you only find out an operation failed on a 24 hour lag when the check in doesn't happen. So still :+1: for this being added natively. :)

Such a feature should be considered high-priority because it would immediately expand the supported monitor types without requiring @louislam to write explicit support for them. Before adding a single new monitor, add this, because it implicitly adds every protocol under the sun.
For example, let's say I wanted to use SNMP monitoring for an old router (this is just an example, it can be any protocol which has command-line packages that can use it). Instead of asking you "please add SNMP support", "oh Louis I need SNMPv3, you only added v2", I'd just install net-snmp on Linux, and call snmpget, Kuma checks the result code, and the problem is solved:
#!/bin/bash
snmpget -v2c -c public <IP_ADDRESS> .<IP_ADDRESS>.<IP_ADDRESS>.0

I could even do all the advanced stuff I want in a bash script.

It is not that easy. Please read my comment from https://github.com/louislam/uptime-kuma/pull/3178#issuecomment-1605493299.

It is not that easy. Please read my comment from #3178 (comment).

 You already require the admin to authenticate to add checks, what more can you do? GNOME Terminal doesn't stop the user from doing "rm -rf *" :)
If you really want to hand-hold the user you could restrict the execution to a list of scripts defined in a specific directory. So for example:
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data -v uptime-kuma-custom-monitors:/app/custom-monitors louislam/uptime-kuma
Let's say uptime-kuma-custom-scripts directory contains:
snmp-check.sh
email-check.sh
tftp-check.sh

When the user is adding a new monitor, if they select Custom Monitor as the type, you ls /app/custom-monitors, show every file as an option in a dropdown selection. So in my case I would select snmp-check.sh.  No concerns here, right?

Definitely feeling the shortcomings of Uptime Kuma without this feature.
I made a list of the services I want to monitor and I have more protocols unsupported by Kuma than supported ones. 😆
As it is Kuma seems designed primarily for web developers. All the supported monitors are web adjacent.
 Any recommendations?
If there's no decent alternative, learn to write an HTTP API which when called, will execute an arbitrary Linux command. Run it, and have Kuma call it, eg http://localhost/workaround/check-smtp/ which then calls check-smtp.sh, and if exit code is not 0, return 404 or whatever to signify failure. I'm sure it's nothing hard, it's more about adding an extra piece of custom complexity.

Btw some features on @louislam todo list like domain expiration warning are trivially implementable with the feature we're requesting:
#!/bin/bash

expiration_date=$(echo | openssl s_client -servername site.com -connect site.com:443 2>/dev/null | openssl x509 -noout -dates | grep notAfter | cut -d'=' -f2)
expiration_date_seconds=$(date -d "$expiration_date" +%s)
current_date_seconds=$(date +%s)
days_left=$(( (expiration_date_seconds - current_date_seconds) / 86400 ))

if [ "$days_left" -lt 10 ]; then
  echo "Less than 10 days left for certificate expiration. We must warn the user!"
  exit 1
else
  echo "Still plenty of time!"
  exit 0
fi

That said, I realize Kuma is trying to be multiplatform (but who is doing their IT on Windows?), and Louis would probably prefer a cross-platform solution. Although bash is multipaltform, if the Windows user installs cygwin.

If the services you are monitoring are not web based, and you are comfortable writing custom scripts, the Push type monitor should work more than good enough for you.

This would be great, I use Duplicati and would love to see that the backup completed.

Hi @procheeseburger, I also use Duplicati. And for monitoring the completed backups I use www.duplicati-monitoring.com. It's a free service that alerts you when backups are completed or not (it actually reads the report from Duplicati). So it sends a daily email with a notice of the amount of backups completed. Not sure how you would use gRPC for this, but you can already use the Push Monitor type and a heartbeat alert from Duplicati to also monitor this.

Just found this project and I am impressed by the usability. I would like to upvote the request for the execution of commands, possibly from a whitelist of user-given directories. With this implemented, the entire universe of monitoring-plugins from here:
https://github.com/monitoring-plugins/monitoring-plugins
would become available. And this is an enormous tried-and-tested collection. It would allow Uptime Kuma to use ssh checks (see #2609) to monitor exquisite things (snmp, ldap, smb, uptime, sensors, file age,...).

Regarding the security risk of executing arbitrary command, I think it is only a problem if uptime-kuma's account are shared with other users. (The server owner are already capable of executing arbitrary already.)
One way to solve this would be disabling this feature by default unless some environmental variable are set. (UPTIME_KUMA_EXEC_MONITOR_ENABLED=true)

As a workarround there is some projects that expose commands as REST API. See:
https://github.com/msoap/shell2http
https://github.com/adnanh/webhook
https://github.com/fdefelici/shellst
This yes, if it was directly integrated in uptime-kuma, it would be way better.
jerkstorecaller solution is quite elegant and safe https://github.com/louislam/uptime-kuma/issues/1117#issuecomment-1644136066

As a workarround there is some projects that expose commands as REST API. See: https://github.com/msoap/shell2http https://github.com/adnanh/webhook https://github.com/fdefelici/shellst
This yes, if it was directly integrated in uptime-kuma, it would be way better. jerkstorecaller solution is quite elegant and safe #1117 (comment)

I think with one of the web to shell bridges we would be able to retrieve an OK/NOK status based on the standard HTTPS monitor but we would not be able to fetch the value for the corresponding metric right? (ex: CPU use, load, memory, disk space)

fetch the value for the corresponding metric right? (ex: CPU use, load, memory, disk space)

Please have a look at https://github.com/louislam/uptime-kuma/issues/819#issuecomment-1363120710 and further discussions in https://github.com/louislam/uptime-kuma/issues/819

fetch the value for the corresponding metric right? (ex: CPU use, load, memory, disk space)

Please have a look at #819 (comment) and further discussions in #819

Yup, I see. But I think it would be more interesting to have remote execs as first class citizen monitors which would grab a metric and plot it - just like happens, for example, with the HTTPS monitor.
I used this intensively with Adagios + SSH. I would be very interesting to bring this to UK, because it has a mind blowing UI. It would enable the use of the full monitoring-plugins package which is available on Linux machines and gives you the parsing of the OS metrics for free (no need to do scripts by hand like mentioned in #819 . These plugins have been distilled for many years, which is an advantage over the use of adhoc scripts.
https://github.com/monitoring-plugins/monitoring-plugins

You should really consider into this. As another user points out there are many scenarios where the Push Monitor it is not situable for.
I don't buy the security excuse someone post here, you can always allow only to execute scripts from specific path (as a whitelist) and the problema is gone.
This would Open a whole world of opportunities to monitor. From dockers logs, ssh, usb ports, etc... infinite list. Kuma would be the definitive MONITOR.

Kuma would be the definitive MONITOR.

Very likely as the more complete OSS monitoring tools are far behind UK in terms of UX.

I don't buy the security excuse

We just don't want people to get angry with us again.
See https://github.com/louislam/uptime-kuma/security/advisories/GHSA-7grx-f945-mj96 for another issue that went into the same direction of a feature that if used improperly has security implications.
I would argue that if that is the level of security we are operating under, allowing for AUTHENTIFICATED ARBITRAIRY CODE EXECUTION is not something that we can allow.
=> If security folks tell us that this is not ok, then we try to listen. I am not working in security
This is especially a security boundary where crossing might be risky as this would essentially disable the multi-user (or auth in general!) features of

https://github.com/louislam/uptime-kuma/pull/3571
https://github.com/louislam/uptime-kuma/pull/4751

I would argue that such a feature would essentially only be viable without auth, as circumventing auth is trivial with console access to the machine.
If you can come up with a design that fits into our security model, we can discuss this but currently I don't see such a design.

there are many scenarios where the Push Monitor it is not situable for.

I might have overread something, but after re-reading the thread I cannot see a comment that is not adressed.
Could you please cite your sources? 😓
If you are asking about monitoring-plugins/monitoring-plugins, this can be another monitor or a set of monitors.

It is not that easy. Please read my comment from #3178 (comment).

 You already require the admin to authenticate to add checks, what more can you do? GNOME Terminal doesn't stop the user from doing "rm -rf *" :)
If you really want to hand-hold the user you could restrict the execution to a list of scripts defined in a specific directory. So for example:
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data -v uptime-kuma-custom-monitors:/app/custom-monitors louislam/uptime-kuma
Let's say uptime-kuma-custom-scripts directory contains:
snmp-check.sh
email-check.sh
tftp-check.sh

When the user is adding a new monitor, if they select Custom Monitor as the type, you ls /app/custom-monitors, show every file as an option in a dropdown selection. So in my case I would select snmp-check.sh.  No concerns here, right?

@CommanderStorm here you have an example. We don't talk about remote execution of arbitrary code, just to allow user to load their owns scriptings and be happy.

I might have overread something, but after re-reading the thread I cannot see a comment that is not adressed.
Could you please cite your sources? 😓

Consider if you have to watch 18 servers, which have multiple dockers containers running and you only have SSH access, and you can't change their systems configuring push monitors because that IT because it doesn't belongs to you. You don't wan't to change nothing more than neccesary. You have to monitor not only if the dockers containers are running, but if they are doing what they has to, so yo manually inspect the logs from each one parsing it with a lot of logic... This is a custom scenario. I would'nt pretend that someone else codes a official plugin to do this, but let me do it by myself atleast.
With Push Monitors you have to open ports, change iptables, use tunnels/vpns, etc. a lot of complications with something so trivial to do if you have custom monitors.

I think you are overcompicating your live.
You can either:

locate the push monitors on the 18 servers (=> no credentials leave the servers, but you might need to allow that port/..)
locate the push monitors on the same server uptime kuma is on (=> need for credetial sharing, likely no need for networking adjustments assuming that this machiene can ssh, but not http as sugested above)

I think from a security standpoint the first one is preferable as there is more compartmentalisation.

We don't talk about remote execution of arbitrary code, just to allow user to load their owns scriptings and be happy.

The same argumet as with https://github.com/louislam/uptime-kuma/security/advisories/GHSA-7grx-f945-mj96 applies though.
If we call the arbitrairy executable a plugin, a shell script or sandboxed js I don't see a real difference.
(Please correct me if my security understanding is bad)

Admin uploads malicious/exploitable executable to said directory, lets call it sh.
(I think the rest is obvios: remove auth/install a backdoor/...)

@n-thumann (the researcher who discovered https://github.com/louislam/uptime-kuma/security/advisories/GHSA-7grx-f945-mj96) has better ideas how to prevent such an attack..
We really don't want to ship insecure software and if the security community thinks someting is not secure we should likely listen.
My reluctance to allow for authentificated remote code execution is especially given the liability upcoming laws like the Product Liability Directive (and the Cyber Resiliance Act, but that likely does not matter here) introduce:
https://fosdem.org/2024/schedule/event/fosdem-2024-3683-the-regulators-are-coming-one-year-on/

Great discussion. I'd like to add that security is not a topic of concern here and that arbitrary code execution by a user is neither necessary nor desirable.
How I see this:

the admin of the UK system should place the custom scripts in the system (example: apt install monitoring-plugins or  manual copy of custom scripts)
normal users logged in via web should see them as available but would not be able to change them

So, whatever code is executed is code that has been placed by the admin which could as well delete, turn off the system, etc, etc. So, there is no escalation here.
In case the custom scripts need to connect via SSH to remote systems, the code that is executed runs with the privileges of the remote user, which has been provisioned with this in mind - usually a restricted user created for this single purpose. In this use case the SSH port is usually whitelisted by IP, the SSH users are usually whitelisted by name and have their keys auto-managed by a central configuration system.
I am pretty obsessed about security but I do not see a problem here.

Admin uploads malicious/exploitable executable to said directory, lets call it

If an admin of any system uploads malicious/exploitable executable then the system is already lost and there is nothing that can be done about it. The admin of mailserver can impersonate hosted domain users and send malware on their behalf. The admin of a webserver can host malware discretely in a subdir of a hosted website. The admin of a DNS server can hijack specific DNS records and so on.
In regards to
https://github.com/louislam/uptime-kuma/security/advisories/GHSA-7grx-f945-mj96
the problem is that any user is able to install plugins via an API. You need to see if you really want any user to do so and if an API endpoint is the right way to do it. But this is not the point of the present issue.

Admin uploads malicious/exploitable executable to said directory, lets call it sh.

A malicious admin can already inject code into U-K to be executed both client and server side. The possibilities are endless. Think displaying Google, Github or bank login pages, phishing credentials, OTPs, mining crypto, DDOS, ... you name it. They have the combined potential of the user's browser session and the server backend at their disposal.
An admin without malicious intent running executables as monitors is not the problem.
Letting unauthenticated or low-priviliged users run or even install arbitrary or exploitable code is.
There's no need to replace /bin/sh either. When someone with malicious intent gains shell access, they have hit the jackpot already.

As someone who works in cyber, this is 1,000% correct.
The proper way to restrict this is to restrict execution to specific scripts or paths. Yes, someone could replace that specific file, but doing so would require access to the file system, which is game over already.
If you really want to get protective, then you could add approval required when the file is modified, based on hash or modification date. But I think that's probably overkill.
Specific path restriction is probably adequate - You wouldn't want to allow execution of anything anywhere on the system, because a website compromised will typically allow you to upload files to website restricted directories.
And all of this illustrates why the web service shouldn't be running as an admin/root anyway...

Admin uploads malicious/exploitable executable to said directory, lets call it sh.

A malicious admin can already inject code into U-K to be executed both client and server side. The possibilities are endless. Think displaying Google, Github or bank login pages, phishing credentials, OTPs, mining crypto, DDOS, ... you name it. They have the combined potential of the user's browser session and the server backend at their disposal.
An admin without malicious intent running executables as monitors is not the problem.
Letting unauthenticated or low-priviliged users run or even install arbitrary or exploitable code is.
There's no need to replace /bin/sh either. When someone with malicious intent gains shell access, they have hit the jackpot already.

As someone who works in cyber, this is 1,000% correct.
The proper way to restrict this is to restrict execution to specific scripts or paths. Yes, someone could replace that specific file, but doing so would require access to the file system, which is game over already.
If you really want to get protective, then you could add approval required when the file is modified, based on hash or modification date. But I think that's probably overkill.
Specific path restriction is probably adequate - You wouldn't want to allow execution of anything anywhere on the system, because a website compromised will typically allow you to upload files to website restricted directories.
And all of this illustrates why the web service shouldn't be running as an admin/root anyway...

@thielj
Lets keep the discussion on track.
What you are talking (having a remote executor that pushes to a primary instance) about is tracked here instead:

https://github.com/louislam/uptime-kuma/issues/84

I know this is off-topic:

Combine that with full access to the docker socket

Can be migrated via proxying => only allowing read-access to the services you allow us to read
We only use one API-endpoint in a read-only fashion.
=> don't see a huge risk here, unless I am not seeing something (If there is something, we could either discuss it in ANOTHER issue or in an advisory depending on content)
From a security risk perspective, I think that we allow users to connect to databases is more scary, as making a user read-only and only allowing a few tables is advanceter stuff (or at least likely to get de-prioritised in the scrum meeting..)
=> I'd expect a lot of users to connect to their database with way to deep priviliges
(FYI: We don't have good documentation around this. If somebody wants to research how to make one of the DBs more secure, we would love to include this in the frontend as a helptext or a link to the wiki..)
Also, we would not currently be ISO27001 or SOC2 compliant because of:

(no audit logs)  https://github.com/louislam/uptime-kuma/issues/3481
(no fine grained ACL) https://github.com/louislam/uptime-kuma/issues/128

=> I'd expect the cases where we are used to reflect this (Expectation: smaller deployments, hobby/small enterprise)
We have no clue what "the fleet" looks like, what monitors are getting used/..
=> see https://github.com/louislam/uptime-kuma/issues/4456

One possibility would be to provide available "exec monitors" in a configuration file

Having configuration files just to have double accounting does not seem worth it (or at least I don't see a benefit).
I'd expect a simple "list all executable files in the directory without following links" to be the same level of security.

maybe with the option to pass environment variables from the monitor's setup page

We try to restrict what needs to be configured via environment variables to the least ammount of options as having to dig trough a gigantic parameter dump is terrible for everyone involved.

@thielj compartmentalizing can be discussed in https://github.com/louislam/uptime-kuma/issues/84. In this issue it is off-topic.

All of the security concerns can be solved with a few scenarios to implement that funcionality. And yes I do agree that some of those things might be a security concerns, but every system that allows user input is vulnerable to some extent.
To enable custom script monitoring it might be required to:

Set environemnt variable to true
Enable such monitor type in setting (could only be done by superadmin)
Only superadmin can configure such checks

Also don't forget that docker container would need to be redesigned by the end-user to actually utilize such custom monitoring options, as image doesn't have all the packages available pre installed.
That would greatly improve monitoring possibilities instead of requiring developer to write it's specific checks

Dear @louislam , I would like to report on my own experience implementing something like this on a embedded Linux device.
I needed the Windows UI app to configure the OS of the device, but didn't want to write backend API support for every single thing. I wanted a genreic "run authorized script" feature so I can focus exclusively on writing shell scripts and updating the Window app, without modifying the backend any further.

Remote client sends a message like { ..., type:"executable-script", scriptName:"set-snmp-enabled.sh", args: [false] }.

Backend has a directory, executable-scripts/. Inside it is authorized scripts like set-snmp-enabled.sh, set-network-configuration.sh, etc.

Backend does several checks on the given script name and args. For example confirm "/fullpath/to/executable-scripts/$scriptname" exists, run a regex to forbid shell special characters, path separators, $ (could be used to $(rm -rf /), etc.

The generic backend handler finally invokes /path/to/executable-scripts/$scriptname [args]

The backend returns the exit code and output of the script

It's been in production for a few months and no issues so far, but this is behing a password-protected system.
Now, your problem is much simpler: you don't even need to care about arguments. You don't need that degree of flexibility (at least when the basic need isn't yet met). Don't worry about letting users add an Exec Monitor that does check-snmp-health.sh $hostname $port $password, let them create check-snmp-health-device1.sh , check-snmp-health-device2.sh, with static arguments inside.
By just focusing on the script name, you've just removed 90% of the risks. Then add a regex forbidding special path characters and you're done.

Please add this feature, a lot of us selfhosters would love to centralize all our monitoring on Kuma (including triggering the check) instead of splitting our triggers across multiple systems.

+1 needing this


java.lang.NoSuchMethodError: 'org.apache.logging.log4j.LogBuilder org.apache.logging.log4j.Logger.atDebug()

Quarkus 3.0 , I use poi to hander excel file , quarkus logging implements is jboss logging  , poi  is log4j-api 2.18.0 ,
at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.parseRelationshipsPart(PackageRelationshipCollection.java:309)
	at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.<init>(PackageRelationshipCollection.java:160)
	at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.<init>(PackageRelationshipCollection.java:130)
	at org.apache.poi.openxml4j.opc.PackagePart.loadRelationships(PackagePart.java:565)
	at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:751)
	at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:322)
	at org.apache.poi.ooxml.util.PackageHelper.open(PackageHelper.java:59)
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:290)
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:286)

Why was this issue closed?

@sailyfirm please respond with what resolved your issue so we can properly close this ticket or investigate if its a real issue?

Closing as the issue is incomplete. Please reopen when you have more info and a reproducer

sorry !  finnaly I found a conflicting log4j class in another jar ,because it a fat jar (dremio jdbc driver) with log4j api .  so I closed it  .


math: It would be nice if the math.Min and math.Max functions accepted a variadic param

Something like this would be nice:
func min(nums ...int) int {
  number = nums[0]
  for i := 1; i < len(nums); i++ {
    if (nums[i] < number) {
      number = nums[i]
    }
  }
  return number
}

We can't change the signature of the existing functions, as it would break the Go 1 compatibility guarantee.


TypeError: cannot set 'is_timeout' attribute of immutable type 'TimeoutError'

Environment

Covalent version: 0.110.2.post1
Python version: 3.10.5
Operating system: MacOS 12.4

What is happening?
Covalent fails on import.
How can we reproduce the issue?
Attempt to import Covalent using Python 3.10.
~ $ python                                                                                (covalent)
Python 3.10.5 | packaged by conda-forge | (main, Jun 14 2022, 07:09:13) [Clang 13.0.1 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import covalent as ct
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/covalent/__init__.py", line 25, in <module>
    from . import executor
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/covalent/executor/__init__.py", line 35, in <module>
    from .base import BaseExecutor
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/covalent/executor/base.py", line 37, in <module>
    from .._workflow.transport import TransportableObject
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/covalent/_workflow/__init__.py", line 23, in <module>
    from .electron import electron
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/covalent/_workflow/electron.py", line 42, in <module>
    from .lattice import Lattice
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/covalent/_workflow/lattice.py", line 34, in <module>
    import covalent_ui.result_webhook as result_webhook
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/covalent_ui/result_webhook.py", line 25, in <module>
    import covalent_ui.app as ui_server
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/covalent_ui/app.py", line 39, in <module>
    from flask_socketio import SocketIO
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/flask_socketio/__init__.py", line 9, in <module>
    from socketio import socketio_manage  # noqa: F401
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/socketio/__init__.py", line 9, in <module>
    from .zmq_manager import ZmqManager
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/socketio/zmq_manager.py", line 5, in <module>
    import eventlet.green.zmq as zmq
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/eventlet/__init__.py", line 17, in <module>
    from eventlet import convenience
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/eventlet/convenience.py", line 7, in <module>
    from eventlet.green import socket
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/eventlet/green/socket.py", line 4, in <module>
    __import__('eventlet.green._socket_nodns')
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/eventlet/green/_socket_nodns.py", line 11, in <module>
    from eventlet import greenio
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/eventlet/greenio/__init__.py", line 3, in <module>
    from eventlet.greenio.base import *  # noqa
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/eventlet/greenio/base.py", line 32, in <module>
    socket_timeout = eventlet.timeout.wrap_is_timeout(socket.timeout)
  File "/opt/anaconda3/envs/covalent/lib/python3.10/site-packages/eventlet/timeout.py", line 166, in wrap_is_timeout
    base.is_timeout = property(lambda _: True)
TypeError: cannot set 'is_timeout' attribute of immutable type 'TimeoutError'

What should happen?
The Covalent package should be imported without error.
Any suggestions?
I believe this is limited to Python 3.10. I tried to reproduce it on Python 3.9 and did not see the error.

Seems like eventlet problem that has been solved. Reference - https://github.com/eventlet/eventlet/issues/733


Iterate tweet pages for database provisioning

Fixes issue #1.

I believe Travis is failing because you are trying to clone Rosei with ssh try switching it over to http or https to see what happens.

@jtemporal Nope. Did not get it fixed it.

@jtemporal done.

LGTM ;)


gh pr checkout 396

Description:
Describe your changes.
Related issue:
Add link to the related issue.
Check list:

[x] Mark if documentation changes are required.
[x] Mark if tests were added or updated to cover the changes.

Hello @via06. I'm going to close the pull request. Feel free to ping us after filling the form and providing extra information.


Homebrew cask is not notarized

Trying to install Ferdi via homebrew leads to the message:
“Ferdi” cannot be opened because the developer cannot be verified.
I believe this is because the homebrew cask is not notarized.
It would be great if you could notarize your build, makes it easier to use the application.

We have introduced the notarization of the mac builds - but, our build process is currently broken. Once that is fixed, you should not see this error any more. Closing for now. Thanks for logging the bug.


Using the Reference log to Restore Lost Commits

Proposed title of article
Using the Reference log to Restore Lost Commits
Proposed article introduction
What is Reference log?
Reference log is a mechanism to record when the tip of branches are updated. This command is to manage the information recorded in it. Basically every action you perform inside of Git where data is stored, you can find it inside of the reference log.This means that you can use it as a safety net: you shouldn’t be worried that a merge, rebase, or some other action will destroy your work since you can find it again using this command.
Key takeaways
1.Difference between git log and git reference log
2.Recovering deleted commits
3.Recovering deleted branches
4.Keep calm and keep track
Article quality
This will be an in-depth article explaining all aspects of this concept to ensure it is beginners friendly i will employ easy use of language.
References
N/A

This is out of our preferred topics area. We are looking for programmer-centric concepts explained in fun and intuitive ways.
Please feel free to suggest an alternate topic to explore. 🚀


Laravel 5.4 Many issues

First of all sorry my poor english. Let's continue:
Found one issue running Laravel 5.4.*.
Warning:
The AuthorizesResources trait has been merged with the AuthorizesRequests trait.
So, in \vendor\ied3vil\language-switcher\src\ied3vil\LanguageSwitcher\LanguageSwitcherController.php
you'll have to remove this line bellow:
use Illuminate\Foundation\Auth\Access\AuthorizesResources;
AND need to change this line bellow:
from: use AuthorizesRequests, AuthorizesResources, DispatchesJobs, ValidatesRequests;
to:      use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
But the LanguageSwitcher actually doesn't switch the language.
When a link like  {{ url('/lang/es') }} is clicked, nothing happens.
No actions, no errors, just redirect()->back() to main url '/'.
Can you help me?

You should probably use dev-master branch as it has changes for recent Laravel version. It works on 5.4 for me. And I use "cookie" mode - locale is switching.

One note about "cookie" mode. It has a flaw - if cookie is not set then empty locale is used. Iv created a pull request here to fix this.

@erik-ropez i have just merged your pull request because it made sense
@rafaelxavierborges let me know if you still have problems


fix debian : vcstool package name

fix debian package name from python3-vcstool to vcstool
Package name:
python3-vcstool
Package Upstream Source:
python3-vcstools for debian bullseye
python3-vcstool for other Debian distributions
Purpose of using this:
python3-vcstool not exist in debian bookworm - bullseye distro
Links to Distribution Packages

Debian: https://packages.debian.org/
https://packages.debian.org/bookworm/vcstool

Please Add This Package to be indexed in the rosdistro.
ROSDISTRO NAME : ALL
The source is here:
https://packages.debian.org/bookworm/vcstool
Checks

[ ] All packages have a declared license in the package.xml
[ ] This repository has a LICENSE file
[ ] This package is expected to build on the submitted rosdistro

Info is confusing:
python3-vcstools for debian bullseye
python3-vcstool for other Debian distributions

it also provides a link to bookworm but modifies bullseye.

@mosfet80 are you still interested in taking this forward?

I'm going to close this. Feel free to reopen, if there's interest.


IAP Email wording is misleading

Forseti Security found some issues during the scan on 2017 Aug 31, 16:02:56 (UTC).
However no issues were found
Resource Violations: Errors: 0 See attached CSV for full violation details.

This will be taken care of in #635


Add module list to the JModuleProperties

So during module application, a module can detect, what other modules are present. This could be used for optional dependencies

I don't think this belong to properties, I don't see the responsibility here.
If a module needs to known the applied module I think we should go for something to inject in the module factory, a lite version of ProjectsRepository in the module context seems totally legit to do that.
What do you think?

I don't think this belong to properties, I don't see the responsibility here.
If a module needs to known the applied module I think we should go for something to inject in the module factory, a lite version of ProjectsRepository in the module context seems totally legit to do that.
What do you think?

How these module names differs from the "server port", "identation level", "java version", etc ? IMHO they are all properties of the module being generated.
You can put the code, which collects all the already applied modules into a separate service, but you still need to get the list of 'newly applied' modules from the REST endpoint - and that you need to put into JHipsterModuleProperties. We can create a separate class to hold these values - 'PluginDependencies', if you prefer.

I don't think this belong to properties, I don't see the responsibility here.
If a module needs to known the applied module I think we should go for something to inject in the module factory, a lite version of ProjectsRepository in the module context seems totally legit to do that.
What do you think?

How these module names differs from the "server port", "identation level", "java version", etc ? IMHO they are all properties of the module being generated. You can put the code, which collects all the already applied modules into a separate service, but you still need to get the list of 'newly applied' modules from the REST endpoint - and that you need to put into JHipsterModuleProperties. We can create a separate class to hold these values - 'PluginDependencies', if you prefer.

I don't see a case where you would need module that are not yet applied since the modules are applied in dependencies order (otherwise it just won't work).
I'm not a fan of adding a feature without using it in a business case since it's really hard to see if that feet a need. Can you use the feature to get a better grasp of what you have in mind?

I try to create a module X, that doesn't depend on module Y, but if Y is present, it needs to do things differently. My example module just wants to generate a mise.toml file for Mise, and needs to know, if Maven/Gradle/Npm is required or not (Mise is basically an advanced version of the Maven/Gradle/Npm wrappers). Similarly, the github/etc-workflow generation could be altered later, if 'Mise' present, no need to deal with all the wrappers and installation, just call Mise to setup the environment.
It's not yet a perfect solution, because it could happen, that someone first applies the Mise module, and later - in a different http request - applies the Maven one, but if it happens in the same http request, it works correctly.

I try to create a module X, that doesn't depend on module Y, but if Y is present, it needs to do things differently. My example module just wants to generate a mise.toml file for Mise, and needs to know, if Maven/Gradle/Npm is required or not (Mise is basically an advanced version of the Maven/Gradle/Npm wrappers). Similarly, the github/etc-workflow generation could be altered later, if 'Mise' present, no need to deal with all the wrappers and installation, just call Mise to setup the environment. It's not yet a perfect solution, because it could happen, that someone first applies the Mise module, and later - in a different http request - applies the Maven one, but if it happens in the same http request, it works correctly.

From what I understand reading the applied modules will provide a better solution since:

It will work even in different http request;
It will keep a clear separation of concerns;
It won't break the existing architecture.

I don't see the point in doing it that way, what are the pros?


If scrolling when sticky element is hidden means element can become fixed at the wrong time

Hi,
I had a problem on my website where if I scrolled down before revealing/un-hiding (it is defaulted to "display: none" and I have a jquery slideToggle) the element containing my sticky div, the sticky div might incorrectly appear at the top of the window once I did reveal it.
I fixed the issue. It was only a small change... However, I am new to GitHub (and git, for that matter) and I'm not entirely sure how I can request to get this fix put back into the repo...

@LukeTim how did you fix this?


Feature/method path copy

What is the purpose of this pull request?
To add 'copy to clipboard' interactions to the documentation section that shows its corresponding path

Further information and examples here.
What problem is this solving?
The absence of the interactions to follow the expected design for the section showing the REST method and the path referring to the documentation accessed by the user.
How should this be manually tested?
It is strongly recommended that you read this task documentation to better understand the contribution code, also check if there are any typos or styling errors in it. As this contribution has been given a provisory version tag, you can view the achieved results on this deploy preview.
Screenshots or example usage
https://user-images.githubusercontent.com/39717968/172954914-bcf37e3d-9b10-481e-94e4-0b529e28ace1.mp4
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Requires change to documentation, which has been updated accordingly.

That's great! Good job. ✨ I had a question about the element overlap. Should it be like this?

Thanks for reporting this overlap! I hadn't noticed, gonna fix it


Compiler finding wrong .apply

Consider:
  def f(n: Integer) : Double = {
    val prec : DenseVector[Double] = DenseVector.ones[Double](n+1)
    prec(n-1)
  }

This compiles fine and runs as expected.  Changing it sightly tho:
  def f2(n: Integer) : Double = {
    val prec : DenseVector[Double] = DenseVector.ones[Double](n+1)
    prec(n)
  }

I get this error:
   error: could not find implicit value for parameter canSlice: breeze.linalg.support.CanSlice[breeze.linalg.DenseVector[Double],Integer,Result]
         f2(n)

Using scala 2.12.8, breeze 0.13.2

sorry for being slow. You should use Int not Integer. Integer is the boxed JVM type, while Int is (usually) primitive. In the former example, n -1 coerces n to an Int. Breeze/Scala aren't smart enough to coerce the Integer to Int for apply. Really I think Scalac should handle this particular example.


Provide conversion function for reqwest::Response to http::Response<_>

Original title: Provide conversion functions for reqwest::{Request, Response} to http::{Request<>, Response<>}
The reverse already exist as one From (response) and one TryFrom (request) trait implementation, but going from reqwest types to http types doesn't seem to be supported yet.

I came to this repo to post the same issue. I fully support that, it would remove a lot of boilerplate.

Ping @seanmonstar, are you interested in a PR for this?

Sure, makes sense to me!

@seanmonstar I think this should not be marked easy, at least if you want the remaining Response conversion to work on WASM too.

I am unsure why this issue is still open given that #2060 has been merged, but let me just say that it would be great to also be able to convert reqwest::blocking::Response to http::Response.


type 'never' wrongly infered

Typescript Version 2.4.2
Typescript appears to wrongly infer the type in the following code:
interface IAction {
    type: string;
}

class Action1 implements IAction{
    type = 'action1';
    //payload: string;
}

class Action2 implements IAction{
    type = 'action2';
    payload: number;
}

type Action = Action1 | Action2;

class ActionTypes {
    static isAction1(action: Action): action is Action1{
        return action.type === 'action1';
    }
    static isAction2(action: Action): action is Action2{
        return action.type === 'action2';
    }
}

function reducer(state: any, action: Action) {
    if (ActionTypes.isAction1(action)){
        return 1; //whatever
    }
    else if (ActionTypes.isAction2(action)) {
        return action.payload; // ERROR !! Property 'payload' does not exist on type 'never'.
    }
}

Code
the self contained code above will generate the error when compiled with tsc 2.4.2
Expected behavior:
after testing for Action1 (with isAction1 ) the inferred type on the else branch (in the reducer function)
should be Action2 ( not never).
Note the error happens in the above case and also if there is no type check on the else branch
i.e. if the line
else if ( actionTypes.isAction2(action)){
is replaced with:
else {
In my opinion both versions above should be correct.
Actual behavior:
When passing the above code to tsc 2.4.2
tsc checkTs.ts
the follwoing error output is returned:
checkTs.ts(31,23): error TS2339: Property 'payload' does not exist on type 'never'.
When adding a payload to Action 1 (by removing the comment) the error goes away
( but only if the payload type is not number) or if a property with a different name (i.e. not payload)  is added.

This is working as intended, but it is a bit subtle.
In your example, the type properties in Action1 and Action2 are inferred to be of type string (as opposed to a literal type) because they are mutable locations. This means that Action2 is assignable to Action1 (i.e. it is just a specialized Action1). Thus, when isAction1 returns true, we eliminate both Action1 and Action2 from the type, and you're left with never.
The easiest fix is to add a readonly modifier to the type propeties (presumably they are readonly). The compiler will then infer the string literal types "action1" and "action2" and things will work the way you expect because Action1 and Action2 aren't assignable to each other.
class Action1 implements IAction{
    readonly type = 'action1';  // Now of type "action1"
    //payload: string;
}

class Action2 implements IAction{
    readonly type = 'action2';  // Now of type "action2"
    payload: number;
}

Great, thank you !


Use argparse

For parsing command line arguments, argparse is more preferable instead of manual parsing. Please, consider rewrite in this direction

Good suggestion! Argparse is now used.


Feature/Add addOnRPCResponseListener to Isdl

This PR is ready for review.
Risk
This PR makes minor API changes.
Summary
This PR adds addOnRPCResponseListener to Isdl interface because some managers need to listen to  responses for some specific RPCs.
CLA

[x] I have signed the CLA

Codecov Report

Merging #828 into feature/issue_782_Android_Managers will decrease coverage by 0.04%.
The diff coverage is 0%.

@@                           Coverage Diff                            @@
##             feature/issue_782_Android_Managers     #828      +/-   ##
========================================================================
- Coverage                                 42.96%   42.91%   -0.05%
  Complexity                                 3028     3028
========================================================================
  Files                                       379      379
  Lines                                     17939    17949      +10
  Branches                                   1832     1833       +1
========================================================================
- Hits                                       7707     7703       -4
- Misses                                     9858     9873      +15
+ Partials                                    374      373       -1

Impacted Files
Coverage Δ
Complexity Δ

.../main/java/com/smartdevicelink/api/SdlManager.java
49.42% <0%> (-0.87%)
24 <0> (ø)

...main/java/com/smartdevicelink/api/ProxyBridge.java
3.38% <0%> (-0.06%)
1 <0> (ø)

...n/java/com/smartdevicelink/proxy/SdlProxyBase.java
4.73% <0%> (-0.01%)
6 <0> (ø)

.../smartdevicelink/transport/MultiplexTransport.java
33.09% <0%> (-2.82%)
6% <0%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9fd0f38...dda273f. Read the comment docs.

@theRealBrett modifications look good. Thanks.


[bug] Add window resize listener to adjust qrcode dimensions

Summary
Uppon resizing the window or when modal toggles between mobile and desktop layouts, the size of qrcode remains the same. We should add resize listener to adjust this as needed.

Implemented in v3


How does one set Nginx attributes within the node file, example.com.json ?

I have read through the available documentation but how does one set the following Nginx attributes within the example.com.json:
ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers         AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
ssl_certificate    /u/apps/example_production/shared/config/certificate.crt;
ssl_certificate_key /u/apps/sec_production/shared/config/certificate.key;
ssl_session_cache   shared:SSL:10m;
ssl_session_timeout 10m;

Can this process be automated with the current software or is this a manual process?

@berkes Is it possible to set these information with the NGINX config hooks you created a little while back?

@conradwt we have some placeholders for custom config. But I am not sure if they suite your case exactly.
server {
  listen 443 ssl;

  ssl_certificate /u/apps/example_com/shared/config/certificate.crt;
  ssl_certificate_key /u/apps/example_com/shared/config/certificate.key;

  server_name example.com;

  root /u/apps/example_com/current/public;

  location / {
    try_files $uri @app;
  }

  location @app {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Proto https;
    proxy_redirect off;

    proxy_pass http://explained;
    <%= @custom_configuration["ssl_app"] %>
  }
  <%= @custom_configuration["ssl_main"] %>
}

The last may be or help to you. But I am not sure if that is too late in
the config to define the settings. Could you try to set the following in
your my_node_name.json:
  "nginx_custom": {
    "ssl_main": "ssl_protocols TLSv1 TLSv1.1

TLSv1.2;\nssl_ciphers
AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;\nssl_session_cache
shared:SSL:10m;\nssl_session_timeout 10m;",
...
That will insert the extra ssl-config at the bottom of your server { }-block for the SSL server. It might work, provided the exact order and
place of these settings does not matter to nginx.
OTOH, it sounds like these settings might actually be sane and secure defaults.
Would it make sense to include these settings by default in the recipes?

@berkes Yeah I think adding these:
ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers         AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;

as default would be good! Will you make a PR for that? Or do you want me to do it?

@jvanbaarsen I don't have time coming days, so please don't wait for me :)

@berkes Ok! I'll put it on the internal todo list :)

@berkes I received these this information from the following resource:
http://nginx.org/en/docs/http/ngx_http_ssl_module.html


Allow customization of the entry launch page

Is your feature request related to a problem? Please describe.
The auto-generated launch instructions for a workflow, e.g., here, may not always work out of the box. For example, you may need to allocate a bigger heap for the JVM, etc.
Describe the solution you'd like
There should be some way to customize that page, from a full-blown the user has total control over the page, to something less powerful, like the user can specify extra arguments and/or extra text in certain sections.
Describe alternatives you've considered
Leave it as is.
Additional context
See discussion on Dockstore Discuss.
┆Issue is synchronized with this Jira Story
┆Fix Versions: Dockstore 1.13
┆Issue Number: DOCK-1905
┆Sprint: Backlog
┆Issue Type: Story

Feature requested by ENCODE.


Update deps

Codecov Report

Merging #75 (7363cfc) into main (4f54807) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #75   +/-   ##
=======================================
  Coverage   75.47%   75.47%
=======================================
  Files          58       58
  Lines        3287     3287
=======================================
  Hits         2481     2481
  Misses        701      701
  Partials      105      105

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4f54807...7363cfc. Read the comment docs.


Receive, v0.19.0-rc.1: Spam of empty series from client

level=info ts=2021-03-11T09:23:50.142343183Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:50.756857036Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:50.768676723Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:50.90678597Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:51.704198277Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:51.839130776Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:52.409319744Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:52.650389576Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:53.01428968Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:53.043222239Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:53.748414526Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:54.354878339Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:55.568521259Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:56.175523962Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:56.587021024Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:57.648011619Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:57.956134156Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:59.318580478Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:59.365433225Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:59.508597288Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:23:59.524551509Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:24:00.785769687Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:24:01.255138693Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:24:01.316583876Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:24:01.647947553Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:24:01.952418061Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:24:02.438128032Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:24:03.193313639Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:24:03.583242012Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:24:04.446743698Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:24:06.231777025Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:24:06.276713751Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:24:06.78965161Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:24:06.80199153Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b
level=info ts=2021-03-11T09:24:08.067664033Z caller=handler.go:315 component=receive component=receive-handler msg="empty timeseries from client" tenant=770c1124-6ae8-4324-a9d4-9ce08590094b

I think it's related to metadata things we tried to fix here: https://github.com/thanos-io/thanos/pull/3905

Yes, it is related. This is the remote write metadata and it is sent per minute by default.
We don't need to log it I think.

We are also impacted by this bug. Log:
level=info ts=2021-04-08T12:26:58.87548867Z caller=handler.go:319 component=receive component=receive-handler msg="empty timeseries from client" tenant=tenant_id

This still happens in v0.19 non-rc


Add Camera Entity

This adds a camera entity to plot the GPS location and track of the mower on a user provided image

There is no description of the options. Can you add them in them?

Of course, I don't know why I didn't push the updated translations, will get them added this evening

Hi, there are still some thing with turning on and turning of the camera which I've marked. I think this is not changed yet. Can you have a look on it? Because I don't think it's possible to turn the camera on and off.

Hi, there are still some thing with turning on and turning of the camera which I've marked. I think this is not changed yet. Can you have a look on it? Because I don't think it's possible to turn the camera on and off.

I'm sorry, I'm not seeing any comments when I looked at the changes requested.  If you are referencing the functions turn_off and turn_on in camera.py, those would be called by the service camera.turn_on or camera.turn_off (https://www.home-assistant.io/integrations/camera/#service-turn_off).  The idea is that it would save system resources if you didn't want to update the position of the mower.

Ah okay, now i got it.

How do I configure this?
More specifically: How do I get the path in the image?


date error on macOS

On macOS the function in the get_token.sh script  will throw an error:
130-zsh%  date "+%c" --date='1 day'
date: illegal time format
usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]

A macOS user can use GNU date by installing via homebrew:
brew install coreutils
And then changing the command in the script from date to gdate

On mac, the script also throws "The resolvconf package could not be found." One cannot use the Wireguard as the result, since DNS isn't working (can only access websites by IP, not by a host name)

@Bougakov please open up an new issue, this is not related to the date command.
Please specify also your macOS version in the new issue.


Separate int->String reverse mapping for user, item IDs and make tie-breaking deterministic

See issue #312

Current coverage is 82.89% (diff: 80.00%)

Merging #313 into master will increase coverage by 0.02%

@@             master       #313   diff @@
==========================================
  Files           154        154
  Lines          4762       4770     +8
  Methods           0          0
  Messages          0          0
  Branches        824        825     +1
==========================================
+ Hits           3946       3954     +8
  Misses          406        406
  Partials        410        410

Powered by Codecov. Last update b4d33d9...44629a3

I'm going to rebase and merge this because I'm sure this much is a fairly important fix.


Release is missing a required update file for current platform

The error I am seeing is the following"
[2023-04-08 13:44:33.919] [error] Error checking for update: Error: Release is missing a required update file for current platform (win32)     at C:\Users\mrbre\source\repos\COSMOS\cosmos-builder\node_modules\electron-github-autoupdater\dist\autoUpdater.js:294:39     at Array.map (<anonymous>)     at ElectronGithubAutoUpdater.<anonymous> (C:\Users\mrbre\source\repos\COSMOS\cosmos-builder\node_modules\electron-github-autoupdater\dist\autoUpdater.js:291:68)     at step (C:\Users\mrbre\source\repos\COSMOS\cosmos-builder\node_modules\electron-github-autoupdater\dist\autoUpdater.js:59:23)     at Object.next (C:\Users\mrbre\source\repos\COSMOS\cosmos-builder\node_modules\electron-github-autoupdater\dist\autoUpdater.js:40:53)     at C:\Users\mrbre\source\repos\COSMOS\cosmos-builder\node_modules\electron-github-autoupdater\dist\autoUpdater.js:34:71     at new Promise (<anonymous>)     at __awaiter (C:\Users\mrbre\source\repos\COSMOS\cosmos-builder\node_modules\electron-github-autoupdater\dist\autoUpdater.js:30:12)     at ElectronGithubAutoUpdater._this.downloadUpdateFromRelease (C:\Users\mrbre\source\repos\COSMOS\cosmos-builder\node_modules\electron-github-autoupdater\dist\autoUpdater.js:283:71)     at ElectronGithubAutoUpdater.<anonymous> (C:\Users\mrbre\source\repos\COSMOS\cosmos-builder\node_modules\electron-github-autoupdater\dist\autoUpdater.js:437:51)
Looking through the source code, at line 188 in autoUpdater.js we have this :
requiredFiles: [/[^ ]*-full\.nupkg/gim, /RELEASES/],

Considering that my release is being auto-packaged and released by electron-builder, I am unsure what exactly is missing as the error is not very helpful.
What is the filename supposed to be, or what file is it looking for?
Cheers

Hi, have you found the solution for this error? I'm having the same problem


some Images on the slider on Landing page is going out of the screen.

some Images on the slider on Landing page is going out of the screen.

solved


Add songs

It's not a really issue, but a question ?
How can I add lyrics for musics ?

You can't. If the lyrics for a song is displayed in google search, it will be extracted :)


Does the new Argument Buffer code support the iOS Simulator?

Kudos on the new argument buffer code.  I have tested this on macOS (Ventura 13.6.6) and iOS (latest iOS 17.5.1 on iPhone 15) with the descriptor indexing sample in Sascha Willem's repo as well as a modified descriptor indexing sample in the official Vulkan samples repo.  Both are working well.
However, I tried the new code on the iOS simulator and it does not appear to work (missing VK_EXT_descriptor_indexing) .  Is this intentional, a limitation of the iOS Simulator,  or an oversight?
Also, it appears that issue #2246 is not solved by the new code.

AFAIK simulator has a very small subset of an old Metal version supported, I would not expect recent features to be present there even on the Metal level => MoltenVK has even less chances to have it implemented for simulator.

Closing this since my main concern is covered in #2285:
Should MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS be defaulted to 0 (i.e. disabled) on the iOS Simulator?


Can you build an emscripten wheel to support pyodide runtime?

Background
Pyodide is a wasm build of CPython, which support loading 3rd-party packages with pure-python wheels or emscripten wheels.
Some packages I want to use in pyodide depends on jiter (for example, openai), blocking me from installing them. So it woould be great if you can build an emscripten wheel for pyodide.
Related

https://github.com/openai/openai-python/issues/1782
https://github.com/pyodide/pyodide/issues/3711

Personally I am not good at rust or emscripten so I may not be able to help, but here are some docs about how to build one in pyodide. As pydantic had a pyodide wheel since a long time ago, I think it won't be difficult to build one for jiter.
https://pyodide.org/en/stable/development/new-packages.html#rust-pyo3-packages

To use jiter's wheel with Pyodide, it seems that the version of Emscripten used to compile jiter must be the same as the one used to compile Pyodide. py.cafe explains how to build jiter into wheel, and and this method worked fine for me.
https://py.cafe/docs/howto/build
I will also share the article (in Japanese) with the Dockerfile I used to compile it.
https://qiita.com/narumichiaki/items/84d1e36f6b3180bdc642


bug: 'eof_last: false' breaks generation

Hi all,
I'm having issues with eof_last (which I'm unsure is still supported? It looks like it's still in source and I see it referenced in the README, but it's not anywhere in the hygen.io docs and nobody brought it up in https://github.com/jondot/hygen/issues/114).
I have a generator called package/new. There are several add templates in there, and there's also this inject template:
---
inject: true
to: tsconfig.json
after: references
skip_if: <%= packageName %>
---
    {"path": "./packages/<%= packageName %>"},

Like goschevski in #114, I've confirmed that there's no newline at the end of the file and am still seeing newlines injected into my tsconfig. To fix this I tried adding eof_last: false to the end of the frontmatter.
After making this change, I expected the injector to run as before, inserting the provided line into my tsconfig w\ no trailing newline. Instead, I got several different results, depending on where eof_last was in the frontmatter:
-If eof_last was at the very end of the frontmatter, hygen would process the add templates as normal, but would ignore the inject one (i.e. the inject: tsconfig.json line would be missing from the output). I confirmed the skip_if pattern was not present in .tsconfig, and confirmed that the injector did indeed run if I took out the eof_last line.
-If eof_last was anywhere else, it would appear to break attribute parsing, and hygen wouldn't process any templates. I'd get the message
TypeError: Cannot create property '<next_property_name>' on boolean 'false'. Here <next_property_name> is the name of the property immediately after eof_last - so if eof_last was on the second to last line, it'd be skip_if.
^^the behavior above persisted even when I added manually added a newline to my inject template. I tried setting eof_last to true and had no issues - hygen injected a single newline after the template contents (so, in fact, I got the same results when setting eof_last to true as I got from excluding eof_last altogether).
Please let me know if there's any other context I can give. Thanks!

@mprast any chance you can point me to the repo you have the templates in? that would be really helpful

@jondot yes! the template in question is at https://github.com/mprast/atlas/blob/master/global_templates/package/new/root_tsconfig.json.ejs

I think it's related to #165

closing since looks like its resolved


Add markdown rendering to speaker feedback

It seems that most of the markdown that is working is using
client side rendering - not sure if there is a conflict with that
and the tabbed view - but this does "fix" the immediate problem.

Hello! Thank you so much for your contribution to the PyCon website!
Every year, the site sees many small changes that build up to quickly overwhelm the limited resources spent on the codebase.
I'd encourage you to hold onto the ideas in this Pull Request and determine how they fit once again when the 2018 website has launched, don't worry as you'll be reminded here once that happens.


RDK-29904: Add FireboltMediaPlayer Phase 1

Reason for change: Add FireboltMediaPlayer Phase 1
with scope of basic methods enabling playback of
clear content
Test Procedure: Launch FireboltMediaPlayer/test/fmp_test_ui.html
in STB and play clear content
Risks: Low
Signed-off-by: Adrian Muzyka<EMAIL_ADDRESS>

Copyright scan failure
Commit: a9ae8edc9e2559e4dce5c89ea473ae19da2663d9
Report detail: https://gist.github.com/321e2d6565d179ab3f8894b89a1a1250

Blackduck scan failure details
Summary: 0 violations, 0 files pending approval, 1 file pending identification.

Protex Server Path: /home/blackduck/github/rdkservices/543/rdkcentral/rdkservices

Commit: a9ae8edc9e2559e4dce5c89ea473ae19da2663d9

Report detail: gist

Blackduck scan failure details
Summary: 0 violations, 0 files pending approval, 1 file pending identification.

Protex Server Path: /home/blackduck/github/rdkservices/543/rdkcentral/rdkservices

Commit: c0731ceed1f4ae21706d5d1fc44b2c256462c462

Report detail: gist


Error: Please install sqlite3 package manually

It looks like a very old issue but not I think so.
Here https://github.com/kostysh/electron-sqlite-react a simple app scaffold with:

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
Then I try to npm start I alwais get a error:
App threw an error during load
Error: Please install sqlite3 package manually

Of course, I have done npx electron-rebuild -f -w sqlite3. Also, I have built sqlite from sources but the result is the same.
My system env:

Ubuntu 18.04
node.js v10.7.0
npm v6.4.1

My forge.config.js:
const path = require('path');
const merge = require('webpack-merge');
const CopyWebpackPlugin = require('copy-webpack-plugin');

const sharedModule = {
    rules: [
        {
            test: /\.js$/,
            exclude: /node_modules/,
            use: {
                loader: 'babel-loader',
                options: {
                    presets: [
                        [
                            '@babel/preset-env',
                            {
                                targets: {
                                    electron: '2.0.9'
                                }
                            }
                        ],
                        '@babel/preset-react'
                    ]
                }
            }
        },
        {
            test: /\.(png|jpg|gif)$/,
            use: ['url-loader']
        }
    ]
};

module.exports = {
    electronRebuildConfig: {
        // force: true
    },
    plugins: [
        [
            '@electron-forge/plugin-webpack', {
                mainConfig: {
                    entry: {
                        index: [
                            '@babel/polyfill',
                            path.resolve(__dirname, 'src/index.js')
                        ]
                    },
                    module: sharedModule,
                    plugins: [
                        new CopyWebpackPlugin([
                            {
                                from: path.resolve(__dirname, 'src/assets'),
                                to: path.resolve(__dirname, '.webpack/assets')
                            }
                        ])
                    ],
                    output: {
                        filename: '[name].js'
                    }
                },
                renderer: {
                    config: {
                        module: merge.smart({
                            rules: [
                                {
                                    test: /\.css$/,
                                    use: ['style-loader', 'css-loader']
                                },
                                {
                                    test: /\.(svg)$/,
                                    use: ['svg-loader']
                                }
                            ]
                        }, sharedModule),
                        resolve: {
                            extensions: ['.js', '.json'],
                        }
                    },
                    prefixedEntries: process.env.NODE_ENV === 'production' ? [] : ['react-hot-loader/patch'],
                    entryPoints: [
                        {
                            html: path.resolve(__dirname, 'src/renderer/index.html'),
                            js: path.resolve(__dirname, 'src/renderer/index.js'),
                            name: 'main_window'
                        }
                    ]
                }
            }
        ]
    ],
    packagerConfig: {},
    makers: [
        {
            name: '@electron-forge/maker-squirrel',
            config: {
                name: 'pandora-market'
            }
        },
        {
            name: '@electron-forge/maker-zip',
            platforms: [
                'darwin'
            ]
        },
        {
            name: '@electron-forge/maker-deb',
            config: {}
        },
        {
            name: '@electron-forge/maker-rpm',
            config: {}
        }
    ],
    publishers: []
};

electron-forge start output with debug info:
> DEBUG=electron-forge:* npx electron-forge start

WARNING: DEBUG environment variable detected.  Progress indicators will be sent over electron-forge:lifecycle
  electron-forge:async-ora Process Started: Checking your system +0ms
  electron-forge:check-system checking system, create ~/.skip-forge-system-check to stop doing this +0ms
  electron-forge:async-ora Process Succeeded: Checking your system -- after 161ms +161ms
WARNING: DEBUG environment variable detected.  Progress indicators will be sent over electron-forge:lifecycle
  electron-forge:async-ora Process Started: Locating Application +0ms
  electron-forge:project-resolver searching for project in: /home/[path-to-the-app]/elsqlite +0ms
  electron-forge:project-resolver electron-forge compatible package.json found in /home/[path-to-the-app]/elsqlite/package.json +4ms
  electron-forge:async-ora Process Succeeded: Locating Application -- after 5ms +5ms
  electron-forge:require-search searching [ '@electron-forge/plugin-webpack',
  '/home/[path-to-the-app]/elsqlite/@electron-forge/plugin-webpack',
  '/home/[path-to-the-app]/elsqlite/node_modules/@electron-forge/plugin-webpack' ] relative to /home/[path-to-the-app]/elsqlite +0ms
  electron-forge:require-search testing @electron-forge/plugin-webpack +2ms
WARNING: DEBUG environment variable detected.  Progress indicators will be sent over electron-forge:lifecycle
  electron-forge:plugin:webpack hooking process events +0ms
  electron-forge:async-ora Process Started: Preparing native dependencies +765ms
  electron-forge:async-ora Process Renamed: Preparing native dependencies  -->  Preparing native dependencies: 0 / 1 +226ms
  electron-forge:async-ora Process Renamed: Preparing native dependencies: 0 / 1  -->  Preparing native dependencies: 1 / 1 +3ms
  electron-forge:async-ora Process Succeeded: Preparing native dependencies: 1 / 1 -- after 229ms +0ms
  electron-forge:plugins plugin: "webpack" has taken control of the start command +0ms
  electron-forge:async-ora Process Started: Compiling Main Process Code +0ms
  electron-forge:async-ora Process Succeeded: Compiling Main Process Code -- after 4s +4s
  electron-forge:async-ora Process Started: Launch Dev Servers +1ms
  electron-forge:async-ora Process Succeeded: Launch Dev Servers -- after 30ms +30ms
  electron-forge:async-ora Process Started: Compiling Preload Scripts +0ms
  electron-forge:async-ora Process Succeeded: Compiling Preload Scripts -- after 1ms +1ms
  electron-forge:async-ora Process Started: Launching Application +4s
  electron-forge:async-ora Process Succeeded: Launching Application -- after 13ms +13ms

Webpack Output Available: http://localhost:9000

  electron-forge:plugin:webpack hooking electron process exit +4s
App threw an error during load
Error: Please install sqlite3 package manually
    at new ConnectionManager (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:114110:15)
    at new SqliteDialect (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:114491:30)
    at new Sequelize (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:123593:20)
    at Module../src/db.js (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:150060:12)
    at __webpack_require__ (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:21:30)
    at Module../src/index.js (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:150099:61)
    at __webpack_require__ (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:21:30)
    at Object.0 (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:150166:18)
    at __webpack_require__ (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:21:30)
    at /home/[path-to-the-app]/elsqlite/.webpack/main/index.js:85:18
    at Object.<anonymous> (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:88:10)
    at Object.<anonymous> (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:150415:3)
    at Module._compile (module.js:642:30)
    at Object.Module._extensions..js (module.js:653:10)
    at Module.load (module.js:561:32)
    at tryModuleLoad (module.js:504:12)
    at Function.Module._load (module.js:496:3)
    at loadApplicationPackage (/home/[path-to-the-app]/elsqlite/node_modules/electron/dist/resources/default_app.asar/main.js:287:12)
    at Object.<anonymous> (/home/[path-to-the-app]/elsqlite/node_modules/electron/dist/resources/default_app.asar/main.js:328:5)
    at Object.<anonymous> (/home/[path-to-the-app]/elsqlite/node_modules/electron/dist/resources/default_app.asar/main.js:365:3)
    at Module._compile (module.js:642:30)
    at Object.Module._extensions..js (module.js:653:10)
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Please install sqlite3 package manually
    at new ConnectionManager (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:114110:15)
    at new SqliteDialect (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:114491:30)
    at new Sequelize (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:123593:20)
    at Module../src/db.js (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:150060:12)
    at __webpack_require__ (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:21:30)
    at Module../src/index.js (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:150099:61)
    at __webpack_require__ (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:21:30)
    at Object.0 (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:150166:18)
    at __webpack_require__ (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:21:30)
    at /home/[path-to-the-app]/elsqlite/.webpack/main/index.js:85:18
    at Object.<anonymous> (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:88:10)
    at Object.<anonymous> (/home/[path-to-the-app]/elsqlite/.webpack/main/index.js:150415:3)
    at Module._compile (module.js:642:30)
    at Object.Module._extensions..js (module.js:653:10)
    at Module.load (module.js:561:32)
    at tryModuleLoad (module.js:504:12)
    at Function.Module._load (module.js:496:3)
    at loadApplicationPackage (/home/[path-to-the-app]/elsqlite/node_modules/electron/dist/resources/default_app.asar/main.js:287:12)
    at Object.<anonymous> (/home/[path-to-the-app]/elsqlite/node_modules/electron/dist/resources/default_app.asar/main.js:328:5)
    at Object.<anonymous> (/home/[path-to-the-app]/elsqlite/node_modules/electron/dist/resources/default_app.asar/main.js:365:3)
    at Module._compile (module.js:642:30)
    at Object.Module._extensions..js (module.js:653:10)
webpack built 7fca1094a6ea0f988ecf in 1313ms
^C  electron-forge:plugin:webpack handling process exit with: { exit: true } +2s
undefined
  electron-forge:plugin:webpack handling process exit with: { cleanup: true } +2ms
  electron-forge:plugin:webpack cleaning webpack watcher +0ms
  electron-forge:plugin:webpack cleaning http server +14ms
  electron-forge:plugin:webpack stopping logger +0ms

Test case

Clone the app from https://github.com/kostysh/electron-sqlite-react
npm i
npm run start:debug

[X] I have read the contribution documentation for this project.
[X] I agree to follow the code of conduct that this project follows, as appropriate.
[X] I have searched the issue tracker for an issue that matches the one I want to file, without success.

@kostysh I think you need to configure a loader for native modules.  native-loader
--> https://github.com/webpack-contrib/node-loader

native-loader cannot helping. all the same ((

I have figured out that the source of trouble is in the way of how defined a path to the package.json of sqlite3 module.
// ./node_modules/sqlite3/lib/sqlite3.js
var binding_path = binary.find(path.resolve(path.join(__dirname,'../package.json')));

Here the module is waiting what __dirname will be pointing to the module directory but at the moment of starting of electron app __dirname is pointing to app directory, not to the module.

According to my previous comment I have found a solution. I have added sqlite3 module to the external config and thats solved the problem. For now, my mainConfig is looks like:
mainConfig: {
    entry: {
        index: [
            '@babel/polyfill',
            path.resolve(__dirname, 'src/index.js')
        ]
    },
    module: sharedModule,
    plugins: [
        new CopyWebpackPlugin([
            {
                from: path.resolve(__dirname, 'src/assets'),
                to: path.resolve(__dirname, '.webpack/assets')
            }
        ])
    ],
    output: {
        filename: '[name].js'
    },
    externals: ['sqlite3']
},

So, thats was not a error in the electron-forge and issue can be closed.

@kostysh having the sqlite3 (better-sqlite3 in my case) works for the development process. But when I go ahead with "make", the module is not to be found in the build.

If anyone still facing issue, try using better-sqlite3 instead of sqlite3.
Follow regular steps and it should work.
Better sqlite3 7.0.1 solves this issue of binding native module which existed earlier.
Please have a look.


Transfer Generated Schema to the Runtime

Description:
Subtask of #2047

Closing as this is not being tracked anymore. The original issue will stay open.


Can I update specific route in initialRouteStack when navigator jumpTo it?

I am newbee in RN and I built a tabbar component with RN Navigator, but when initialRoute was rendered, I loaded all data to redux state ( it was happend after initialRouteStack ).I jump to second TabView, TabView did not refresh itself.What should I do , help me please

It seems like redux did not work with initialRouteStack.

initialRouteStack is used only during the initial render, hence its name. You probably want to reset the route stack. Go ahead and create a question on Stack Overflow if you find you need more help.