Advice needed: "stack level too deep"

Hey.
While trying to document really large codebase, I stuck with
yard-0.9.5/lib/yard/parser/ruby/ast_node.rb:198:in `children': stack level too deep (SystemStackError)
    from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/parser/ruby/ruby_parser.rb:650:in `freeze_tree'
    from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/parser/ruby/ruby_parser.rb:652:in `block in freeze_tree'
    from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/parser/ruby/ruby_parser.rb:650:in `each'
    from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/parser/ruby/ruby_parser.rb:650:in `freeze_tree'
    from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/parser/ruby/ruby_parser.rb:652:in `block in freeze_tree'
    from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/parser/ruby/ruby_parser.rb:650:in `each'
    from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/parser/ruby/ruby_parser.rb:650:in `freeze_tree'
    from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/parser/ruby/ruby_parser.rb:652:in `block in freeze_tree'
     ... 10163 levels...
    from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/bin/yardoc:23:in `load'
    from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/bin/yardoc:23:in `<main>'
    from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `eval'
    from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `<main>'

Unfortunately, codebase belongs to proprietary project, so I can't share it. Neither I can narrow the case (to current moment). I turned on --debug option to see the filename on error, and there is nothing special in this file. Moreover, when I comment it out, the very same error emerges in the next file (and if I comment out that one, in the next, and so on).
What can I do for debugging/understanding? Is that possible that size of codebase could be a limitation/fatal problem for YARD?..

(YARD is 0.9.5, Ruby is 2.3.1)

I have not communicated with Loren about this, but previously, I've had to change re-entrant Ruby code to 'stack based' code (can't recall the academic name for it).
Below is a patch, I've ripped some docs with it, and it passes the RSpec tests.
In the file listed in your error output ruby_parser.rb, at the bottom of the file, rename the method freeze_tree to something like freeze_tree_no, and add the following code:
        def freeze_tree(node = nil)
          t2_nodes = []
          t2_nodes.push(node || root)
          while !t2_nodes.empty? do
            p_node = t2_nodes.shift
            p_node.children.each { |child| child.parent = p_node }
            t2_nodes += p_node.children
          end
        end

Please let us know if it works.

@MSP-Greg It just led me to:
/media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/docstring_parser.rb:282:in `block in call_after_parse_callbacks': stack level too deep (SystemStackError)
	from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/docstring_parser.rb:281:in `each'
	from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/docstring_parser.rb:281:in `call_after_parse_callbacks'
	from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/docstring_parser.rb:190:in `post_process'
	from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/docstring_parser.rb:120:in `parse'
	from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/handlers/base.rb:451:in `register_docstring'
	from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/handlers/base.rb:412:in `block in register'
	from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/handlers/base.rb:405:in `each'
	from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/gems/yard-0.9.5/lib/yard/handlers/base.rb:405:in `register'
	 ... 10158 levels...
	from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/bin/yardoc:23:in `load'
	from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/bin/yardoc:23:in `<main>'
	from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `eval'
	from /media/storage/home/zverok/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `<main>'

:(

Just checking, are you using any plugins or loading anything in your .yardopts file?

BTW, you mentioned 'really large' codebase. I've used YARD for Rails, Ruby itself, and the AWS SDK (much of which is not Ruby code).  Regardless, I'll see what I can find.

My .yardopts:
--markup=markdown
--markup-provider=redcarpet
--load ./lib/support/yard/handlers.rb
app
apq
lib

...and ./lib/support/yard/handlers.rb is (as per https://github.com/lsegal/yard/issues/994):
class MemoizeHandler < YARD::Handlers::Ruby::Base
  include YARD::Handlers::Ruby::DecoratorHandlerMethods
  handles method_call(:memoize)
  namespace_only

  process do
    case statement.type
    when :fcall, :command
      process_decorator
    end
  end
end

Nothing more is used, as far as I can understand our large codebase.

BTW, you mentioned 'really large' codebase. I've used YARD for Rails, Ruby itself, and the AWS SDK (much of which is not Ruby code). Regardless, I'll see what I can find.

Dir['{app,apq,lib}/**/*.rb'].count
# => 2075

I'm not sure whether it should be considered large or moderate.

Victor,
I think we can call 2,075 files 'large'. Probably a few methods.  Anyway, this is definitely not a recommended patch, because I ran YARD with it, and it didn't call a block from call_after_parse_callbacks.  Said another way, I have no code to test it against.
It does pass the RSpec tests.  The following at least prevents one of the callback blocks from calling itself again from call_after_parse_callbacks, if its using the same instance of DocstringParser, which I am not sure about.
In docstring_parser.rb, rename call_after_parse_callbacks, and substitute the following:
    def call_after_parse_callbacks
      t2_apcb = self.class.after_parse_callbacks.uniq
      return if t2_apcb.empty?
      @after_parse_callbacks = nil
      t2_apcb.each { |cb| cb.call(self) }
    end

I have no idea what kind of output you'll get, in particular whether some of these methods may have issues with their docstrings (documentation from comments) or their tags.
I'm not sure if Loren was posting a complete example or just pointing you in the right direction in his reply in #994.
Greg

@zverok have you tried disabling the handler that you loaded and re-running to confirm if the issue is coming from YARD itself?

@lsegal tried it, didn't change anything. @MSP-Greg your suggestion didn't change anything, too :(

@zverok unfortunately at this point we would need some form of minimal reproduction case. If you look at your --debug output you should be able to see which file was last processed before the exception occurred. I would recommend re-running YARD on just that file to see if it happens again (yard doc path/to/file.rb). If it does, try to narrow down the minimal code in that file that causes the exception and post the results here.

@lsegal No, it is not reproduced on one file. Moreover, it even not reproduced on entire large apq folder (we have two equally large app and apq folders, and third, smaller lib). Only when both app and apq are processed. I vaguely suppose it could be something regarding names resolution in large codebase? (We have many classes with same names, but in different namespaces.)
Also, as I've said previously, if I comment out / remove last parsed file, the problem repeats with next one, and the next and so on.

@zverok try running multiple YARD commands instead of a single one:
$ yard doc app
$ yard doc -c apq
$ yard doc -c lib

This may cause rendering issues, but it should confirm whether this is related to some kind of object resolution.

try running multiple YARD commands instead of a single one:

OK, this one was ended without any errors. What conclusion it leads us to?.. :)

@zverok Victor,
Glad things are moving along.  Just checking, do you have the two patches in place, or did you remove/comment them out?

@MSP-Greg currently they are both in place. (If it is necessary, I can try to remove them and re-try everything.)
PS: I should say I'm not afraid of reading large codebases, neither debugging them (I'm pretty experienced Rubyist), I just need some advices what are places I should start to look at: YARD is a complicated masterpiece, and to that day I have no occasion to look inside its code.

@zverok I would definitely try with (I think you already tested 'with') and without.  Just flip the names.
I don't know about the second patch (call_after_parse_callbacks), but the patch to freeze_tree may help with very deep parsing structures.
I've run into Ruby re-entrant issues before while parsing big 3D models with heavily nested components.  The 'stack/list' based algorithm fixes it.

@zverok I believe there are two major possibilities in what's happening, with differing workarounds:

YARD recurses every time it attempts to resolve a namespace that is out of order (not yet defined when used). If a codebase causes YARD to continually go back and forth resolving unseen namespaces, you will be doubling your stack size each time. In a large codebase, that shouldn't take too many namespace resolution errors to eventually blow the stack. Unfortunately there's no other way to implement this (we previously used continuations, but they are poorly supported across platforms). Fortunately you should be able to quickly determine if this is happening by reading --debug output logs to see if you read a lot of the following error:

[debug]: Missing object B in file `lib/mylib/a.rb', moving it to the back of the line.

Following Ruby's file naming conventions usually resolves most of these errors automatically (since child classes are placed in subdirectories of the parent's declaration file, e.g., a.rb, a/b.rb), but if you are seeing this, you can modify your .yardopts to explicitly list a sorted file list that reduces the amount of namespace issues during parsing. Specifically, if you see something like the missing B object inside a.rb in the above example, you would add the following to your .yardopts:
lib/mylib/b.rb
lib/**/*.rb

The above will process B first. Now this causes more problems if B relies on something else, but at the very least you can minimize the amount of re-processing by providing the best ordered list of files possible.

If the above is not happening, my guess is that your codebase really is too large for YARD to parse. This is the first time I've seen such a case. Your workaround in this case is to use the 3 command combo provided above, to split up the parsing.

Unfortunately it's hard to immediately know which is happening. If we had the yard --debug output that would be really helpful in determining when the error is happening and what state YARD might be in. You can scrub file and class names if you want (though if you do this, they should continue to be uniquely identifiable), but can you provide the output?
You may also want to try downgrading YARD to an earlier version to see if there might have been some regression / change introduce that caused the error. Was YARD ever working on this codebase before?
@MSP-Greg this is unrelated, but can you push your stack patch on freeze_tree back upstream as a PR (and any other modifications you've made to your YARD fork)-- assuming tests are passing?

@lsegal I haven't come across the stack issue in YARD before, the stack patch was a result of seeing this issue.
Since I've got the open PR on master and browser. I'll submit the stack patch on stack_patch branch.
Re my other code changes, most of them are inside yard-t2.  Some, you've made changes to YARD since <IP_ADDRESS>.  On my TODO list is reviewing what mods I can remove due to changes you've made in YARD and what mods could move into YARD, but I'm still moving things around and refactoring in t2.
In general, I would prefer t2 to just affect code after parsing is finished.  As I believe I've mentioned before, I've got things like the attribute / alias changes I've made, which could be moved into YARD, but might  require some re-writing to do so.  Hence, if they're working in t2, I'm not going to rewrite and test them in YARD unless you express an interest in my doing so.

@MSP-Greg if you have fixes that are unspecific to yard-t2 and are useful for general usage, I'd love to have them in YARD-- at the very least, I'd love to see what fixes are being made.

I believe there are two major possibilities in what's happening, with differing workarounds:

YARD recurses every time it attempts to resolve a namespace that is out of order (not yet defined when used). If a codebase causes YARD to continually go back and forth resolving unseen namespaces, you will be doubling your stack size each time. In a large codebase, that shouldn't take too many namespace resolution errors to eventually blow the stack. Unfortunately there's no other way to implement this (we previously used continuations, but they are poorly supported across platforms). Fortunately you should be able to quickly determine if this is happening by reading --debug output logs to see if you read a lot of the following error:

[debug]: Missing object B in file `lib/mylib/a.rb', moving it to the back of the line.

Yeah, it seems to be the case. I see a ton of those messages. In our apq/ folder we have myriad of class Namespace1::Namespace2::ClassName, with Namespace1 and Namespace2 never seen to be defined on themselves (and all of it works because of Rails constant lookup magic, I believe).
Thanks, we'll try to investigate the matters!

@zverok

Yeah, it seems to be the case. I see a ton of those messages. In our apq/ folder we have myriad of class Namespace1::Namespace2::ClassName, with Namespace1 and Namespace2 never seen to be defined on themselves (and all of it works because of Rails constant lookup magic, I believe).

This kind of situation of occurs when project's subclass objects brought in via require statements, which is common (and done in YARD) with server related objects.  The @!parse tag will allow you to add comments like (I've done it before, but all the code is gone, check syntax):
@!parse module Namespace1 end
@!parse module Namespace1::Namespace2 end
which create the objects in YARD's data store, and also shows the containership structure in the 'Class List'.
No idea how many definitions you'd need to add via @!parse, but this is a possible (and existing YARD) solution.

