Coder Social home page Coder Social logo

Comments (30)

nekrich avatar nekrich commented on April 28, 2024 15

Hi guys, thanks for reporting, and sorry for the breaking. I'm looking into this issue right now.

UPD: Looks like the problem with readonly: true mode.

from fastlane.

jagged91 avatar jagged91 commented on April 28, 2024 7

Not a solution, but a workaround for now:

In your Gemfile, add the following line:
gem "fastlane", '~> 2.217.0'

(Make sure to remove it when this issue is fixed - not great to be locked to a specific version here.)

from fastlane.

jagged91 avatar jagged91 commented on April 28, 2024 4

You're right - there is. TIL!

gem "fastlane", '!= 2.218.0'

Source

EDIT: As pointed out below, there's no guarantee that the next version will fix the issue. It's probably safer to stick with the first workaround above.

from fastlane.

mlazari avatar mlazari commented on April 28, 2024 3

I think something like this would work if you need to exclude multiple versions: gem "fastlane", '!= 2.218.0', '!= 2.219.0' or gem "fastlane", ['!= 2.218.0', '!= 2.219.0']

from fastlane.

lukasz-szyszkowski avatar lukasz-szyszkowski commented on April 28, 2024 3

Any idea how to force to install specific version of fastlane on Bitrise.io?
This solution won't work https://support.bitrise.io/hc/en-us/articles/360017278218-Installing-a-specific-fastlane-version
it gave me an error:

ERROR:  While executing gem ... (Gem::DependencyRemovalException)
    Uninstallation aborted due to dependent gem(s)
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/uninstaller.rb:155:in `uninstall_gem'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/uninstaller.rb:235:in `block in remove_all'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/uninstaller.rb:235:in `each'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/uninstaller.rb:235:in `remove_all'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/uninstaller.rb:126:in `uninstall'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:198:in `uninstall'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:184:in `uninstall_gem'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:178:in `block in uninstall_specific'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:170:in `each'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:170:in `uninstall_specific'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:132:in `execute'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/command.rb:327:in `invoke_with_build_args'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/command_manager.rb:252:in `invoke_command'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/command_manager.rb:192:in `process_args'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/command_manager.rb:150:in `run'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/gem_runner.rb:51:in `run'
	/Users/vagrant/.asdf/installs/ruby/3.2/bin/gem:10:in `<main>'
ERROR:  While executing gem ... (NoMethodError)
    undefined method `request' for nil:NilClass
    [@failed_dep.dependency, @activated.request.dependency]
                                       ^^^^^^^^

I can't run my workflows because we are using fastlane match :/

from fastlane.

bitcrumb avatar bitcrumb commented on April 28, 2024 3

I installed fastlane with homebrew. Is there any way to downgrade with brew? I can't find v2.217.0 in homebrew.

Don't bother, a new version (2.219.0) containing the fix was just released.

from fastlane.

prasad-rawas-volofleet avatar prasad-rawas-volofleet commented on April 28, 2024 2

Any idea how to force to install specific version of fastlane on Bitrise.io? This solution won't work https://support.bitrise.io/hc/en-us/articles/360017278218-Installing-a-specific-fastlane-version it gave me an error:

ERROR:  While executing gem ... (Gem::DependencyRemovalException)
    Uninstallation aborted due to dependent gem(s)
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/uninstaller.rb:155:in `uninstall_gem'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/uninstaller.rb:235:in `block in remove_all'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/uninstaller.rb:235:in `each'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/uninstaller.rb:235:in `remove_all'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/uninstaller.rb:126:in `uninstall'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:198:in `uninstall'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:184:in `uninstall_gem'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:178:in `block in uninstall_specific'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:170:in `each'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:170:in `uninstall_specific'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:132:in `execute'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/command.rb:327:in `invoke_with_build_args'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/command_manager.rb:252:in `invoke_command'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/command_manager.rb:192:in `process_args'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/command_manager.rb:150:in `run'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/gem_runner.rb:51:in `run'
	/Users/vagrant/.asdf/installs/ruby/3.2/bin/gem:10:in `<main>'
ERROR:  While executing gem ... (NoMethodError)
    undefined method `request' for nil:NilClass
    [@failed_dep.dependency, @activated.request.dependency]
                                       ^^^^^^^^

