Relation posts does not exist

Hello,
I've been through blogo install and i am constantly coming to this error saying that relation posts does not exist when i run * rake db:migrate*
COuld you help please?

==<PHONE_NUMBER>5628 CreateBlogoTaggings: migrating ==============================
-- create_table("blogo_taggings")
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedTable: ERROR:  relation "posts" does not exist
: CREATE TABLE "blogo_taggings" ("id" serial primary key, "post_id" integer NOT NULL, "tag_id" integer NOT NULL, CONSTRAINT fk_blogo_taggings_post_id FOREIGN KEY ("post_id") REFERENCES "posts" ("id"), CONSTRAINT fk_blogo_taggings_tag_id FOREIGN KEY ("tag_id") REFERENCES "tags" ("id")) /usr/local/rvm/gems/ruby-2.1.3/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `async_exec'

Looks strange. At the point when CreateBlogoTaggings is being applied there is not posts table, and it should be used withing that migration. Can you ensure, that you haven't updated CreateBlogoTaggings manually?

Hello,
Thanx for your reply
No i haven't
I have done exactly as stated on the install guide
Help appreciated to sort the issue out
Thanx
Eric

where should table post ne created?
Is it possible to create it manually?
I can't really debug this issue
Eruc

Take a look at the migrations: https://github.com/greyblake/blogo/tree/master/db/migrate
Sorry, my bad.. Taggings are created at last. When tags and posts are created. Looks like you skipped CreatePosts migration. Make sure, that you have all these 4 migrations in your app, and they are in the same order.

Hi greyblake,
I have made sure i run the migrations one by one in the orfer provided
Three first migrations run perfectly
blogo_taggings migration return a "relation posts does not exist" error
Why is postgres looking for relation "posts" where it should look for "blogo_posts"??
Probably there is the problem
Thanx
Eric

Looks like problem is hidden here: https://github.com/greyblake/blogo/blob/master/db/migrate/20140218134620_create_blogo_taggings.rb#L14
Can you do rails console and type:
Blogo.table_name_prefix
Blogo::Post.table_name

What output do you get?

Hello
first comment gives "blogo_"
second gives "blogo_posts"
Eric

I have changed file db/migrate/20160408210824_create_blogo_taggings.blogo.rb
changing post_id to blogo_post_id and tag_id to blogo_tag_id and it works
But why do i have to change this?
class CreateBlogoTaggings < ActiveRecord::Migration
def change
taggings_table = "#{Blogo.table_name_prefix}taggings"
create_table(taggings_table) do |t|
  t.integer :blogo_post_id, null: false
  t.integer :blogo_tag_id , null: false
end

add_index taggings_table, [:blogo_tag_id, :blogo_post_id], unique: true

if defined?(Foreigner)
  tags_table  = "#{Blogo.table_name_prefix}tags"
  posts_table = "#{Blogo.table_name_prefix}posts"

  add_foreign_key taggings_table, tags_table , column: :blogo_tag_id
  add_foreign_key taggings_table, posts_table, column: :blogo_post_id
end

end
end
class CreateBlogoTaggings < ActiveRecord::Migration
def change
taggings_table = "#{Blogo.table_name_prefix}taggings"
create_table(taggings_table) do |t|
  t.integer :blogo_post_id, null: false
  t.integer :blogo_tag_id , null: false
end

add_index taggings_table, [:blogo_tag_id, :blogo_post_id], unique: true

if defined?(Foreigner)
  tags_table  = "#{Blogo.table_name_prefix}tags"
  posts_table = "#{Blogo.table_name_prefix}posts"

  add_foreign_key taggings_table, tags_table , column: :blogo_tag_id
  add_foreign_key taggings_table, posts_table, column: :blogo_post_id
end

end
end
Now it works

@jengweneg Hi, your solution does fix the issue for migration but it creates another issue when submitting a new post. how did u solve that?


multilingual linking support in web

if i try to write a 'х' in Russian, it types [
('х' and '[' are located on one place in keyboard)

Hey @bolDeju - I'm working on what might be a similar issue to this in #28.
Could you test the links referenced in this comment - specifically cm-patch and let me know if it addresses the issue you're encountering.

as you can see, no, it doesn't fix the issue

Just to confirm:

Typing [[ triggers the InsertLink dialog as expected
You are unable to type x at all - as it registers as [ instead?

All three

cm-patch
baseline
keypress
when typing '[[' or russian 'хх' trigger InsertLink dialog

I am unable to type 'х' only in markdown input (in InsertDialog I can type anything)

Hey @bolDeju  - I've setup a test environment, managed to replicate the issue and have identified the cause.
I'm working on a fix...
A few follow up questions:

How do you type [ on your layout?
What is the exact layout you are using? One of these? https://en.wikipedia.org/wiki/JCUKEN
What OS are you using?

When typing in russian, there is no way how i can type [, so i just change language to english.
Yes, I am using default russian JCUKEN.
I am using Pop!_OS 22.04 LTS x86_64

Thanks for the response!
I've implemented 3 different approaches for RU, which should maintain the DE fix. Could you test each and let me know which works and which doesn't.

cm-patch2: pass e.key to handler (with bracket cm-patch for DE)
keypress2: handle all bracket presses (no bracket cm-patch)
keypress3: handle bracket press (with bracket cm-patch for DE)

Also, seeing as you can't type [, I'm now thinking of adding a secondary keybinding to trigger LinkInsertion.

I've added a keybinding to trigger LinkInsertion:

keypress4: same as keypress3, but simulates [[ on Ctrl-i and Cmd-i

Could you test this as well?

I've tested everything, all three input options create this:

(everything is correct)
What about alternative shortcut, I think that should be something like Alt + [ or Alt Gr + [ (right alt) on EN keyboard layout because for most of the users default should be easy to remember on any layout.

What about alternative shortcut, I think that should be something like Alt + [ or Alt Gr + [ (right alt) on EN keyboard layout because for most of the users default should be easy to remember on any layout.

I'm experimenting withAlt+[, and it seems to work fine on EN and RU (ie. where the x key is on the RU layout).
DE results in a dead key press (where [ is on the EN layout). On DE, you need to press AltGr+8 for [.
IL doesn't work at all.
Ctrl+i seems to work fine on all the layouts I've tested (Linux, Chrome and Firefox).
Any other keybinding ideas? Also, can you think of any conflicts to Ctrl+i or Cmd+i ?

Also, can you think of any conflicts to Ctrl+i or Cmd+i
If you are going to implement WYSIWYG in editor, that could end in conflict with italics shortcut (very common)

I've found out that Ctrl+; or Ctrl+: or Ctrl+' or Ctrl+" isn't a keybinding in any app that I use, moreover it is somewhat similar to command in mode in vim and helix editors. BUT I think that [[ MUST stay as a keybinding as it is common in logseq-ish apps.
Little improvement which can make web interface much more productive is automatic creation of file from LinkInsertion menu: it will create a file with title from what was typed. (But I am aware that this will create a lot of empty files by link this and that user,  so there should be a prompt to create it)

Fixing RU layout (x and [)
I found a better way of addressing this issue (improved performance) over all the tests discussed previously, by moving the interception and handling up in the stack (no need to patch codemirror or parse key events). It also allows passthrough to the non-insert vim modes.
InsertLink keybinding
It turns out that Ctrl-i has a conflict - VimMode jumplist navigation.
I experimented with intercepting Alt-[ and sending the [ event to the editor, which could then be handled as usual. I liked this as it is very much inline with the current [[, but it doesn't work on same keyboard layouts as mentioned above, and I'd prefer to not add layout specific workarounds.
What I've ended up doing is adding an alternative keybinding Alt-k (in addition to [[ as I totally agree) which triggers the insertLink dialog. It works on all layouts I've tried. The rational for Alt-k is be semi-consistent with the global keybinding <space> n k which is the Links Finder.
Note creation from InsertLink dialog

Little improvement which can make web interface much more productive is automatic creation of file from LinkInsertion menu: it will create a file with title from what was typed. (But I am aware that this will create a lot of empty files by link this and that user, so there should be a prompt to create it)

This has overlap with https://github.com/alonswartz/notesium/issues/45.
It is a great idea, and shouldn't be too hard to implement. The same logic could be used with the regular Finder List dialog.
As for creating empty files, that is a concern. A 'ghost' note could be used (just like 'new' notes are currently handled - the filename is determined but the file is not written to disk until saved. It also begs the question, should the current note maintain focus, or should the new note get the focus.
Anyway, this is off-topic, better to be discussed in a dedicated issue.

I've created a PR: https://github.com/alonswartz/notesium/pull/77
The Github Action uploaded the build artifact (zipped Linux build), available here (scroll down to the Artifacts section).
Could you test it and let me know if works as expected?

I've tried it.

Problem of not being able to type russian 'х' is gone;
I am not able to use shortcut Alt-[
In vim mode i've found another bug (that is present in v 0.6.0 too)

Bug: if i try to trigger insertlink using <space> n k it is triggered, but I am typing in note from where it was triggered, not in menu. Tried in Zen browser (Firefox 130.0) and Firefox 131.0.3.

Thanks for testing.
Apologies if I wasn't clear - the alternative keybinding for InsertLink is Alt-k.
I'll look into the <space> n k issue.

@alonswartz
My bad, mistype. I've meant Alt-k.
It is not working both for RUS and EN layouts.

My bad, mistype. I've meant Alt-k. It is not working both for RUS and EN layouts.

Really? Did you try both Alt keys?
Regarding <space> n k - it displays the links associated with the currently active note. If there aren't any incoming or outgoing links - it will be completely blank. It will also be completely blank if the note has never been saved (or what has been saved did not have an outgoing link).
If that is what you're experiencing, I'd probably consider it a UX bug.
When there are links associated, it should look like this: https://www.notesium.com/images/screenshot-1702908878.png

Oh wait, my bad (Alt-k). I'll push a fix in a minute...

Sorry about that. This should work: https://github.com/alonswartz/notesium/actions/runs/11575522720?pr=77

If that is what you're experiencing, I'd probably consider it a UX bug.

Yes, I retested everything.

Bug: if i try to trigger insertlink using  n k it is triggered, but I am typing in note from where it was triggered, not in menu. Tried in Zen browser (Firefox 130.0) and Firefox 131.0.3.

I've found more info: it is triggered correctly, and even typing pointer is set there, but after a second it loses focus.

Thanks for the clarification. I can duplicate the issue in firefox (chrome doesn't exhibit this behavior). I'll look into it.

Sorry about that. This should work: https://github.com/alonswartz/notesium/actions/runs/11575522720?pr=77

Everything works! Thanks.

Shortcut works.
No problems with RUS layout.


Loading scenes crashing in Godot 4.3

I'm attempting to utilize the loading or loading with initialization setups, and both are always falling into the "Scene Manager Error: for some reason, loading failed, I don't know why condition. The demo project has the same issue.
I tested the demo project in 4.2 and both loading setups work, so it seems like something in 4.3 has changed and is affecting the way loading is currently written.

Hello,
Reported this issue, hopefully they fix it soon.

Well, They did fix it...
That was fast.
I'll reopen this if the problem in the new version still exists.

Awesome! Thanks for sending it that way.

Just wanted to update here, the fix is in place for the full release of 4.3 and working as expected again :D


Fix podAnnotations for keda deployment

I've faced an issue with setting up kiam podAnnotation for keda deployment.
Got the following error:
Error: template: keda/templates/12-keda-deployment.yaml:30:21: executing "keda/templates/12-keda-deployment.yaml" at <.Values.podAnnotations.keda>: wrong type for value; expected string; got map[string]interface {}

For metricsAdapter everything worked as expected.
So replacing tpl function with toYaml must resolve the issue.

Thanks!


Disappearing Sound Act

Whenever I speak to an NPC that is relevant enough for the game to zoom in on, the NPC's lips will move but it's voice lines will not play. Sometimes it's voice lines will reappear midway through the dialouge animation and other times it will appear after the NPC finishes moving it's lips.

Game Version
1.10.0
New Game
Yes
Reproduction Steps
Try speaking to any named NPC such as Sam coe or a vendor.

I had this issue also but only when using my sound over the HDMI connection.  Headphones worked fine for me.  The thing that fixed it was going into sound settings in Windows for the sound output I was using and going to Advanced to set the default format for sample rate and bit depth to 24bit 48kHz.  This fixed the voice issue for me.


Close IO streams after the plugin has finished reading and writing

Goal
Closes IO streams after the plugin has finished reading and writing, in a finally block, which is guaranteed to be executed last.
Changeset

Altered existing use of Closeable values so that close is called in a try-finally block.
Added catch block where this was previously missing, that logs a warning

Tests
Ran mazerunner scenarios.
Review

For the submitter, initial self-review:

[ ] Commented on code changes inline explain the reasoning behind the approach
[x] Reviewed the test cases added for completeness and possible points for discussion
[x] A changelog entry was added for the goal of this pull request
[x] Check the scope of the changeset - is everything in the diff required for the pull request?
This pull request is ready for:

[x] Initial review of the intended approach, not yet feature complete
[x] Structural review of the classes, functions, and properties modified
[x] Final review

For the pull request reviewer(s), this changeset has been reviewed for:

[ ] Consistency across platforms for structures or concepts added or modified
[ ] Consistency between the changeset and the goal stated above
[ ] Internal consistency with the rest of the library - is there any overlap between existing interfaces and any which have been added?
[ ] Usage friction - is the proposed change in usage cumbersome or complicated?
[ ] Performance and complexity - are there any cases of unexpected O(n^3) when iterating, recursing, flat mapping, etc?
[ ] Concurrency concerns - if components are accessed asynchronously, what issues will arise
[ ] Thoroughness of added tests and any missing edge cases
[ ] Idiomatic use of the language

Should we also close this reader https://github.com/bugsnag/bugsnag-android-gradle-plugin/pull/126/files#diff-ff274d12fbfb73a5d6888d7dc318c167R72

Thanks, good catch! I've updated the PR to close the additional reader.


Error installing ubuntu 22.04 with script

Hello.
I'm trying to install MiningCore on ubuntu 22.04.1.
Using installation script and it never completes.
I tried manually too, but I always get the same error:
/home/edvaldo/miningcore/src/Miningcore/Miningcore.csproj(123,9): error MSB3073: The command "(cd /home/edvaldo/miningcore/src/Miningcore/ && sh build-libs-linux.sh bin/ Release/net6.0/)" exited with code -1.
I looked for an old way that we had to install but I couldn't find it anymore.
``
Any light on something I might be doing wrong?
I'm installing on an exsi vmware

you install it on VM ? if yes, the hypervisor is proxmox  or vmware ?

you install it on VM ? if yes, the hypervisor is proxmox or vmware ?

Hi thanks for replying.
Installing on Vmware, ESXI.
I also tried to run on windows on my machine without virtualization but I got the same error.

solved? have same problem ubuntu 20.04

solved? have same problem ubuntu 20.04

I did not make it.
I tried on other versions of ubuntu and on windows and it keeps the same error

I have the same problem and I can't find the solution. I think it's an error related to the NET6 SDK.

I had the same problem and fixed go around it as follows:
Run the install script until it fails.
cd ./src/Miningcore
cp ./bin/Release/net6.0/librandomarq.so ./
sh build-libs-linux.sh bin/Release/net6.0/

I had the same problem and fixed it as follows:
Run the install script until it fails. cd ./src/Miningcore cp ./bin/Release/net6.0/librandomarq.so ./ sh build-libs-linux.sh bin/Release/net6.0/

Hello.
Thank you for your help.
I'll test it as soon as I have free time and report back here.
hug

Please specify how you fixed it I have the same problem?

What kind of mistake is this?

I had the same problem and fixed it as follows:
Run the install script until it fails. cd ./src/Miningcore cp ./bin/Release/net6.0/librandomarq.so ./ sh build-libs-linux.sh bin/Release/net6.0/

Hello.
Thank you for your help.
I'll test it as soon as I have free time and report back here.
hug

Hi, did it worked?

У меня была та же проблема, и я исправил ее следующим образом:
Запускайте сценарий установки до тех пор, пока он не завершится ошибкой. cd ./src/Miningcorecp ./bin/Release/net6.0/librandomarq.so ./sh build-libs-linux.sh bin/Release/net6.0/

Not going to no BUILD folder after build.

I had the same problem and fixed it as follows:
Run the install script until it fails. cd ./src/Miningcore cp ./bin/Release/net6.0/librandomarq.so ./ sh build-libs-linux.sh bin/Release/net6.0/

cp: cannot stat './bin/Release/net6.0/librandomarq.so': No such file or directory
Not wroking

Tive o mesmo problema e resolvi da seguinte forma:
Execute o script de instalação até que ele falhe. cd ./src/Miningcore cp ./bin/Release/net6.0/librandomarq.so ./ sh build-libs-linux.sh bin/Release/net6.0/

Olá.
Obrigado pela ajuda.
Vou testar assim que tiver tempo livre e volto aqui para contar.
abraço

Olá, funcionou?

Hello. Sorry, I'm on a trip and I still can't test it.
I'll be back next week, as soon as I get back I'll be able to test it

Try to just comment out last four strings here https://github.com/oliverw/miningcore/blob/2311784f0eb5e5f6180a5ac12eec2c9a270f9ca5/src/Miningcore/build-libs-linux.sh#L27 related to cryptonotes

this fork works fine
https://github.com/lurchinms/miningcore_kriptokyng

Had issues with this a while back. Check and see if everything gets built to the
/Miningcore/bin/Release/net6.0 folder and if so just copy everything in there to the build folder and everything will work fine.  I used that as a temp fix until I was able to get it to build correctly. If I remember correctly there was some kind of ownership or permissions issue that prevented it from either accessing or writing to one of the folders.  If that doesn't work you can try my version out and see if it builds for you.

I have the same problem on ubuntu 20.04 i tried following the tips but no solution found

this fork works fine https://github.com/lurchinms/miningcore_kriptokyng

I did several tests.
Only this one worked for me.


Support for tintColor

UITextField and UITextView both allow setting a tintColor to adjust the caret and text selection handle colors. For RichEditorView to fit in better with the stand UIKit elements, it would be helpful for RichEditorView respond to tintColor in the same fashion.

I'm not sure this is currently possible 😞

::selection wasn't working
caret-color also seems unsupported
This guy couldn't figure it out.

I really like this idea and I'd like to support it, but I don't know how. Let me know if you find anything good, and we can reopen and fix it.


Exclude and include seem to be swapped?

I've noticed that my exclude = {} list for require("luasnip.loaders.from_snipmate") is no longer working as expected, breaking a setup of dynamically loading extra snippets depending on the filetype...
Debugging the issue I found that #1077 mentions that exclude/include code was adjusted.
As it turns out: Setting include does what exclude is supposed to do and vice-versa.
I further checked and it seems that this issue was introduced with commit fb0714da08d98dbcc12415595ddc8471d8bbd8de . Yet, apparently that commit claims to fix this issue?
Still, if I checkout the commit prior to that one, exclude and include work as expected.

Weird.. looking at the code, everything seems to be in order.
Could you show your code and describe the expected behaviour?

My exact code doesn't really matter much, I can reproduce it with a very simple setup.
This works fine and as expected when opening any MD. (MD snippets do load, "all" as well):
require("luasnip.loaders.from_snipmate").lazy_load()

This actually causes all MD snippets to still load, it also loads the "all" snippets. Both my personal ones and those provided by honza/vim-snippets:
require("luasnip.loaders.from_snipmate").lazy_load({
	exclude = {  "markdown" },
})

And this actually causes no MD snippet (nor any other ones) to load, just as if it were exclude instead of include:
require("luasnip.loaders.from_snipmate").lazy_load({
	include = {  "markdown" },
})

Here is the lazy module in which I setup LuaSnip:

cmp.lua
```lua
-- Completion engine setup
local M = {
	"hrsh7th/nvim-cmp",
	dependencies = {
		{
			"L3MON4D3/LuaSnip",
			dependencies = {
				"honza/vim-snippets",
			},
		},
		{ "hrsh7th/cmp-buffer" },
		{ "hrsh7th/cmp-path" },
		{ "hrsh7th/cmp-nvim-lsp" },
		{ "saadparwaiz1/cmp_luasnip" },
		{ "rcarriga/cmp-dap" },
	},
}
function M.config()
local cmp = require("cmp")
local snip = require("luasnip")
-- !!! Here i pasted the snippets above !!!
require("luasnip.loaders.from_snipmate").lazy_load({
	exclude = {  "markdown" },
})