@MSP-Greg thanks! Sounds reasonable, forgot about @!parse tag. Don't know though whether it is better to imitate proper module definitions than define them actually properly :)

Managed to fix it with proper namespacing introduced.   I tried the following:
class MyClass
  # @param (see MyClass#my_method)
  def my_method(value)
  end

  # @param (see MyClass#my_method2)
  def my_method1(value)
  end

  # @param value [String]
  def my_method2(value)
  end
end

And everything doc'd as expected.  YARD shows the following error:
Detected circular reference tag in `MyClass#my_method', ignoring all reference tags for this object  @param).

It doesn't look like there's been a release since you patched. I'll take your word for it and wait for the release. Thanks for the patch!

@jmthomas Sorry, you're correct.  I've got my YARD gem folders linked to my YARD git folders, so I'm always running on code from the master branch.  I do that with a few gems...
Your issue isn't affected by this patch.
@lsegal fixed it in Detect and log error for circular reference tags
Also see #1011.

Looks like a lot of good patches have been applied since Jul 22. I'd love a new release whenever @lsegal has an opportunity as both these issues will crash YARD and are pretty confusing to noobs. Thanks again for looking into this.

Hi, folks. I'm still running into this with v0.9.12, particularly in relation to Version 2.7.0 of the mail Gem, where I mistakenly opened mikel/mail#1211. This issue's marked as closed, but the behaviour is still depressingly repeatable. Guidance?
Quoting mikel/mail#1211:

Gem version 2.7.0 as installed from rubygems.org
Ruby version 2.5.0 on Debian Jessie. Replicated on OS X 10.11.6, also with MRI Ruby 2.5.0
Observed behaviour
$ gem install mail -v 2.7.0
Fetching: mail-2.7.0.gem (100%)
Successfully installed mail-2.7.0
Building YARD (yri) index for mail-2.7.0...
/usr/local/bundle/gems/yard-0.9.12/lib/yard/parser/ruby/ast_node.rb:212:in `block in traverse': stack level too deep (SystemStackError)
	from /usr/local/bundle/gems/yard-0.9.12/lib/yard/parser/ruby/ast_node.rb:210:in `each'
	from /usr/local/bundle/gems/yard-0.9.12/lib/yard/parser/ruby/ast_node.rb:210:in `with_index'
	from /usr/local/bundle/gems/yard-0.9.12/lib/yard/parser/ruby/ast_node.rb:210:in `traverse'
	from /usr/local/bundle/gems/yard-0.9.12/lib/yard/parser/ruby/ruby_parser.rb:601:in `insert_comments'
	from /usr/local/bundle/gems/yard-0.9.12/lib/yard/parser/ruby/ruby_parser.rb:60:in `parse'
	from /usr/local/bundle/gems/yard-0.9.12/lib/yard/parser/ruby/ruby_parser.rb:17:in `parse'
	from /usr/local/bundle/gems/yard-0.9.12/lib/yard/parser/source_parser.rb:442:in `parse'
	from /usr/local/bundle/gems/yard-0.9.12/lib/yard/parser/source_parser.rb:46:in `block in parse'
	 ... 30 levels...
	from /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/command_manager.rb:171:in `process_args'
	from /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/command_manager.rb:141:in `run'
	from /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/gem_runner.rb:59:in `run'
	from /usr/local/bin/gem:21:in `<main>'
$

Expected behaviour
gem install mail -v 2.7.0
Fetching: mail-2.7.0.gem (100%)
Successfully installed mail-2.7.0
Building YARD (yri) index for mail-2.7.0...
Done installing documentation for mail after 0 seconds
1 gem installed
$

@jdickey I believe that it is unrelated problem (e.g. better to create a new GitHub issue for it).
The problematic file is https://github.com/mikel/mail/blob/master/lib/mail/parsers/address_lists_parser.rb, which is generated by Ragel and contains some constant spanning 30k (yes, 30 thousand) lines. Probably, YARD should fail more gracefully in such weird cases.

@zverok

I believe that it is unrelated problem

Agreed.
Thanks for the file reference.  It may be a Ripper issue, I'll have a look later if Loren doesn't get to it first.

I'm having the same issue as OP with a very large Rails codebase (Dir["{app,lib}/**/*.rb"].count == 5219).
Turning debug logging on, I see the "Missing object, moving it to the back of the line" message a couple hundred times before the SystemStackError causes YARD to crash.
We have many, many instances of the "shorthand" module syntax (Foo::Bar::Baz) and rely on the Rails autoloader to create these intermediate modules at runtime. It would not be feasible for us to restructure all our code to use nested modules (nor would this be desirable as it introduces rightward drift from indentation) or to add manual @!parse tags everywhere to satisfy YARD. Breaking down yard doc into multiple runs that each operate on a subset of the codebase as suggested above does not seem scalable to me—it's only a matter of time before one of the subsets becomes too large itself and encounters the same problem.
I suspect it's common for Rails apps to rely on the autoloader for this type of module auto-vivification. I believe the Rails generators even use this pattern in generated code, e.g. the namespaced controller Admin::ArticlesController example in the official guide on routing. Is there really no better way to support this in YARD? Maybe an option (probably off by default) to auto-vivify missing modules in the same way the Rails autoloader does. It could just assume an empty module, and then if/when the actual module definition is encountered, treat it as a reopening. This would have the same effect as adding the @!parse tags as described above without having to type them out manually in every source file.

@jimmymeraki is there a reason the .yardopts approach does not work here?
Without knowing too much about the specific codebase but enough about Rails, I would imagine that the vast majority of your inter-file references either come from models or concerns, thus it should be possible to provide those globs up front to simplify the vast majority of the NamespaceMissingErrors. The following .yardopts should help in this case:
app/models/concerns app/models app lib

Of course you would do this with whichever objects log the most out of order load warnings, so if it happens to be something other than models, I would recommend adjusting the above. You can also be specific and list exact files if it happens to be just a handful of files (though as you note that will break eventually)
If this doesn't work, you could consider writing a small extension to pre-load your intermediate namespace modules that are causing the majority of out of order warnings. You could do this by creating a Ruby script that runs alongside YARD again configured via .yardopts (add -e path/to/script.rb to the end or a newline) where path/to/script.rb is:
require 'activesupport'

YARD::Parser::SourceParser.before_parse_list do |files, globals|
  Dir["app/{models,controllers}/**/*"].sort.select { |d| File.directory?(d) }.uniq.each do |dir|
    dir = dir.sub(%r{^app/.+?/}, '')
    YARD::CodeObjects::ModuleObject.new(:root, dir.camelize) if dir != "concerns"
  end
end

The above will inflect all intermediate directories in your models and controllers subfolders. You can do the same for other parts of your app if necessary.
NB: this is an untested naive implementation that doesn't necessarily handle all cases but should put you on the right track to building out the extension.
I would recommend the first approach before delving into the latter. Frankly the extension approach should only be needed if you have hundreds of inter-dependent models (A -> B, B -> A) in your codebase,
Hope that helps!

Thank you for the suggestions!
I tried loading app/models/concerns and app/models before app and lib but the same SystemStackError crashed YARD after about the same amount of progress. There are so many instances of the "Missing object, moving it to the back of the line" error in our application across so many directories that I don't see a feasible way to formulate a static list for .yardopts, and even if I found some magical incantation that worked, it doesn't seem like it would be future proof to growth and change in our codebase.
I then tried the module preloading code you suggested. With this script, yard doc was able to complete successfully without the SystemStackError crash. However, in the HTML documentation it generated, the leaf modules/classes are completely missing. It seems that the modules that were created with this extra script remain empty, even when their child constants are eventually parsed.
For example, say there is a file at app/foo/bar/baz.rb that contains module Foo::Bar::Baz; end. This results in entries in the class list in the left sidebar of the generated HTML page for Foo and Foo::Bar, but Foo::Bar::Baz is absent. The documentation pages for Foo and Foo::Bar both show a gray box with the text "Defined in: (unknown)". The page for Foo lists Bar in the "Defined Under Namespace" section, but the page for Bar does not have that section at all, whereas I would expect it to list Baz.
Is there a way to use this constant preloading technique, but also merge the real modules into the preloaded modules when they are discovered during the normal parsing process?

After a few days of learning the YARD codebase, I came up with this patch: https://github.com/lsegal/yard/compare/main...jimmymeraki:yard:autovivify-spike
This change will automatically create modules for all parent namespaces whenever it parses a nested constant. With this patch, I was able to successfully run YARD on our code base without the stack recursion error, and without the problem of missing leaf classes/modules that happened with @lsegal's suggested script.
Questions:

Would the project be receptive to a PR with my patch? Obviously I would add tests, documentation, and make the behavior conditional on a config option which is disabled by default. (The implementation as written right now might not be robust enough, since I only learned enough about YARD to fix my immediate problem, and it might not be the best way to implement the solution. But if it's worth trying to upstream this, that could be discussed in the PR.)
If this patch wouldn't be accepted in YARD itself, is there some sort of hook that YARD exposes where I could perform the same logic in an external file loaded with yard doc -e? Something akin to YARD::Parser::SourceParser.before_parse_list but that would allow me to inject custom logic into module and class creation as I've done in the patch.
If there is no existing hook that would make this possible, would the project be receptive to a PR that adds such hooks? If so, any guidelines I should follow for implementation?
If the project won't take any sort of patch and there's no existing hooks I can use, is there any other escape hatch I can use to solve my problem? I'm really hoping not to have to resort to monkey patching or forking the project.

Thanks!

I then tried the module preloading code you suggested. With this script, yard doc was able to complete successfully without the SystemStackError crash. However, in the HTML documentation it generated, the leaf modules/classes are completely missing.

I was unable to reproduce this issue with the code provided. The following content inside app/controllers/foo/bar/baz.rb generated the docs screenshotted below:
# file: app/controllers/foo/bar/baz.rb

# Docs for Baz module
module Foo::Bar::Baz
  # Does something
  def a; end
end

Note the "controllers" directory, which was part of the requirement of the implementation above (this of course could be changed).
I do have "Defined in (unknown)", for Foo / Foo::Bar, but this is also expected based on the implementation (and the fact that these modules are not defined anywhere in source, thus is technically correct).

Would the project be receptive to a PR with my patch? Obviously I would add tests, documentation,

I would recommend running existing tests against your patch. My guess is they would not pass. Adding new tests would likely not be sufficient to enable the behavior if you're not addressing the many ways in which the proposed changes would break other use cases.

If this patch wouldn't be accepted in YARD itself, is there some sort of hook that YARD exposes where I could perform the same logic in an external file loaded with yard doc -e

Here's the part where we go back to the suggested implementation above. This method is working for me and I recommend iterating on any rough edges that might cause this to fail in your codebase.

If there is no existing hook that would make this possible, would the project be receptive to a PR that adds such hooks?

If there wasn't already a method to make this work without a hook, this could be on the table. However, as it stands, the code provided earlier should be a completely viable path forward and should not require any new hooks to YARD.

If the project won't take any sort of patch and there's no existing hooks I can use, is there any other escape hatch I can use to solve my problem?

See above.


Adding Institut Notre-Dame de Bourg-La-Reine

The webpage is http://www.indblr.asso.fr/ (unfortunately its SSL certificate is self-signed)

@olivierjuan First stage of verification passed, official domain is indblr.asso.fr as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@olivierjuan The website does not even answer properly now. I'll get back to the request in a few days. Thank you.

@olivierjuan Thank you for your patience while waiting for a review and processing your request. I cannot verify the request because the website of the school replies with an empty page. It looks like it not only has an incorrect certificate, but also misconfigured.
Please reopen the request when the website is back to normal functioning. I have to close the request for now. Thank you for your understanding.


Implement Dimension class

[x] Closes Issue #134
[x] Tests added
[x] Changes are documented in CHANGELOG.rst

@shoyer Please invite also other interested parties.

@mangecoeur - This adds dimension-objects #5
@jhamman - This adds the requested isunlimited()-method #36
@dionhaefner - This fixes erronous creation of dimensions - #138
You might have a look at the implementation, if there's interest.
I'll let this sit for another couple of days before merge.


Want to make scrollable profile image where #30

https://github.com/user-attachments/assets/ef59392f-3536-48ef-b3de-427851e347db

This changes are great @nishant0708

yaa if somehow action bot is unable to take ss then i will handle that case as well.


Subscription Identifier Bug

Environment

VerneMQ Version: vernemq/vernemq:1.12.3 docker image
OS: build=22000  caption=Microsoft Windows 11 Home  64-bit  version=10.0.22000

Expected behaviour
As noted in the OASIS specification: “it is a Protocol Error for a PUBLISH packet to contain any Subscription Identifier other than those received in SUBSCRIBE packet which caused it to flow. A PUBLISH packet sent from a Client to a Server MUST NOT contain a Subscription Identifier [MQTT-3.3.4-6]”.
Actual behaviour
If a client tries to send a PUBLISH packet that includes a “Subscription Identifier” the broker does not report a protocol error, it forwards the packet to subscribers including the property. This happens only if the subscribers do not set themselves a “Subscription Identifier“ for the subscription.

@stefanodaroit Yes, I guess we should add that & spend more CPU cycles to check the PUBLISH properties for spec conformity :)
Thanks!

:point_right: Thank you for supporting VerneMQ: https://github.com/sponsors/vernemq
:point_right: Using the binary VerneMQ packages commercially (.deb/.rpm/Docker) requires a paid subscription.


feat: depend only on the major version of node

Description
You are having problems with package releases in Picasso because of a new minimum version required for execa, which we recently bumped on Picasso
How to test

You can test it on Picasso by creating a PR using the patched workflow

Development checks

[x] Add changeset according to guidelines (if needed)

PR commands

List of available commands:

@toptal-anvil ping reviewers - Ping FX team for review

@toptal-anvil ping reviewers


Add Clip attribute to the Chapter Object

There's been a request that I think would be beneficial to allow a podcaster to create a link to a clip of a different podcast, so when the link is clicked, the current podcast pauses, the clip is loaded and plays, then when finished, the original podcast continues. I think adding a clip attribute to the chapter object would be the easiest way to implement this.
clip (optional - object) This object defines an optional clip link that is tied to this chapter. It instructs the app to pause the podcast currently playing, load the link with the start and stop time, play the clip, then resume playing the original podcast.
clip object contains the following attibutes
url: required - string) The url of the audio file containing the clip
startTime: (required - float) The starting time of the clip
stopTime: (required - float) The stopping time of the clip
title: (optional - string) A title to show with the clip. Examples include a clip description, podcast name, episode name, etc.

This would be an easy addition to the spec. Thanks for documenting this Steven.

The start and stop time could also be part of the URL as specified in https://www.w3.org/TR/media-frags/ or https://podlove.org/deep-link/#appendingtimerangeinformation

The podcast specifies the selected range in the “normal play time” syntax of the Media Fragment specification:
t=[npt:][start][,end]
If you omit the start time, it defaults to the beginning of the media file, if you omit end it defaults to the end of the media file.
Here are some examples that show how the time field can be used:
t=1:35:52,1:42:16
play from 01:35:52 to 01:42:16
t=263
start playback at 4 minutes and 23 seconds
t=,24:12
play from beginning to 24 minutes and 12 seconds
For more examples and a full specification of the Normal Play Time syntax, consult the Media Fragments [1] specification.

Oh, I didn't know that stop time was a thing with MF.  What url would be referenced?  Just the direct mp3 enclosure url?

Oh, I didn't know that stop time was a thing with MF. What url would be referenced? Just the direct mp3 enclosure url?

That's what I would do. Just create a new audio element in a modal that had the enclosurer url with #t=start, stop appended to it as the src.

The start and stop time could also be part of the URL as specified in https://www.w3.org/TR/media-frags/ or https://podlove.org/deep-link/#appendingtimerangeinformation

I considered that, and ultimately, that's how I would build the enclosure url, but I was thinking adding the startTime and stopTime as two separate keys would me more consistent with the structure of the "Chapter" object and the "Soundbite" tag.


fixed #19

Fixed #19
Users can select a single cell and separated rectangular areas by clicking and dragging. Users do not have to click the veg type button first and then select an area (the system will use the current chosen veg type code).
I don't know why my part cannot automatically merge this time...

Sorry @mtpain  I was a little busy today and just found the email. En.. I should fix this by myself. I will be faster next time. Rui


Broken Keybinds

Just updated atom to 0.168.0, accordingly had some issues using enter/tab while having the emmet package enabled. The package steals the scope, not allowing normal text editor functions to work.
I was able to disable the package and have my binds return to normal working conditions. I also just reinstalled the package, just to confirm there wasn't anything wonky happening locally.
I didn't look into it that deeply, no errors in console, the binds just seemed to have stopped. Possibly something to do with the shadow-dom update?

Want to back this issue? Place a bounty on it! We accept bounties via Bountysource.

Closing in favor of #184


Macros with \gdef do not persist.

Macro definitions work with \gdef but do not persist from one set of equations to the next:
$$
\gdef\ket#1{\left\lvert#1\right\rangle}
\ket{x}
$$

$$
\ket{y}
$$

I was assuming that autorendering was being used which claims that a global options.macro variable should be accumulated allowing macro definitions to apply later in the document, but apparently this is not happening.  Any idea why?

Looking at src/extensions/katexExtension.js and the output, it seems like the expressions are rendered individually in the preview.  Hence, macro definitions from one equation do not propagate to the others.  Is there a reason that one cannot provide the KaTeX support by a single call to renderMathInElement(elem, options) from the Auto-render extension?
If this is a performance issue, then maybe there is a way of using a single global options object for KaTeX rendering (last argument to render).  Currently this a static { displayMode } explaining why macros do not persist between equations.
(I am assuming that if this were a global options object that KaTeX would insert \gdef macro definitions into this but have not tested it yet.  If using a global options object fails, then that would probably be a KaTeX bug.)


fix(rust_indexer): serialize proxy communication with serde_json

Previously we constructed the proxystub commands with format strings, which could lead to issues if there were stray quotation marks. With this PR we let serde_json handle the JSON serialization for us.

Wonder if it's worth a future cleanup to convert the responses in the same way for symmetry?

This is doable. Would just need a generic response type that would allow us to detect the response argument type based on the response command, then we could serialize the response based on that. Can be done in a future PR


Why can't I send blocks in a payload?

Description
Describe your issue here.
What type of issue is this? (place an x in one of the [ ])

[ x] bug
[ ] enhancement (feature request)
[ x] question
[ ] documentation related
[ ] example code related
[ ] testing related
[ x] discussion

Bug Report
Filling out the following details about bugs will help us solve your issue sooner.
Reproducible in:
<EMAIL_ADDRESS>package version:
<EMAIL_ADDRESS>Steps to reproduce:

send this payload

      - name: Send report
        if: failure()
        uses<EMAIL_ADDRESS>        with:
          payload: |
            {
              "text": "test",
              "blocks": [
                {
                  "type": "section",
                  "text": {
                    "type": "mrkdwn",
                    "text": "*iOS Appium Tests* Failed"
                  }
                },
                {
                  "type": "section",
                  "text": {
                    "type": "mrkdwn",
                    "text": "<https://www.youtube.com/watch?v=-Cz39ntrcIQ|View Failed Tests> \n Video"
                  }
                }
              ]
            }
        env:
          SLACK_WEBHOOK_URL: ${{ secrets.TEST_RESULTS_SLACK_WEBHOOK_URL }}