I can't run my workflows because we are using fastlane match :/

Try modifying fastlane-match stage like this:

  • fastlane-match@0:
    inputs:
    - fastlane_version: 2.217.0
    ...

from fastlane.

mlazari avatar mlazari commented on April 28, 2024 1

@stherold Except that there is no guarantee that it will be fixed in the next version, so that's also not ideal.

from fastlane.

jagged91 avatar jagged91 commented on April 28, 2024 1

Yep, good point. I'll leave both options up above - do what you feel is best for your situation.

from fastlane.

AlbGarciam avatar AlbGarciam commented on April 28, 2024 1

Any idea how to force to install specific version of fastlane on Bitrise.io? This solution won't work https://support.bitrise.io/hc/en-us/articles/360017278218-Installing-a-specific-fastlane-version it gave me an error:

ERROR:  While executing gem ... (Gem::DependencyRemovalException)
    Uninstallation aborted due to dependent gem(s)
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/uninstaller.rb:155:in `uninstall_gem'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/uninstaller.rb:235:in `block in remove_all'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/uninstaller.rb:235:in `each'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/uninstaller.rb:235:in `remove_all'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/uninstaller.rb:126:in `uninstall'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:198:in `uninstall'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:184:in `uninstall_gem'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:178:in `block in uninstall_specific'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:170:in `each'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:170:in `uninstall_specific'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/commands/uninstall_command.rb:132:in `execute'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/command.rb:327:in `invoke_with_build_args'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/command_manager.rb:252:in `invoke_command'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/command_manager.rb:192:in `process_args'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/command_manager.rb:150:in `run'
	/Users/vagrant/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/gem_runner.rb:51:in `run'
	/Users/vagrant/.asdf/installs/ruby/3.2/bin/gem:10:in `<main>'