local check_backspace = function()
	local col = vim.fn.col(".") - 1
	return col == 0 or vim.fn.getline("."):sub(col, col):match("%s")
end

cmp.setup({
	snippet = {
		expand = function(args)
			snip.lsp_expand(args.body)
		end,
	},
	mapping = cmp.mapping.preset.insert({
		["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }),
		["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }),
		["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
		["<S-CR>"] = cmp.mapping({ i = cmp.mapping.abort(), c = cmp.mapping.close() }),
		["<CR>"] = cmp.mapping.confirm({ select = true }),
		["<Tab>"] = cmp.mapping(function(fallback)
			if cmp.visible() then
				cmp.select_next_item()
			elseif snip.expandable() then
				snip.expand({})
			elseif snip.expand_or_jumpable() then
				snip.expand_or_jump()
			elseif check_backspace() then
				fallback()
			else
				fallback()
			end
		end, { "i", "s" }),
		["<S-Tab>"] = cmp.mapping(function(fallback)
			if cmp.visible() then
				cmp.select_prev_item()
			elseif snip.jumpable(-1) then
				snip.jump(-1)
			else
				fallback()
			end
		end, { "i", "s" }),
	}),
	sources = {
		{ name = "nvim_lsp" },
		{ name = "luasnip" },
		{ name = "buffer" },
		{ name = "path" },
	},
	formatting = {
		fields = { "kind", "abbr", "menu" },
		format = function(entry, vim_item)
			vim_item.kind = ({
				Text = "󰉿",
				Method = "󰊕",
				Function = "󰊕",
				Constructor = "",
				Field = "",
				Variable = "",
				Class = "󰌗",
				Interface = "",
				Module = "",
				Property = "",
				Unit = "",
				Value = "󰎠",
				Enum = "",
				Keyword = "󰌋",
				Snippet = "",
				Color = "󰏘",
				File = "",
				Reference = "",
				Folder = "",
				EnumMember = "",
				Constant = "",
				Struct = "",
				Event = "",
				Operator = "󰆕",
				TypeParameter = "󰊄",
				Codeium = "󰚩",
				Copilot = "",
			})[vim_item.kind]
			vim_item.menu = ({
				nvim_lsp = "[LSP]",
				luasnip = "[SNIP]",
				buffer = "[BUFFER]",
				path = "[PATH]",
			})[entry.source.name]
			return vim_item
		end,
	},
	window = {
		documentation = cmp.config.window.bordered(),
	},
	enabled = function()
		return vim.api.nvim_buf_get_option(0, "buftype") ~= "prompt" or require("cmp_dap").is_dap_buffer()
	end,
})

-- No buffer completion for word-only files
cmp.setup.filetype({ "markdown", "text" }, {
	sources = cmp.config.sources({
		{ name = "nvim_lsp" },
		{ name = "luasnip" },
		{ name = "path" },
	}),
})

-- DAP REPL Completion
cmp.setup.filetype({ "dap-repl", "dapui_watches", "dapui_hover" }, {
	sources = {
		{ name = "dap" },
		{ name = "luasnip" },
		{ name = "path" },
	},
})

-- Custom rules for appending pairs when choosing a completion option
local autopair_status, cmp_autopairs = pcall(require, "nvim-autopairs.completion.cmp")
if autopair_status then
	local handlers = require("nvim-autopairs.completion.handlers")
	cmp.event:on(
		"confirm_done",
		cmp_autopairs.on_confirm_done({
			filetypes = {
				plaintex = {
					["{"] = {
						kind = {
							cmp.lsp.CompletionItemKind.Function,
							cmp.lsp.CompletionItemKind.Method,
						},
						handler = handlers["*"],
					},
				},
				tex = {
					["{"] = {
						kind = {
							cmp.lsp.CompletionItemKind.Function,
							cmp.lsp.CompletionItemKind.Method,
						},
						handler = handlers["*"],
					},
				},
				sh = {
					[""] = {
						kind = {
							cmp.lsp.CompletionItemKind.Function,
							cmp.lsp.CompletionItemKind.Method,
						},
						handler = handlers["*"],
					},
				},
			},
		})
	)
end

end
return M
</details>

Ahh okay, I didn't look at the right places :sweat_smile:
The order is correct, the mistake was that I misused the api in a few places (passed path instead of filetype :facepalm:)
It should work now!


review annotation spec

We will be working on a new version of record and search (i.e. recordset) apps. These apps will implement annotations as listed in the annotation doc:  https://github.com/informatics-isi-edu/ermrest/blob/master/user-doc/annotation.md
Please review the document and identify missing features. A few of them have been identified including:

table order
column order and row order of the result set and facets
a mechanism to navigate from each row in the result set to a different table
association tables to be used for faceting/filtering and/or search result
result list includes columns from related/associated tables

chaise

fine-grain chaise config

on-demand result
customized angular css/view (e.g. html "class" assignments) to change the table view.

unique keys/composite keys constraints

Others

format string instead of {{name}} templates
sql comment override? Chaise or Ermrest?
Table display annotation in addition to general display?

I would find this document a bit easier to read if we had a brief description of the purpose of each annotation in each section.

2016: visible columns and 2016: foreign keys have been added to the annotation document. Please review those two annotation spec. We will go with this unless anyone objects by wed.

I am closing this issue and put the content on the wiki instead.


Share generated pdf

How can i share PDF generated by this library

Please check in the new version

Hello @Gkemon !
Currently the library allows to share or open the pdf document created by default is in open, we could add a third option that is "nothing", to do nothing at the end of generating it, this would be useful when the same application manages the newly created file.

Hi @hvcoder9  and @hvcoder9  , I add this enhancement. Please check.
Thank you all for the support. Please kindly star and fork and send me the app links you all are using it. If there is no confidentiality then I will list them in my readme.md file.


0.20 release

Debian bookworm was released a week ago now, so we're able to release 0.20 whenever suits us and send the MSRV bump downstream. I don't think there's pressure to release right away, so here's a list of proposal of items I'd hope to ship in this release.
Given the new support for __eq__ and the discussions around __next__ / __anext__, I think it would be nice thematically to push a group of improvements to protocol methods in 0.20. Namely, I'm aware of possible changes to:

[ ] __del__ - #2484 and also a GC bug #3064 which I think both require a rework to our tp_dealloc
[ ] __next__ and __anext__ - possible redesign as discussed in #3190
[x] #[new] (i.e. __new__) - #2384
[ ] __buffer__ and __release_buffer__ - #3148

I've ordered these by my own opinion of their priority (which will differ for others). I'd like to aim to implement these in the same order over the next few weeks, and then prepare the release.
If anyone would like to see other items in the release, or to release sooner without these, please comment. Similarly if anyone wants to own the implementation for anything listed here, feel free to stake your claim so that we don't accidentally push over each other 😄
Other possible items (from discussion below):

[ ] #3061
[ ] #3325

I would like to nominate completing the license change for the 0.20 release.

I think that'll be subject to the outcome of #2384

Also worth mentioning https://github.com/PyO3/pyo3/issues/3268.

Some resolution / mitigation for #3325 would be desirable, I'll add to the OP.

As the changes for #3325 have the potential for quite a few edge cases which will cause disruption to user code, and we have quite a lot already merged waiting to release, I'm wondering about switching priorities up and just helping get #3325 resolved and then cutting a release.
We also have a plan for the new higher-performance API in #3382 which I think is both quite a lot of work and also likely to yield some great improvements, so I'm quite keen to get on with the 0.21 release cycle.
The rest of the trait changes for __next__, __anext__ etc can land in 0.21 if they're not too breaking, else maybe they're better to land in 0.22 once the dust has settled from the API rework.
Any objections? :)

This is fine by me! I'm not going to get back to working on that PR until
next week.
I also think that if we're not able to remove the usage of AsPyPointer
entirely, marking it unsafe is a fine idea.
On Sat, Aug 19, 2023, 8:14 AM David Hewitt @.***> wrote:

As the changes for #3325 https://github.com/PyO3/pyo3/issues/3325 have
the potential for quite a few edge cases which will cause disruption to
user code, and we have quite a lot already merged waiting to release, I'm
wondering about switching priorities up and just helping get #3325
https://github.com/PyO3/pyo3/issues/3325 resolved and then cutting a
release.
We also have a plan for the new higher-performance API in #3382
https://github.com/PyO3/pyo3/issues/3382 which I think is both quite a
lot of work and also likely to yield some great improvements, so I'm quite
keen to get on with the 0.21 release cycle.
The rest of the trait changes for next, anext etc can land in
0.21 if they're not too breaking, else maybe they're better to land in 0.22
once the dust has settled from the API rework.
Any objections? :)
—
Reply to this email directly, view it on GitHub
https://github.com/PyO3/pyo3/issues/3246#issuecomment-1684930563, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAAGBGBXD2FSYVYV5NSMP3XWCUZFANCNFSM6AAAAAAZI2FQOA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

As far as I'm currently thinking, I think once the following are reviewed / reworked / merged I will create a release PR:

#3446
#3455
#3458

(All three close bugs which require small API adjustments to resolve.)


Add a more easy to use setup

This uses gunicorn+nginx so it's a bit more production ready than runserver.
Super easy to setup now as well, only issue is with permissions of the media folder unfortunately.
Also uses postgres for the database :)