Expected result:
Your App
APP
iOS Appium Tests Failed
View Failed Tests
Video
Actual result:
with the text key:
slack msg returns as just "test", no block data at all
Removing the text key:
Run<EMAIL_ADDRESS>axios post failed, double check the payload being sent includes the keys Slack expects
{
  'blocks.0.type': 'section',
  'blocks.0.text.type': 'mrkdwn',
  'blocks.0.text.text': '*iOS Appium Tests* Failed',
  'blocks.1.type': 'section',
  'blocks.1.text.type': 'mrkdwn',
  'blocks.1.text.text': '<https://www.youtube.com/watch?v=-Cz[39](https://github.com/xxxxx/xxxx/actions/runs/4722163065/jobs/8376387898#step:3:40)ntrcIQ|View Failed Tests> \n Video'
}
Error: missing_text_or_fallback_or_attachments
Error: Request failed with status code [40](https://github.comxxx/xxxx/actions/runs/4722163065/jobs/8376387898#step:3:41)0

P.S. I read this ticket and it didn't help at all, as I couldn't see a solution and not sure what the OP meant by "flatten" as all the links 404, thanks for any help.

Fixed after adding SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK, missed that


Create slide-out menu for navigation

Overview
As a mobile user I should be able to access navigation options from a compact menu.
Currently, the navigation bar only displays information in a large-width context (desktop) though mobile users need a more optimized experience.
Proposal
First, a new menu needs to be created showing identical navigation links to what is visible in the desktop mode. This could be a menu that slides from the right of the screen, or any other reasonable design.

Current behavior:
https://user-images.githubusercontent.com/13911970/196749163-aa5914ff-b7c9-4661-b0d9-30346305a6b4.mov

Hi,
I believe this has been already solved.
When running the newest develop version, you get the full height slide-in menu on mobile as requested.
However, there's currently an issue with z-indexes, but it can be simply fixed by adding a high enough z-index to the MobileNav.

As for having the same links shared between desktop and mobile, I would take a different approach to generating links in general. Currently the links are duplicated, but it would easier, to simply create an array with link data, an then do a map over it. This would solve code duplication and make sure that there are always the same links in mobile and desktop navs.
I could take care of this issue :)
Sample:
const navLinks = [
  {
    href: '/about',
    label: 'About',
  },
  {
    href: '/contact',
    label: 'Contact',
  },
];

function MobileNav() {
  return (

      {navLinks.map((link, index) => (

          {link.label}

      ))}

  );
}
function DesktopNav() {
  return (

      {navLinks.map((link, index) => (

          {link.label}

      ))}

  );
}
export function Navigation() {
  return (

        <MobileNav />

        <DesktopNav />

  );
}

Currently outdates and requires new design

Whooops! This issue got completely lost in my list... Sorry about that!


static ctor of Network must run before creating other networks

One cannot run NetworkBuilder.BuildAndRegister() to create a Network before triggering the static ctor of Network one time before so that it already creates BitcoinMain. Otherwise, this line will crash:
assert(consensus.HashGenesisBlock == uint256.Parse("0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f"));
This can be worked around like shown below, but it's very confusing :-)

public static void Main(string[] args)
        {
	        var fix= Network.Main; // execute static constructor of Network before everything else, or crash

	        var network = !args.Contains("-testnet")
				? MyNetworks.RegisterMain()
				: MyNetworks.RegisterTest();

	        if (NodeSettings.PrintHelp(args, network))
		        return;

Whats the problem with the static fields? you can just safely ignore them.


Alphalens Fails on Discrete Factors

Factors which draw from small discrete sets (such as a buy/sell factor with -1, 0, 1) fail in alphalens. A fairly uninformative error is generated. For repro you can try running it on a factor constructed from this sentiment data. We should have a more elegant failure or some kwarg to tell alphalens the factor is discrete. I solved the issue locally by adding in a tiny amount of random noise to my factor, effectively making it continuous.
https://www.quantopian.com/data/sentdex/sentiment

For factors containing discrete values you can use the 'bins' argument that force alphalens to perform a binning on the values instead of creating quantiles. With discrete values from your example (-1,0,1) you could try something like:
bins=[-1.5, -0.5, 0.5, 1.5]
quantiles=None

For details see here
Regarding a more informative error,I agree with you.

Got it, thanks. This is helpful and having a more useful error, or a kwarg for discrete data, would be awesome.

I have run into this same issue before with continuous factors that simply have a lot of 0 values. I have solved this similarly to Delaney, by adding a very small amount of random noise. In this case, I don't think specifying the bins will solve the issue since I do not know the quantiles.

@mmargenot  I would consider your issue different from the one reported by @CaptainKanuk. The problem you faced is due to pd.qcut (the function that calculate the quantiles) not being able to provide a workaround when identical values span more than one quantile. Interesting to note, in pandas 0.20.0 they added an option (duplicates='raise'|'drop') that fixes that, which would result in less bins than specified, and some larger bins (with more elements) than others. We could make use of that option eventually.
Until then, another workaround could be to use bins=5 and quantiles=None, that chooses the bins/quantiles to be evenly spaced according to the values themselves, while quantiles=5 chooses the bins/quantiles so that you have the same number of records in each bin/quantile.

Closing this


Great App! Some quick thoughts and questions

First off, thank you for the work you've put into this app :)
I was looking for a way to apply a png as a texture on the taskbar while retaining the modern acrylic look. I initially started with Windhawk with the taskbar styler mod, but I could only get it to a apply a fill color
Then I found RainbowTaskbar, which unless I've missed something, is the only app outside of Stardock apps that can actually apply an image! Much cool :D
I noticed the layering system right away, and tried to use that to apply my png on top of the taskbar at ~50% transparency, but it seems like the png applies to the underlay? The documentation didn't explicitly say how it works. I wanted the png to be behind the buttons but on top of the acrylic layer, is that currently possible? In any case, I've got it mostly how I want now, and I can always tweak the image a little to suit the taskbar better
I also noticed that opening and closing the start menu sometimes (but not always) causes the taskbar to flicker, with the image very obviously going from 0% transparency to 100% and then back down to its set value very quickly. Is that a me problem, or did I run into an actual bug? It seems to be related to the changing focus state, so if I click off the taskbar or start menu, or launch an app from the start menu it will flicker, but if I press the win key twice or click the button twice it seems to be fine. (Windows 11 22621.2715, Explorerpatcher Windows10 Taskbar)
lastly, do you intend on/will you consider adding a toggle for the tray icon? I can hide it myself with advancedRun, but its always nice to not have to add yet another bat file to my list of startup tasks
thanks again and best wishes to you!!
cheers

Thanks a lot for the feedback!

Currently, it's not supported to place graphics behind the icons, but I will look into it, as it has came in mind a few times before.
Quick clarification about the layer system, it is used to mix all the graphics such as text, shapes and gradients by providing a per-layer transparency, and they can also be cleared separately. The layers are all displayed on the underlay.

Could you perhaps send me a video of the flicker you are talking about? I don't think that's happened to me.

I will add a toggle in the settings for the tray icon.

Thanks for the near instant reply!
I appreciate the clarification, that explains why it behaves the way it does
Here is a 10 second clip of the flickering. Upon viewing it back more slowly, I can see I that its actually the taskbar transparency that is doing the flickering. I suppose when it goes down to near 0% it has the effect of making the underlay appear more opaque.
https://github.com/ad2017gd/RainbowTaskbar/assets/92948468/9124b5c2-ac92-48dc-aeab-08c8460669bd

Currently, it's not supported to place graphics behind the icons, but I will look into it, as it has came in mind a few times before.
I will add a toggle in the settings for the tray icon

awesome, thank you!

good morning!
I disabled ExplorerPatcher, and no it does not flicker when disabled, nor does it flicker with ExplorerPatcher enabled when set to the windows 11 taskbar.
Happy to do more testing or provide logs, system info, etc
thanks for looking into this :)

Interesting. I think I can remember this happening on Windows 10. I'd have to set up a VM and get to working on a fix, but I don't know how much that'll take.

Whenever you can, no rush. I'll also test in a fresh VM (I keep a checkpoint of a fresh install + latest updates), see what happens, and post what I find here on Monday.
Enjoy your weekend!

So I gave it a quick test in my VM, and on a completely clean copy of windows it doesn't flicker at all while taskbar style is set to default or transparent, but does when set to blurred. Once I switch over the the windows 10 taskbar using explorerpatcher, the issue happens with blurred and transparent, but not default.
I haven't had a chance yet to test on an actual windows 10 system, but I will tonight. Let me know if there's anything specific you'd like me to test out on my end, happy to mess up the whole VM ;)


Dev

Adds the quality function to check number of soft constraints passed
Changes the solve function to return a custom object rather than a single dictionary
Concerns:
Maybe we should return a dictionary of all of the results instead of a custom object; I've seen that often, and it makes it easier to see what's available without digging into the code. If not, we should add a display function to the object so that it can be printed nicer.
I'm thinking we might want to include a 'verbose' variable or something to the solve function. Currently the qiskit solver takes quite a bit longer to connect to the submitted jobs and dig through the qasm to find the number of qubits used and the circuit depth, which not everyone may want. Perhaps it should be optional. The ocean solver is a much smaller addition, and the z3 solver doesn't really have any of that information anyway, so it's mostly a qiskit concern.

From today's discussion:

Let's keep the custom object instead of a dictionary so we can add methods to it.
It would be good for a __str__ method to return a representation of Result itself, probably dict-like but merely summarizing some of the larger fields.
Instead of a verbose option, let's provide a method that returns the expensive metrics.  We might wrap that in a generator at some point so accessing the data lazily triggers the costly operation, but I haven't yet decided if I like that approach.

Here are some additional thoughts from reading your changes:

I'd prefer that Result be a top-level class, not nested within Environment.

dwave.inspector feels like overkill for acquiring the number of physical qubits.  I'm pretty sure there's a simpler alternative.

Your recording of execution times in the Qiskit solver makes me think that a tuple of starting and ending time could be a good addition to the Result object.  Even better would be additionally to include starting and ending QPU time where possible.

We'll also need to update all of the examples to work with Result objects.