ERROR:  While executing gem ... (NoMethodError)
    undefined method `request' for nil:NilClass
    [@failed_dep.dependency, @activated.request.dependency]
                                       ^^^^^^^^

I can't run my workflows because we are using fastlane match :/

If you use Bundler to instal your gems, you can add something like this to your gemfile

gem "fastlane", '<= 2.217.0'

Note that this is a temporary measure until the issue has been fixed

from fastlane.

nekrich avatar nekrich commented on April 28, 2024 1

The issue with match/sync_code_signing should be fixed in [match] fix cache issues in read-only mode. Would appreciate it if someone could confirm it works for them.

from fastlane.

e3bmo3ty avatar e3bmo3ty commented on April 28, 2024 1

Hi guys, thanks for reporting, and sorry for the breaking. I'm looking into this issue right now.

UPD: Looks like the problem with readonly: true mode.

changed it to false and works for me

from fastlane.

mlazari avatar mlazari commented on April 28, 2024 1

@nekrich I tested it with your change (by using gem 'fastlane', git: 'https://github.com/nekrich/fastlane.git', branch: 'fix/match-readonly-mode' in Gemfile) and it worked.

from fastlane.

ezos86 avatar ezos86 commented on April 28, 2024 1

Bitrise Users:

If you don't use fastlane-match. I did this to get mine to work.

Added a script step with :

#!/usr/bin/env bashset -ex

gem uninstall fastlane --all --executables
gem install fastlane --version 2.217.0 --no-document

Then in my Fastlane module:
Disable the upgrade option before run.
image

Hopefully this helps someone that is dealing with this issue that uses Bitrise.

from fastlane.

arc-v2 avatar arc-v2 commented on April 28, 2024 1

@mlazari No, I just tested that branch and it did not fix the error when creating a cert.

[19:27:13]: Error setting value '[]' for option 'cached_devices'[!] cached_devices parameter must be a non-empty array of Spaceship::ConnectAPI::Device

Your issue seems to be fixed in another PR #21766, can you try on that branch?

from fastlane.

scott-hill-alkami avatar scott-hill-alkami commented on April 28, 2024 1

@mlazari No, I just tested that branch and it did not fix the error when creating a cert.
[19:27:13]: Error setting value '[]' for option 'cached_devices'[!] cached_devices parameter must be a non-empty array of Spaceship::ConnectAPI::Device

Your issue seems to be fixed in another PR #21766, can you try on that branch?

The branch was merged to master.
So I just tested master and the issue I was seeing seems to be fixed there.

from fastlane.

scott-hill-alkami avatar scott-hill-alkami commented on April 28, 2024 1

I installed fastlane with homebrew. Is there any way to downgrade with brew? I can't find v2.217.0 in homebrew.

I could be completely wrong here but it looks like there is only one version available via brew:

brew search fastlane
==> Formulae
fastlane

I use gem to quickly install/test various versions of fastlane

brew uninstall fastlane
gem install fastlane --version 2.217.0

from fastlane.

stherold avatar stherold commented on April 28, 2024

+1

from fastlane.

stherold avatar stherold commented on April 28, 2024

Is it possible to "ignore" specific versions in the gem file? This would be much better than to lock one since the latter required additional action while ignoring specific versions can stay and is even a great documentation.

from fastlane.

stherold avatar stherold commented on April 28, 2024

Wow did not know this!!! Is it also possible to specify multiple ones?

from fastlane.

kasterlod avatar kasterlod commented on April 28, 2024

@lukasz-szyszkowski enter step fastlane in bitrise and set to false "update fastlane before running lane" - with this flag fastlane version locked in gemfile has no effect

from fastlane.

arc-v2 avatar arc-v2 commented on April 28, 2024

Similar issue is present with scan too. Not sure if the cause is same but that is also a regression with similar stack trace.

fastlane finished with errors
Looking for related GitHub issues on fastlane/fastlane...
➡️  Scan Support for connected devices
    https://github.com/fastlane/fastlane/pull/5159 [closed] 38 💬
    22 Sep 2017
🔗  You can ⌘ + double-click on links to open them directly in your browser.
/Users/xyz/.gem/gems/fastlane-2.218.0/scan/lib/scan/detect_values.rb:295:in `block in detect_destination': [!] undefined method `os_type' for nil:NilClass (NoMethodError)
	from /Users/xyz/.gem/gems/fastlane-2.218.0/scan/lib/scan/detect_values.rb:295:in `map'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/scan/lib/scan/detect_values.rb:295:in `detect_destination'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/scan/lib/scan/detect_values.rb:53:in `set_additional_default_values'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/scan/lib/scan/module.rb:17:in `config='
	from /Users/xyz/.gem/gems/fastlane-2.218.0/scan/lib/scan/manager.rb:10:in `work'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/actions/run_tests.rb:17:in `run'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/runner.rb:263:in `block (2 levels) in execute_action'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/actions/actions_helper.rb:69:in `execute_action'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/runner.rb:255:in `block in execute_action'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/runner.rb:229:in `chdir'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/runner.rb:229:in `execute_action'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
	from Fastfile:57:in `block (2 levels) in parsing_binding'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/lane.rb:41:in `call'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/lane_manager.rb:46:in `cruise_lane'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/command_line_handler.rb:34:in `handle'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/commands_generator.rb:110:in `block (2 levels) in run'
	from /Users/xyz/.gem/gems/commander-4.6.0/lib/commander/command.rb:187:in `call'
	from /Users/xyz/.gem/gems/commander-4.6.0/lib/commander/command.rb:157:in `run'
	from /Users/xyz/.gem/gems/commander-4.6.0/lib/commander/runner.rb:444:in `run_active_command'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:124:in `run!'
	from /Users/xyz/.gem/gems/commander-4.6.0/lib/commander/delegates.rb:18:in `run!'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/commands_generator.rb:354:in `run'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/commands_generator.rb:43:in `start'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/fastlane/lib/fastlane/cli_tools_distributor.rb:123:in `take_off'
	from /Users/xyz/.gem/gems/fastlane-2.218.0/bin/fastlane:23:in `<top (required)>'
	from /Users/xyz/.gem/bin/fastlane:23:in `load'
	from /Users/xyz/.gem/bin/fastlane:23:in `<main>'
	