Really nice 👍, thanks for the PR. I would like to keep the SQLite database, would it be too much to add an environment variable to select between 'development' and 'production' modes? This way we can keep the settings separated.

I think I may have noticed an error. I think you may be running 2 instances of the server at the same time.
In Dockerfile, you have the line CMD ["python", "./manage.py", "runserver", "8000", "--noreload"] which starts the server. But you also run init.sh in docker-compose.yml, which starts the server using gunicorn.
I'm not very familiar with Docker, so I could be wrong.

Ah, yeah, that's left over from my testing. I'll submit a PR to fix that.
On Oct 30 2018, at 5:43 pm, chibicitiberiu<EMAIL_ADDRESS>wrote:

I think I may have noticed an error. I think you may be running 2 instances of the server at the same time.
In Dockerfile, you have the line CMD ["python", "./manage.py", "runserver", "8000", "--noreload"] which starts the server. But you also run init.sh in docker-compose.yml, which starts the server using gunicorn.
I'm not very familiar with Docker, so I could be wrong.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub (https://github.com/chibicitiberiu/ytsm/pull/1#issuecomment-434234258), or mute the thread (https://github.com/notifications/unsubscribe-auth/AKB4LYN9lSXBhcDfwf77VnIAlUTgHU0Yks5uqB9HgaJpZM4YBQZ-).

Ok, great, thanks 👍

A couple things I'd like to throw in:

I think it would be better to only copy in the app and not the config
I think the docker image itself should be responsible for running the init.sh and not the docker compose file
I think the docker image should be published to docker hub from this repo (Only @chibicitiberiu can set this up, I setup a fork to build but only he or someone with repo access can do that so that it's up to date)
Config/data should be VOLUME'd and port should be EXPOSED'd

All of this would allow for someone to do the following:

$ docker pull chibicitiberiu/ytsm
$ docker run chibicitiberiu/ytsm -v /path/to/my/config:/config -v /path/to/my/media:/media

The docker compose file is a nice touch but I think it currently has too much "Responsibility" as in the docker image should stand on it's own and the docker compose file should make use of that image and setup other things (nginx/db) so that people can use their own reverse proxy/db but the compose file is an example of how to get things up and running quick (to that end I think the default should be sqlite with an option to use another DB).
I'm not sure if this is the best place to discuss this and I'm happy to move the discussion to an issue or elsewhere.


releases from 2605.5.0 onwards no longer has /etc/localtime

Description
When deploying AWS Flatcar-stable-2605.5.0-hvm AMI. I noticed that the symbolic for /etc/localtime was missing. This was there on the last releases.
Impact
Containers requiring /etc/localtime are failing.
Environment and steps to reproduce

Set-up: Flatcar-stable-2605.5.0-hvm on AWS
Task: Deploy node-problem-detector

Expected behavior
$ ls -ld /etc/localtime
lrwxrwxrwx. 1 root root 25 Jan 20 14:33 /etc/localtime -> ../usr/share/zoneinfo/UTC

So, I checked this out and found that on the previous stable release (2512.5.0) the file didn't exist in the image, but it got created on boot. The timestamp resolution is 1 second and a lot of things happen in that second, so I couldn't really pinpoint what created the file, but it seems to be mostly stuff that happens in the initrd.
I checked other versions and I found that:

2513.0.0 alpha -> /etc/localtime is not created
2492.0.0 -> /etc/localtime is created

Here's the release notes for 2513.0.0: https://www.flatcar-linux.org/releases/#release-2513.0.0
It's the release where we updated systemd from 241 to 243, and I suspect that's when the symlink creation got dropped, although I don't see anything about it in the release notes.
I found this commit thats seem to be related, but I'm pretty sure it was included first in 244: https://github.com/systemd/systemd/pull/14010

So, I checked this out and found that on the previous stable release (2512.5.0) the file didn't exist in the image, but it got created on boot. The timestamp resolution is 1 second and a lot of things happen in that second, so I couldn't really pinpoint what created the file, but it seems to be mostly stuff that happens in the initrd.
I checked other versions and I found that:

2513.0.0 alpha -> /etc/localtime is not created
2492.0.0 -> /etc/localtime is created

Here's the release notes for 2513.0.0: https://www.flatcar-linux.org/releases/#release-2513.0.0
It's the release where we updated systemd from 241 to 243, and I suspect that's when the symlink creation got dropped, although I don't see anything about it in the release notes.
I found this commit thats seem to be related, but I'm pretty sure it was included first in 244: https://github.com/systemd/systemd/pull/14010

I had this issue when deploying Inspektor Gadget on Flatcar alpha 3127.0.0 with Typhoon. Symptoms:
$ kubectl get events -n gadget
LAST SEEN   TYPE      REASON             OBJECT             MESSAGE
2s          Warning   Failed             pod/gadget-vgrkg   Error: failed to create containerd task: failed to create shim: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/etc/localtime" to rootfs at "/etc/localtime": mount /etc/localtime:/etc/localtime (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown

On the host:
# ls -ld /etc/localtime
drwxr-xr-x. 2 root root 4096 Feb 10 15:36 /etc/localtime

Given the date, I suspect it is not part of the Flatcar image, but was created automatically as a directory by docker (or another container runtime): docker automatically creates a directory on the host when it does not exist and it is the source of a volume.
In the gadget container image:
# ls -l /etc/localtime
lrwxrwxrwx. 1 root root 27 Feb  8 15:41 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC
# ls -l /usr/share/zoneinfo/Etc/UTC
-rw-r--r--. 1 root root 118 Oct 25 23:58 /usr/share/zoneinfo/Etc/UTC

And the deployment file has:
        volumeMounts:
        - name: localtime
          mountPath: /etc/localtime
      volumes:
      - name: localtime
        hostPath:
          path: /etc/localtime

Since /etc/localtime on the host is a directory and /etc/localtime in the container is a regular file (a symlink pointing to a regular file), it's not possible to make a bind-mount between the two.
I guess Flatcar should restore this symlink?


Table Styling and Formatting should work for non-js use cases

I have issues related to formatting:

Custom column widths. As you can see I am trying to set column width to 50 but whatever number I put in, nothing changes
Custom font size. I am trying to set the font size to 12 but it keeps being 8
Would like to define font info / formatting only once per whole HTML object and not multiple times.
I tried to use New-HTMLTableStyle with hopes that I could set my fonts for whole table in one place but it does not work and I have to set the fonts by using New-HTMLTableHeader and New-HTMLTableContent. That way I can actually set the font type but custom font size never works.

$UniqueRecipients | ForEach-Object {
        $Mail = $_
        # Construct HTML object
        $EmailTable = $Table | Where-Object {$_.Mail -eq $Mail}
        $Html = New-HTML {
            New-HTMLText -Text "Your server(s) just started patching." -FontFamily 'Calibri' -FontStyle 'normal' -FontSize 12
            New-HTMLTable -DataTable $EmailTable -HideFooter {
                New-HTMLTableStyle -Type Table -FontFamily 'Calibri' -FontStyle 'normal' -FontSize 12
                New-HTMLTableColumnOption -AllColumns -Width 50
                New-HTMLTableHeader -Names ServerFQDN,PatchingStartDateTime,SkipXmonths,UtcOffset -FontFamily 'Calibri' -FontStyle 'normal' -FontSize 12
                New-HTMLTableContent -ColumnIndex 1,2,3,4 -FontFamily 'Calibri' -FontStyle 'normal' -FontSize 12
            }
        }
       Send-MailMessage -From<EMAIL_ADDRESS>-To $Mail -Subject "OnDemand Patching - Startup notification" -Body $Html -SmtpServer smtp.server.com -Credential $Creds -BodyAsHtml
    }

Short answer:
First thing to notice is that New-HTMLTableColumnOption works on JS level which means - no email support.
2nd thing to notice is that New-HTMLTableStyle currently only supports DataTables (and it's "CSS") and won't work for email which uses different CSS
Long answer:
PSWriteHTML supports 2 table types (or 3 if you really go into details). JS version based on DataTables.net, CSS version when JS is not available and Simplify version to force it to non-js version.
This brings several limitations. If you would run the code above without Send-MailMessage and simply use -ShowHTML switch for New-HTML you may see that it actually does what it should, but once you push it to email things get side ways for two reasons. No JS in Email Clients, and CSS support in emails is some crippled version that needs 50 workarounds to be usable.
We should get those commands such as style, column options to be applicable to all 3 options - but it requires lots of testing and different approaches. New-HTMLTableContent should work but it's pretty heavy to be honest.

I ended up using this:
$UniqueRecipients | ForEach-Object {
        $Mail = $_
        # Send email
        $EmailTable = $Table | Where-Object {$_.Mail -eq $Mail}
        $Html = New-HTML {
            New-HTMLSpanStyle -Content {
                New-HTMLText -Text "Text field 1."
                New-HTMLText -Text "Text field 2"
                New-HTMLTable -DataTable $EmailTable -HideFooter {
                    New-HTMLTableHeader -Names ServerFQDN,PatchingStartDateTime,SkipXmonths,UtcOffset -FontFamily 'Calibri' -FontStyle 'normal' -FontSize 16 -BackGroundColor SkyBlue
                    New-HTMLTableContent -ColumnIndex 1,2,3,4 -FontFamily 'Calibri' -FontStyle 'normal' -FontSize 16
                }
                New-HTMLText -Text "Text field 3"
                New-HTMLText -Text "Text field 4"
                New-HTMLText -Text "Text field 5"
                New-HTMLText -Text "Text field 6"
            } -FontFamily 'Calibri' -FontStyle 'normal' -FontSize 16
        }
        Send-MailMessage -From<EMAIL_ADDRESS>-To $Mail -Subject "OnDemand Patching - Startup notification" -Body $Html -SmtpServer smtp.com -Credential $Creds -BodyAsHtml
    }

You still have to define the font/formatting twice. Once per table and once per the Span but I can live with that.
Also regarding the font size, it turns out it was working well all along, but to achieve real font size 12 I had to go with number 16. And the thing with resizing columns I dropped altogether because anyway the table and columns will adjust nicely according to screen/window size. So all is good. Thanks

You can use FontSize 12px or 12pt depending what you want. If you provide int it forces it to px hence the behavior. There is translation process below it. Also it's possible to use other values 1em, or percentages. Basically whatever CSS provides.

I think you could use
EmailBody {
    New-HTMLTable
} -FontSize 16

To get what you need without the new-htmltablecontent. EmailBody uses a bit different code and gets rid of any JS code which is useless anyways.

Thanks a lot. Ended up using EmailBody.
So there is no way of setting maximum column width for a table ?

Not at the moment, but feel free to open up an issue, and I'll keep thinking about it.

https://stackoverflow.com/questions/928849/setting-table-column-width

TableStyling


[WIP] Implement Crawler for v51 network

What was wrong?
Issue #
How was it fixed?
Summary of approach.
To-Do

[ ] Clean up commit history

[ ] Add entry to the release notes

Cute Animal Picture

currently, this is blocked by #84
It ends up exceeding the child task limit for async-service otherwise:
Traceback (most recent call last):
  File "/home/piper/python-environments/ddht/bin/ddht", line 33, in <module>
    sys.exit(load_entry_point('ddht', 'console_scripts', 'ddht')())
  File "/home/piper/projects/ddht/ddht/_boot.py", line 59, in _boot
    trio.run(manager.run)
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/trio/_core/_run.py", line 1896, in run
    raise runner.main_task_outcome.error
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/trio.py", line 183, in run
    self._total_task_count = 0
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/trio/_core/_run.py", line 741, in __aexit__
    raise combined_error_from_nursery
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/base.py", line 324, in _run_and_manage_task
    await task.run()
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/trio.py", line 76, in run
    await self._async_fn(*self._async_fn_args)
  File "/home/piper/projects/ddht/ddht/_boot.py", line 27, in run
    await _main()
  File "/home/piper/projects/ddht/ddht/_boot.py", line 13, in _main
    await main()
  File "/home/piper/projects/ddht/ddht/main.py", line 54, in main
    await args.func(args, boot_info)
  File "/home/piper/projects/ddht/ddht/cli_commands.py", line 28, in do_main
    await manager.wait_finished()
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_generator/_util.py", line 42, in __aexit__
    await self._agen.asend(None)
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/trio.py", line 411, in background_trio_service
    await manager.stop()
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/trio/_core/_run.py", line 741, in __aexit__
    raise combined_error_from_nursery
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/trio.py", line 183, in run
    self._total_task_count = 0
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/trio/_core/_run.py", line 741, in __aexit__
    raise combined_error_from_nursery
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/base.py", line 324, in _run_and_manage_task
    await task.run()
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/base.py", line 169, in run
    await self.child_manager.run()
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/trio.py", line 183, in run
    self._total_task_count = 0
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/trio/_core/_run.py", line 741, in __aexit__
    raise combined_error_from_nursery
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/base.py", line 324, in _run_and_manage_task
    await task.run()
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/base.py", line 169, in run
    await self.child_manager.run()
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/trio.py", line 183, in run
    self._total_task_count = 0
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/trio/_core/_run.py", line 741, in __aexit__
    raise combined_error_from_nursery
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/base.py", line 324, in _run_and_manage_task
    await task.run()
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/base.py", line 169, in run
    await self.child_manager.run()
  File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/trio.py", line 205, in run
    raise trio.MultiError(
trio.MultiError: TooManyChildrenException("Tried to add more than 1000 child tasks. Most common tasks: [('_monitor_session_timeout[daemon=False]', 998), ('_monitor_hanshake_completions[daemon=True]', 1), ('_handle_inbound_messages[daemon=True]', 1), ('_handle_inbound_envelopes[daemon=True]', 1)]"), TooManyChildrenException("Tried to add more than 1000 child tasks. Most common tasks: [('_monitor_session_timeout[daemon=False]', 999), ('_monitor_hanshake_completions[daemon=True]', 1), ('_handle_inbound_messages[daemon=True]', 1)]")

Details of embedded exception 1:

  Traceback (most recent call last):
    File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/base.py", line 324, in _run_and_manage_task
      await task.run()
    File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/trio.py", line 76, in run
      await self._async_fn(*self._async_fn_args)
    File "/home/piper/projects/ddht/ddht/v5_1/dispatcher.py", line 203, in _handle_outbound_messages
      sessions = self._get_sessions_for_outbound_message(message)
    File "/home/piper/projects/ddht/ddht/v5_1/dispatcher.py", line 344, in _get_sessions_for_outbound_message
      self.manager.run_task(self._monitor_session_timeout, session)
    File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/trio.py", line 288, in run_task
      self._common_run_task(task)
    File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/base.py", line 289, in _common_run_task
      self._add_child_task(task.parent, task)
    File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/base.py", line 304, in _add_child_task
      raise TooManyChildrenException(
  async_service.exceptions.TooManyChildrenException: Tried to add more than 1000 child tasks. Most common tasks: [('_monitor_session_timeout[daemon=False]', 1001)]

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/base.py", line 335, in _run_and_manage_task
      self._add_child_task(new_parent, child)
    File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/base.py", line 304, in _add_child_task
      raise TooManyChildrenException(
  async_service.exceptions.TooManyChildrenException: Tried to add more than 1000 child tasks. Most common tasks: [('_monitor_session_timeout[daemon=False]', 998), ('_monitor_hanshake_completions[daemon=True]', 1), ('_handle_inbound_messages[daemon=True]', 1), ('_handle_inbound_envelopes[daemon=True]', 1)]

Details of embedded exception 2:

  Traceback (most recent call last):
    File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/base.py", line 335, in _run_and_manage_task
      self._add_child_task(new_parent, child)
    File "/home/piper/python-environments/ddht/lib/python3.8/site-packages/async_service/base.py", line 304, in _add_child_task
      raise TooManyChildrenException(
  async_service.exceptions.TooManyChildrenException: Tried to add more than 1000 child tasks. Most common tasks: [('_monitor_session_timeout[daemon=False]', 999), ('_monitor_hanshake_completions[daemon=True]', 1), ('_handle_inbound_messages[daemon=True]', 1)]


make-mo: Add option to specify filename

Feature Request

[x] Yes, I reviewed the contribution guidelines.

Describe your use case and the problem you are facing
I'm localizing a WordPress theme that unfortunately cannot be hosted on WP.org due to organisation policy. I am trying to migrate from a collection of tools to the i18n command. I need to create .mo file to be loaded with load_theme_textdomain(). My .po files are called like theme-slug-cs_CZ.po (so theme slug + locale name), however, the load_theme_textdomain() function requires the .mo file to be called just cs_CZ.mo (so just locale name). This requires me to strip the theme slug from all .mo files
Describe the solution you'd like
I'd like to see the option to use just the locale name for the make-mo command

I‘d be open for a PR that provides an option to override the name.
But why not just rename the PO file?

Yeah, a rename would solve the issue, true. I thought the convention was to include the plugin/theme name, though - I don't know why I think that, I found e.g. https://developer.wordpress.org/plugins/internationalization/localization/#translate-the-po-file now...

If you provide your own translation files, the file name convention is <slug>-<locale>.mo for plugins and <locale>.mo for themes. The difference is mostly because of historical reasons.

Thanks, didn't know that. Then I'll solve my immediate issue by renaming the po files, however, I still think a (probably more general) option to set the file names could be useful...

@swissspidy I've looked into adding the option of overriding the file name, however given that the command also supports converting all files from a directory and in that case the name override would not make much sense.
I'm not sure if adding an option to override the filename that only works when you pass file would make much sense, would appreciate any feedback.

That's a good point. I suppose it could still work though, just like msgfmt supports both a directory and a single file as input, and supports a --output-file argument.
Here, we could just enhance wp i18n make-mo <source> [<destination>] so that if source is a single file and destination is a file, then we would use that file name instead.
Example:

wp i18n make-mo foo.po -> unchanged behavior, writes foo.mo to same directory as foo.po
wp i18n make-mo foo.po bar.mo -> writes file to bar.mo
wp i18n make-mo foo/bar -> unchanged behavior, generates MO files for all PO files in the directory
wp i18n make-mo foo/bar baz.mo -> won't work!

Does that make sense?
The alternative is to just close this as a wontfix, as this can also be achieved through other means like simply renaming files afterwards.

Hi,
in my original report, I wanted to use it with a directory, not a single file - and I suspect most users will too. So the ideal case would be supporting some kind of name transformations, but I think that just may be too complex for a command line argument (in an API, you could pass a function...) :(

Agreed that this would be too complex. You can use one of the many shell commands out there to mass-rename files instead. Or better yet, fix the name of your PO files to actually match what WordPress expects :)


ONNXRuntimeError on Mask_RCNN

Traceback (most recent call last):
File "/home/ab/PycharmProjects/keras-onnx-master/applications/mask_rcnn/mask_rcnn.py", line 806, in
sess = onnxruntime.InferenceSession(model_file_name)
File "/home/ab/anaconda3/lib/python3.7/site-packages/onnxruntime/capi/session.py", line 29, in init
self._sess.load_model(path_or_bytes)
RuntimeError: [ONNXRuntimeError] : 1 : GENERAL ERROR : Load model from ./mrcnn.onnx failed:Fatal error: Pad is not a registered function/op
RuntimeError: [ONNXRuntimeError] : 1 : GENERAL ERROR : Load model from ./mrcnn.onnx failed:Fatal error: Pad is not a registered function/op
Hello, First thanks to your work, it's awesome.
when I do python mask_rcnn.py  ./a1.jpg
I have meet some questions about ONNXRuntimeError on mask_rcnn, Ubuntu16.04,Python3.7,could you help me？please.

This is because the Pad op we are using is the contrib op and it will be included in onnx opset 11. Before onnx opset 11 released, you need pull onnxruntime master to run the model.

This is because the Pad op we are using is the contrib op and it will be included in onnx opset 11. Before onnx opset 11 released, you need pull onnxruntime master to run the model.

First of all, thanks for your reply so fast, I am a newbie in this direction, could you tell me how to pull onnxruntime master to run the model？What need I do? I want to use onnx model run this model. And I followed the instructions on Mask_RCNNT.
`cd <mask_rcnn directory>
pip install -e .
cd /applications/mask_rcnn
convert the model to onnx and test it with an image.
python mask_rcnn.py <image_file_path>`
What else do I need to do to run this model?
Thank you very much!

(1) Did you convert the onnx model successfully?
(2) pull onnxruntime master: just git clone and "pip install -e ."

(1) Did you convert the onnx model successfully?
(2) pull onnxruntime master: just git clone and "pip install -e ."

I have converted the onnx model successfully ,And I have git from https://github.com/microsoft/onnxruntime,could I do "pip install -e ."?
Thanks.

You need build onnxruntime before "pip install -e ."
There is instruction here

There is an onnxruntime release very soon (maybe in one or two days). If you don't want to build yourself, just wait for that release.

There is an onnxruntime release very soon (maybe in one or two days). If you don't want to build yourself, just wait for that release.

Oh,Great,Thank you,I will wait for the release, the best wishes for you！
Could you tell me when it release,Thanks again.

onnxruntime just released, please have a try.

onnxruntime just released, please have a try.

It has worked,Thank you all so much.


Support for middle ellipsis would be staggering

There are some libraries for middle ellipsis for Vue 2, would be lit if vue-clamp would support middle ellipsis as well.

https://github.com/hyjiacan/vue-ellipsis (demo)
https://github.com/tardigrada777/vue-text-middle-ellipsis

It's here: https://github.com/Justineo/vue-clamp/pull/66
@Justineo Could you take a look?

Thank you for your PR! Can you elaborate on the use case of this? Is middle ellipsis common practice in English?

We would love this too. Here's a W3C proposal for this very feature. Here's a react library that supports it. The middle ellipsis is a common UI feature on MacOS and iOS for Apple devices. It's a built-in feature in Swift. Here's a long stackoverflow post asking how to do it which shows the interest level in the JS community for this type of middle-ellipsis functionality.
As you can see, there's definitely a number of use cases where this is handy. Our specific use case is truncating very long file names. Seeing the start of the file name is helpful, but we also want users to be able to see the end of the file name because that's where the file extension is. So we want something like this:

Anyway, we would love to see this PR approved and merged. 👍

I too would love to see this addition to vue-clamp.  As mentioned above, file names are one place I'd use the middle ellipsis.  But we also use them when truncating longer URLs.
Example:
https://stackoverflow.com/questions/831552/ellipsis-in-the-middle-of-a-text-mac-style
https://stackoverflow.com/questions/831528/which-method-of-checking-to-see-if-a-nsdictionary-contains-a-particular
Cropping the filenames would appear like so:
https://stackoverflow.com/qu...
https://stackoverflow.com/qu...
This leaves the 2 URLs being indistinguishable from each other.
If the truncation could be specified to happen in the middle of the word, this would look like:
https://stackoverflow.com/qu...a-text-mac-style
https://stackoverflow.com/qu...ains-a-particular
This PR would alleviate several headaches for us.

Thanks for taking a look @Justineo. My use case is an analytics company called Simple Analytics where we show domains and paths of our customers. Extensions are usually important with paths so we use them like this:

Same goes for domains. Customers often have multiple TLDs that all start with the same letters. We for example have:

simplenalaytics.com
simplenalaytics.io
simplenalayticscdn.com

Which when truncated it shouldn't all show simplenalaytic..., but rather:

simple...tics.com
simple...ytics.io
simple...scdn.com

Do you think this is something you want to offer in vue-clamp?

@adriaanvanrossum @wrinkleydog @zack-pronto Thank you! I can definitely get the idea now. I'll look into the PR soon.

Implemented in #66 by @jibsaramnim and released with<EMAIL_ADDRESS>Thank you!


minor typo

Thanks for the repo!
import * as AMI form 'ami.js';
window.console.log('Ready to check spelling of the word 'from' !!');

Fixed typo for above which is ready for review


007-Rebrand-Site

Unsurprisingly I wasn't happy and started again.

Some bits left to do (but can be done at a later date:

[ ] Add curtain-style navigation for mobile
[ ] Update favicon


User able to take screenshot & also able to record account key using external app

Frequency: 100%
Repro on Devices: Samsung Galaxy A5(7.0),  iPhone XR (14.4), iPhone 6s (14.2), Samsung Galaxy J7 pro (8.0)
Repro version : Android Internal Build V1.11.0(1004294337) & Test Flight Build V1.11.0(47)
Login credential :<PHONE_NUMBER> / Backup Key
Repro Steps:

Launch the application & login with a test account.
Setup Account key.
Now open the Account key from Hamburger Menu.
Now start screen recording on Your Account Key page.
Now try to take a screenshot of the Account key.
Observed that, User able to take screenshot & also able to record account key.
Query : User should not be able to take a screenshot & also blank black screen should display in recording instead of user’s account key.
Investigation: Before some builds we have observed that proper error message is displayed if user try to take screenshot & also blank screen was displaying in record.
Impact: User B can easily steal fund of User A by saving his account key.
Attachment: UserAbleToRecord&ScreenshotAccounKey.mp4

We are moving away from the seed phrase, this should not be a problem anymore in the future.


Question about ascertaining which fields are undefined

It would be somewhat useful for certain applications to see which Opt fields of a nested record are undefined. My example is I'd like to use something like this for the ViewModel in an application, where I have an extended View Model with Opt values, based on a Record type without any Opt values that represents just the "Model".  To give feedback to the user, it would be great to be able to query which Opt fields are still undefined.
Is this something that might be doable?
Thanks,

Hi @bbarker!
Would you be so kind and tell me if you have any suggestion what should be the type (in "pseudcode" ;-)) of this function? I've done some investigation related regarding homogeneous records and I'm doing recursive traversing in this lib so maybe I can try to help.

Hi @bbarker!
Would you be so kind and tell me if you have any suggestion what should be the type (in "pseudcode" ;-)) of this function? I've done some investigation related regarding homogeneous records and I'm doing recursive traversing in this lib so maybe I can try to help.

Hi @paluh , thanks for the reply.
I'll try to add more pseudocode and some more description.
fromOpt: TOpt -> Either String T, where TOpt, T are record types related by the fact that for some fields of T', say fieldX, we have the following relationship:
fieldX: Opt X -- in TOpt
fieldX: X -- in Opt

But what if instead we have a relationship like:
fieldX: Opt XOpt -- in TOpt
fieldX: X -- in Opt

That is, XOpt and X have the same relationship as TOpt and T above. In this case, ideally fromOpt would work in a recursive fashion, extracting the Opts in an Either monad, and at the first failure, return the name of the field (or alternatively, the complete record hierarchy of the path if that is doable, or alternatively against, instead returning a String as the Left value, some collection of strings could be returned if it is relatively easy to return all missing fields - though depending on the use case, some may prefer to return on just the first failure).
The tricky part (well, there are probably several tricky parts) to me is that in the recursive case, what if XOpt has Opt fields that we don't want to keep? If they are X as type Opt _, we can pass them through unchanged, and if they are not in X at all, we ignore them and do not return them in the resultant X value. So, maybe that part isn't as tricky as I first thought.

Hi @paluh , thanks for the reply.
I'll try to add more pseudocode and some more description.
fromOpt: TOpt -> Either String T, where TOpt, T are record types related by the fact that for some fields of T', say fieldX, we have the following relationship:
fieldX: Opt X -- in TOpt
fieldX: X -- in Opt

But what if instead we have a relationship like:
fieldX: Opt XOpt -- in TOpt
fieldX: X -- in Opt

That is, XOpt and X have the same relationship as TOpt and T above. In this case, ideally fromOpt would work in a recursive fashion, extracting the Opts in an Either monad, and at the first failure, return the name of the field (or alternatively, the complete record hierarchy of the path if that is doable, or alternatively against, instead returning a String as the Left value, some collection of strings could be returned if it is relatively easy to return all missing fields - though depending on the use case, some may prefer to return on just the first failure).
The tricky part (well, there are probably several tricky parts) to me is that in the recursive case, what if XOpt has Opt fields that we don't want to keep? If they are X as type Opt _, we can pass them through unchanged, and if they are not in X at all, we ignore them and do not return them in the resultant X value. So, maybe that part isn't as tricky as I first thought.


Plugin architecture

One of the most useful features imo of fastlane is the plugin architecture. Everyone can just write his own plugin which is then loaded into fastlane and can be used.
We should think about this architecture as soon as possible since it's necessary for every feature development. Shuttle e.g. is 'just' an plugin for Autobahn which should be loaded explicitly when needed.
In contrast to fastlane, Autobahn is compiled instead of interpreted and plugins would be libraries instead of globally installed programs.
Some of the first thoughts that came to my mind:

libraries need to be linked when the Autobahn.swift file is evaluated

currently only AutobahnDescription is linked, that needs to be extended
we could parse the import statements to get every library that is needed and try to link them - but we still need to specify where those libraries are located

we need a protocol or base class for plugins, depending on the state and functionality the plugins need to provide
we need a place for documentation

documentation should be shown when autobahn action foo is executed, so the CLI tool somehow needs access to the plugin + it's documentation

Maybe it makes sense to create an .autobahn directory in the root of the project. We could store plugin frameworks there to be able to link them. We could also search in that directory for available plugins that are shown when autobahn actions is executed.
It would then also makes sense to have a light package manager built in or use SPM somehow. (Maybe create a dummy package that has all necessary plugins + versions as dependencies.)

I agree and still need to solve the linking problem for the AutobahnDescription library, I believe most of that work will be done during the homebrew install process and will install to the /usr/local/lib directory and that way we can just point the linker to that dir when linking the Autobahn.swift file however maybe it would be better to create a ~/.autobahn folder similar to how fastlane does and store libs/plugins there?  I would like to see a autobahn add_plugin <plugin_name> that would then create some manifest of what libs need to be linked when running the Autobahn.swift file


Update connect-to-sharepoint.md

remove catch as is seems on the video
and other option could be
private _getListData(): Promise {
return this.context.spHttpClient.get(${this.context.pageContext.web.absoluteUrl}/_api/web/lists?$filter=Hidden eq false, SPHttpClient.configurations.v1)
.then((response: SPHttpClientResponse) => {
return response.json();
})
.catch((err) => { console.log(err); });
}
private _renderListAsync(): void {
this._getListData()
.then((response) => {
this._renderList(response.value);
})
.catch((err) => { console.log(err); });
}
Category

[x] Content fix
[ ] New article
[x] Example checked item (delete this line)

DELETE THIS LINE BEFORE SUBMITTING | For the above list, an empty checkbox is [ ] as in [SPACE]. A checked checkbox is [x] with no space between the brackets. Use the PREVIEW tab at the top right to preview the rendering before submitting your issue.

Related issues

fixes #issuenumber
partially #issuenumber
mentioned in #issuenumber

DELETE THIS LINE BEFORE SUBMITTING | If this fixes (aka: closes) or references an issue, please reference it here. This helps maintaining the issue list as it will (1) link the PR to the issue & (2) automatically close the issue when this PR is merged in.

What's in this Pull Request?

DELETE THIS LINE BEFORE SUBMITTING | Please describe the changes in this PR. Sample description or details around bugs which are being fixed.

Submission guidelines

!!IMPORTANT!! - All submissions must complete the baseline sections included in this template. Ignoring or deleting this template may result in closing the issue with the label type:incomplete-submission.
Follow our guidance on How To Create Good Pull Requests.
Target the main branch of this repo.
When changing a page, ensure you update the ms.date front matter wih the current date in the format MM/DD/YYYY.
Review all build checks and address the automated errors, warnings, and suggestions.
NOTE: The live site is based on the live branch. Site owners periodically refresh live branch from the main branch so merged PRs won't immediately appear on the live site. Please be patient to see your changes appear on the live site.

DELETE THIS SECTION BEFORE SUBMITTING

We don't want to recommend people not include a catch statement as new SPFx solutions have an eslint rule @typescript-eslint/no-floating-promises that treats that as an error.


Data needed!

Is there an existing issue for this?

[X] I have searched the existing issues

I'm submitting a ...

[ ] bug report
[ ] feature request
[ ] support request --> Contact me over mail for support https://github.com/MShawon

Description
I need several Windows, Linux, macOS sec-ch-ua information to randomize user agents more accurately
You can go to this Link and take a screenshot like this and post here or send it to my email

Also, go there Link to take a ss like this

Environment
- OS :
- Python :
- Script version :

config.json
N/A

Chrome :

Firefox :

Edge :

Hey @MShawon , I found pretty interesting stuff while rewriting my view bot, you should check it out.
It turns out, that my theory that google makes a big list of your data for a fingerprint. I was reading around requests made by firefox, and I found this interesting bit when starting the browser
`js
{
"context": {
"client": {
"hl": "en",
"gl": "RO",
"remoteHost": "",
"deviceMake": "",
"deviceModel": "",
"visitorData": "CgtRU2gzTDRCVU50cyj40JaoBjIGCgJSTxIA",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0,gzip(gfe)",
"clientName": "WEB",
"clientVersion": "2.20230914.04.00",
"osName": "Windows",
"osVersion": "10.0",
"originalUrl": "https://www.youtube.com/watch?v=7UPEJjZ0UAE&pp=YAHIAQE%3D",
"platform": "DESKTOP",
"clientFormFactor": "UNKNOWN_FORM_FACTOR",
"configInfo": {
"appInstallData": "CPjQlqgGEKfq_hIQ1uqvBRC4i64FEIbqrwUQiOOvBRDk5q8FENPhrwUQrtT-EhDrk64FENShrwUQ-uT-EhDqw68FEJTo_hIQl-f-EhCj3q8FEInorgUQzK7-EhC1pq8FENXlrwUQ3euvBRC15q8FEPq-rwUQxN2vBRDnuq8FEKy3rwUQx-avBRC7668FEJrwrwUQ3ej-EhDM364FELzM_hIQ6-j-EhC24K4FEOLUrgUQ5LP-EhCMy68FEKXC_hIQ26-vBRDuoq8FELfq_hIQ2cmvBRDyqK8FEKbs_hIQj_WvBRC9tq4FELTJrwUQ0OWvBRDR7P4SEKDerwU%3D"
},
"browserName": "Firefox",
"browserVersion": "115.0",
"acceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,/;q=0.8",
"deviceExperimentId": "ChxOekkzT1RRd09UWXdOakU1TVRVMU5ETTROdz09EPjQlqgGGPjQlqgG",
"screenWidthPoints": 1280,
"screenHeightPoints": 720,
"screenPixelDensity": 1,
"screenDensityFloat": 1,
"utcOffsetMinutes": 180,
"userInterfaceTheme": "USER_INTERFACE_THEME_LIGHT",
"clientScreen": "WATCH",
"mainAppWebInfo": {
"graftUrl": "/watch?v=7UPEJjZ0UAE&pp=YAHIAQE%3D",
"pwaInstallabilityStatus": "PWA_INSTALLABILITY_STATUS_UNKNOWN",
"webDisplayMode": "WEB_DISPLAY_MODE_BROWSER",
"isWebNativeShareAvailable": false
},
"timeZone": "Europe/Bucharest"
},
"user": {
"lockedSafetyMode": false
},
"request": {
"useSsl": true,
"internalExperimentFlags": [
{
"key": "force_enter_once_in_webview",
"value": "true"
}
],
"consistencyTokenJars": []
},
"clickTracking": {
"clickTrackingParams": "CKUBENwwIhMIz7GQr5mvgQMVZd0RCB2IZATjMgpnLWhpZ2gtcmVjWg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4YngE="
},
"adSignalsInfo": {
"params": [
{
"key": "dt",
"value": "1694869625531"
},
{
"key": "flash",
"value": "0"
},
{
"key": "frm",
"value": "0"
},
{
"key": "u_tz",
"value": "180"
},
{
"key": "u_his",
"value": "1"
},
{
"key": "u_h",
"value": "720"
},
{
"key": "u_w",
"value": "1280"
},
{
"key": "u_ah",
"value": "720"
},
{
"key": "u_aw",
"value": "1280"
},
{
"key": "u_cd",
"value": "24"
},
{
"key": "bc",
"value": "31"
},
{
"key": "bih",
"value": "720"
},
{
"key": "biw",
"value": "1280"
},
{
"key": "brdim",
"value": "4,4,4,4,1280,0,1280,720,1280,720"
},
{
"key": "vis",
"value": "1"
},
{
"key": "wgl",
"value": "true"
},
{
"key": "ca_type",
"value": "image"
}
]
},
"videoId": "7UPEJjZ0UAE",
"params": "YAHIAQE%3D",
"playbackContext": {
"contentPlaybackContext": {
"currentUrl": "/watch?v=7UPEJjZ0UAE&pp=YAHIAQE%3D",
"vis": 5,
"splay": false,
"autoCaptionsDefaultOn": false,
"autonavState": "STATE_NONE",
"html5Preference": "HTML5_PREF_WANTS",
"signatureTimestamp": 19612,
"autoplay": true,
"autonav": true,
"referer": "https://www.youtube.com/",
"lactMilliseconds": "-1",
"watchAmbientModeContext": {
"watchAmbientModeEnabled": true
}
}
},
"racyCheckOk": false,
"contentCheckOk": false
}
}
`

@kattstof @JijaProGamer  how do you set navigator.webdriver to false in selenium geckodriver?
@kattstof since you mentioned Firefox works for you. Did you use the same fingerprinting extension I used? Or something different?
Sec-cha-ua is not supported by Firefox but all chromium browsers support it. So modifying user agent only is a dead end for chromium based browsers. Although I disabled useragentclienthint to avoid sec-ch-ua data, it's not working.

@MShawon
Firstly you add some code that runs on new documents, and the code should set navigator.webdriver to false:
code = "Object.defineProperty(navigator, "webdriver", { value: false, configurable: false, enumerable: false, writable: false });

driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': code})

@JijaProGamer But selenium Firefox doesn't support driver.execute_cdp_cmd()

@JijaProGamer But selenium Firefox doesn't support driver.execute_cdp_cmd()

Yeah, Ive sent a fix rn


Generate TS definitions from JSDoc

Hi @woodser-
I did took a quick and dirty pass at generating Typescript definitions from JSDoc. Did some preliminary nodejs testing by copying the types directory into an existing TS project (also updated the "types" key in package.json as well so the project could detect the types) and it seems to work fairly well in a 'don't let perfect be enemy of the good' sort of way.
I think the only glaring thing that I hurried through was the biginteger.js file module export- I just threw a bandaid in to get the declaration out put to work without errors.  If you remove my change and try generating the types, you'll see the error.
I also did an npm force install as I was experiencing quite a few warnings/errors.  Might need to clean up the package-lock file.
Other things-  I think the declaration output could possibly be improved by updating a lot of the JSDoc @Returns from Type to Promise<Type> https://stackoverflow.com/questions/13104411/how-to-specify-resolution-and-rejection-type-of-the-promise-in-jsdoc

This PR is mostly done with the transition now: https://github.com/monero-ecosystem/monero-javascript/pull/108


provide the user with fine-grained control over read filters

provide the user with fine-grained control over read filters (should wait until after we see what read filters end up looking like in the dataflow world)

closing. will reopen if this is actually a requirement

Depends what fine grained control means. User should not have control over default filters that are considered essential by walker authors. User should have control over optional filters that provide eg convenience functions for selecting subsets of data (eg read group based, cigar based, etc).

yes, this ticked was about the former. feel free to enter another ticket for the latter (with a usecase)

Ok-- off the top of your head, do you already have/plan porting existing read filters?

AFAIK all relevant ones are ported ( #380 being reviewed by @vruano as we speak)


Add support for http proxy when connecting to APNS

Hi,
if your server is located behind a firewall and you're not able / not allowed or simply don't want to configure your firewall to allow a direct socket connection to the Apple Push Notification Service you may have to / want to use a proxy. Otherwise the connection attempts will fail.
Added support for this use case using the PySocks package.
Best regards,
Basti

May I suggest making PySocks package optional and use a django system check to warn the user to install the package if a proxy is present?

I will have a look at that possibility in the upcoming days.

Nobody seems to be interested in this feature so I'll close the Pull Request

Sorry about this, I didn't notice the PR and I haven't been able to work on the project myself.
Adding a dependency for a feature few will use is not an option. @matthewh's suggestion would have to be put into place for this PR to be accepted.
However I'm surprised any change in the code is necessary for a proxy to work. Why APNS but not GCM?

Absolutely no problem.
I just wanted to provide this workaround if anyone has the same problem as I had that the firewall is blocking direct socket connections from the internal network to the APNS service.
With GCM everything worked fine in my case, APNS socket connections were blocked...

I'm also wondering if it's wise to use the $https_proxy variable. APNS isn't over https.


add doc

What is the purpose of the change
to translate Examples of Ordered Messages into English version.
Brief changelog
add new file Example_Orderly.md in docs/en/
Verifying this change
file content is ok in Markdown reader.
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Coverage decreased (-0.06%) to 44.762% when pulling 493a016a8cc19844ddf3716b5a8cd7a7a825454b on eagle101113:develop into 6a573a773a87edbcdcc138614b756019fc280988 on apache:develop.


Detect Power-Based Intervals

Currently interval detection is only looking at speed/pace. If power data is available, detect intervals based on that too as that will be more applicable to many cycling activities.

Initial functionality is implemented. Needs more testing.


Research PS4 support

This one is unlikely to be taken on by me. The PS4's kernel APIs should be close enough (have same/similar functions) where a port of taiHEN to PS4 would be easier than, say, Android. substitute supports x86-64 as well.

For anyone interested, to start, they should try to build taihen without linking to the stubs. GCC will then complain about undefined symbols. See if you can find those functions in the PS4 kernel. My suspicions is that you can find most of them (and we don't use that many kernel apis).


Shop Floor Anomaly Detection GA demo

Successful demo delivered at the Apr 2022 GA. Well done @simhavas-uday & @souayb!


Support for GitHub Pages

Hello!
Does this support GitHub Pages?
If not, would it be possible to implement its support?
Thanks!

Hi, thanks for the question!
Markdown Blogger does not make any assumptions about the tech you are using to build / deploy your site. It is simply meant to quickly transfer markdown files between Obsidian and a local project folder.
If you are looking to set up your GitHub pages repo to render markdown, here is a resource I found: https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/setting-a-markdown-processor-for-your-github-pages-site-using-jekyll
I hope this helps!


Cruising from regular lanes to platform lanes would be immensely helpful

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I have read the Contribution Guidelines

Issue Description
We are building frameworks (and test applications) that support iOS & macOS (soon we'll be adding watchOS & tvOS).  We've just completed automating our entire build & test cycle with fastlane.... Awesome work!
Currently we use the "platform" feature to make lanes for specific platforms which is working well. It seems the suggested method of building both platforms is to use something like 'fastlane ios build_and_test && fastlane mac build_and_test'.  Since parts of our fastlane automation includes starting/stopping docker containers to run integration tests against, this causes needless starting/stopping of containers just to switch platforms.
For example, executing this on the command line:
fastlane ios build_and_test && fastlane Mac build_and_test

Causes the docker containers to be started and stopped twice; once for each platform. It's only going to get worse once we add more platforms.
Alternatively, If we had the ability to do something along these lines in the Fastfile:
platform :ios do
  lane build_and_test do
  end
end

platform :mac do
  lane build_and_test do
  end
end

lane build_and_test do

  start_server

  begin

    #using "platform" to switch platforms inside a lane
    platform :ios do
      build_and_test
   end

    #using "platform" to switch platforms inside a lane
    platform :mac do
      build_and_test
   end

  ensure
    stop_server
  end

do

There are 2 or 3 cases we could use this feature if it were available.  It would allow us to offer more lanes to our developers that easily build and test what they are working on.
Without this a rework of our Fastfile is needed to separate it out of platforms and use non-platform lanes & options to allow executing our lanes for the platforms we need.
Environment
✅ fastlane environment ✅
Stack

Key
Value

OS
10.12.2

Ruby
2.0.0

Bundler?
false

Git
git version 2.10.1 (Apple Git-78)

Installation Source
/usr/local/bin/fastlane

Host
Mac OS X 10.12.2 (16C67)

Ruby Lib Dir
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib

OpenSSL Version
OpenSSL 0.9.8zc 19 Mar 2015

Is contained
false

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

Xcode Version
8.2

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL

LANGUAGE

fastlane files:
`./fastlane/Fastfile`
fastlane_require 'yaml'

workspace = "MessagesKit.xcworkspace"
edge_compositions = {
  'test' => "fastlane/edge-test-compose.yml",
  'dev' => "fastlane/edge-dev-compose.yml"
}

# Build Configuraion

$build = YAML.load(open('../build.yaml'))

before_all do

  # Set environment variables for docker-compose
  container = $build['server']['container']
  ENV['EDGE_CONTAINER_REG'] = container['registry']
  ENV['EDGE_CONTAINER_REPO'] = container['repository']
  ENV['EDGE_CONTAINER_TAG'] = container['tag']

  # Cocoapods
  unless ENV['NO_PODS']

    cocoapods

  end

end

# MARK: Test Server Environment

desc "Starts an Edge server environment (Docker composition)"
lane :start_environment do |options|

  type = options[:type] || :dev
  name = options[:name] || type
  pull = options[:pull] || true

  files = [
    edge_compositions[type.to_s]
  ]

  # Pull image (if requested)
  if pull
    docker_compose(
      files: files,
      command: "pull"
    )
  end

  docker_compose(
    files: files,
    command: "up",
    project: name.to_s
  )

  port_info = docker_port(
    container: "#{name}_edge_1",
    port: 8080,
  )

  # Ensure we have a publicly usable address
  if port_info[:host] == '<IP_ADDRESS>'
    ip = Socket.ip_address_list.detect{|intf| intf.ipv4_private?}
    port_info[:host] = ip.ip_address
  end

  http_service_available(
    target: "http://#{port_info[:host]}:#{port_info[:port]}/admin/healthcheck"
  )

  port_info
end

desc "Stops an Edge server environment (Docker composition)"
lane :stop_environment do |options|

  type = options[:type] || :dev
  name = options[:name] || type

  files = [
    edge_compositions[type.to_s]
  ]

  docker_compose(
    files: files,
    command: "down",
    project: name.to_s
  )
end

lane :build_and_test do

  Fastlane::LaneManager.cruise_lane('mac', 'build_and_test')

end

# MARK: iOS Tests

platform :ios do

  sim_os_versions = [
    '10.2'
  ]

  sim_device_types = [
    'iPhone 7',
    'iPhone 5'
  ]

  lane :build_and_test do |options|

    # Simulator testing

    xctest_build(
      workspace: workspace,
      scheme: "MessagesKit-iOS-Testing",
      simulator: true
    )

    unit_tests(
      sim_os_versions: sim_os_versions,
      sim_device_types: sim_device_types
    )

    integration_tests(
      sim_os_versions: sim_os_versions,
      sim_device_types: sim_device_types
    )

    # Device testing
    devices = FastlaneCore::DeviceManager.connected_devices("iOS")
    unless devices.empty?

      xctest_build(
        workspace: workspace,
        scheme: "MessagesKit-iOS-Testing",
        simulator: false
      )

      devices = devices.map { |d| d.udid }

      unit_tests(
        devices: devices
      )

      integration_tests(
        devices: devices
      )

    end

  end

  lane :unit_tests do |options|

    xctest_run(
      **options,
      skip_testing: [
        'MessagesKit-iOSTests/RoundTripTests',
        'MessagesKit-iOSTests/MessagesKitTests'
      ],
      output_type: 'Unit',
      fail_build: false
    )

  end

  lane :integration_tests do |options|

    integration_id = (0...8).map { (65 + rand(26)).chr }.join.downcase

    server_info = start_environment(
      type: :test,
      name: integration_id,
      pull: true
    )

    begin

      xctest_run(
        **options,
        launch_args: [
          "-io.retxt.test.Host #{server_info[:host]}",
          "-io.retxt.test.Port #{server_info[:port]}"
        ],
        only_testing: [
          'MessagesKit-iOSTests/RoundTripTests',
          'MessagesKit-iOSTests/MessagesKitTests'
        ],
        output_type: 'Integration',
        fail_build: false
      )

    ensure

      stop_environment(
        type: :test,
        name: integration_id
      )

    end

  end

end

# MARK: macOS Tests

platform :mac do

  lane :build_and_test do |options|

    xctest_build(
      workspace: workspace,
      scheme: "MessagesKit-macOS-Testing",
      code_coverage: true
    )

    # unit_tests

    integration_tests

  end

  lane :unit_tests do |options|

    xctest_run(
      archs: [
        'x86_64'
      ],
      skip_testing: [
        'MessagesKit-macOSTests/RoundTripTests',
        'MessagesKit-macOSTests/MessagesKitTests'
      ],
      output_type: 'Unit',
      fail_build: false
    )

  end

  lane :integration_tests do |options|

    integration_id = (0...8).map { (65 + rand(26)).chr }.join.downcase

    server_info = start_environment(
      type: :test,
      name: integration_id,
      pull: true
    )

    begin

      xctest_run(
        archs: [
          'x86_64'
        ],
        launch_args: [
          "-io.retxt.test.Host #{server_info[:host]}",
          "-io.retxt.test.Port #{server_info[:port]}"
        ],
        only_testing: [
          'MessagesKit-macOSTests/RoundTripTests',
          'MessagesKit-macOSTests/MessagesKitTests'
        ],
        output_type: 'Integration',
        fail_build: false
      )

    ensure

      stop_environment(
        type: :test,
        name: integration_id
      )

    end

  end

end

No Appfile found
fastlane gems

Gem
Version
Update-Status

fastlane
2.3.0
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

slack-notifier
1.5.1

rouge
1.11.1

xcpretty
0.2.4

terminal-notifier
1.7.1

unicode-display_width
1.1.2

terminal-table
1.7.3

plist
3.2.0

public_suffix
2.0.4

addressable
2.5.0

multipart-post
2.0.0

word_wrap
1.0.0

babosa
1.0.2

colored
1.2

highline
1.7.8

commander
4.4.2

excon
0.54.0

faraday
0.10.0

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20161129

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

fastimage
2.0.1

gh_inspector
1.0.2

uber
0.0.15

representable
2.3.0

retriable
2.1.0

mime-types-data
3.2016.0521

mime-types
3.1

hurley
0.2

little-plugger
1.1.4

multi_json
1.12.1

logging
2.1.0

jwt
1.5.6

memoist
0.15.0

os
0.9.6

signet
0.7.3

googleauth
0.5.1

httpclient
2.8.3

google-api-client
0.9.20

mini_magick
4.5.1

multi_xml
0.6.0

rubyzip
1.2.0

security
0.1.3

xcpretty-travis-formatter
0.0.4

dotenv
2.1.1

bundler
1.13.6

faraday_middleware
0.10.1

i18n
0.7.0

thread_safe
0.3.5

tzinfo
1.2.2

minitest
5.10.1

activesupport
<IP_ADDRESS>

json
1.8.3

CFPropertyList
2.3.4

claide
1.0.1

nanaimo
0.2.3

xcodeproj
1.4.2

generated on: 2016-12-26

Hey it seems like your setup is pretty advanced. You can always use standard Ruby features to do the same thing by using classes and methods, and therefore having more control over the behaviour 👍

@KrauseFx Isn't that an argument you could make about fastlane itself?  Sure it's doable in Ruby but it's a lot of verbose code. Fastlane has mostly made that code very small and concise.  With a simple added feature (which seems very intuitive, you're just putting the platform selector in the lane instead of around the lane) we could continue using the brevity of Fastlane and achieving our goals.  Your suggestion seems to be to go "rewrite it" in Ruby; that seems odd to me.

I understand where you're coming from kdubb, but don't think it's as big a lift as it appears.
You're example isn't really enough information to discuss deeper, but I would recommend simply removing the platforms from fastlane and using options or environment flags to trigger what you need.
For example:
# Add to the top of your fastfile or before all step
@platform = options[:platform].split(',')

#  ---------------- later in your fastfile --------------
lane :build_and_test do |lane, options|
  start_server
  @platform.each do |agency|
     'some build and test actions'
  end
end

Using the options feature you'd simply need run something like this:
fastlane build_and_test platform:ios,mac
There's a massive amount of options for driving more customized lanes. Personally, I ditched the platform lane early on when setting up fastlane.  They were creating more complexity than I needed.
More info on options/environment flags: https://docs.fastlane.tools/advanced/

@PetrosIchor In some ways I agree.  Since creating this issue our Fastfile has been re-engineered to work somewhat like you've proposed.  It's a lot more "manual" and a big backtrack from the road fastlane documentation suggested we go down... but it works.
None of this detracts from my main point that not being able to call a "platform lane" from a "lane" is severely limiting of the platforms feature in general.  So limiting in fact, everybody suggests ditching it in favor of more complex methods.  Also, the limitations aren't outlined anywhere in fastlane docs. People moving to fastlane with a complex setup walk a pretty far road only to find out they need to backtrack.  Finally, the solution seems like it would be fairly easy and I proposed. a natural extension that would make pretty good sense.
So, instead of telling people to ditch the feature, why not make it more useful?

@kdubb fastlane is an open source project, everyone can contribute and build their own features to make it better, however we have to keep the core as small and solid as possible.
I don't have a full understanding yet on how the feature would look like and what changes in the code would be necessary. If you submit a proposal with a summary of what has to be changed in the code base, and how it would affect existing setups, it's definitely something you could submit a PR for if you'd like 👍
fastlane is a big open source project, with lots of feature requests, and we have to prioritise those that will help a majority of the user-base.
If you don't have the time for this right now, the easiest way for you is to probably use private_lanes in combination with regular lanes that call each other. Instead of using the platform block, name your lanes ios_build_and_test to have a similar effect.
Sorry if you don't feel that answer is helpful, however there is not much more we can do for now, unless there is more people having the same problem.

@kdubb If you still need to do this, it can be accomplished like this (right now)...
lane :setup do
  self.runner.current_platform = :android
  setup

  self.runner.current_platform = :ios
  setup
end

platform :android do
  lane :setup do
    # stuff
  end
end

platform :ios do
  lane :setup do
    # stuff
  end
end

@joshdholtz nice workaround, actually we are using a similar setup since a few months.
lane :beta do | options |
        Fastlane::LaneManager.cruise_lane("ios", "beta", options)
        Fastlane::LaneManager.cruise_lane("android", "beta", options)
end

platform :ios do
        lane :beta do
                UI.message "ios beta"
        end
end

platform :android do
        lane :beta do
                UI.message "android beta"
        end
end

@hjanuschka That is much prettier 👌


FEFO picking cannot create pick when lot is on warehouse activity lines

Scenario:
Having an Item with two different Lot Numbers (e.g. L001 and L002) both with the same expiration date (e.g. 12/12/2023) stored in pick bins of a location setup with Directed Put&Pick.
Then, create some warehouse movements to move everything from L001 to other pick bins.
Create a sales order to ship a small part of that item.
Create a warehouse shipment.
Try to create a warehouse pick. This will fail with the message there is nothing to handle.
This is wrong, because there is still lot number L002 to pick from, which is not on any warehouse movement or other warehouse activity lines.
Cause of error
The error is in Code-unit 7312 "Create Pick", where the local procedure CreateTempItemTrkgLines does not take into account the quantity that is already on take-lines of warehouse activity lines. This makes the QtyCanBePicked larger than what is available.
The procedure stops looping the EntrySummary records as soon as RemQtyToPickBase = 0.
Possible Solution
Maybe it is better to create TempItemTrkgLine records for each EntrySummary. Other solution can be to change the calculation of QtyCanBePicked.

Hi! Please take a minute to read the guidelines for this repository https://github.com/microsoft/AL and our collection of frequently asked questions https://github.com/Microsoft/AL/wiki/frequently-Asked-Questions .
This repository is only for extensibility requests for Dynamics 365 Business Central. We suggest that you open a support case or file a bug to ensure that all Business Central users benefit from your catch as soon as possible:
•	On premises - https://support.microsoft.com/en-us/supportforbusiness/productselection?sapId=93d37907-ad94-d591-22e9-593cfa09dd3f
•	On line – contact your partner, or if you are a partner open a support incident through Partner Center - https://partner.microsoft.com/en-us/pcv/dashboard/overview


⚠ API - Lens has degraded performance

In 4f6220f, API - Lens ($LENS_API_URL) experienced degraded performance:

HTTP code: 503
Response time: 347 ms

Resolved: API - Lens performance has improved in 31f0bfc after 6 minutes.