Would you like to work on any/all of the above, or would you prefer that I do?

As I haven't heard from you I want ahead and

moved Result from Environment into nchoosek.solver,
dropped dwave.inspector, which was being used solely for its side effect of passing return_embedding=True to sample_qubo, and
updated all examples to work with a Result object.


Zipfile bug fix

Issue being fixed: #78
Sets the ZLIB_INCLUDE and ZLIB_LIBRARY paths to the precompiled binary packaged in Overgrowth's libraries, overriding the default one provided by FreeType. I've also set FT_REQUIRE_ZLIB to ON so that if in the future FreeType is unable to find this precompiled version it will give an error immediately instead of silently and cryptically failing later. Both of these changes are only applied in a Windows build system. Works on Windows 10, and tested on Ubuntu 20.04 LTS with no noticeable changes in the build system from cursory testing.
Only other changes in this PR are removing some now redundant debug code and changing another engine iterator to a regular for loop (should I create a separate issue to track these?).

Thanks! I succeed with

This pr.
CMakeLists.txt changes, which also @redruin1 told me.

cmake gui. ( important! )
VS2022 Release x64 target.

More on the CMakeLists changes made when discussing with @gonnavis:
There seems to be some issue with Visual Studio when working with the CMake command line that isn't present when working with the GUI. Notably, if you use the GUI to generate the project files from a clean build Overgrowth should compile right out of the box; but if you use the command line it seems to not register the changes to the CMakeLists and fails to compile the fix, resulting in Overgrowth building, but with the zipfile error present again. However, while still in the solution file, if you change any of the CMakeLists (or do anything that forces VS to rerun cmake internally) the solution will prompt you to reload; if you do so, then the fix is compiled and the patch works.
Intuition seems to indicate that this is some kind of caching issue, but this issue persists even if you completely delete the contents of the Build folder in it's entirety; there should be no cache to revert to. It must be that for whatever reason, this patch I've pushed is just not getting run on the first time around when running CMake from the command line; why this is the case is anyone's guess.
Not a huge issue by any means; easiest solution right now is to just use the GUI. However, all of the current documentation points to the command line as a valid procedure, so it would be better if this was investigated further as this could be a hallmark of a more insidious issue.
I've also been experimenting with different (perhaps more conventional) ways to specify the zlib path. I changed ZLIB_INCLUDE to ZLIB_INCLUDE_DIR, as I believe this is more correct, and I got issues with the former when experimenting with clean builds. I also changed the statements to regular set commands; It turns out that relative paths are allowed, they just must be prepended with a known directory, like so:
IF(WIN32)
    # ...
    SET(ZLIB_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/../Libraries/zlib1.2.7/include")
    SET(ZLIB_LIBRARY "${PROJECT_SOURCE_DIR}/../Libraries/zlib1.2.7/lib/x64/zlib.lib")
ENDIF()

This might be better than get_filename_component, as that command seems to be somewhat deprecated. Other avenues I explored was a custom find module, though I honestly don't know enough about cmake to know whether or not that would be a worthwhile investment than just setting the paths directly.

Alright, after much research and dozens of from-scratch compilations I've revised my proposed solution to:
IF(WIN32)
    # Make sure freetype uses the precompiled 1.2.7 binary
    OPTION(FT_REQUIRE_ZLIB "Overridden on Windows" ON)

    SET(ZLIB_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/../Libraries/zlib1.2.7/include" CACHE INTERNAL "Precompiled zlib include path")
    SET(ZLIB_LIBRARY "${PROJECT_SOURCE_DIR}/../Libraries/zlib1.2.7/lib/${WINDOWS_LIB_DIR}/zlib.lib" CACHE INTERNAL "Precompiled zlib library path")
ENDIF()

Since FT_REQUIRE_ZLIB is specified as an option I mirror that here, since from what I've read this is more correct. Both set statements were changed to cache variables (so they're guaranteed to be global and visible on the first run) and labeled them as internal so that the user shouldn't be able to easily change them. Most notably, the library path is now also dependent on the build target being made, either x86 or x64, so users should be able to link with the 32-bit version just fine (which I have confirmed in my testing). Additionally, these changes seem to have resolved the CMake command-line/GUI discrepancy; I built and tested all permutations of command-line/GUI and Release/Debug, and in every case not only was the bug resolved but it worked out of the box first-try.
Due to my research, there is a slight alteration on this CMakeLists that's roughly equivalent that uses a single statement to specify the location of zlib:
SET(CMAKE_PREFIX_PATH "${PROJECT_SOURCE_DIR}/../Libraries/zlib1.2.7")

This finds the headers just fine, but due to the unconventional structure of the lib folder (two folders, x86 and x64) CMake cannot find the libraries, and has to be specified alongside:
SET(CMAKE_PREFIX_PATH "${PROJECT_SOURCE_DIR}/../Libraries/zlib1.2.7")
SET(ZLIB_LIBRARY "${PROJECT_SOURCE_DIR}/../Libraries/zlib1.2.7/lib/${WINDOWS_LIB_DIR}/zlib.lib" CACHE INTERNAL "Precompiled zlib library path")

This pair seems to behave identically at least in my testing, but I've opted for the former since it seems more readable and avoids potential clashes if some other part of CMake is using the prefix path. However, if CMake can be informed of this unconventional folder structure, it might be better to switch to this command; but as of writing I have been unable to find reasonable solution aside from specifying the library location manually as above.

Re the caching issue -
I pretty much exclusively use cmake from the command line. Sometimes VS sees changes to CMakeLists. In those cases, I run the build, it errors out, I get a reload prompt and reload, then run the build again and it's all good. Occasionally VS doesn't see the change to CMakeLists. But if I nuke the Build subdir and rerun cmake, I never have a "stale" build at that point. Makes sense, since the cache lives in the build folder, and if you nuke it the cache is gone.

@shinymerlyn Actually, the behavior you describe is basically identical to the behavior that Vis and I had: compiles fine first time around but with the bug still there, make some change to CMakeLists so that VS is forced to rerun CMake, a prompt to reload the entire solution comes up, reload all, recompile, and the patch works. You'd think VS would also have a dedicated "Reload solution" button, but from what I've found that doesn't seem to be the case. Perfectly surmountable, provided you know what to do; but figuring out what to do could be near impossible to the untrained, and there's no documentation regarding it, so I wanted to see if it was something I could resolve with the build itself.
I think the issue was caused by the set command being local to the CMakeLists it's specified in; if you delete the CACHE INTERNAL ... and just have it be a regular set statement, nuke the build folder and recompile, you'll actually get configuration errors (or, at least I did) where CMake can't resolve the paths set. (Actually, more confusingly, it finds zlib, and then immediately can't find zlib, resulting in an un-googleable error string. Probably because I'm manually setting the ZLIB_XXX variables which are normally found by a CMake config/find module.) I suspect because when CMake travels into the freetype subdirectory it travels out of the variables scope and can't be recognized; but when you set it to a cache variable it essentially becomes global and can be found across the solution. Of course, this doesn't explain why it fails to work the first time around, and then succeeds the second time around... it's all very cryptic.


Update client.py

Fix issue with margin orders where order direction is not being passed to data.

Coverage decreased (-0.4%) to 50.192% when pulling 7b585baad9071f4c563643b3e262cc1179423deb on smogili1:patch-1 into 3890c399168f947d073d08470eeaef4162467ecb on sammchardy:develop.

Thanks for picking that up @smogili1

Have included in v0.1.4

Thanks!


Linux packages do not have executable bit set for executable files

Package: https://github.com/LunarG/gfxreconstruct/releases/tag/v1.0.2
Here's what ls -l shows for the files that are in the package:
$ ls -l
total 37988
-rw-r--r-- 1 david david    2052 Jan 23 11:02 gfxrecon-capture.py
-rw-r--r-- 1 david david   14441 Jan 23 11:02 gfxrecon-capture-vulkan.py
-rw-r--r-- 1 david david   98232 Jan 23 11:02 gfxrecon-compress
-rw-r--r-- 1 david david 8987088 Jan 23 11:02 gfxrecon-convert
-rw-r--r-- 1 david david 5783712 Jan 23 11:02 gfxrecon-extract
-rw-r--r-- 1 david david 5955312 Jan 23 11:02 gfxrecon-info
-rw-r--r-- 1 david david 5939504 Jan 23 11:02 gfxrecon-optimize
-rw-r--r-- 1 david david    5756 Jan 23 11:02 gfxrecon.py
-rw-r--r-- 1 david david 8549896 Jan 23 11:02 gfxrecon-replay
-rw-r--r-- 1 david david 3422200 Jan 23 11:02 libVkLayer_gfxreconstruct.so
-rw-r--r-- 1 david david   24075 Jan 23 11:02 LICENSE_ThirdParty.txt
-rw-r--r-- 1 david david    1074 Jan 23 11:02 LICENSE.txt
-rw-r--r-- 1 david david   45192 Jan 23 11:02 USAGE_desktop_Vulkan.md
-rw-r--r-- 1 david david   26716 Jan 23 11:02 VkLayer_gfxreconstruct.json
-rw-r--r-- 1 david david    8771 Jan 23 11:02 vk_layer_settings.txt

Looks like permissions are stripped from the artifact but there's a workaround by taring the archive
https://github.com/actions/upload-artifact#permission-loss

Looks like permissions are stripped from the artifact but there's a workaround by taring the archive

It does give you a zipped up tar though which probably isn't ideal


update main docs and correct changelog again for 0.7.2

Per discussion with @jrcheli :

#241 ARM64 support — Updated the Requirements page

#395 SCOPE_CONNECT_TIMEOUT_SECS — Added a ¶ in the TLS page

#311 HTTP/1.1 & HTTP/2 traffic — corrected Changelog and added a ¶ in the LogStream Integration page.

#407 — updated the CLI reference


Turkish Locale

Missing some translations,

If you need to translate the words, do not use Google Translation, feel free to ask and mention @kriptokar

Wallet = Cüzdan
Close Wallet = Cüzdanı Kapat
Buy TOMO = TOMO Al
Sell TOMO = TOMO Sat
Hours = Saat
Decimals = Ondalık
Buy TOMO = TOMO Al
Sell TOMO = TOMO Sat
Hours = Saat
Day = Gün
Days = Gün
Book = Tahta
Market Trades = Piyasa İşlemleri
On Wed, Jun 3, 2020 at 10:36 AM Nguyen Sy Thanh Son <
<EMAIL_ADDRESS>wrote:

Missing some translations,
[image: photo_2020-06-02_20-07-58]
https://user-images.githubusercontent.com/546540/83608403-15146100-a5a7-11ea-980e-28f8ecee17f5.jpg
If you need to translated the words, do not use Google Translation, feel
free to ask and mention @kriptokar https://github.com/kriptokar
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tomochain/tomox-sdk-ui/issues/272, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALVSUF63V7ZRYIE67C7AQALRUX4P3ANCNFSM4NRM6CDQ
.

second = saniye
seconds = saniye
Cancelling order = Emir iptal ediliyor
Orden cancelled = Emir iptal edildi
Order added = Emir girildi

@thanhvk did you update the translation in the latest version?

@thanhson1085 I'm only updated on the desktop version

@kriptokar please help me translate words:
Home
Trade
Lending
Account
Switch to spot
Switch to lending
No orders
Contracts
The data is copied
Login Error
Incorrect Mnemonic Phrase order. Please try again.

@kriptokar please help me translate words:
Home
Trade
Lending
Account
Switch to spot
Switch to lending
No orders
Contracts
The data is copied
Login Error
Incorrect Mnemonic Phrase order. Please try again.

Home = Giriş
Trade = Trade
Lending = P2P Kredi
Account = Hesap
Switch to spot = Borsa'ya Geç
Switch to lending = P2P Kredi'ye Geç
No orders = Emir Yok
Contracts = Kontratlar
The data is copied = Veri kopyalandı
Login Error = Giriş Hatası
Incorrect Mnemonic Phrase order. Please try again. = Yanlış kurtarma ifadesi. Lütfen tekrar deneyin.

LENDING PAGE

Borç Verme = P2P Kredi (or) Borç Al/Ver
Day & Days = Gün
Teminat Gerekli = Gerekli Teminat
Order Type - Top/Up Type = Emir Türü - Teminat Türü
Collateral token / lending token - Hover on liquidating price to see details = Teminatlanmış Token / Borç Verilmiş Token - Ayrıntıları görmek için likitide fiyatının üzerine gelin

And I guess this is the last bug for now. It is in Thank you.
TRADING PAGE

SELL =  Sat
BUY =  Al

@kriptokar please help me:
Auto
Manual

@kriptokar please help me:
Auto
Manual

—

Otomatik
Manuel

@kriptokar and more:
Only for Dapp Browser
Please use a dapp browser for this action.

@kriptokar and more:
Only for Dapp Browser
Please use a dapp browser for this action.

--

Sadece Dapp Browser için
Bu işlem için dapp browserı kullanın

@kriptokar
Transaction Fee
Transaction Failed
Transaction Valid

@kriptokar
Transaction Fee
Transaction Failed
Transaction Valid

İşlem Ücreti
İşlem Başarısız
İşlem Geçerli

@kriptokar please help me
Balance
Max
Copy
Processing
Completed
TxHash
Recipient's Address
Deposit Address
Withdraw
Do not withdraw directly to a crowdfund or ICO address, as your account will not be credited with tokens from such sales.
Coins will be withdrawing after 30 network confirmations
Recipient's {symbol} address
Minimum withdrawal
Withdrawal fee
You will get
Recent withdrawal history
Go to trade
Send { symbol } to the address below
Minimum deposit is
You might not receive TRC21 {symbol} token if you deposit below minimum deposit amount of {symbol}
Recent deposit history

@kriptokar please help me
Balance
Max
Copy
Processing
Completed
TxHash
Recipient's Address
Deposit Address
Withdraw
Do not withdraw directly to a crowdfund or ICO address, as your account will not be credited with tokens from such sales.
Coins will be withdrawing after 30 network confirmations
Recipient's {symbol} address
Minimum withdrawal
Withdrawal fee
You will get
Recent withdrawal history
Go to trade
Send { symbol } to the address below
Minimum deposit is
You might not receive TRC21 {symbol} token if you deposit below minimum deposit amount of {symbol}
Recent deposit history
Latest language file: https://github.com/tomochain/tomox-sdk-ui/blob/master/src/locales/langs/tr.json

Bakiye
Max
Kopyala
İşleniyor
Tamamlandj
TxHash
Alıcı Adresi
Yükleme Adresi
Çekim
Toplu fonlama veya ICO adresine çekim yapmayın.
30 ağ onayından sonra coinler çekilecek
Alıcının {symbol} adresi
Minimum çekim
Çekim ücreti
Alacağınız
Yakın çekim geçmişi
Al-sat’a git
Alttaki adrese { symbol } gönder
Minimum yükleme miktarı
Aşağıdaki adrese minimum miktarda {symbol} yüklediyseniz, TRC21 {symbol} token almamanız lazım
Yakın yükleme geçmişi

I found some new bugs and make some updates.
--
(1)

You might not receive TRC21 {symbol} token if you deposit below minimum deposit amount of {symbol}
Adrese minimum miktarda {symbol} yüklemezseniz, TRC21 {symbol} token alamayabilirsiniz
--
(2)

Dökümanlar/SSS
Rehber/SSS
--
(3)

Day = Gün
Days = Gün
--
(4)

Balance = Bakiye
--
(5)

Veri oyk = Veri yok

DAPP
Spot = Spot
Or = yada
Lending = P2P Kredi

when you change limit to market; buy - sell is not Turkish.
Buy = Al
Sell = Sat

Sell Lo = Satılan
Cancel = İptal

Days = Gün


[Feature Request]: add Makefile task to run markdownlint

Implementation ideas
Proposed by @Wondertan

Related: #940


Some expressions doesn't work anymore (1.14.4)

Hi, i'm french so I use google traduction.
Since I passed my server in 1.14.4 some expressions no longer work.
Skript example:
command /test1 <player>:
	trigger:
		skungee send "test" to bungee player "%arg 1%"

command /test2:
	trigger:
		message "test" to all of the bungee players

Reload result for command /test1: https://i.imgur.com/CYGcvsr.png
For command /test2 no error but internal error when use the command: https://i.imgur.com/75MmFNX.png
These are the only expressions that no longer work since I switched to 1.14.
I don't understand why because my syntax is all true
Bungee version: Waterfall 1.15-snapshot
All spigot server : Spigot 1.14.4
Skript version: 2.4.1 (lastest)
Skungee version: : 1.011 (lastest)
Bungeecord skungee config: https://pastebin.com/CDLJVfFG
Spigot skungee config: https://pastebin.com/kZPRexRw
Spigot skungee syntax: https://pastebin.com/NQFkJWFa
Thank.

We need the error that gets printed in the console when executing the second command.

The syntax send player to player is not a syntax, you need to first get the server of the other player then send them to that server, that can be a suggestion to add though.

Hi,
Error in the console with /test2 command: https://pastebin.com/vQuwMNQH
Since I restarted my server I no longer have "internal error" but the message is not sent to the players. Skungee is well connected because most of the other expressions work.
Can you show me an example to send a message to a specific player? Because before I used this line and it worked perfectly.
Thanks for your quick help! Have a good day

Hi,
Well, something crazy happened between yesterday and today. I tried to put version 1.09 but I had a lot of problem. So i put back 1.0.11. And since  I have no more problems. It's really weird because I had already removed / put back the plugin several times to try to correct the problem.
My problem is therefore closed.
Sorry for the inconvenience, have a good idea :)