Stack

Key Value
OS 13.6.2
Ruby 3.2.2
Bundler? false
Git git version 2.43.0
Installation Source ~/.gem/bin/fastlane
Host macOS 13.6.2 (22G320)
Ruby Lib Dir /opt/homebrew/Cellar/ruby/3.2.2_1/lib
OpenSSL Version OpenSSL 3.1.1 30 May 2023
Is contained false
Is homebrew false
Is installed via Fabric.app false
Xcode Path /Applications/Xcode.app/Contents/Developer/
Xcode Version 14.2
Swift Version 5.7.2

System Locale

Variable Value
LANG en_US.UTF-8
LC_ALL en_US.UTF-8
LANGUAGE

from fastlane.

scott-hill-alkami avatar scott-hill-alkami commented on April 28, 2024

Would this fix also address an issue when creating a cert:
Using fastlane 2.218.0

fastlane match appstore --storage_mode s3 ...

[19:27:11]: Successfully generated .... which was imported to the local machine.
[19:27:12]: Verifying the certificate is properly installed locally...
[19:27:12]: Successfully installed certificate ....
[19:27:13]: Error setting value '[]' for option 'cached_devices'[!] cached_devices parameter must be a non-empty array of Spaceship::ConnectAPI::Device

Previous fastlane 2.217.0 & 2.216.0 work as expected with the same command.

from fastlane.

mlazari avatar mlazari commented on April 28, 2024

@scott-hill-alkami You can give it a try and see if it fixes the issue (see my comment above on how to update the Gemfile to use the version with the fix).

from fastlane.

scott-hill-alkami avatar scott-hill-alkami commented on April 28, 2024

@mlazari No, I just tested that branch and it did not fix the error when creating a cert.

[19:27:13]: Error setting value '[]' for option 'cached_devices'[!] cached_devices parameter must be a non-empty array of Spaceship::ConnectAPI::Device

from fastlane.

mlazari avatar mlazari commented on April 28, 2024

[19:27:13]: Error setting value '[]' for option 'cached_devices'[!] cached_devices parameter must be a non-empty array of Spaceship::ConnectAPI::Device

That seems to come from a line in this PR: https://github.com/fastlane/fastlane/pull/21694/files#diff-e92862fddb614ea5aeca5cda382660111bf88e51f06781a88f963a20dbab47b1R223 which I think is the same that introduced this bug too, so could be related indeed.

from fastlane.

seolhs04 avatar seolhs04 commented on April 28, 2024

I installed fastlane with homebrew. Is there any way to downgrade with brew?
I can't find v2.217.0 in homebrew.

from fastlane.

RetepV avatar RetepV commented on April 28, 2024

I can confirm that the fix for #21767 also fixes #21763. Good job!

from fastlane.

FinHead avatar FinHead commented on April 28, 2024

@mlazari No, I just tested that branch and it did not fix the error when creating a cert.
[19:27:13]: Error setting value '[]' for option 'cached_devices'[!] cached_devices parameter must be a non-empty array of Spaceship::ConnectAPI::Device

Your issue seems to be fixed in another PR #21766, can you try on that branch?

The branch was merged to master. So I just tested master and the issue I was seeing seems to be fixed there.

Hey, thanks for fixing this issue!
Do you have a rough ETA on a scheduled release for these fixes?

from fastlane.

Lutzifer avatar Lutzifer commented on April 28, 2024

to install an older version via homebrew you can do this:

brew tap --force homebrew/core 
brew tap-new my/oldVersions
brew extract --version=2.217.0 fastlane my/oldVersions
brew install my/oldVersions/[email protected]

uninstall via

brew uninstall [email protected] 
brew untap my/oldVersions
brew untap  homebrew/core
brew cleanup

as soon as you no longer need it.

from fastlane.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.