dont.lock.me: Prevent sealing of a namespace, to facilitate package...

dont.lock.meR Documentation

Prevent sealing of a namespace, to facilitate package maintenance.

Description

Call dont.lock.me() during a .onLoad to stop the namespace from being sealed. This will allow you to add/remove objects to/from the namespace later in the R session (in a sealed namespace, you can only change objects, and you can't unseal a namespace retrospectively). There could be all sorts of unpleasant side-effects. Best to leave it to maintain.packages to look after this for you...

Usage

# default of env works if called directly in .onLoad
dont.lock.me( env=environment( sys.function( -1)))

Arguments

env

the environment to not lock.

Details

dont.lock.me hacks the standard lockEnvironment function so that locking won't happen if the environment has a non-NULL dont.lock.me attribute. Then it sets this attribute for the namespace environment.

Examples

## Not run: 
if( FALSE && is_very_annoying( CRAN)){ # otherwise CMD CHECK --as-cran tries to run this :/
  # This unseals the namespace of MYPACK only if the option "maintaining.MYPACK" is non-NULL:
  .onLoad <- function( libname, pkgname) {
    if( !is.null( getOption( 'maintaining.' %&% pkgname)))
      mvbutils:::dont.lock.me()
  }
} # if F

## End(Not run)

mvbutils documentation built on May 25, 2026, 5:09 p.m.