Can you test with 1.0.13 and report back?

Hi, I put 1.13 and tried these codes:
`on skungee message from channel "test":
broadcast "&a%skungee messages%"
command /skmsg:
trigger:
send skungee messages "testing" and "hello" to channels "test"
command /condition :
trigger:
if bungeecord player arg 1 is online:
message "&aYes"
else:
message "&cNo"`

For command "/skmsg" no error on reload.
But nothing appen when I use the command.
No error in the console.

For command "/condition" no error on reload.
But when i use the command i get "An internal error occurred while attemptin to perform this command".
Error in the console : https://pastebin.com/T0ecMp9H

Bungee version: Waterfall 1.15-snapshot
All spigot server : Spigot 1.14.4
Skript version: 2.4.1 (lastest)
Skungee version: : 1.013 (lastest)
Bungeecord skungee config: https://pastebin.com/CDLJVfFG
Spigot skungee config: https://pastebin.com/9YRAVy9R
Thank.


code of Comparison of Scales

Hi,
How can I compare detections across bounding box areas, similar to Fig .5 Comparison of Scales between HTC and TridentNet in your paper?
Thanks!

hi, did you handle this?


Upgrade debhelper compat level

In order to fix our daemon stop during package remove/upgrade bug, let's upgrade our debhelper compat level.  The more recent levels seem to do smarter things with systemd services.

Marking "Do not merge".... still need to test install/remove/upgrade


integrate with surrealdb

is serverpod database agnostic, or does it need to be set up for each database? can surrealdb be a backend that's supported?

It's possible to use Serverpod with any database, however, you will need Postgres for it to run. There are some packages for surrealdb on pub.dev. I haven't looked into them and do not know the quality of them though.

Can someone elaborate on why Postgres is needed in order to run any other database? Thanks in advance!:)

Yes, we need an example or a small documentation on how to connect with other SQL DBs.

Can someone elaborate on why Postgres is needed in order to run any other database? Thanks in advance!:)

Some of Serverpod's features rely on the database. E.g., logging, future calls, health checks, default cloud storage, and authentication.


added timeout to goreleaser workflow

Please check below, if the PR fulfills these requirements:

[X] Commit(s) and code follow the repositories guidelines.
[X] Test(s) have been added or updated to support these change(s).
[X] Doc(s) have been added or updated to support these change(s).

Associated Links:

N/A

Types of Changes:

Bugfix/Feature

Proposed Changes:

Added timeout to goreleaser workflow and build process

Verification/Testing of Changes:

N/A

Additional Context:

N/A

I was just saying yesterday that we needed more PRs around here. Job well done.

more PRs = more code = more good!


Rename the repository from DemUtils to xdem

I think this is good to do as soon as possible, before this package becomes more popular. Running pip install git+github.com/GlacioHack/DemUtils.git only to import xdem doesn't make much sense!

No PR open... and I haven't made a lot of changes locally. We could do it now, maybe?

Yeah, go ahead from my part! I don't have the right to change its name. Maybe @adehecq  has it?

Done! Strange that you can't, Amaury added you to the demutilsmaintainers with admin rights.

Done! Strange that you can't, Amaury added you to the demutilsmaintainers with admin rights.

Well, maintainers don't have exactly the same rights as admin. This is actually to prevent anyone to do a mess like this. Ideally there should be just one admin for each repo. I haven't had time to set the permissions for everyone actually.


Syntax highlighting is not language complete

E.g. It doesn't recognise ${x}
It would be really nice for a tool for introducing people to the language, like Dartpad, to have stronger syntax highlighting support.
@kasperpeulen

see my attempt here: http://kasperpeulen.github.io/dart-pad/


WebGL 1 support

Hi,
I created this issue to start a discussion around support of WebGL 1 in Godot 3.x.
Our interest in WebGL 1 stems from the following statistics (Taken from caniuse.com):

WebGL 1 browser support: 92.93%
WebGL 2 browser support: 59.74% (Most notably Safari and Edge support missing)

My understanding is that WebGL 1 is somewhat based on OpenGL ES 2.0: "This specification may diverge from OpenGL ES 2.0 in order to ensure interoperability or security, often defining areas that OpenGL ES 2.0 leaves implementation-defined." from https://www.khronos.org/registry/webgl/specs/1.0/
Since @karroffel will be working on a OpenGL ES 2.0 renderer for Godot 3.1, my question is whether this will also entail WebGL 1 support?
Further, what limitations will the OpenGL ES 2.0 renderer have compared to the GLES3 renderer?

It is as you say, currently @karroffel is backporting Godot 3.0 to GLES2,
which should make it work properly on WebGL1.
The GLES2 renderer will be more similar to how Unity works in mobile, and
will likely not support some of the most advanced post processings or real
time -GI (though I'm adding lightmap support to compensate).. yet it should
be full PBR.
On Wed, Dec 13, 2017 at 5:23 AM, Christian Uldall Pedersen <
<EMAIL_ADDRESS>wrote:

Hi,
I created this issue to start a discussion around support of WebGL 1 in
Godot 3.x.
Our interest in WebGL 1 stems from the following statistics (Taken from
caniuse.com):

WebGL 1 browser support: 92.93%
WebGL 2 browser support: 59.74% (Most notably Safari and Edge
support missing)

My understanding is that WebGL 1 is somewhat based on OpenGL ES 2.0: "This
specification may diverge from OpenGL ES 2.0 in order to ensure
interoperability or security, often defining areas that OpenGL ES 2.0
leaves implementation-defined." from https://www.khronos.org/
registry/webgl/specs/1.0/
Since @karroffel https://github.com/karroffel will be working on a
OpenGL ES 2.0 renderer for Godot 3.1, my question is whether this will also
entail WebGL 1 support?
What limitations will the OpenGL ES 2.0 renderer have compared to the
GLES3 renderer?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/14616, or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z29SX4Mnlr0T6F5nRIexGOANwUhrLks5s_4lygaJpZM4RAKs9
.

There's more to it than implementing an OpenGL ES 2.0 rasterizer, WebGL 1.0 has several limitations that the implementation needs to deal with if support is desired

@karroffel Do you have any plans for taking these limitations into consideration when implementing the GLES2 renderer? If not, we would be very interested in discussing work-for-hire in this regard.

There should be no problem in supporting WebGL1, the main limitation is not
using arrays from main memory and this should definitely not happen.
On Thu, Dec 14, 2017 at 3:34 PM, Christian Uldall Pedersen <
<EMAIL_ADDRESS>wrote:

@karroffel https://github.com/karroffel Do you have any plans for
taking these limitations into consideration when implementing the GLES2
renderer? If not, we would be very interested in discussing work-for-hire
in this regard.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/14616#issuecomment-351797708,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z20iRp_E-YJ1Hi1dV2rZIEaiSNweSks5tAWpRgaJpZM4RAKs9
.

@uldall I will make it work on my main development machine first, then make it work on other platforms. Proper HTML export is something that's planned to be done, but not up front but patched in after it's all working already on other platforms.

WebGL 1.0 driver is available for testing with #17343

Awesome! :)

That PR was merged, shouldn't this issue be closed?

Some testing might be in order to ensure that basic functionality work (at least similar to current desktop OpenGL 2.1).

That PR was merged, shouldn't this issue be closed?

I think now yes, the specific issues can be created separately + the topic seems dead, what do you think @akien-mga ?

Yes, we can consider it fixed.


@QueryMap not resolving to query parameters

Hi guys,
I have opened an issue on Feign itself (OpenFeign#1484) and a question on Stack Overflow (here).
I'm having an unexpected behavior that my parameters annotated with @QueryMap are being send in the body of the request, instead of the query string. Is this the expected behavior?
Thanks

Hi @Menighin,
Which version of feign are you using? Could you share your pom?

Did you read the documentation? You should use @SpringQueryMap not @QueryMap.

Woah... I have not crossed this docs. It was that the problem, thanks @cbezmen . Using @SpringQueryMap worked. Thanks!


Fix typo in install.md

Here I'm just fixing the a simple typo in the install description file.
Closes #19881

Reviewers please re-approve and state if you're OK with CLA: trivial.

Reapproved. It is obviously trivial.

This pull request is ready to merge

Merged to master, 3.0, and 3.1 branches. Thank you for your contribution.


Hello World in Cpp

Write code snippet in C++

Hey @Aniket762 its done. Please refer to #16.
Thanks


After fresh install of trains-agent ERROR: cannot import name 'config_obj' from 'trains_agent.config'

Hi all,
I recently got a machine to use for the train-agent, but I have trouble getting it started.
I made a new conda env with train-sagent installed in it (pip) after which I ran the "trains-agent init" which told me that I already have a conf file which I do, and that is fine.
The problem is when I run:
trains-agent daemon --default
Which results in
trains_agent: ERROR: cannot import name 'config_obj' from 'trains_agent.config' (c:\users\name\.conda\envs\trains\lib\site-packages\trains_agent\config.py)
I'm out of ideas what to try now, reinstalling didn't help, the versions are
trains                    0.16.1                   pypi_0    pypi
trains-agent              0.16.0                   pypi_0    pypi

Hi @212792736 ,
Strange... When I use a clean environment with trains_agent==0.16.0 and trains==0.16.1, and run trains-agent daemon --default the response is:
usage: trains-agent [-h] [--help] [--version] [--config-file CONFIG_FILE] [--debug]
                    {execute,build,list,daemon,config,init} ...
trains-agent: error: unrecognized arguments: --default

If I run trains-agent daemon I get a normal response and the server starts running as expected.
Can you verify the agent you're running is the correct version (trains-agent --version) - it might be that the installed trains_agent command somehow goes to a different agent installation.
To make sure you're running the installed 0.16.0 agent, try using python -m trains_agent --version

Thanks for the swift reply, here are the commands you requested:
(trains) C:>trains-agent --version
TRAINS-AGENT version 0.16.0

(trains) C:>trains-agent --help
TRAINS-AGENT Deep Learning DevOps

usage: trains-agent [-h] [--help] [--version] [--config-file CONFIG_FILE] [--debug]
                    {execute,build,list,daemon,config,init} ...

positional arguments:
  {execute,build,list,daemon,config,init}
    execute                                Build & Execute a selected experiment
    build                                  Build selected experiment environment (including pip packages, cloned code
                                           and git diff) Used mostly for debugging purposes
    list                                   List all worker machines and status
    daemon                                 Start Trains-Agent daemon worker
    config                                 Check daemon configuration and print it
    init                                   Trains-Agent configuration wizard

optional arguments:
  -h                                       Displays summary of all commands
  --help                                   Detailed help of command line interface
  --version                                TRAINS-AGENT version number
  --config-file CONFIG_FILE                Use a different configuration file (default:
                                           "C:\trains.conf")
  --debug, -d                              print debug information

(trains) C:>trains-agent daemon --help
usage: trains-agent daemon [-h] [--foreground] [--queue QUEUES [QUEUES ...]]
                           [--order-fairness] [--standalone-mode]
                           [--services-mode] [--create-queue] [--detached]
                           [--stop] [-O] [--git-user GIT_USER]
                           [--git-pass GIT_PASS]
                           [--log-level {DEBUG,INFO,WARN,WARNING,ERROR,CRITICAL}]
                           [--gpus GPUS] [--cpu-only]
                           [--docker [DOCKER [DOCKER ...]]]
                           [--force-current-version]

optional arguments:
  -h, --help            show this help message and exit
  --foreground          Pipe full log to stdout/stderr, should not be used if
                        running in background
  --queue QUEUES [QUEUES ...]
                        Queue ID(s)/Name(s) to pull tasks from ('default'
                        queue)
  --order-fairness      Pull from each queue in a round-robin order, instead
                        of priority order.
  --standalone-mode     Do not use any network connects, assume everything is
                        pre-installed
  --services-mode       Launch multiple long-term docker services. Implies
                        docker & cpu-only flags.
  --create-queue        Create requested queue if it does not exist already.
  --detached, -d        Detached mode, run agent in the background
  --stop                Stop the running agent (based on the same set of
                        arguments)
  -O                    Compile optimized pyc code (see python documentation).
                        Repeat for more optimization.
  --git-user GIT_USER   git username for repository access
  --git-pass GIT_PASS   git password for repository access
  --log-level {DEBUG,INFO,WARN,WARNING,ERROR,CRITICAL}
                        SDK log level
  --gpus GPUS           Specify active GPUs for the daemon to use (docker /
                        virtual environment), Equivalent to setting
                        NVIDIA_VISIBLE_DEVICES Examples: --gpus 0 or --gpu
                        0,1,2 or --gpus all
  --cpu-only            Disable GPU access for the daemon, only use CPU in
                        either docker or virtual environment

Docker support:
  --docker [DOCKER [DOCKER ...]]
                        Run execution task inside a docker (v19.03 and above).
                        Optional args <image> <arguments> or specify default
                        docker image in agent.default_docker.image /
                        agent.default_docker.argumentsuse --gpus/--cpu-only
                        (or set NVIDIA_VISIBLE_DEVICES) to limit gpu
                        visibility for docker
  --force-current-version
                        Force trains-agent to use the current trains-agent
                        version when running in the docker

(trains) C:>python -m trains_agent --version
TRAINS-AGENT version 0.16.0

I also have a version of trains isntalled:
trains                    0.16.1
I'll check if I have some proxy issues, maybe that is causing some ambiguous error message

Hi @212792736,
I'm still confused by the --default command line switch you used (which is not supported).
What happens when you try simply running trains-agent --debug daemon?

Hi @jkhenning
First, my mistake for creating the confusion with running the trains-agent daemon --default
instead of running
trains-agent daemon --queue default
But regardless, that is not the thing that is causing the problem.
As you requested here is the output of
(trains) C:\WINDOWS\system32>trains-agent --debug daemon
DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): pitc-zscaler-emea-amsterdam3pr.proxy.corporate.ge.com:80
DEBUG:urllib3.connectionpool:PROXY_LINK_THAT_i_HID:80 "GET http://<IP_ADDRESS>:8008/auth.login HTTP/1.1" 307 0
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): GATEWAY_PROXY_LINK:443
DEBUG:urllib3.connectionpool:https://GATEWAY_PROXY_LINK:443 "GET /_sm_ccik?_sm_rid=q0tnWZknQnsRqt3RtWZPv5D7tMfStnWZZ626rkqfStnWZZ626rkq&_orig_url=http://<IP_ADDRESS>:8008/auth.login HTTP/1.1" 307 0
DEBUG:urllib3.connectionpool:PROXY_LINK_THAT_i_HID:80 "GET http://<IP_ADDRESS>:8008/auth.login?_sm_nck=1 HTTP/1.1" 307 0
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): captcha.corp_notification.com:443
DEBUG:urllib3.connectionpool:https://captcha.corp_notification.com:443 "GET /pitc/?url=http%3A%2F%2F<IP_ADDRESS>%CANNOT_ACCESS_LINK_DESCRIPTION HTTP/1.1" 200 None
Traceback (most recent call last):
  File "c:\users\USER\.conda\envs\trains\lib\site-packages\trains_agent\backend_api\session\session.py", line 545, in _do_refresh_token
    return resp["data"]["token"]
KeyError: 'data'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\users\USER\.conda\envs\trains\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\users\USER\.conda\envs\trains\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\USER\.conda\envs\trains\Scripts\trains-agent.exe\__main__.py", line 7, in <module>
  File "c:\users\USER\.conda\envs\trains\lib\site-packages\trains_agent\__main__.py", line 81, in main
    return run_command(parser, args, command_name)
  File "c:\users\USER\.conda\envs\trains\lib\site-packages\trains_agent\__main__.py", line 42, in run_command
    command = command_class(**vars(args))
  File "c:\users\USER\.conda\envs\trains\lib\site-packages\trains_agent\helper\base.py", line 238, in __call__
    cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
  File "c:\users\USER\.conda\envs\trains\lib\site-packages\trains_agent\commands\worker.py", line 345, in __init__
    super(Worker, self).__init__(*args, **kwargs)
  File "c:\users\USER\.conda\envs\trains\lib\site-packages\trains_agent\commands\base.py", line 98, in __init__
    self._session = self._get_session(*args, **kwargs)
  File "c:\users\USER\.conda\envs\trains\lib\site-packages\trains_agent\commands\base.py", line 113, in _get_session
    return Session(*args, **kwargs)
  File "c:\users\USER\.conda\envs\trains\lib\site-packages\trains_agent\session.py", line 94, in __init__
    super(Session, self).__init__(*args, **kwargs)
  File "c:\users\USER\.conda\envs\trains\lib\site-packages\trains_agent\backend_api\session\session.py", line 152, in __init__
    self.refresh_token()
  File "c:\users\USER\.conda\envs\trains\lib\site-packages\trains_agent\backend_api\session\token_manager.py", line 95, in refresh_token
    self._set_token(self._do_refresh_token(self.__token, exp=self.req_token_expiration_sec))
  File "c:\users\USER\.conda\envs\trains\lib\site-packages\trains_agent\backend_api\session\session.py", line 552, in _do_refresh_token
    'Is this the TRAINS API server {} ?'.format(self.get_api_server_host()))
  File "c:\users\USER\.conda\envs\trains\lib\site-packages\trains_agent\backend_api\session\session.py", line 437, in get_api_server_host
    from ...config import config_obj
ImportError: cannot import name 'config_obj' from 'trains_agent.config' (c:\users\USER\.conda\envs\trains\lib\site-packages\trains_agent\config.py)

I deleted some of the links that were in the printout due to corporate links, but I think the problem is that I do not get at HTTP 200 response which is caused by a proxy.

Hi @212792736 ,
Now it makes sense 🙂
Please try upgrading to the latest Trains Agent v0.16.1 and let me know if the problem still persists:
pip install -U trains-agent

Hi again @jkhenning
After updating the error message has changed which is good.
ValueError: It seems *api_server* is misconfigured. Is this the TRAINS API server None ?
We are currently moving our processing server with trains on it so once that is completed, I will check if the problem has been fully resolved

Hi again,
I think we figured out what the problem is,it's the proxy settings which are having issues with the python urllib to communicate with it. If I run the trains-agent on the local server, then no problem is found atm.
I'll have to do more investigation if this can be further resolved but I think the initial problem has been resolved. I'll close the issue after the investigation.

Hi @212792736 ,
Seems this issue got lost on us :(

I think we figured out what the problem is,it's the proxy settings which are having issues with the python urllib to communicate with it

Yes, this sounds like it...
Since basically as you pointed out, its urllib doing all the communication under the hood, we just need to configure it to pass through your proxy.
All urllib sessions are created here , based on this urllib3 documentation it seems we need to replace the PoolManager with ProxyManager, I think once that is done it should work.
What do you think?

Hoi @bmartinn
Thanks for looking into the solutions, I think this helped me to realise a nice trick, and that is to set NO_PROXY variable (import os; os.environ['NO_PROXY'] = 'IP_OF_THE_TRAINS_SERVER') in the file you mentioned
That made me realise that actually all I need is to "set no_proxy=IP_of_the_server" same as it is described here
Now I can run the trains-server and I get these responses (after the config file was printed out, and I just hit the IP addresses ):
(...)
DEBUG:trains_agent.commands.worker:starting resource monitor thread
Worker "G4H3Q5S2E:0" - Listening to queues:
+----------------------------------+---------+-------+
| id                               | name    | tags  |
+----------------------------------+---------+-------+
| 44eab786974744cb91a9fe5796fa305e | default |       |
+----------------------------------+---------+-------+

DEBUG:urllib3.connectionpool:Resetting dropped connection: <IP_ADDRESS>
DEBUG:urllib3.connectionpool:http://server:8008 "GET /workers.register HTTP/1.1" 200 261
Running TRAINS-AGENT daemon in background mode, writing stdout/stderr to C:\Users\212792~1\AppData\Local\Temp\.trains_agent_daemon_outea7jspr8.txt
DEBUG:urllib3.connectionpool:Resetting dropped connection: <IP_ADDRESS>
DEBUG:urllib3.connectionpool:http://server:8008 "GET /v2.5/queues.get_all HTTP/1.1" 200 321
DEBUG:urllib3.connectionpool:Resetting dropped connection: <IP_ADDRESS>
DEBUG:urllib3.connectionpool:http://server::8008 "GET /v2.5/queues.get_next_task HTTP/1.1" 200 265

That would mean that this problem is then solved, I believe, I thank you for you support and great work!


CustomHTML Example not compiling

If I am not mistaken, there is a "Scopes." missing before UserReadEmail.

Hi,
This examples uses using static SpotifyAPI.Web.Scopes; at the top, which makes all Scopes directly available, without the need to prepend Scopes.
I'm also able to compile it locally with the specified net7.0. Feel free to open a discussion if there is something unclear.


626 timestamps

Create and update timestamps were added to the dataset message in the metadata proto. See issue ga4gh/schemas#626.

Current coverage is 85.71% (diff: 83.33%)

Merging #1517 into master will decrease coverage by 0.01%

@@             master      #1517   diff @@
==========================================
  Files            30         30
  Lines          7023       7065    +42
  Methods           0          0
  Messages          0          0
  Branches        890        892     +2
==========================================
+ Hits           6021       6056    +35
- Misses          843        849     +6
- Partials        159        160     +1

Powered by Codecov. Last update c307ae0...03df660


fix to show brackets while storing a procedure in babelfish catalog

Description
// to add
[Describe what this change achieves - Guidelines below (please delete the guidelines after writing the PR description)]

What is the change? This is best described in terms of “Currently, Babelfish does X. With this change it now does Y.” Think of “What did it used to do?” and “What does it do now?”

Why was the change made? What drove our desire to put effort into the change?
How was the code changed should only appear for large commits. This can serve as a rough roadmap to what’s contained in the commit. It should be very high level; if it’s directly referencing code it’s probably too detailed. It’s also critical that this section of a commit message does not try to replace proper code documentation (ie, block comments or README files). Generally, this section should only appear if the commit itself is large enough that it’s helpful to provide a roadmap to someone looking at the commit.
The last descriptive piece is the “title” for the commit: the very first line of the commit message, which should typically be less than 80 characters. A good title is critical, because it’s the only thing that shows up in places like the Github commit listing. No one’s got time to read through full commit messages when trying to find a single commit out of dozens.

Issues Resolved
[List any issues this PR will resolve]
Test Scenarios Covered

Use case based -

Boundary conditions -

Arbitrary inputs -

Negative test cases -

Minor version upgrade tests -

Major version upgrade tests -

Performance tests -

Tooling impact -

Client tests -

Check List

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is under the terms of the Apache 2.0 and PostgreSQL licenses, and grant any person obtaining a copy of the contribution permission to relicense all or a portion of my contribution to the PostgreSQL License solely to contribute all or a portion of my contribution to the PostgreSQL open source project.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>8
Details

7 of 7 (100.0%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.005%) to 74.493%

Files with Coverage Reduction
New Missed Lines
%

contrib/babelfishpg_tds/src/backend/tds/tdsutils.c
1
74.22%

Totals

Change from base Build<PHONE_NUMBER>5:
0.005%

Covered Lines:
45168

Relevant Lines:
60634

💛  - Coveralls

Let's add tests in DDL framework as well for single/multi line comments and brackets around the datatype.
Please don't create another test file(storeOriginalQuery*) just to show function object definition, rather use the existing ones(BABEL_OBJECT_DEFINITION*).